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

Editing Engine getting started

From Quake Wiki

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 11: Line 11:
 
What you need:
 
What you need:
  
1. [https://sourceforge.net/projects/codeblocks/files/Binaries/20.03/Windows/codeblocks-20.03mingw-setup.exe/download CodeBlocks + MinGW] (75MB) or [http://www.microsoft.com/visualstudio/eng/downloads Visual Studio Express 2012] (5 GB).  Both are free.
+
1. [http://sourceforge.net/projects/codeblocks/files/Binaries/10.05/Windows/codeblocks-10.05mingw-setup.exe CodeBlocks + MinGW] (75MB) or [http://www.microsoft.com/visualstudio/eng/downloads Visual Studio Express 2012] (5 GB).  Both are free.
  
 
2. [https://github.com/QuakeEngines/Mark_V-clone Mark_V_Clone] Decompress the source.zip included.
 
2. [https://github.com/QuakeEngines/Mark_V-clone Mark_V_Clone] Decompress the source.zip included.
Line 19: Line 19:
 
CodeBlocks + MinGW: Open Fitzquake_CodeBlocks.cbp and press F9 (or click Build->Build and Run).
 
CodeBlocks + MinGW: Open Fitzquake_CodeBlocks.cbp and press F9 (or click Build->Build and Run).
  
That's it, the Mark V source compiles out-of-the-box.  There are [http://forums.insideqc.com/viewforum.php?f=12 engine tutorials here] and [http://forums.insideqc.com/viewforum.php?f=3 an engine discussion forum here].
+
That's it, the Mark V source compiles out-of-the-box.  There are [http://forums.inside3d.com/viewforum.php?f=12 engine tutorials here] and [http://forums.inside3d.com/viewforum.php?f=3 an engine discussion forum here].
  
 
===Editing your own Quake engine===
 
===Editing your own Quake engine===
Line 26: Line 26:
 
* '''Suggestion''':
 
* '''Suggestion''':
 
** [http://tomaz.quakesrc.org/q/files/Clean.zip CleanSrc] Simple and most likely to fit with general information about the Quake engine.
 
** [http://tomaz.quakesrc.org/q/files/Clean.zip CleanSrc] Simple and most likely to fit with general information about the Quake engine.
** [[TomazQuake]] [https://web.archive.org/web/20040316081132/http://tomaz.quakesrc.org/q/download.php (web, archive)] - Like CleanSrc it will fit with general information about engine development but with enhancements and extra features already added. Will build on Windows (Visual Studio).
+
** [[TomazQuake]] [http://tomaz.quakesrc.org/q/ (web)] - Like CleanSrc it will fit with general information about engine development but with enhancements and extra features already added. Will build on Windows (Visual Studio).
** [[QMB]] [http://www.gluonporridge.net/QMB (web)] [https://github.com/DrLabman/QMB (git)] - Moving away from the standard source layout, originally based on CleanSrc. Will build on Unix and Windows (GMingW).
+
** [[QMB]] [http://www.gluonporridge.net/QMB (web)] [//https://github.com/DrLabman/QMB (git)] - Moving away from the standard source layout, originally based on CleanSrc. Will build on Unix and Windows (GMingW).
 
** [[DarkPlaces]] [http://www.icculus.org/twilight/darkplaces/ (web)] - One of the most comprehensive feature sets. Unlikely to fit with general information about Quake engines. Better suited to experienced programers who want the features it offers.
 
** [[DarkPlaces]] [http://www.icculus.org/twilight/darkplaces/ (web)] - One of the most comprehensive feature sets. Unlikely to fit with general information about Quake engines. Better suited to experienced programers who want the features it offers.
 
** [[FuhQuake]] [http://www.fuhquake.net/ (web)] - Great starting point for QuakeWorld
 
** [[FuhQuake]] [http://www.fuhquake.net/ (web)] - Great starting point for QuakeWorld
Line 37: Line 37:
 
** Use your project *.s files? -> then you have to build these with Gas, also included often. Or [http://www.quakesrc.org/forum/viewtopic.php?t=148&highlight=assembler+quake+build remove these and substitute by c]
 
** Use your project *.s files? -> then you have to build these with Gas, also included often. Or [http://www.quakesrc.org/forum/viewtopic.php?t=148&highlight=assembler+quake+build remove these and substitute by c]
 
** Is your project for another compiler? (Darkplaces compiles on both Visual C and GCC for example, but some others only compile for Visual C)
 
** Is your project for another compiler? (Darkplaces compiles on both Visual C and GCC for example, but some others only compile for Visual C)
** Ask at [http://forums.insideqc.com InsideQC]
+
** Ask at [http://forums.inside3d.com Inside3D]
 
* [[Test Engine]]
 
* [[Test Engine]]
  
 
===Understanding the code structure===
 
===Understanding the code structure===
This is a partial list of source files and brief explanation of what they do. They will vary from engine to engine, so don't worry if you can't find a particular file. If you are missing any files but have one with a similar name, it probably performs the same function.
+
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)
 
*cl_ - client files (demo playback, input, temp entities)
Line 48: Line 48:
 
**_main - assorted client functions
 
**_main - assorted client functions
 
**_parse - server command parsing
 
**_parse - server command parsing
**_tent - temp entity parsing and beam parsing
+
**_tent - temp entitie parsing and beam parsing
  
 
*sv_ - server files (physics, collision detection, movement)
 
*sv_ - server files (physics, collision detection, movement)
Line 57: Line 57:
  
 
*net_ - network files<br>
 
*net_ - network files<br>
**basically convert quake client/server packets to be sent over a transport protocol like tcp or ipx, as well as network server/client stuff
+
**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)
 
*pr_ - qc virtual machine (runs progs.dat)
Line 70: Line 70:
 
**_model - map and model loading
 
**_model - map and model loading
 
**_rlight - dynamic lights
 
**_rlight - dynamic lights
**_screen - status bar, console etc drawing
+
**_screen - statis bar, console etc drawing
 
**_sprite - sprite drawing
 
**_sprite - sprite drawing
 
**_vidnt - video init functions, and other startup functions
 
**_vidnt - video init functions, and other startup functions
Line 87: Line 87:
 
**console - console text control (calls functions from gl_screen to draw)
 
**console - console text control (calls functions from gl_screen to draw)
 
**cvar - cvar functions
 
**cvar - cvar functions
**common - common low level functions (string compairs, file stuff)
+
**common - common low level functons (string compairs, file stuff)
 
[[Category:DarkPlaces]]
 
[[Category:DarkPlaces]]

Please note that all contributions to Quake Wiki are considered to be released under the GNU Free Documentation License 1.3 or later (see Quake Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)