Friday, May 8, 2009

Week 11 Beginning 27/4/09

This is really the final week of the project. On the thursday we had an all nighter session. But I did not stay all night. I felt that it would be more productive for me to go home and get some sleep as I knew I would not work after midnight. Instead, I made a list of tasks and bugs to fix and gave these jobs out before I left at 23:00. I left Dan in charge and told him when to build new release versions of the game. Everything went well and when I came back in the morning we only had 4 bugs left to fix. On the Friday, however, most people had left by 7:00 and gone to bed. Dan, Craig and Mark were the only ones left from my team there. But they left soon after, as they wanted sleep. They did a good job and they deserved it.

AGD Week 10 Beginning 20/4/09

We have had three weeks off this project to get work done for our other modules. Due to this we forgot where we were with the project and had an extremely slow week. Dave got an installer package version of the game working and Dan set up a bug tracking account with Fogbugz on its 45 day free trial. I made sure that each team member logged at least two bugs to Fogbugz and started a spreadsheet to keep tack of how many bugs we had in total. Other than that a slow week to get back into it all.

AGD Week 9 Beginning 23/3/09

This week was hand in week for the Alpha and everything went wrong. For this last week all we really needed was menus in the game. Craig was coding the menus and was doing a good job. But on Thursday both him and Dave went to Newcastle for a work placement interview at Eutechnyx. This meant that menus were not getting done. In the end I got hold of Craig to get his login details for his account on the Uni computers, but then could not find the work. At this time the main drive that students use on the network failed for half an hour and put us back even further.
On the day of the deadline, Craig was back and to get ahead with the menus again him, Dave and I took a menu each to program, basing them off Craig's menu framework. Unfortunately for me I spent several hours trying to get the end menu work for after a race and it just not seem to want to work. I was starting to panic about the work as at this time Mark had been locked out of our source control for some strange reason that we still don't know the reason for. That took an hour to fix and once that was done we had to sort out the updates of each of Dave's, Dan's and Craig's work. Once that was done I re-arranged the directory on our source control and branched the Alpha version of the game. This was submitted 45 minutes after the deadline. It was a real shame that we fell at the last hurdle, but unfortunately there was not much we could do about it.

Wednesday, March 25, 2009

Game Development Techniques

I finally got round to uploading the video of my Unreal Tournament Famous Five Total Conversion....


Edit: Third time is a charm I think. I have several other problems with thsi video.

Monday, March 23, 2009

AGD Week 8 Beginning 16/3/09

Well we our now into crunch time! With the Alpha deadline looming at the end of next week, we picked up the pace again after last weeks slow week. I took on the job at trying to implement states into the game. But, this proved a little problematic as we could not use everything from our framework in the states and passing them in did not work either. So Lead Programmer Dan took this off me as he had a better understanding of the framework it would be best he managed the states and got them set up. Instead this week I implemented an Input handler. I was supposed to do this back in week 2 but then deemed it unnecessary at the time, but since then I have re-thought this and decided it was necessary. This took some time as I had to implement any action or test that can be carried out on the controller, but by implementing this handler it takes away some of the traversing to get to the right section of the game pad that is needed at that point; making the rest of the programmers jobs a little bit easier.

We are getting more and more models from the artists and Tom, who made the team USA ship, has made us a little splash screen video that we can use. http://www.youtube.com/watch?v=Z8idV4XLcn4

I am hoping that we have a complete demo ready for the alpha. Most bugs are being left in at this stage as it is not important and we can get rid of the bugs after this deadline.

Sunday, March 22, 2009

AGD Week 7 Beginning 9/3/09

This past week has been a very slow week. At the beginning of the week 3 of my team including myself had an interview at Monumental Studios in Nottingham. This got us a little lost as to what we were doing this week. Apart from doing a little debugging and working with the artists.

We sorted out the shading problem with the map track. Before hand the shadows that were being exported with the map were large polygonal shadows and had large lines going in one direction. At the export stage from 3DS Max, the wrong type of shadows to be exported with the model were selected. But now that they had been changed to the new smooth shadows, Gamebryo automatically creates new shaders to render the map properly but this then causes memory leaks and makes the game crash when closing due to the shades being deleted after the renderer has ben deleted; which it needs to complete the deletion of the shaders. At the moment this is not important to get an Alpha game ready for Friday in week 9 and can be sorted out after that point.

Before getting the new map in I also had to get rid of 1128 memory leaks. The debugger says that its to do with strings but it tuned out to b with every mesh that is created using the game base object. For som reason Gamebryo does not like you just deleting them so you have to just set them to NULL. This is due to the mesh having more than one pointer pointing to it so by setting it to null it can be deleted when the program closes.

Thursday, March 12, 2009

AGD Week 6 Beginning 2/3/09


This week I planned for the group to complete a game mode; Time Trial. We were also trying to get this ready for a visit from Frontier Developments. This did not happen as the people coming from Frontier were called into an urgent meeting and were not able to visit at all. Instead the visit was taken over by the lecturers from the both the programming and art gaming courses at the uni and also by some of the final year students. We presented how far we were with the game so far, and what was planned for the future. They seemed impressed with what we had created, but we still have a long way to go. We have 3 weeks before Easter and I am hoping we can get both mandatory game modes finished with a very simple GUI system in too.

This week I just got a very basic HUD working that displayed the fuel level, current speed and current lap. This was a small job but something that needed to be done for the presentation on the Wednesday. This was then taken over by Craig so that he could display the timer that he had created, which shows overall time and time for 3 laps.

On the programming side I think we are starting to slow down again like we did at the beginning of the semester. We really need to speed back up to meet our next deadline at the end of week 9. On the art side we got our track and a couple of new vehicles. The vehicles a split into countries the first vehicle that we got was for Britain, the one at the top of this article is for the USSR and the one below is for the USA. We are just waiting on our last vehicle for Japan. The second piece of concept art that was created for us a few weeks ago of tracks was inspiration for the track that we currently have in game, and it looks amazing! We are having problems with the lighting, but that can be left until the debug and testing time after week 9.

Monday, March 2, 2009

AGD Week 5 Beginning 23/2/09

Monday morning I came in and thought I would sort out a problem that we have had for a couple of weeks. The problem was when we closed the game an error message popped up saying that there was an error when deallocating. This was causing 15 memory leaks! To fix it I added a delete in the destructor for our collision group and it sorted the problem. It took me several hours to find this as there are several other instances that are not deleted properly but there is no problem with them for some reason. Then after a day of development I thought I would check the output window and found 15 more memory leaks! I was not happy as you can imagine! I then found out that the onscreen text that craig had implemented was the problem. For some reason Gamebryo seems to have a problem with deallocating the text and we are not sure of the reason why. We are going to use Crazy Eddie's GUI nn the end product but at the moment just placing something on screen for debugging is causing a problem. The rest of the time I worked with Joe, our Lead Artist, on getting our waypoint model into the game. Next week we should have a proper map ready for racing around!



This week I really have not done any programming apart from sorting the memory leaks. I am not entirely sure what happened this week programming wise and hope to make further ground with it this week.

Sunday, February 22, 2009

AGD Week 4 Beginning 16/2/09


This week I only had a small job towards the game; the fueling system. It took two attempts to implement this, the second time being the same as the first attempt in every way apart from using the ApplyBreaks() function in the ship class. In the ship class I set up two variables; _fuelLevel to give the ship a value for the fuel and _fuelConsumption for reducing the fuel level by.

Also in the ship class, in the Accelerate() function, the fuel consumption is taken away from the fuel level. If the fuel level is 0 then the ApplyBreaks() function is called. This function just slows the vehicle down to a stop.

Dave implemented waypoints this week, and using one of these waypoints as a refueling point I could complete one of the requirements for the game; the ability to refuel. This was done by checking what waypoint the vehicle is at. It it is waypoint 3 then the fuel level is set back to it original value. Also, for testing purposes, I added the ability to refuel immediately by pressing X on the 360 pad.

This week we also got some impressive concept art from the artists, including levels and weapon designs. Over the next week I will be expecting to receive a level and some other art assets, which Joe will decide on.
As Project Leader I am expecting to have our Time Trial game mode finished for week 6. After our slow start we have picked up the pace the last couple of weeks and I really think this deadline is within reach. Really it is the art assets that we need now to make it start to feel complete.

Thursday, February 19, 2009

Inter 3D Week 2

This week was a big leap but still very interesting. This week we were given the task of getting terrain on screen using three different methods.

Using a height map


Procedural Fault Formation Generation


Procedural Midpoint Displacement Generation


Both procedural methods are based off Jason Shankel's code found in the Programming Gems book. The articles about it are very interesting especially seeming as I just have this attraction to terrain.

After getting the terrain working was to light it and make it look solid. This meant creating a mesh to calculate hold the normals for the terrain easily, otherwise it would not be lit properly.

This is the Midpoint method being lit.

Inter 3D Week 1

This week was all about introducing us to DirectX. This was where we all found out that what took us until week 5 of last semester (getting a wireframe cube on screen and transforming) takes a few lines of code in DirectX. Last semester was a lot of help with this though, as I wouldn't know where to start with this other wise.

Tuesday, February 17, 2009

AGD Week 3 Beginning 9/2/09

I have not had the most productive week. My task was to sort out the camera to detach from the vehicle so it doesn’t look like it is attached to it by a stick. I worked a good 10 hours on trying to get this to work but had no luck. Dan took over and created a camera controller to help with this and managed to get it interpolating as the camera vehicle moves to the controls of the 360 pad.
I did manage to sort out a problem with the models this week; we were having problems with the camera that is already placed in the model. This was because the artists were exporting using the Netimmerse/Gamebryo plugin rather than the Gamebryo plugin. This then allowed the camera to be behind the vehicle at the position we would like. I also got the camera from the model to be separate from it by attaching it to the scene and got it to follow the vehicle around from a static position like the camera in the helicopter tutorials, but it didn’t seem to be looking at the vehicle. It seemed that it was looking at the sky of the scene so that was scrapped in favour of Dan’s camera controller.
The artists gave us some basic concept art this week, which looked good and it seems we have an understanding between us of what the game will look like. Next week we should have a more concrete idea of what it will look like hopefully and we can crack on with the game mechanics and getting some maps loaded into the level.
Coding wise I need to gather the team together and talk about the coding standards and also I need to get them to comment their code that they add to the project, so everyone knows what that piece of code does.
Dan had managed to get our framework up and running using the base application framework rather than sample framework, which means we shouldn’t have problems in the future where sample framework does things that we don’t want it to.

AGD Week 2 Beginning 2/2/09

Following on from last week’s meeting, where team roles were not confirmed; I made myself Project Manager, due to no-one else wanting the position. Last week we had already decided that Dan Bain would be Lead Programmer as we thought he was the most capable programmer out of the five of us. Mark was brimming with ideas from the word go so he has become the Designer of the group. Dave and Craig are Junior Programmers. This week, with Dan’s help, I made sure that each member of the group had something to be working on this week:
Dan B: Independent Camera from model
Mark: Weapons Class
Craig: Vehicle Class
Dave: Game Base Object
Me: Solve rotation problem, research input handler
Also, this week we met up with the artists that we have been assigned, led by Joe Pykett.
The whole group seemed excited to be a part of the project as we are, especially after we discussed our ideas for the game.
Now at the end of the week, we have one very basic model to replace the example project’s helicopter and are waiting on a very basic map to make our own mark on the game rather than using the example art.
Coding wise I think we need to pick up the pace a bit and will be talking to the group about it on Monday.
I have sorted out the rotation problem from last week with help from Alex Brooks from one of the other groups. The problem was that you must rotate the axes at the same time as the model otherwise the model just rotates around the original position of the axes. That meant if the vehicle was parallel with the ground it would rotate round correctly on the z axis, going left and right, but if the vehicle was pointing to the floor the vehicle would roll like a plane does.

AGD Week 1 Beginning 26/1/09

So it is the first week back and all of us found it nervous about who would be in our groups for AGD. I am really excited about my group as it has some of the best guys on the course in it. We named our team 'Team++'. The task all the groups have been set is a racing game. We thought most groups would go for a F-Zero/Wipeout clone so we thought we would do something different; we have gone for an airplane racing game set in the future with a steampunk kind of style and have named it 'Project Scorched Wings'.

This week we were just getting to grips with Gamebryo working through the tutorials and trying to make an early spike of our game. Using tutorial 7 of Gamebryo's basic tutorials that have a helicopter flying around on screen, I managed to get control of the helicopter with an Xbox 360 controller. But the x and y rotations do not work completely on their own. Depending on which axis the model is facing down, the rotations will alternate between pitching and rolling the helicopter. This will have further investigation in the next week.



Going left to right: Craig Bishop, Dan Bain, Dave Leverton, Mark Campbell, Me

Long time no speak

So it is the second semester of the second year of Computer Games Programming at Derby Uni. This semester is going to be alot difficult than the last one but I think it's going to be fun and interesting.
This semester I am taking the following modules:

Applied Game Development - This is a group project in which we must create a game using Gamebryo, an engine commercially used in the games industry and was used in games such as Civilisation 4, Elder Scrolls 4: Oblivion, Fallout 3 and many others.

Interactive 3d Graphics Programming - In this module we are studying DirectX 9.0c and creating projects weekly using it.

Console Development - This module carries on from last semester where we were studying studying Mips programming on the PSP using official dev kits. This semester we start to program properly in this module in C for the PSP.

Mobile Devices - For this module we are studying JavaME and creating applications for our own mobile devices, including phones, i-pods, blackberrys what ever we want, which is pretty exciting as this is the easiest way to show people your work when you are out and about. Unreal, PSP, Gamebryo development is all well and good but when you can't just show people when you are at the pub a) because you would need a laptop at least and b) we are not allow to take the PSP and Gamebryo code outside of Uni.

Following shortly will be my Dev Diary entries for AGD minus any links to the Gamebryo code, entries on my work on DirectX in Inter 3D and more of the same from Console Dev and Mobile Devices.