Wednesday, 14 October 2009

Red Dwarf - Finished!

Hey,

As previously posted my group for Game Development Techniques was tasked with recreating the Red Dwarf ship using Unreal 2. Here is a little update to say that we have completed the level and looks really good. It was great to see us all come together as a group and be able to produce something on this scale.

Here is my room, I might post a video up of the entire level later if nobody else minds.

Decompiling Crazy Taxi

Hey, so this week in Console Development we have been assigned the task of looking into assembly language, something that we are going to be using to create a psp application later in the year. Why assembly you ask? Because it allows us to optimise our code a lot more than if we were using a language such as C or C++.

In the previous week my group dissasembled a Playstation 2, so naturally our task was to find out about the Instruction Set Architecture (ISA) of the console. After some googling I found that it uses the "MIPS" architecture which consists of 107 instructions for operating on four 32-bit, eight 16-bit or sixteen 8-bit integers simultaneously (Love the copy paste?).

After looking through the different instructions for a while and eventually feeling their wrath I decided it was time to dive in to the deep end and see what this assembly language is all about. I picked a game that I still love today in Crazy Taxi and then went on to find a decompiler for it. If you want to have a go the decompiler I used can be found here.

There was a few things I noticed when looking at the code the first time... 1) I had no idea what anything meant and 2) I had absolutely no idea what anything meant. After a bit more researching, and thanks to a wiki page full of instructions, I was able to decipher some code...

sw s0, $0000(a1)
-This stores a word into the provided memory address and the following three bytes.
jal $00005d98
-This jumps to a memory address and also provides a return address to allow a subroutine to return to the main body after completion.
nop
-This simply states that no operation will take place
bne v0, zero, $00005bf0
-This jumps to an address if two registers are not equal.
lui a0, $0000
-This is a pseudo instruction, it loads an address however the assembler does not see it as an instruction, but is able to translate it into a sequence of real instructions.

Overall this was a really interesting exercise, even more so considering I now know what I am up against in this module. I am going to spend more time analysing the code to try and get a firmer grasp, but I would definitely suggest this to anyone who is interested in how games are put together.

B

Friday, 9 October 2009

UnrealEd group project

So today in Game Development Techniques, we were given a task to complete as a group which is going to count as 10% of our final grade and will be marked as a group. That is 25 people!

What is the task you ask?

Creating a large multi-roomed structure based on something in the real world (real world in the loosest terms!). As a group we decided to recreate the Red Dwarf ship.



I took on the role of being a team leader, and am in charge of the mission control section of the ship. I am going to put some more work into this tonight before I go to bed and will hopefully have an update on this pretty soon!

B

Wednesday, 7 October 2009

Getting back to grips with maths

For the module Introduction to 3D Programming we are having to do a lot of maths, while we did two modules of it last year I feel pretty rusty! In my searches across the internet for the equation for a cross product I came across probably the best way to learn maths in the world.

Just Math Tutoring

I feel like if I had known about this site during my A-Levels I would have definitely gotten an A... That is basically how good this site is. Not only does the guy explain everything really well he shows examples and his voice isn't even boring!

B

Monday, 5 October 2009

Year 2, and so it begins

As I write this post, I am looking back on a first week of lectures that has gotten me really excited for the coming year. Excited, but incredibly nervous!

The week began with 'Introduction to 3D programming, which will result in the creation of a 3d software renderer using GDI and C++. While it felt really good to be programming again, I was beginning to regret the lack of work that I had done over the summer. After hitting a rocky start I finally got back into the groove and am feeling pretty confident again. Our task for the week is to create a paint program, which on first glance seems relatively simple... that is until you start doing it and realising that circles don't enjoy being stretched and stacks think overflowing is the most fun you can have.



Next we jumped straight into Game Development Techniques which began with John telling us that there are roughly 10,000 people in the UK who will apply for a placement this year... and roughly 40 placements! All of us horrified, the lecture continued bringing up issues in regards to project management. The interesting part to me about this lecture was discussing our assignment project, which is a Total Conversion of Unreal Tournament 2004 with a Famous Five theme. Sounds terrible right?

For an eventful end to an eventful week we had Console Development, which looks to be a pretty interesting module. This week we were tasked with going inside a console and just seeing how they are built, as well as the advances in technology but more so how while the hardware remains the same the quality of games and graphics increases dramatically. Something which we had to give a presentation on the next morning! My group lucked out and got the fiddly PS2, which was about as easy to get into as Fort Knox... If there is one thing I realised during this exercise it is that consoles have come a long way, considering looking around the room I could see a NES, Megadrive and a Jaguar!

Looking back it was definitely a good week and I am excited to see what comes next, peace out amigos!

B