Monday, 27 January 2014

Games Britannia Schools Game Design Competition 2014

It seems to be news day today. As I said at the weekend in my Games Britannia Industry Talks post the theme for this years Schools Game Design Competition was announced, and I believe that made it the official launch as well.
As I pointed out in the previous post the theme for this years competition is the Gremlin Graphics video game character Jack the Nipper.
So the gist of this years competition is to design five object-based puzzles that link together to form a puzzle-based game.
A good source for Jack the Nipper related material is the World of Spectrum archive (direct link to the page here ). Which has tape images of the game that can be played in a Spectrum emulator, it has scans of reviews of the game, maps, adverts. Nearly everything you could want as background information.
There is a competition pack to download (although not uploaded at time of writing) that should include a competition booklet, application form, and further information about the game.
As I said in the brackets the pack wasn't available at time of writing, but I'm hoping that background info will include emulators and game images for students to play. I didn't see last years pack, but the first competition pack which was based around Monty Mole did have emulators and game images. I think it helps if the students are able to play the original so they can get a feel for the character, and the style of object-based puzzles from the 80's. If they haven't included the game images, go visit the World of Spectrum link from above.
Actually I'd be tempted to print off some of the reviews (The one from Crash for starters) and let the students see how reviewing has changed over the years. Take in a couple of modern magazines like Games TM, Edge or one of the Xbox and Playstation ones for comparison.
Anyway the key dates are 16th May 5pm closing deadline for entries. 10th June finalists attend a game jam to create a prototype of their design (don't worry there will be degree students on hand to help get the finalists vision onto the screen using GameMaker), with the winner decided on the day.
More details can be found here. Although you will have to navigate to the details through the Competitions menu at the top of the page.
This competition works out nicely for me and the game design unit I teach. So guess what the assignment will be for my students?
Anyway good luck to all those that are entering.

UPDATE 28/1/14: The competition pack went live last night, I have looked at it and there is no emulator with game image in it. So you will have to resort to my suggestion above. There will at some point be an game engine (made in GameMaker) available, which is going to be an exe according to the briefing document in the pack? Which I can't see the point of, I would of thought it would of been more use as a GameMaker project. Or and this may very well be the case I am missing something here about GameMaker.
Also Ric Lumb has done a demo (from way back in 2003) which you can get here to show the students.

UK Hour of Code Week

Monday morning and after such an awesome Friday (see the Game Britannia Industry Talks post here for more details) it's back to the day job.
As usual whenever you spend time away from the office/work the emails seem to mount up. So this morning it was sorting the wheat from the chaff in the inbox from all that filled it up on Friday. Which is all fine and dandy, but what's that got to do with the price of eggs and this post?
One of the emails I received in Friday was from the Raspberry Pi Foundation with an update on their Hour of Code competition/promotion last December in the UK. This saw the Foundation with the backing of Google putting up some Raspberry Pis as a reward to those schools that took part in the Hour of Code.
Well we did the Hour of Code with some of our classes and I entered them in for the draw. Guess what this promotion was rather popular with the schools. So the email I and others have received informed us how successful the promotion was in the UK (some 750 schools, with over 15,000 learners taking part) and that we will be getting our Pis very soon.
But the interesting bit and the bit that sparked this post was the news tucked at the end which said
"Finally, save the date, Monday 3rd March is the start of the UK Hour of Code week 2014 when we will be launching some specific Raspberry Pi project materials."
So firstly wow! Secondly this needs promoting a bit more, this is the first I'd heard of it. I'm sure it will be successful, and wow!

Saturday, 25 January 2014

Games Britannia Industry Talks 2014

Yesterday was the Games Britannia Industry Talks, if you are now going wtf, how come I didn't know about this? Then all I will say is I did tell people. Just to rub salt in the wound it was a free event too, although limited tickets.
So yesterday I was at Sheffield Hallam University having been given a day pass from work to attend. I love events like this as they are seen by work as CPD for me ^_^
Anyway Games Britannia had done a great job of organising a range of interesting talks from industry people.
I don't know what I was expecting the audience to be for the event, but being one of the oldest in the room, and with my poor attempt at growing a beard that would compete with a dwarf, I definitely looked the oldest in the room. The majority of the audience for the event were university students I think mainly from the Hallam campus. I was a bit taken aback that there were not more teaching staff there. As I said earlier this is CPD, and I can't believe you would of chosen BETT over this. If you teach games design, games programming, then this sort of event is important for you to attend. Do I really need to argue the case for you?
The whole event was opened by author and lecturer at Hallam Jacob Habgood. Jacob introduced Games Britannia, showed a short video of last years event, demoed the winning game from last years competition, and presented the prize to the winning team. (Sorry didn't make a note of who it was but it was a team of girls, which was awesome)
The first talk of the day was by Guy Davidson from Creative Assembly on Optimising Windows Memory Management in C++. Wow I loved this talk, and to be fair I think this talk would of been way way above the heads of the majority of teachers. The amount of information that Guy managed to get over in his 45 minute slot was incredible. Did I say I loved it. I miss stuff like this at work. Sadly this sort of thing is too advanced for level 3 students at the moment. Hopefully that will change once the change in computing filters through. Well I'm basing this on the fact students moving onto level 3 will already have the basics, and we can then look at the more advanced stuff. And a quick bit of advice from Guy for students going for an interview at a games company coding in C++, make sure you know the difference between operator new and new operator.
Next up was Alex Postlethwaite from SN Systems (part of Sony). Who in his 45 minute slot talked us through the inner workings of a debugger. This was very interesting, and something I hadn't thought too much about. I think once again Alex's talk was too advanced for level 3, but certainly degree level students should be looking at this sort of thing, if nothing else it would give them a better understanding of the tools they use.
The final talk before the break was Ashley Collins-Richardson and Chris Gray from Scrapbook Development Limited. Their talk was about starting your own games company. This talk was packed full of good advice for the students, which I think would go,down well at schools and colleges as well. Well our college is big on promoting enterprise and competition, and this would be awesome as part of that. I did feel the talk lacked data/metrics and would of benefitted from that, such as sales data, how much impact various forms of marketing had on sales etc. As a side note this is what I love about Byron and his game Blast Em. Byron has been sharing stats so people can get a realistic view of what it is like to sell a game (although we haven't seen any stats about how the Steam launch impacted game sales).
After the break we were back with a talk by Peter Ellis of Guerrilla Games Cambridge about Designing Single-Player Levels for First-Person Shooters. Peter designed some of the levels of the rather marvelous (although too short single player mode) FPS Killzone Mercanery on the PS Vita. For the 45 minute slot that he had he covered so much ground (as did every speaker), but this one was so accessible, full of information, and enlightening. Peter when talking about level layout mentioned land marking and used a photo of Disneyland. Which instantly reminded me of Scott Rogers and his chapter on level design "Everything I learnt about level design I learnt from Disney" from the amazing book Level Up! (You have the book don't you? It's one of the best and most accessible books on game design I have come across). Scott has even done a talk with the exact same title, which is on Youtube, and I've embedded below.

Anyway back to Peter, I think I may of got more out of this as I was familiar with the levels he was talking about. Well I have a Vita and I have the game and have completed the single player campaign. BTW the controls on the Vita for this game are sublime. I would love Peter to give this talk to my students, it was at such a level that most students would get something out of this, and enjoy.
Peter would be a hard act to follow, however Tom Sampson and Griffin Warner from Sumo Digital did a sterling job in their 45 minute talk titled "On the inside looking out a graduate perspective of the industry". They covered an awful lot from interview advice, emphasising the need for soft skills, state of the industry, what it is like in the first few days and weeks on the job. Both gave a pretty realistic down to earth view of working in the video game industry.
Wrapping up the final session before the final break was an indie panel of Lee Hickey, Tim Cooper, Alex Amsel, Jamie Woodhouse and Jessie Venbrux discussing questions from the audience about gaming issues of the day. This was interesting, especially when free to play, freeium was discussed. The panel could I suppose be described as warm or in favour of them. Which I am fiercely opposed to. It was interesting to see their view and compare it to discussions from indies down South. These are the first ones that I have come across that are pro it (if done correctly).

After the final break Jacob Habgood was back talking Games Britannia, encouraging the students present to volunteer to help out on the game jam day! and then launching this years competition and it's theme. I'll mention the theme now but I will be going more into this in a post on Monday. The theme/character this year is the 1980's Videogame character Jack the Nipper.

The final talk of the day was from Jesse Ventrux about the Role of Constraints in Creativity. This was an entertaining talk, with lots of examples of Jesse's work. Jesse works in GameMaker, but that hasn't stop Jesse producing some 20+ games. Some have garnered coverage in the media because of the subject covered. However Jesse is an imaginative and creative person. And I was really impressed with the body of work he has produced.

At the second break and at the end I had a chance to meet and chat to Mark Hardisty a teacher in Sheffield, and part of the Games Britannia crew. It was great meeting Mark as we talk on twitter, but I was jealous of his Sumo Digital tee that he was wearing.

Final thoughts

This was a well put together set of talks from the games industry. However I did feel that 45 minutes was making the talks given a little rushed, and would of benefitted from making them an hour long.

Thinking of the audience although mostly students, it was a mostly male dominated audience, and would of been nice to have seen more girls in the audience.

I'd like to thank Games Britannia and the speakers for such a great day.


Wednesday, 22 January 2014

Simple Pibrella Python Demo

I think it was mentioned in my post yesterday that next month I will be running a practical session at my local CAS Hub on the Raspberry Pi using Python and the Pibrella add on board (soon to be available for purchase). Luckily I had been loaned a pre-release model so that I could start writing the session and developing the code and activities with it.

As a simple taster of what's involved with using the Pibrella on the Raspberry Pi with python I present this short piece of demo code that switches on the Green LED of the Pibrella for 3 seconds.

Once I have done the taster session next month I will put up all the resources I created for that for people to download, mock etc.

A big thanks to Michael Horne for the loan of the Pibrella, and providing the GPIO pin outs for it.

If you are a Scratch fan (I wasn't, but I'm warming to it) you can also use the Pibrella with that on the Raspberry Pi if you use Scratch GPIO. You can find out more here.

Tuesday, 21 January 2014

Coffee Anyone?


This Friday I'm lucky enough to have been given permission to attend the Games Britannia Industry Speakers Day by work (I also have a ticket for the event as well). It would be really cool to meet up with folks while there if you are attending. Looking at the schedule for the event there are breaks at 14:30 and 17:15. Plus the usual before and after opportunities to mingle and socialise.
I'll be looking something like the following:
Above photo taken at the Indie Coffee meet up just before Christmas, photographer Shahid
So either drop me a line via twitter (@whitespider1066), or leave a comment below, or just come up and introduce yourself on the day.
While I'm pretending to have a social life I may as well mention that on the 8th February I'll be at the Cambridge Raspberry Jam (better known as CamJam). Followed by running a hands on session at my local CAS hub (that's the West Norfolk and Fens) on python, the Raspberry Pi, and the new add on board the Pibrella. I then have a couple of weeks off! There is then a STEM Fair at PRC on 19th March which I think local schools are coming too, and I am doing adhoc 5 minute talks for teachers of lesson ideas using the Raspberry Pi. But before the STEM Fair you will find me at the first Peterborough Raspberry Jam. I'm running the Programming Minecraft in the morning, and just enjoying the jam in the afternoon.
So I hope folks can make some of these events even if you ignore me, as I think you will have a cool time.


Friday, 17 January 2014

Java, Unconstrained Arrays, Random Numbers and Me

A friend the other day (well a couple weeks back now I think) asked me to explain the following to them to confirm that they had understood what was required of them for a bit of course work they had to produce.

 "Write a Java program which defines an unconstrained array of user defined length n, that contains n Random numbers and outputs those random numbers that are even numbers.

My explanation re-affirmed their understanding of the problem. The next thing I did after our discussion was google this to see what had been put out there to help learning coders. To my amazement a near identical question had been asked on a website (not going to link to it). What annoyed me was that to see the answer I had to pay money! Hence why I won't link to the website. 

As I said this annoyed me, so here I am putting a solution up that I hope people find instead of the pay walled version out there. I suppose in a way I still have that spirit from the early days of computing about sharing information etc. Which to me always seemed to be a bit hippy like. And I like that thought.

My solution (see code below) is a Java console app. Didn't want to take up too much space with all the GUI stuff, I just wanted to get straight to the core of the solution without any extra baggage.

So I apologise for not having done an exciting post, or not using the most efficient java code. But hopefully some-one out there will find the post useful.

Sunday, 12 January 2014

Career Hack Slightly Longer Example

Thought I'd put up a slightly longer python example of using the LMIforAll api.

For those interested I wrote this example on the iPad using pythonista. Which is a python app allows you write and run python code on an iPad. The version of python it uses is 2.7, and has the requests module. However it doesn't have numpy,scipy and matplotlib, which is a shame as they would turn it from an interesting little app into something a lot more powerful and useful. Although it does have the python image library, Dropbox and Evernote support. Add the csv module (which would have to work with the Dropbox module to allow you to access csv files) to the wish list of modules I'd like to see pythonista support. Hopefully my wish list will get added in the future. It would be really cool to see the iPad become an amazing python platform too.

Anyway here's the code:

Wednesday, 1 January 2014

Reading in a CSV File

So before I get on with the code and discussion for this post, let me tell you a little bit about the setup I develop in at home and for work.
I use a 15" Macbook Pro with 4GB of RAM (I really should upgrade this), with a 2.2 GHz Intel i7 processor (4 cores) and an Intel HD Graphics 3000 GPU running OS X Mavericks (Late 2011 model). I have also boot camped my Macbook Pro so that I have what I call my "dirty side" of the Mac, which is running Windows 7.
The "dirty side" I use for XNA and C# (Visual Studio 2010), and now also Game Maker Studio. While the Mac side is used for everything else, so Python, Objective C, and when I get a chance to look at it Unity.
For Python I either use my Mac or I use one of my many (5 at the last count) Raspberry Pi's (You will in future posts get to see code developed on the Pi specifically - well you have to, to use the GPIO etc).
The majority of the Python code that will appear on this blog will be 2.7. The main reason being this is the version that is used by Codecademy at the moment, and my students are using this to learn the basics of Python. So until Codecademy offers Python 3.x then that's the version I will stick with. Don't want to confuse the students too much. They are having to learn Python and C# already.

Right on to the main point of todays post, which is a follow on from yesterday where I talked about using Open Data.
If you remember I mentioned yesterday one source of Open Data being the MP Expenses data that is published. Today I will use that data for showing how to read in a csv file using Python.

I downloaded the csv files for 2010,2011,2012 and 2013. Which gave me four csv files that need reading in.
In a text editor I removed the first line of each file, it's the header giving the name of each column in the csv file. This was to make the next step easier. NOTE I made a copy of these headings to use later.
The next step I did was combine these into a single file to read in. I did that with the following command line:

cat mpexp2010.csv mpexp2011.csv mpexp2012.csv mpexp2013.csv > mpexpall.csv

Remember I develop on a Mac so this should work for Linux based systems as well (that includes Pi's), sorry Windows users you are on your own here. You will also note my filenames are different to the ones downloaded. I renamed the files for easier typing on the command line, and to make it more obvious what the data was.
To recap where we are, we have a single csv file of all the MP Expense data, and a copy of the column headings that looks something like the following:

Year, Date, Claim No., MP's Name, MP's Constituency, Category, Expense Type, Short Description, Details, Journey Type, From, To, Travel, Nights, Mileage, Amount Claimed, Amount Paid, Amount Not Paid, Amount Repaid, Status, Reason If Not Paid

The headings need cleaning up for our use, there are extra spaces in there and punctuation. So I edited the headings to look like the following:


These edited headings I then put back into the single csv at the start. I didn't have to, we could read in the csv file without them.

So now we need to read in our csv file. Below is the commented Python code to do this.
So that bit of Python code has read in our csv file of MP Expenses, and placed it into a list of dictionaries for us.

Lets do something "interesting" with this data now and calculate the average or arithmetic mean of the rent paid by MP's in 2012/13. Add the following code to the end of the code above that reads in the csv file.
So where next? Well there are libraries like numpy, scipy and matplotlib that can be used to help visualise the data (see further reading section below for links to books and a useful web page).
The above could of also been done in Excel, as could any further manipulation and visualisation of the data.
In fact which ever way chosen getting the students to present their visualisations as infographics would be a great way for them to present their work.

Further reading:
You can read more in the official documentation on csv files here.
2. Numerical and Scientific Python and Data Visualisation
Python Data Visualization Cookbook
Python for Data Analysis