-Game Play
-Player Characteristics – Hit
Points, Mana, Weapon Damage, Various Weapons, etc.
-Monsters –
Various Monsters, Simple AI.
-Action – Strike with Weapon,
Death, Run, Cast Spell.
-Camera – 3 dimensional, 360 degree
rotation.
-Landscape – Wide open filed with few
mountains.
-3D Model – Load Quake models and
animations.
-Limited Multiplayer (Use polling, thus, limited on
same network with similar computer)
-Demo and source code - 184final.zip (11.7MB) and Readme.txt
-Screenshots
-Real time battle - Combat and Victory
-Large open landscape - Mountain while maintaining 40+ frames per sec.
-Spells - Magic
-Randomly generate fire and
lightning.
-The system also generates spark, blood, fireball, etc.
by adjusting the parameter of fire and lightning.
-The methods are
original. I did not refer to any paper
-Optimized to avoid page fault
-The particle system only allocates and
deletes a large block of memory at a time.
-Thus, if a particle
disappears, its memory location is marked as open, and the next
particle will just use this "empty" memory space.
-A little program demonstrating the particle system. (Texture not included): ParticleSystem.exe (96k) Require Opengl32.dll (716k) and Glut32.dll (216k)
-ROAM Terrain (ROAM = Real-time Optimally Adapting Meshes)
-Input: Height map (1024x1024 in game), and the triangulation from the previous frame.
-Output: Sets of triangles for display. (Usually around 5000)
-Basically, this is a LOD terrain
algorithm; it merges groups of points on height map into isosceles
right triangles. Thus, when terrain is displayed, not every point on
the height map is shown, but only those triangles created by the ROAM
algorithm.
-Between each consecutive frame, each isosceles right
triangle can be split into two, or merge with its adjacent triangle.
The decision to merge and split is decided by two priority queue.
Below is a screen shot of a single frame.
Below shows the triangles chosen and displayed by the ROAM algorithm.
Green triangles are actual triangles in
the frame.
Pink triangles shows the triangulation of current
frame.
White dot indicates the location of the player. (It's in
the middle of the big pink cluster)
The large pink cluster of
triangles are the area around the player.
The smaller pink cluster
is the mountain in the distance.