Reword Dawn of Chaos
This commit is contained in:
		
							parent
							
								
									0e05b97feb
								
							
						
					
					
						commit
						2db6350a6d
					
				
					 3 changed files with 28 additions and 28 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										
											BIN
										
									
								
								projects/dawnchaos/shot_01.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								projects/dawnchaos/shot_01.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								projects/dawnchaos/shot_02.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								projects/dawnchaos/shot_02.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 706 KiB  | 
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue