Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!

Difference between revisions of "Engine getting started"

From Quake Wiki

(New page: ===Editing your own Quake engine=== * Get [http://www.mingw.org MinGW] or [http://msdn.microsoft.com/visualc/ buy Visual C++] * Dowload whatever you want engine sources * '''Suggestion''':...)
 
Line 66: Line 66:
 
**cvar - cvar functions
 
**cvar - cvar functions
 
**common - common low level functons (string compairs, file stuff)
 
**common - common low level functons (string compairs, file stuff)
 +
[[Category:DarkPlaces]]

Revision as of 01:31, 25 March 2013

Editing your own Quake engine

  • Get MinGW or buy Visual C++
  • Dowload whatever you want engine sources
  • Suggestion:
  • Unzip
  • Open the *.dsw file (VC++) or the makefile (gcc/MinGW)
  • Edit some files (VC IDE, Dev-C++ ide, SciTE, notepad,...)
  • Recompile ( VC: build button, "make" command for gcc/mingw)
  • If the build failed...
    • Use your proyect *.s files? -> then you have to build these with gas, also included often. Or remove these and subst by c
    • Its your proyect for other compiler? (darkplaces run for both, vc an gcc, but others only run for vc (badly written) )
    • Ask at QuakeSRC
  • Test Engine

Understanding the code structure

This is a list of source files and a list of some of the things done in them.

  • cl_ - client files (demo playback, input, temp entities)
    • _demo - demo playback
    • _input - keyboard input (higher level)
    • _main - assorted client functions
    • _parse - server command parsing
    • _tent - temp entitie parsing and beam parsing
  • sv_ - server files (physics, collision detection, movement)
    • _main - general server functions
    • _move - movement related functions like movestep and moretogoal
    • _phys - physics functions, gravity etc
    • _user - user/client related functions
  • net_ - network files
    • basicly convert quake client/server packets to be sent over a transport protocal like tcp or ipx, as well as network server/client stuff
  • pr_ - qc virtual machine (runs progs.dat)
    • _cmds - builtin commands
    • _exec - qc executing
    • _edict - loading progs.dat and other edict functions
  • gl_ - opengl drawing files
    • _rsurf - map and brush drawing
    • _warp - sky, water etc drawing
    • _mesh - alias model drawing
    • _model - map and model loading
    • _rlight - dynamic lights
    • _screen - statis bar, console etc drawing
    • _sprite - sprite drawing
    • _vidnt - video init functions, and other startup functions
    • _rmain, _rmisc - general draw stuff, cvar registering
    • _draw - texture loading
    • _rpart (for engines that dont use qmb partices its r_part.c or something) - Particle system, physics and drawing
  • snd_ and cd_ - sound files
  • and the rest are just bits and pieces, such as zone does memory managment
    • menu - drawing menu and stuff
    • sbar - sbar higher level drawing (calls functions from screen to do the actual drawing)
    • mathlib - assorted maths functions
    • wad - wad file loading
    • world - map stuff
    • console - console text control (calls functions from gl_screen to draw)
    • cvar - cvar functions
    • common - common low level functons (string compairs, file stuff)