Tag Info

Hot answers tagged


So, you should start by looking at Wikipedia's article on id Tech 3. That can be augmented by Brian Hook's GDC talk summary and some old stuff on the Element 61 blog. In addition to that, you'll have to trawl through a bunch of whatever old mod tutorials you can find to try and reconstruct what's going on. I'd suggest starting from the original source ...


You create qvm files using the c-compiler in the Quake SDK. You can't edit QVM files. (You could technically modify them using a hex editor, in the same way that you can modify other compiled programs, but this is not useful for your purposes.)


Add +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0 in the command line argument.


Have you tried running the game in a "dedicated" server mode? This mode is usually run on network servers. Then try combining this with the "timedemo" command somehow to make it run the game faster than realtime.


The book Focus On Mod Programming in Quake III Arena will help you understand the way the client and server logic are decoupled, client prediction, client side graphics effects etc.


The original Quake 3 source was released quite some time ago. I wouldn't be surprised if it's out of date. I would suggest the ioquake3 version, except that I tried it recently on Leopard and the build failed for me. Your mileage may vary. The ioquake there is essentially just bug fixes and maintenance work on top of the original quake3 source. If you ...


Note that I'm not knowledgeable about those games specifically, so I can only answer in the general sense. A lot of modern games do both game state synchronization and event delivery to some degree. Each approach has a different use-case, as Anomalous Underdog pointed out. One advantage of the sync-the-world model is that you can reuse the general state ...


When you say state synchronization, it just always fires the latest values for those variables. For things that you don't care about their previous values, this is preferable. Like 3d position for example, you don't care about dropped packets of old position values. You're more interested in where a character really should be right now, as opposed to where ...


The quake 3 "shader" is basically just a description of the rendering parameters, and has little or nothing to do with opengl shaders. Here's an example from your tree package: models/mapobjects/GR_trees/tree6 { cull none nopicmip { map models/mapobjects/GR_trees/tree6.tga alphaFunc GE128 depthWrite rgbGen vertex ...


The function takes angles and calculates vectors that point in directions relative to angles. For angles, and the operations sin cos and tangent, you'll want to look up trigonometry. Multiplying an angle in degrees by M_PI*2 / 360 converts degrees to radians. (M_PI = 3.14). forward is a vector that points in the direction that the angles form to create ...


It just computes a (slightly wacky, because of Quake's "entity pitches are negative" thing) 3x3 rotation matrix, with each column (or row, depending on your preference) being one of the forward/right/up vectors. This can then be used to position various objects/effects/etc relative to the view; Quake uses it for pushing muzzleflashes slightly forwards and ...


Actual tutorials on the specific subject are sparse, but I did find a paper on a specific bot: http://www.scribd.com/doc/20585341/The-Quake-III-Arena-Bot As well as a list of commands for a quake 3 bot: http://www.quake3world.com/q3guide/bots.html The basic AI could be very simple, just a Finite State Machine with states for: hunting other bots or ...


try adding .xcode to end of the folder name. open it in xcode and save it as an xcodeproj


Absolutely. http://en.wikipedia.org/wiki/Quake_engine is a good overview of what is out there, but you can get into the details of its architecture quite quickly through its citations. May i also suggest a couple books on game engine architecture which may be more in line with what you are looking for. While not Quake specific, they go into the details of ...

Only top voted, non community-wiki answers of a minimum length are eligible