Thursday, 30 June 2011

Gearing Up For My Final Year

After doing very well (even if I do say so myself) on my work placement helping develop public security software in .NET. I am nearing the end of my time at the job. I have received great feedback from my team leaders at work and I am proud of the contribution I gave to the products I worked on. I have learnt a lot that will help me in the future and the experience has been extremely beneficial.
As I come to the end of my year (and a bit) in industry I see the final year of my degree getting closer. In order to prepare for my final year I have started to set up a source control server on a mini-atx box I have build and I have start reading papers in the area of research I have chosen to base my applied research project on.
Each paper I read makes the task I have chosen seem more complex and far bigger than I could have imagined so I am putting my efforts into narrowing down the key areas I am interested in for my proposed dissertation title.

Wednesday, 25 August 2010

A Year Out

I am currently in my work placement year of my degree and as you make have noticed by now this means that development outside of work is currently nothing more than playing around. It is because of this that I have paused my blogging on the subject of games development for a year. I will be back summer of 2011!

In the mean time I have just started a new blogging project that is more general about my day to day life and other geeky pass-times over at www.standinginthefire.co.uk . Watch that site for further details.

Thank You!

Tuesday, 30 March 2010

Easter "Holiday"

Over the last term I have made a large amount of progress in all areas. My C++ skills have greatly improved and I now feel confident that I am good enough for a games studio.

My racing game is coming along nicely. My team handed in a alpha build last which included a menu systems, car and track selection, AI, pick-ups and a HUD. Gamebryo is treating us well now we have got to grips with it.

This week I am concentrating heavily on my Mobile Devices module coursework. I am programming a Java version of Llamasoft's classic arcade title "Llamatron" for mobile phones. As well as this task I must write a essay about the limitations of mobile phones as a platform. For some reason after all the programming a essay seems like a nice break.

Ill keep you updated with my progress and show you some screenshots once everything is presentable.

Monday, 8 February 2010

2010 is going fast

So the second semester of the second year is here and the work is piling on.

In "Interactive 3D Graphics Programming" I have been using Direct X to render different lighting techniques and meshs. The project is to create a basic, reusable, graphics engine for a 3D game. While Direct X is not the easiest thing in the world it seems fairly simple after I made my own render from scratch last year.

Console Development is speeding up as this week we must start our "Demo Scene" like PSP development application. At the moment this is the hardest module and with a tight deadline to produce such a open ended project I will have to be careful with my work balance.
If you don't know know about the demo scene it is effectively a group of elite programmers who get together in large groups and challenge themselves to create amazing real time graphic and audio effects often with constraints. Such a constraint might been a low file size or that it must run on old hardware. Here is a video example of a demo scene project.


In Applied Game Development am am the lead programmer of a 9 man development team with the goal of creating a "bladerunner style" futuristic racing game using the Gamebryo Engine. We have 4 programmers and 5 artist to produce possibly the most fantastic game any of us have ever made. On the other hand the use of this industrial engine may prove too much for us. We will see. Here is a video from the makers of the Gamebryo Engine showing off some of the many games that are made using it.


Last but not least is the Mobile Devices module. Going into this semester I really didn't thing too much about it as it but now I am working on it I am beginning to realise what a fantastic language Java is. I am looking forward to having my assignment application running on my phone. The only question now is, what shall I program?

So far this semester has been tough and its only going to get harder.

Sunday, 13 December 2009

Games Development Techniques - Project Complete

If you have been following the nlog then you will know that in games development techniques I have been working on a famous five total conversion mod for unreal 2004. Here is a video of the finished product.


I am fairly happy with how the game turned out. Due to the amount of time I had to work on the project I didn’t manage to implement of the gameplay features I wanted to but I guess that is how it is in industry as well. When deadlines must be met features must be dropped.

My favourite thing about the game and that brings most of the games charm is that all the audio in-game is custom made for it. The voice acting within the game was done by my family and some of my sisters friends and they have been eagerly awaiting the final game. The theme tune and in-game music was written and performed by a very good friend of mine, Calvin Hudson. He is a talented musician and his music with-in the game adds atmosphere and provides immersion.

If I were to continue developing the Famous Five game I would add more gameplay and cut down on boring travel time by adding secondary objectives between the main ones.

It took me a large amount of time to get used to the unreal code base and I feel that given a second chance to do this task I would come up with something much better, I am glad that I have had the chance to learn this scripting language. I feel that I have learnt so many languages now that I could easily just pick up any language and start programming with it. For me this whole module was about transferable skills and to learn to appreciate other peoples jobs within a games studio. I live with a first year games artist and the texturing and Maya skills I learnt have meant that I can talk to him about what he is doing and suggest things for his project that he hasn’t explored yet such as bump mapping.

I am glad I did this module because it sets me up for Applied Game Development next semester. The chance to work on a big project with artists and using the amazing Gamebryo engine.

Monday, 7 December 2009

Hiring Networker

I am hiring a networker for a personal project starting in summer 2010. Must have experience with C# and Cisco Packet Tracer. Send CV and cover letter to AJ@ajongamesdev.co.uk with the subject "Jobs".

Thursday, 3 December 2009

December is here

And far far far to quickly for my liking. With the hand-in deadline for my course only 2 weeks away tomorrow, the pressure is really on. A few tweaks to my unreal games HUD and some minor game play enhancements today put me 5 cut scenes and 1 game play feature away from completion.
My 3D renderer is coming along nicely but with only 2 weeks to go I feel that I have really run out of times for new features and must turn my attention to optimisation and to making it look nice.

3D renderer as it stands


3D renderer with not so complete but colourful shading

Sunday, 22 November 2009

Busy busy busy

All my assignments have been officially set and time is flying by so fast that before you know it, it is Sunday again. I have been working hard since my last update, wrestling with unreal and coding away my own graphics API.

Its all very well me telling you what I have done but what you really want to see is the all important end product of the work. I will start with my 3D renderer. This is the project that I am most enjoying right now because it is very challenging and when something renders correctly it is incredibly rewarding.


Here is a wire frame render of a 3D cube with back face culling active. With the menu that I worked on this week you can turn on and off features from within the software.

This is the renderer with the GDI+ API filling in the polygons.

This is with directional light.

Another feature in the software is the ability to switch between different predefined models. This is a model of Starscream from transformers with directional light.

This is Starscream with point lighting. In addition to this I have been coding my own rasteriser so that I don't have to use GDI+ for my solid shading.

Now I have shown you my 3D renderer progress I will show you something more game-like. Here are some screenshots of my unreal engine game "Famous Five: Five Run Away Together".




Thursday, 29 October 2009

Progress

Time seems to be moving very fast lately. I have been practising my MIPS assembly in console development and I was thrilled to hear that in two weeks time we will be putting all our hard work into practice on the PSP development kits.
In Games Development techniques my game is coming along nicely, I have a mini game in place in my level where you must collect mushroom in the forest on my map.

In Introduction to 3D I have written a camera class and a rendering pipeline and my program now renders 3D wire frames of .md2 files. I felt this was a large achievement and I put a lot of time and effort into the program to get it to this point.

Monday, 19 October 2009

Enter The Matrix


In Introduction to 3D graphics programming last week I was playing with the matrix. Ok, so its not as fun as it sounds. A matrix is a array of numbers used in maths to denote objects or transformations.
Last Tuesday I programmed a matrix class that will be used in my 3D rendering program. It is built to use 4 dimensional matrices. As the third dimension is perpendicular to the second , the forth dimension is perpendicular to the third.
Here is a two dimensional representation of a 4 dimensional object, the so called "Hypercube".

In graphics programming you use matrices called "Transformation" matrices to move and change the shape and size of 3D objects.
This week we will be learning about the virtual camera, the way you view the 3D world and the way it is represented as a 2 dimensional image on your screen.

Friday, 16 October 2009

Project Managed



For Game Development Technique this week I managed a 22 person project to recreate "The Hive from the first resident evil film. To manage the team I split them into 5 groups and assigned a group leader for each group. In a meeting at the start of the project we then split The Hive into 5 main sections and then those sections were to be split up and distributed between the group members. We had several meetings over the week and a wiki was created so we could share ideas and resources. To get the final deliverable me and a few of the more hardcore members of the team spent a day in labs making sure everyone's levels worked and fit together.
I presented the final project to John Sear, course leader, this morning with the team looking on. It was a exciting moment because very few members of the team had seen the map all put together.
The project was a success and John seemed to have nothing but praise for the people who put the most work in.
In my time as project manager I learnt a huge amount. The first thing I found out is that lectures are right to not add their students on Facebook. It is fairly discouraging when you set a meeting for 9am and you see people on Facebook saying things like "I'm not going into uni on may day off at 9am!". I feel like I have also gained a grasp of who on the module will succeed and who will fail based on their attitude to work. While most people on the team pulled their weight and offered to help me in any way they could (including going to buy me lunch when I was hungry and busy working) others I had to constantly chase up and pester to get anything out of them at all.
While the week was hard work I do feel enriched by the activity and I am very proud of the team.

Here are some of my favourite parts of the level.


Monday, 12 October 2009

MIPS



In console development we are going to program in assembly language so that our code is optimal. As you may or may not know, there is not one standard assembly language, what language you use depends on the processor of the hardware you are using. In the last lecture I took apart a PlayStation 2 so, as research, I disassembled a PlayStation 2 rom to take a look at the code.

It turns out that PS2 assembly is "MIPS" assembly. I was pleased to hear this as this is the same assembly used to program on the PSP that I will be developing for soon. I read up on a few basic MIPS commands, brushed up on my binary and hexadecimal number systems and had a quick look at some of my A level computing work to do with assembly.

The game I chose to disassemble was "Naruto Uzumaki Chronicles 2". I took a look at the first few lines of code and annotated them to show the command used.

Srlv zero, zero, zero <-- Shift Word Right Logical Variable

subu s6, zero, v0 <-- Subtract Unsigned Word

Mfhi zero <-- mfhi moves the contents of the hi register to register rd.

tge zero, a0 (19e) <-- Trap if Greater or Equal

(dmultu) zero, zero <-- Doubleword Multiply Unsigned

dsrav at, a0, zero <-- Doubleword Shift Right Arithmetic variable

break (00400) <-- Breakpoint

While each line on its own is very easy to understand, looking at the large amount of assembly was fairly daunting. I am looking forward to using assembly. Hopefully it will not be too long before this becomes fully readable for what it is.
Looking forward to developing for one of these.

Sunday, 11 October 2009

Week Two




Week two of the year has come and gone, but what have I gained from it?
In Introduction to 3D graphics programming we had a mini test on vectors to make sure we were up to date and then we programmed our own vector class. We tested this class a large amount because it is fundamental to our final task to make 3D model renderer.
Next week we will be doing the same only for a matrix class. I have been reading up on matrices and am fairly confident that I will be able to program this class with few problems.
For console development I have been revising my number systems (Hex, Octal, Binary), I have also been reading up on machine code and having a read of some.
Games Development Technique has featured highly in my week. This week we had a lecture about games engines and middleware. The most interesting bit for me was the story of Renderware.

The work we got set was a team exercise as a class. We would have to build a unreal level as a class. The choice of what we were making was up to us. After a sizable talk I ended up backing the idea of "The Hive" from the Resident Evil film. As the main backer of this idea I was make Project Manager for the class. 10% of the modules mark is on this project so it is a fairly scary concept that I am in charge of it. More info about that project can be found on its wiki.

I still have a lot of work to do for all modules so I better get cracking.

Saturday, 3 October 2009

First week of lectures of the second year


Well its Saturday and it has been a fairly interesting week. In Introduction to 3D programming we started working with GDI+ to program windows application with graphics. Off the back of this I have been making a paint application.
In Console Development we took apart some console to have a look at the hardware. My group took apart a PlayStation 2.
This was a fun activity and looking around the room at past consoles ranging from the Sega Megadrive to the Jaguar it was interesting to see the technological advancement from the different generations.
The other big lecture this week was Games Development Technique. In this lecture the course leader, John Sear, drilled it into us how important putting all our effort into this year will be. There are approximately 10,000 jobs in the UK games industry and only about 6,000 of those are programming jobs. In this academic year there are roughly 10,000 students studying games related courses. It doesn't take a genius to work out how competitive getting a graduate job will be. John estimates there there are about 40 undergraduate placement spaces in the UK, about 20 of those are from Derby.
The rest of the lecture was about project management. We learnt about the important decisions that the project manager must make when developing a game. This diagram below graphically shows the decision a producer must make when starting the development of a game.
If you make the game fast the cost will go up and the game will not be as good but if you make a game cheaper then there is a larger amount of time that your company is not gaining any money from the project. As a programmer I want to make the best games possible, the problem comes when I am part of a large company and the bottom line is that the company is there to make money and paying 200 programmers for 10 years to make the best game ever is not economically possible for very many people.
With all this project planning talk I made a spreadsheet with a schedule for my games development technique project as seen in the picture at the top of this article.

Back to work for me, I should have a new portfolio website up soon so watch this space. Also note that you can now get to the blog from www.ajongamesdev.co.uk.

Thursday, 27 August 2009

New Academic Year


That's right readers. It is soon going to be the start of my second year at university. I can't wait to get back to lectures. This year the computer games programing course steps up a huge amount in all fields. The last terms work left me being able to program 2D games in C# using XNA and with a basic knowledge of C++ and yet in only one years time I will be going to work for a games company (If I survive this year!).
So, I hear you cry, how are you going to get good enough at C++ and 3D programming in only one year? Well, that's a good question. To make this jump from first year programmer to industry standard will be no easy feat that's for sure. To help us make that jump we are going to need a large amount of programming modules and a huge amount of work out of lectures as well. Guess what guys, that's exactly what we get. John Sear (Program Leader) has, as always, prepared just what we need. I'll give you a short breakdown of this years modules.

In the first term:
Game Development Technique
In this module we are using the unreal engine 2 to make a Famous Five based adventure game. We have already been sat a large amount of work for this.
Intro to 3D Graphics Programming
In this module we will be looking at programming 3D graphics in C++. Lots of lovely calculus. This is the module I am most worried about.

Then over both terms we do:
Personal & Professional Dev
From what i know about this module it looks like some what of a filler module that is there to teach us basic key skills that are not covered in the other modules.
Console Development
I am really looking forward to this one. In this module we get to use the Sony PSP development kits that have been sat there taunting us for a year. I'm looking forward to spending loads of time in labs seeing what I can do with the PSP. This modules is worth twice as much "Units" that go towards your degree (30 instead of 15). This means that it has the same work as two modules.

And in the final term of the year:
Applied Game Development
This is the module i know least about but by the name I would guess it is the module that takes you on after Game Dev Tech. Not sure what we use in this module but I would guess its C++.
Interactive 3D Graphics Programming
This one is a more advanced version of the first term 3D programming module. Pretty self explanatory.
Mobile Devices
This is where we make some really kind of cool games in Java for mobile devices such as PDAs or phones. This is where I am glad I have a android phone. Looking forward to makes some cool Java games.

So that's a awesome line up. I am excited to get back but there is also a element of fear that I won't be able to make it through one of the modules. I'll keep you updated on how its going.

If you are coming to Derby this year then drop me a email and I will get a few programmers together to show you round when you get here and you can ask us questions. I wish be around uni so check the labs for me (when you know where they are) and introduce yourself. Hopefully you will recognise me from my Blogger picture.

Tuesday, 21 July 2009

Mind Twist

A new game has been announced by Richard Garfield (picture above), creator of Magic: The Gathering. Garfield is working with Mind Control Software, developer of many popular flash games such as Arrrrrr!.
Not much has been said about the game so far but we do know that it will be playable on Facebook,on the iPhone and other platforms after release. The sales model will be micro transition based e.g. you can play for free but you can buy items that will help you from a cash shop.
In a interview with Gamasutra Garfield said the game would be "fairly fast, have a good amount of luck, a good amount of strategy, and something that feels more like a paper game but was still made with a computer".
The game will involve card game like army battles lasting about 10minutes a game and you will be able to use prebuilt army "decks" just like a prebuilt Magic deck to battle with. There won't be deck customisation.
I am looking forward to trying this game out as I love Garfield's previous work so much, not only that but he will be bringing it to the casual masses on Facebook. Perhaps the first in-depth Facebook game I can enjoy playing?

To find out more about the game go to its website or this Gamasutra article.

Sunday, 19 July 2009

Aion: The Tower Of Eternity


If you are not familiar with this title then you must check it out. Aion is an MMORPG from NCsoft over in Korea.
Aion is very reminiscent of eastern MMOs such as Lineage II and Priston Tale II in terms of features and graphics, but is very westernised in terms of leveling. Instead of the classic grindfest that we have come to know from games like Lineage, Aion presents the user with a large number of easily assessable quests with built-in quest helper that makes the quests quick and enjoyable. My favorite thing about this system is that it tells you the objective and a very nicely written quest text. If you are struggling you can even press names or items within the text to get extra information on where you might find the person or item. This feature means that you never need to go to a third party quest website to get help and it doesn't ruin the quest, it just nudges you in the right direction.
While Aion mirrors Lineage II is such things as large scale PvP castle sieges, in which is pits legions (guilds/clans) two clans against each other over the occupation of a fortress, it also takes ideas from Guild Wars. This is noticeable in the style of legion cloak that legions can purchase for their members and the way the graphics are executed.

What this game does is it takes what all those free to play games wanted to do with their tiny budgets and actually does them. Instead of crumby slow point and click controls you can run around with WASD and jump with space, nothings sluggish it all just works.
You may have guessed by this point that while this game is good, it doesn't do much thats new. The only truly original feature is the wings that your character gets when it hits level 10. In Aion there are no mounts or vehicles, instead in some areas your character can sprout wings and flight around for a set time before getting tired and dropping out of the sky. The lore behind your wings is very cool and this feature brings so much to the game. On a PvE level the wings can be used as transport or to complete aerial quests. In PvP this means that duals and larger scale fights will include plenty of time in the sky. This means that melee classes must learn to flt well if they want to keep up with a tactical ranger zipping around and barrel rolling to keep you at a safe distance. Most instant and melee skills can be used in flight but longer casts can't. This gives flight very different tactical advantages to different classes.
While testing the game I have been playing a Cleric. The Cleric is advancement on the priest class that you can pick on character creation. The cleric is the closest thing Aion has to a dedicated healer class. I tell you this because I have been amazed how much damage my character does. All classes are made to be able solo PvE content as well have a use in PvP solo to mass PvP. What this means for the cleric is that even though it's the healer for end game raids, it is also fine to level and also does well in duels. I have dueled alot of people at level 13 and almost every one of my duels i have won without the need to heal. The same thing works for "Templar"; the tanking class. The templar's defence abilities cause it to be the best in PvP against heavy nuking cloth wearing classes.
In conclusion, if you love MMORPGs or are getting bored of your current one or you just love large scale PvP then Aion is a must. Aion is available on Steam but i would urge you to shop around because i bought it for cheaper from Amazon. If you order it before Monday the 27th of July they will send you a beta key so you can test the game on the weekend of the 31st.

Tuesday, 14 July 2009

Back in Derby!

So I have moved into my new house and have started working on some new stuff. Exciting times.

For now I'll dump you with a bunch of work that I promised you after my grades were out, so here we go. I'm not gonna give you the grade I got for the work; I am just posting it so you can get an idea of what the work on the course is like. I will tell you though that I didn't fail anything and everything here is higher than a D.

You are free to use bits or all of this work as long as you reference me (also an email would be nice).

This is my Algorithms and Data structures work. This is the code for a binary tree based address book program, also included is a small report and the tests I ran.

This is my game design document that I made for the Game Design Module.

This is a piece I did for the Computing Environment Module. This is the only bit of the module I enjoyed doing.

This is my Software Development II project. In this piece of work we had to take our lectures information card storing program and write a plug in so that it handled two more types of information.

Hope you can make use of these. All the best if you are doing similar pieces of work.

Friday, 19 June 2009

Results

So i just got some results through, 2 Bs and a C+. I'm pretty happy with that but i feel my game design deserved more than a C+ but oh well. Such is life. Whats important is i got through the first year so now its time to plug out all the stops and being hitting high grades to get my awesome degree :-)

When i have travelled from my parents house back up to Derby (2 weeks time) ill post some work :) have fun people.

Monday, 15 June 2009

Download Festival 2009

This is what i was up to this weekend. Good times!