Pages: [1]
  Print  
Author Topic: Overall architecture  (Read 3739 times)
Silvano
Nub


Cakes 0
Posts: 3


« on: September 10, 2007, 11:05:05 AM »

Hi guys,

Is there any way to get an overview (or even more if possible) of the overall software architecture? I would like to start contributing but I have really no idea about how things work and I don't know what and where to look for :-(

Thanks,

Silvano
Logged
next_ghost
Half-Nub


Cakes 0
Posts: 76


« Reply #1 on: September 10, 2007, 11:57:55 AM »

Short overview of code directories:
botlib - all about bots
cgame - this code becomes cgame.qvm, no libC or any other system includes, only client exports and anything you write yourself. It reads what the server sends over network (or whatever is recorded in a demo) and tells the renderer what to draw during game
client - this code becomes client executable, it doesn't have much to do with the game itself, it just makes everything else run and makes client commands from keyboard/mouse input.
game - this code becomes game.qvm, same restrictions as for cgame.qvm, it reads client commands from players, does some cool calculations and sends back what it thinks that should have happened.
qcommon - partially minimal libC replacement included into QVMs, partially abstraction of OS specific code for client and server
q3_ui & ui - everything about menus
renderer - this code draws what you see, generates spiffy animation from shader descriptions etc. however, it knows *HOW* to draw, not *WHAT* to draw.
unix - UNIX/Linux/Mac specific code for client and server
win32 - Windoze specific code for client and server

Other directories are not interesting, just some sound, video, network and image libraries.
Logged
dmn_clown
Posts a lot
*

Cakes 1
Posts: 1324


« Reply #2 on: September 10, 2007, 12:48:05 PM »

q3_ui & ui - everything about menus

q3_ui is the base menu, ui is the missionpack backend with the menu's compiled at runtime within the vm.

Quote
unix - UNIX/Linux/Mac specific code for client and server
win32 - Windoze specific code for client and server

These two directories have been combined and are now sys/ with the icons moved to ../misc/, the directx backend for win32 has been replaced with SDL.
Logged

Silvano
Nub


Cakes 0
Posts: 3


« Reply #3 on: September 10, 2007, 04:57:27 PM »

Thanks a lot guys.

However, do you know where I can get some more detailed information? I mean, something about the data structure, main functions and principal components, how to interact with the environment and stuffs like these.

My aim is to work on bots's AI and to do so the main infos I need before starting are:

1.   How to initialize the state of the game
2.   How to perceive the state of the game
3.   How to make the bot performing an action in the game

Are there any tutorials about these topics? Is there any documentation about the project or do I simply have to go through source code?
 
Logged
dmn_clown
Posts a lot
*

Cakes 1
Posts: 1324


« Reply #4 on: September 10, 2007, 05:38:44 PM »

http://www.kbs.twi.tudelft.nl/Publications/MSc/2001-VanWaveren-MSc.html

Mr. Elusive's thesis on the q3:a bot.

Also it should be pointed out that the folder botlib only contains 1 layer of the ai, another layer of the ai can be found in the game folder with the other two layers of the ai to be found in botfiles and the subfolder bots (the main difference between OA's ai and q3:a's ai is the fuzzy logic but the underlying principle is the same).
Logged

Pages: [1]
  Print  
 
Jump to: