Presentation
Fooo is my first year school project written in Delphi. During 8 months, Vladimir Nachbaur, Alban Perillat-Merceroz, Felix Abecassis and I developed a game that mimics Warcraft III and achieved to be major of the promotion.
We tried to make no use of copyrighted Warcraft files, however, a large majority of custom models are based on Warcraft files at some point and use some of their textures. All the interface graphic, icons, models has been made by fans and we are using them with their approbation.
What's the game able to do :
- Animated 3D Models
- Interface in XML/Lua
- Building & Unit creation
- Group and Subgroup management
- Group movement with formations
- Ranged & Melee Attacks
- Multiplayer over LAN or Internet
- Ingame Chat
- 2 Races: Treants and Rats
- And much more ...
Demonstration Video
My work in the project
Interface
A RTS game is requiring a lot of user interaction, so it needs a complex interface. I decided to make an interface engine like the one used by World of Warcraft. The content is displayed through XML files and scripted with Lua. If you are not familiar with this, you can think the XML as HTML and Lua as Javascript.
The interface engine is able to do the following:
- Supports Frame, Texture and FontString elements
- Ability to draw Backgrounds and Borders from images
- Mouse and Keyboard Interaction
- Inheritance and Virtual Frames
- Position through 2 Anchor points (element and its relative)
3D Engine
The 3D Engine is written on top of OpenGL. I've been confronted to two major problems. The first one is the Warcraft III models: there is really few documentation on them so i had to spent quite some time to reverse engineer them and figure out how animation were working.
The engine had to be optimized in many ways. At first, displaying one building was freezing the PC, now we are able to show more than 100 units and the game still runs smoothly.
The 3d engine is able to do the following:
- Animated Warcraft III Models
- Camera: Zoom and Rotation
- 3D Picking
- Frustum Culling
- Vertex Array
Learn more
If you want to learn more, for each presentation we made a 30 page document (french) explaining in detail the progression. You can read them at hgf.fooo.fr.