we are six students from Germany. As students from the bachelor's degree course Computer Engineering it is part of our study to participate on a software project in the 5. semester.
Our task in this project was to build a flight simulator within seven weeks. To fulfil this task we had to choose a software development process and make first experiences with devoloping a software. Because of the short periode of time and the relative small group we did not have to use and create every document of a software development process or staff every role of it. We were free to choose just the useful documents and we had to create some documents our professor wanted to have. After the formation of our team we discussed about the framework and language we want to use. First we wanted to use C++ with OGRE but after some research we came to the conclusion that to get the best result in this short period of time C# with XNA is the better choice. Our choice about the software development process was to use some documents of the Unified Software Development Process and the procedure of Extreme Programming.
In the first week we basicly set our goals and created a feature list. We also elaborated the major part of the documents like the Vision document or some Usecases. After the elaboration we looked up methods that are best to achieve our wanted features and developed the first rudimentary class diagramms. By the development of the class diagramms we paid attention to use some design pattern to solve our problems of organicing the source code.
In this week each group in our team implemented the first features for their part of the software. Baris and Philipp which were responsible for the terrain created the first landscape using a highmap, Alex and Simon implemented our first rudimentary aircraft with a simple flight behaviour and Peter and I created a skybox and researched the possibilities of the HLSL. At the end of the week we were able to present an first realy rudimentary flightmodel in our weekly meeting to our professor who played the role of the customer.
At the beginning of the third week we had to reject some ideas regarding some techniques and the whole structure because of problems we discoverd. After this first problems we worked out some solutions in teamdiscussions to be prepared to assemble the final structure at the end of the week. During the week came across new problems but we were able to finally merge the seperate parts and got a simple menu with two aircraftmodels to choose, a skydome, simple clouds and a terrain to fly over. Right after the meeting with our professor we discovered again some unfortunate decisions we made because of our inexperience with XNA. To prevent a delay in our schedule we had to relocate some responsibilitis of some softwareparts during the weekend.
After the successful revision of our sourcecode we were able to fix a colour and display problem in our cloud shader, implement our own level of detail algorithm for the terrain and insert a little fleet of different aircrafts. We also inserted different camera positions, a water shader, created a lightning for our planed thunderstorm, added a simple reflection of the glass parts of the aircrafts and implemented a collision system which used the difference.
In this week we adjusted the weather system with the different clouds and added rain to it. The terrain now had the final level of detail algorithm developed by our terrain team and our aircraft fleet were completed. Unfortunately the flightphysic had to be changed due to update problems by the falling of the aircraft. All the features of the menu were finished and we could start to implement our intended secound mode, the airrace. Therefore we made some little changes on the choice screen of the menu and prepared two aircrafts for it. We also had to implement some classes for the collision detection where we used bounding boxes, bounding sphears and the collision detection of the first mode. As location for our race we chose an island and we decided to add some models. At the weekend we started to implement an control class for the race and created some targets to fly through.
On the beginning of this week we added the models to the race map and set the bounding boxes for them. We also created a timer and set the targets all over the map to get the best experience from the graphic effects. As starposition we choose the carrier and therefore we implemented a starting routine for the two airrace planes. We also started to search and fix the last big bugs and finished to adjust the accurate settings of the world. We also finished the last iterration for our documents which we edited during the weeks.
The end in view we completed our web appearance, wrote a booklet, designed a cover and added the install routine to our flight simulator. We also recorded some videos for our intro and edited them to some little footage. For our professor and the other students in our course we prepared a short presentation of the techniques we used.