Rather Useful Kinect Sensor

Every now and then I take a picture I really like. This is a "Kinect's Eye view of the audience this afternoon. 

Every now and then I take a picture I really like. This is a "Kinect's Eye view of the audience this afternoon. 

We had our second Rather Useful Seminar of the semester today. I took along our Kinect 2 sensor and showed the secrets behind "Carbonite Students" among other things. There were two points that I really wanted to get over. One is that the Kinect sensor can do some pretty amazing things. The second point is more important though. I wanted the audience, some of whom were just starting to learn how to code, to appreciate that when we do things with these fancy sensors we are just taking values in, doing something with them and then spitting them back out again. The code I'd written was nothing special really, but it did get some nice audience reactions, which was lovely. 

You can find the presentation deck here.

Arduino Rather Useful Seminar

I always take a picture of the audience. For tax reasons....

I always take a picture of the audience. For tax reasons....

We had our first Rather Useful Seminar today. It was all about hardware, made slightly more interesting by the way that hardware, in the form of my Bluetooth keyboard and mouse failed me right at the start. 

But thanks to the loan of spare keyboard we managed to get going and play around with Arduinos. I showed how easy it is to write programs for the platform and how many amazingly cheap components you can find on eBay. (In fact I ended up spending around 5 quid doing "research" for the presentation when I bought a 1.8 inch colour screen and an SD card interface)

Anyhoo, it went well enough and folks seemed to have a good time. If we have enough interest we might start a Hardware Fiddlers club of some kind in the department. You can find my slide deck and details of future seminars here

Dates for your Diaries

I've been sorting out dates and stuff for the next few weeks. Here are a couple highlights of the things coming up soon:

Rather Useful Seminars

Rather Useful Seminars start this week with a session about the Arduino device, and why you should buy at least one. You can find details of the seminar program at www.ratherusefulseminars.com

Anyone at Hull can come along, they are always at 1:15 on a Wednesday afternoon in Lecture Theatre A on the ground floor of the Robert Blackburn Building. If you fancy giving all, or part of a seminar on something you find interesting and other folk might like to know about, get in touch with me.

Three Thing Game

The date and time for the next Three Thing Game has been set as overnight on Halloween, from 31st of October to 1st November. Microsoft and MonoGame will be coming along to take part and MonoGame will be doing a special, spooky, session about the new features they have added to the framework. You can get extra prizes by using these in the games that you make during the competition.

The itinerary for Three Thing Game is at www.threethinggame.com

Registration for the competition will open next week. 

Phil and Stuart talk iPlayer Transcoding

Phil Cluff and Stuart Hicks getting ready for the off

Phil Cluff and Stuart Hicks getting ready for the off

We love it when ex-students come back to the department to tell us what they've been up to. Phil Cluff graduated a few years ago and Stuart Hicks a couple of years after that. Since graduation they've both been working for the BBC on the iPlayer team.

If your'e not from the UK you might not appreciate just how wonderful BBC iPlayer is. It lets you consume BBC TV output on any device, in any place. All the output of the BBC channels, plus the content from BBC local TV, is made available shortly after broadcast so you really don't have to worry about missing things. The programmes are available for a number of days after transmission and they are also made available for download. It's awesome. Phil and Stuart  told us that 3% of the consumption of BBC output is now via iPlayer and it is growing rapidly. There have been around 28 Million downloads of the iPlayer apps across the various platforms,  they get around 10 million requests a day and release around 700 hours of new content a week.  Amazing stuff. 

Of course, getting all that content onto the internet is a tricky job. The original content has got to be converted into the different video formats and sizes that are consumed by the users, and this must happen as soon after broadcast as possible. Nobody wants to have to wait until tomorrow to see today's news. There are huge peaks and troughs in demand and this makes it tricky to manage the computing resource that you need for the task.

A little while back the BBC decided to move their transcoding (as this is called) activities into the cloud. Phil and Stuart described the cloud as "A collection of services that someone else runs for you, which lets you not care about hardware". Which is just what the BBC needed. So they put together a project to build a cloud based "Video Factory" from scratch in 18 months. And they did it. 

Large computing projects are notable for failing or being expensively late. The Video Factory was neither of these things. Phil put this down to the way the design was based on a number of small components, each of which performs one step in the process of getting the video into your iPhone or whatever. The workflow of the video data through the system is managed as a series of messages that are passed from one component to each other. Components take messages out of their input queue, perform their part of the process on the message and pass it on to the next component.  If things get busy and queues start to fill up the system can "spin up" extra processing resource in the form of further servers in the cloud which can run components to work on the extra elements. 

And because each component has very well defined inputs and outputs this makes testing much easier. Phil and Stuart talked about Behaviour Driven Development, which is where you express what you want to achieve in terms of business outcomes. They used a language called Cucumber which lets you express your requirements in a really easy to understand way, and will also produce a whole framework of tests you can use to prove the solution. This is very, very interesting stuff.

It was great to see Phil and Stuart again. It looks like they are doing very well. It was also really nice to hear them echo a lot of the things that we tell our students during the course.  They had some very useful things to say about the craft of development. You can find the slide deck of their presentation here. I strongly advise you to take a look at the last few slides, there are some lovely references there that you can use to find out more.

John Connelly Talks Hull City Plan

Today we had a Rather Useful Seminar from John Connelly of C4DI. He came along and told us about the exciting developments centered around the Hull City Plan. I wish more students had been around to hear all about it. As it is, there are lots of interesting things coming along soon, including a "Three Thing Thing" application development hackathon that we are going to run based on data that the City Plan is making available. 

I reckon everyone who is interested in getting and using data from the area should sign up and get involved. There are lots of problems that are well worthy of an attack based on big data and novel solutions. You can sign up to be kept informed of the plans here

Rather Useful Seminars. Please Come Along

RatherUsefulSeminarLogo500.png

Last week our Rather Useful Seminar was a bit quiet.

Sad face.

I really want a good turnout for the one on Wednesday though. It should be very interesting, with John Connelly from C4DI coming along to talk about great plans for Hull as a digital city, followed by the "Rob and Dave" show, all about job finding technique. 

Find out more here: http://www.ratherusefulseminars.com/

The Power of the Poster

We had a Rather Useful Seminar today. Or rather we didn't. I'd sent around emails, blogged about the event and even tweeted. So I thought I was well covered for publicity.

But I hadn't put put up any posters, which turned out to be my undoing as hardly anybody turned up. Oh well. Lesson learned.

I've re-scheduled the event and put up posters. It is now after the talk by John Connelly of C4DI who is coming in next week to give an overview of the digital city plans for Hull.

You. Really. Should. Attend.

This is all part of the lead up to the conference at the start of April. You haven't heard? It's on the poster. You can find out more and sign up here.

Tom Talks Rather Useful Security

DSC04302.jpg 
Tom keeps his nerve….

We had a student powered Rather Useful Seminar today. Tom Forbes is one of our third year students and he has a side-line in computer security. So a while back he offered to give a Rather Useful Seminar about his experiences making the web a more secure place. In fact he wanted to go beyond just talking, and actually set up a web site, just for the hacking of. So he did.

TomsSite.jpg

Tempting products, but woefully insecure.

We were actually able to connect to the site and do some injection and scripting attacks there and then. Great fun. You can find out more about the presentation on Tom’s blog, here.

I made the point that if any other students think they might have a seminar in them, we are always looking for volunteers. It is great practice. If you reckon you have a story to tell, get in touch and we can set something up.

David Clark from Cuba Entertainment on Unlocking your Dream

 

DSC03697.jpg

Today’s Rather Useful Seminar followed on nicely from the one last week, about steps to take to get your game out there. Except that this was the view from the other side of the street. David Clark of Cuba Entertainment has been in the gaming business since the early nineties working with such companies as Stainless Games, SCI, Eidos and Sega. He has seen the rise and fall of the cartridge based console, the disruption caused by the PlayStation 1 when Sony released it on an unsuspecting world, and most recently the shattering effect of the arrival of Apple and the App. Store on game distribution.

He has also seen the influence of the game publisher wax and wane and the rise of the self publishing game house. David was here to tell us how you can take your great software and make it into successful product. He had some very interesting things to say about money, where to get it from, what do do with it and the importance of an exit strategy.

Two things stood out from his talk for me. Firstly that 60% of something is an awful lot more than 100% of nothing. The value that publishing services can give to a game are well worth the cost. You might think that you can promote and sell your game yourself, but unless you got into game development to do just that, you are not going to enjoy it very much, and besides you should really be spending your time adding value to your product, not trying to persuade people to buy it. Much better to let go of some of the equity and use it to pay for people who can get things moving for you.

The second thing that stood out (and I was very pleased to hear this from David) was the importance of Networking. And no, I don’t mean WiFi. I mean having business cards, making useful friends and keeping people informed of what you are about. The kind of funding that a fledgling game developer needs is just the kind of stuff you can get from folks you happen to know who have spare cash lying around. So you need to make efforts to “happen to know” them. This means getting out there and promoting yourself, which is spectacularly difficult for an introverted computer scientist, but it is well worth the effort.

Thanks so much to David for coming along and giving us the benefit of his experience and knowledge.

You can find his presentation slide deck here.

Angel Investor at the Rather Useful Seminar

DSC03536.jpg

At the Rather Useful Seminar this week we talked about how to market games that you write.
Next week David Clark of Cuba Entertainment will be visiting the department and telling us about the other side of the coin as he talks video game investment and angel investors.
If you are interested in how the games and entertainment industry work you should come along to this seminar at 1:15 pm in Lecture Theatre D in the Robert Blackburn Building on Wednesday 13th of November.

Selling your games with Simon Grey

image

I think Simon learned a lesson today.He learned not to email me and say “I’ve got some great ideas for the Rather Useful Seminar this afternoon about getting your game to market”. I told him I had an even better idea.

He could do the seminar.

So he did. And it was excellent. We kind of did it between us (in other words Simon said things and I shouted out stuff from the side). We also had John and Josh come by to talk about their experience getting games to market.  They started by publishing games from Three Thing Game and are now planning proper releases, with game companies based down at Platform Studios. Points to ponder:

  • Get something out there. Just do it. Don’t wait for it to be “finished”. Nothing is ever really finished. If you get stuff out there you will get feedback and make your next game even better. The experience of actually getting something approved and in a marketplace is an incredibly valuable one.
  • Set yourself deadlines. Don’t just plan to “Get round to it”. You never will. Tell yourself you are going to ship at the end of November and then do that.
  • Put yourself out there. Like everything else, it is all about networking and who you know. Get yourself business cards. Go to events. Shake hands with folks. Start a blog, get yourself a following and practise your writing styles.
  • There is no such thing as an “Overnight Success”. Minecraft took four years of solid work. Lots of other independent games that came from nowhere actually had a long gestation period and lots of planning behind them. And they were frequently the most recent in a long line of releases that had previously gone nowhere.
  • If something doesn’t work the way you thought it would, see if that makes the gameplay better, and use it if it does. Some games are built on “happy accidents”.
  • Keep doing stuff.

Thanks so much to Simon for putting together such a good presentation at such short notice. You can find the slides here

A Rather Useful Slice of Raspberry Pi

DSC03421_2_3.jpg

This is a slightly processed picture of the audience. It seems that quite a few people have a taste for Pi.

We did another Rather Useful Seminar today. It was all about the Raspberry Pi. I covered what is, how you use it, a bit about hardware interfacing from Python and then we had a bit of time to look at my Pi Arcade table, which I’m keeping in the department for now.

DSC03425.jpg

This is the table, showing off its Pi credentials. Normally I run Mame on it. You can find out more about how I built it here.

Thanks to a great audience. You can find the slides here.

Printing the Weather Forecast in 3D

DSC02977.jpg

We had a good audience for the first Rather Useful Seminar. Some of them were fresh from a first year lecture and must have been feeling a mite peckish. But they stayed to the end and I hope they enjoyed it. The talk was very similar to the one I did last year, but there was a twist at the end, when I printed the weather forecast as a plastic object. Again, I brought along Una the Ultimaker, and again she behaved herself very well.

I’ve become quite intrigued with the idea of generating objects from software, and it occurred to me that with the FreeCad tool having a Python interpreter in it, we should be able to do something interesting. I’d no idea how to use Python to read a weather forecast but fortunately Catalin George Festila has done it here. So I took his methods which use the Yahoo weather feed and prints it out and made a few changes.

def weather_for_zip(zip_code):
    url = wurl % zip_code +'&u=c'
    dom = minidom.parse(urllib.urlopen(url))
    forecasts = []
    for node in dom.getElementsByTagNameNS(wser, 'forecast'):
        forecasts.append({
            'date': node.getAttribute('date'),
            'low': node.getAttribute('low'),
            'high': node.getAttribute('high'),
            'condition': node.getAttribute('text')
        })
    ycondition = dom.getElementsByTagNameNS(wser, 'condition')[0]
    return {
        'current_condition': ycondition.getAttribute('text'),
        'current_temp': ycondition.getAttribute('temp'),
        'forecasts': forecasts ,
        'title': dom.getElementsByTagName('title')[0].firstChild.data
    }

This is the code that he wrote that fetches the weather information from the Yahoo weather service and creates a list of objects that contain a forecast item for five days. The forecast information contains the highest temperature for each day, and that’s what I’m going to use to control the height of each of the columns that I print.

def main():
    a=weather_for_zip("UKXX0476")
    noOfReadings=5
    # find range of temperatures
    highest = float(a['forecasts'][0]['high'])
    lowest = highest
    for i in range(noOfReadings):
        v = float(a['forecasts'][i]['high'])
        if highest < v:
            highest = v
        if lowest > v:
            lowest = v
    # make some blocks 
    plinthThickness = 3.0  
    blockWidth=5.0
    blockDepth=5.0
    blockStartHeight = 5.0
    heightRange = 20.0
    rangeScale = heightRange / (highest - lowest)
    x=0.0
    y=0.0
    plinth = Part.makeBox(blockWidth*noOfReadings,blockDepth, \
        plinthThickness, Base.Vector(0,0,-plinthThickness))
    for i in range(noOfReadings):
        v = float(a['forecasts'][i]['high'])
        blockHeight = blockStartHeight + rangeScale * (v - lowest)
        block = Part.makeBox(blockWidth,blockDepth, \
            blockHeight, Base.Vector(x,y,0))
        plinth = plinth.fuse(block)
        x = x + blockWidth

    Part.show(plinth)
    Gui.SendMsgToActiveView("ViewFit")
    Gui.activeDocument().activeView().viewAxometric()

main()

The Yahoo zip code for Hull in the UK is UKXX0476. This code fetches the weather forecast data and then finds the largest and smallest temperature values (something which should be familiar to first year students). It then makes a row of five blocks, each of which has a height set by the temperature for that day. I’ve re-written it from the demonstrated code so that the coordinates make a bit more sense. The width and depth values map onto the x and y directions, with height being the z value. The code creates a little plinth and fuses a series of blocks onto the plinth. The length of each block is the temperature for that day.

forecast

 

This is the object that was produced by FreeCad. It represents the temperatures 12, 16,14, 17 and 16 degrees, which is the rather chilly forecast for the next few days. I sliced the design using Cura and then, after a bit of kerfuffle I managed to print out the temperature plot.

DSC02989.jpg

The weather forecast. And a tiny owl.
I printed it out really tiny (all of the dimension values above are in mm) but I reckon it came out quite well. I’ve since found a flaw though, in that you can’t tell which way round it is supposed to be read. Of course I could add an arrow or emboss some text to make it easier to use.

I must admit that I can’t see a huge demand for physical manifestations of the weather forecast, but I hope it brought home to folks how easy it is to grab information and turn it into something tangible. There is a lot of scope for random patterns and generating objects from mathematical formulae. And, as you can see above, it is very easy to do. I made an offer that if anyone uses Python to make an interesting object I’d be quite happy to print it out for them.

You can find the slide deck here. At the end Peter was kind enough to show some videos of his printer in action. You can find out all about the “Richmond” 3D printer at his blog here.

Software War Stories from Black Marble

image

If you’ve ever wondered what software development is really all about then you should come along to our next “Rather Useful Seminar” on Wednesday this week. Robert Hogg and Steve Spencer of Black Marble, a local software company which works closely with the Department and has recruited many of our graduates, are giving a seminar on Wednesday 17 April where they will be sharing their experiences of software engineering in the real world.

Robert and Steve are entertaining speakers and have a great deal of experience of real-world software development and running a software business. The presentation will be at 14:15 in RB-LTA. This is a slightly different time and venue from previous seminars. All are welcome, particularly Year 1 and Year 2 students.

"Life after Uni and being a Boss Alien"

image

Lindsay Cox is coming to see us on Wednesday 6th of March and give a Rather Useful Seminar. You might remember Lindsay from the odd Three Thing Game, in fact he and his teams produced some memorable stuff over the years. Lindsay is going to talk about his experiences since graduation. The seminar is at 2:30 pm  on Wednesday 6th of March in Lecture Theatre D (LTD) in the Robert Blackburn Building.

Please note the slightly later start.

PEGI Game Ratings

image

If you’ve ever bought a video game from a shop then you will have already seen PEGI in action. This is the organisation that makes sure that you know what you are getting when you buy that copy of “Rabid Chainsaw Massacre III with Flame Thrower” for your six year old nephew (although with a title like that you should probably have a shrewd idea what you are getting, and it might not be a wise choice…)

PEGI implements a European wide ratings system for games which lets the buyer know what kind of content the game will have and also provides age ratings for purchasers. The big games publishers all use the PEGI ratings on their products and submit them for rating as part of the development process.

If you are making video games it is important to know how the ratings are applied. If you are making a kids game you might find it useful to have a PEGI rating, so that parents would be more inclined to buy it.

Today Ian and Gianni came over from PEGI to describe how the ratings process works and what you can do (and not do) to make sure that your content hits the audience you intended. It was a great talk with lots of “what would you do?” moments where the audience was invited to comment on the impact of game design choices. Good stuff.

Rather Useful Gamejam Briefing

PlatformExpoBriefing

As a way of preparing you for Global Gamejam Hull (you have signed up haven’t you) we’ve got an extra special Rather Useful Game Development Briefing next week.

  • Louis Deane will be talking about Unity development.
  • Simon Grey will be talking about making 3D spritesheets with dynamic lighting effects by using shaders
  • Rob Miles will be talking.

(actually I’ll be talking about creating XNA games for Windows 8 using the Monogame framework)

The briefing session will be on the afternoon of Thursday 24th of January from 1:30pm to 3:30 in Lecture Theatre D, the home of the “Rather Useful” brand. You don’t have to sign up for GlobalGameJam in order to come along, but those who have signed up will be allowed to sit at the front.