May 10, 2010
This is the current version of the racing game prototype that my team has been working on for this module. There are number of bugs, problems, unfinished features, etc, with the current version. As I have not being updating this blog frequently, I will be writing about the problems I have faced during the development.
For this project I have worked on the following area:
- Importing all of the models into the game (i.e. be in charge of the asset pipeline)
- Extracting any data from the .nif files (models)
- Some parts of the vehicles
- Some parts of the menu system (non-interface parts)
- Temporary AI system
- Collision detection
- Parts of the collision response
Here is the gameplay video (background music was added to the video):
There was number of problems which made the project a quite a hard challenge. One problem was that we lost two programmers at the start after we were allocated into teams. This brought the team down to 2 programmers with a lead programmer who is in charge of documentations, designs and communications. There was no real solution to this problem so I just had to get on with the project. The major problem I had in the development of this project was the asset pipeline. This was the hardest part of the project working with the art team to get the asset working correctly in Gamebryo. Although this was really though task, it gave me some idea on type of communications and problems we could have with the art team and the art assets in 3D projects at this size.
Another area that I had to think about for a while was the collision detection. Initially, I was considering to find a way to implement a way to check collision between vehicles and the environment but after looking into this and trying out few methods, I was not getting any result at acceptable standard. As the time was running out, I decided to change the approach to implementing collision detection. So in the end, I have decided to use a navigation mesh for collision detection. Rather than limiting the vehicle inside the boundary, I have implemented to say if the vehicle is outside the boundary, call collision response method. The reason for using a navigation mesh was that it was easy to implement and I thought it may be possible to implement AI using the mesh too (which I did not have enough time to). The credit for this goes to the art team for creating an extra asset for my need.
Overall, I am not really satisfied with the outcome of the prototype in terms of programming but I can’t really blame anyone else for this other than myself so I will try and learn from this outcome.