PlanetQuake | Code3Arena | Articles


  • Home/News
  • ModSource
  • Compiling
  • Help!!!
  • Submission
  • Contributors
  • Staff
  • Downloads

    < Index >
    1. Mod making 101
    2. Up 'n running
    3. Hello, QWorld!
    4. Infinite Haste
    5. Armor Piercing Rails
    6. Bouncing Rockets
    7. Cloaking
    8. Ladders
    9. Favourite Server
    10. Flame Thrower
    11. Vortex Grenades
    12. Grapple
    13. Lightning Discharge
    14. Locational Damage
    15. Leg Shots
    16. Weapon Switching
    17. Scoreboard frag-rate
    18. Vortex Grenades II
    19. Vulnerable Missiles
    20. Creating Classes
    21. Scrolling Credits
    22. Weapon Dropping
    23. Anti-Gravity Boots
    24. HUD scoreboard
    25. Flashlight and laser
    26. Weapon Positioning
    27. Weapon Reloading
    28. Progressive Zooming
    29. Rotating Doors
    30. Beheading (headshot!)
    31. Alt Weapon Fire
    32. Popup Menus I
    33. Popup Menus II
    34. Cluster Grenades
    35. Homing Rockets
    36. Spreadfire Powerup
    37. Instagib gameplay
    38. Accelerating rockets
    39. Server only Instagib
    40. Advanced Grapple Hook
    41. Unlagging your mod

    < Index >
    1. Entities
    2. Vectors
    3. Good Coding
    4. Compilers I
    5. Compilers II
    6. UI Menu Primer I
    7. UI Menu Primer II
    8. UI Menu Primer III
    9. QVM Communication, Cvars, commands
    10. Metrowerks CodeWarrior
    11. 1.27g code, bugs, batch


  • Quake3 Files
  • Quake3 Forums
  • Q3A Editing Message Board
  • Quake3 Editing


  • SumFuka
  • Calrathan
  • HypoThermia
  • WarZone

    Site Design by:
    ICEmosis Design

    Code3Arena Articles

    Welcome to the (yep, you guessed it!) articles section. Our articles attempt to de-mystify all the things about quake coding that are useful and cool to know. The articles are quite hefty, and generally require you to do some thinking as well.

    We've tried to write them with the assumption that you're new to Quake3 coding. Each one covers the ground about a part of the code, but doesn't make any real changes. They should help you get orientated so you can be more confident about making changes yourself. The best way to learn about quake3 coding is by browsing the code and thinking.

    The articles are contributions from the staff at PlanetQuake, and people from all over the Quake community. Check out contributions, submissions and PLEASE read our Help!!! page also.

    Grab a Jolt, sit back and enjoy. This one goes out to "Da PlanetQuake Massiv".

    Article#1: "Entities" by SumFuka

    Gets you up to speed on understanding how each item in the gameworld is represented using an entity. Covers the entity number limit, as well as some do's and don'ts. Gives an example of how entities "think"; and how clients are permanent entities.

    Article#2: "Vectors" by SumFuka

    Gives an explanation of vectors as used by Quake3 for position and movement. Starts with the basics: the origin, the co-ordinate system, and how/why velocity is "normalized" to the speed. Gives all the vector manipulation functions, and brings it all together with an example.

    Article#3: "Getting the most from Quake3 C" by HypoThermia

    Provides a basic orientation on the Quake 3 source files. Covers some of the coding styles, and the limited C library available (no malloc!). Tries to suggest and encourage good coding practice when making modifications. References for further reading.

    Article#4: "Compiling without Microsoft Visual C++ (part I)" by HypoThermia

    Guides you through setting up and using the header files of a compiler other than MSVC++. Encourages minimal modification of the source files. By the end of this article you should have the bytecode for the virtual machine running.

    Article#5: "Compiling without Microsoft Visual C++ (part II)" by HypoThermia

    Continues on from the previous article. Helps you build the binaries using the header files of your compiler. Gives advice on how to package your changes with minimal changes to the source code, and for distribution based here at Code3Arena.

    Article#6: "UI Menu Primer I" by HypoThermia

    An introduction to the custom menu system in the User Interface code. It describes how the menu system works, some of the do's and don'ts of using menus, and most of the details on how to setup a menu from scratch.

    After reading this first part you should be able to look at the menu source code with understanding.

    Article#7: "UI Menu Primer II" by HypoThermia

    A complete reference on how all seven controls are initialized and used.

    When combined with the first part of this primer you should be able to write your own menus using the standard controls.

    Article#8: "UI Menu Primer III" by HypoThermia

    Completes the menu primer series with a look at owner drawn controls, using a status bar, and how to reduce the number of controls on a page. There's also a few hints and tips on how to design good menus.

    Article#9: "Cvars, commands, and VM Communication" by HypoThermia

    This article covers the diverse (but related) issues of Cvars, configuration strings, console commands for the server or client, and scripting for the server. It examines how the user interface, client, server, and executable interact with each other as they give and handle commands, and pass data amongst themselves.

    Article#10: "Compiling with Metrowerks CodeWarrior" by Tony Kostanjsek

    For those of you that want to develop Q3 projects using Metrowerks CodeWarrior compiler and IDE, this article is for you!

    It includes instructions for getting the source code compiling, an IDE project for those of you who are lazy, and a plugin for CodeWarrior that assists with the code compilation.

    Article#11: "1.27g: Code, bugs, and batch files" by HypoThermia

    With the new source code now out, this article covers the issues that have been found. Workarounds and fixes are supplied where known.