| |
|
|
ARBITRARY CLASSIFICATIONS: THE MAIN TOPICS OF AVP
For this first section, we'll start to classify the whole source code by topics so as to get a global view on it. This way, you'll be able to focus on certain parts of the code, and I hope that it'll help you in saving your time.
1) The topics
The topics I've taken here are based on a global study of the source code plus a simple ascertaining on well-known first person shoot video games such as Quake series. Some parts may seem evident, but we'll see that architecture constraints break this affirmation. Just keep in mind that the following doesn't necessary reflect the source code structure, but a mean to organize our studies.
Here's the topic list we'll use in this site:
- The application core
- The utilities libraries
- The codecs
- The resources libraries
- The menus
- The console
- The HUD
- The gameplay
In the next paragraphs, we'll see each topic in details.
2) The application core
The application core mainly relates to the code that makes the link between the operating system and the gameplay itself. It covers:
- The Windows functions :
| | the base of the application on an operating system level |
- The DirectX functions :
| | the basic interface with the operating system and the gameplay |
- The Memory functions :
| | the management of the game's memory to find bugs |
- The Debugging functions :
| | used with the Memory functions to notify application bugs |
3) The utilities libraries
A set of programming components to use for any applications:
- The Character strings :
| | a common home-made component for C/C++ programs |
- The Linked lists :
| | or "how to avoid arrays", used for dynamic linked objects |
- The Hash tables :
| | or "how to quickly find objects in memory", used in many strategy games |
4) The codecs
This regroups the differents codecs or specialised algorithm used in the game that are:
- The Huffman codec :
| | used to compress / decompress files (like winzip, winrar...) |
- The MD5 algorithm :
| | used to produce a binary fingerprint of data such as network messages (security checks...) |
- The Bink codec :
| | used to handle musics and full screen animations (intro sequences and strange menu in AvP GE) |
- The Smack codec :
| | used to handle musics and animations on localised places in 3D environments (marine communications on screens in AvP GE) |
5) The resources libraries
This topic covers the interface between the game and its resource files, i.e.:
- The Models :
| | all 3D objects created with diverse tools |
- The Images :
| | the game's images to put as textures |
6) The menus
Every game's got menus, so it focuses on:
- The Main menu :
| | the main human-readable interface with the game |
- The In-game menu :
| | the shortened version of the menu during a game |
7) The console
Modders favourite tool in 3D games, system or gameplay relative:
- The Console core :
| | all that constitutes the so-called "console" |
- The Commands :
| | all the console commands |
- The Variables :
| | all the console variables |
8) The HUD (Head Up Display)
This is the part of the player's screen where you see your state, covering:
- The Player's life
|
- The Player's armour
|
- The Player's weapons energy/state
|
9) The gameplay
And finally the fun parts of the game, that are:
- The AI system :
| | the Artificial Intelligence for the Non Playable Characters (NPC) & objects |
- The Physical engine :
| | the system that handles gravity & collisions |
- The Weapons :
| | the weapons details such as bullet types, firing effects, ... |
- The Missions :
| | the level goals system |
Now that everything is - I hope - clear, you should take a look at the "The concepts in AvP" and the "The topics & the concepts" sections
|