diff --git a/projects/dawnchaos/index.md b/projects/dawnchaos/index.md index 44289fa..1548b07 100644 --- a/projects/dawnchaos/index.md +++ b/projects/dawnchaos/index.md @@ -1,16 +1,20 @@ --- title: Dawn of Chaos date: 2004 +dev: delphi, directx --- -For the first of undergraduate study we have to develop a project in either -Delphi or OCaml within a team of four during one year. This is the only year -when we are allowed to make a video game. That the reason why we decided to +During the first year of undergraduate study at Epita we have to develop a +project in either Delphi or OCaml within a team of four to validate the year. +Since this is the only year we are allowed to make a video-game, we chose to create a Diablo-like in Delphi as our school project in 2004. -The development has been quite hard, because at the time we had no programming -skill. Moreover, our team rapidly exploded, with one member quitting the school -after a few months and another one not willing to work. +For most of the student, and for my team, this is the first programming project +we do ourselves. As such, we were lacking best practices and we learned along +the way. The development was quite hard, because at the time we had no +programming skill. Moreover, our team quickly fell out, with one member quitting +the school after a few months and another one struggling with programming. It +ended up being a two-persons project. Nevertheless, this was a truly rewarding experience since I learned the basics of video game creation and DirectX programming. @@ -23,20 +27,22 @@ We had the choice between DirectX and OpenGL for developing our graphic engine. Most of the students chose OpenGL but we thought DirectX was more suitable for a Windows game because we had no intention to port the project to Linux. -We used the Jedi Project headers as a means to use DirectX with Delphi. The -first contact with DirextX was harsh but after carefully reading the SDK -documentation I was quick to learn the basics. I would like to thank Buckman for -helping me figure the logic of DirectX out. +We used the [Jedi Project](http://www.delphi-jedi.org/) headers as a means to +use DirectX with Delphi. The first contact with DirectX was harsh but after +carefully reading the SDK documentation I was able to grasp the basics. I would +like to thank my fellow student Buckman for helping me figure the logic of +DirectX out. -The 3D models should have been generated with Maya but our graphic member was -not able to produce anything. So we search graphism websites for simple models -and we modified them with Maya. For the texturing part and the conversion of the -Maya file format to the DirectX one, we used Deep Exploration. +The 3D models should have been generated with Maya but we were not able to +produce any good 3D assets by ourselves. So we searched graphism websites for +simple models and we modified them with Maya. For the texturing part and the +conversion of the Maya file format to the DirectX one, we used Deep Exploration +(by Right Hemisphere). In order to make things dynamic, we just added a game loop with mutable variables (by pressing keys for moving the camera for instance). Unfortunately, the game loop was not set on the time but on the cpu cycles. As a result, it -runs as fast as your cpu can, making things lagged. +runs as fast as your cpu can, making things lagging. Finally, I added a 2D display for game informations such as health. It was done using DirectSprites and DirectFonts. A bug with the proportions forced me to @@ -54,9 +60,9 @@ not, make a boolean map on which I applied the pathfinding. SOUND ENGINE ------------ -"Sound engine" is a big word for what was done. At first I thought I would use -the DirectSound library since our graphic engine was done with Direct3D but I -quickly changed my mind. +"Sound engine" might sound a bit fancy for what was done. At first I thought I +would use the DirectSound library since our graphic engine was done with +Direct3D but I quickly changed my mind. DirectSound allows you to use incredible 3D sound effects like reverberation but it was a nightmare to use it. I spent an entire night just for trying to play a @@ -81,10 +87,10 @@ hero is getting away (the hero is of course faster than any enemy). WHAT WAS DONE BY OTHERS ----------------------- -My friend who actually worked created a truly rich map editor that was used for -making the game. He also created the elements of the world. He was then able to -define position and rounds for the enemies directly from his editor. Our graphc -engine only had to get his data from the editor in order to generate the levels. +My friend created a truly rich map editor that was used for making the game. He +also created the elements of the world. He was then able to define position and +rounds for the enemies directly from his editor. Our game engine only had to +get his data from the editor in order to generate the levels. At last, he was in charge for the management of the hero: life, equipment, etc. @@ -95,9 +101,3 @@ LAST WORDS Our game was quite pretty but it was very slow due to the too detailled models used for the hero and the enemies. It lacks animation too. I really wanted to incorporate animation but I wasn't able to. - - -TECHNOLOGIES ------------- - -[DirectX](https://en.wikipedia.org/wiki/DirectX): the official multimedia API from Microsoft diff --git a/projects/dawnchaos/shot_01.png b/projects/dawnchaos/shot_01.png new file mode 100644 index 0000000..0f6733f Binary files /dev/null and b/projects/dawnchaos/shot_01.png differ diff --git a/projects/dawnchaos/shot_02.png b/projects/dawnchaos/shot_02.png new file mode 100644 index 0000000..2e10819 Binary files /dev/null and b/projects/dawnchaos/shot_02.png differ