Cover image for Focus On Mod Programming in Quake III Arena.
Focus On Mod Programming in Quake III Arena.
Title:
Focus On Mod Programming in Quake III Arena.
Author:
Holmes, Shawn.
Personal Author:
Physical Description:
1 online resource (410 pages)
Contents:
CONTENTS -- LETTER FROM THE SERIES EDITOR -- INTRODUCTION -- CHAPTER 1 INTRODUCTION TO PROGRAMMING MODS -- What Is a Mod? -- Why Create a Mod Instead of Just Writing a Game? -- The Tools of the Trade -- Using C -- Using the VC++ Compiler -- What Mods Are Currently Available? -- Urban Terror -- Rocket Arena Q3A -- Quake III Fortress (Q3F) -- Painkeep Arena -- Rune Quake -- Summary -- CHAPTER 2 C PROGRAMMING IN QUAKE III -- The History of Quake and Its Code -- The Move from DOS to Win32 -- Hello Quake III, Goodbye DLL! (Sort Of) -- Getting Set Up -- Installing Q3 and the Source -- The Source Directory -- Using Visual C++ -- Building the Source -- Compiling the Project -- Loading Up Your Mod -- Looking at the Quake III Code -- On Your Marks, Get Set -- The Q3 Source -- Planning -- A Simple Mod: The Homing Missile -- I Think, Therefore I NextThink . . . -- Entities: Building Blocks in Q3 -- Changing the Missile's Behavior -- Smoothing the Missile -- A Final Note -- Summary -- CHAPTER 3 MORE WEAPONRY WORK -- Understanding Weapon Types -- Modifying the Shotgun -- Understanding the Top-Down Approach -- Knowing the Shotgun Inside and Out -- The Physics of Vectors -- Intricacies of Damage -- Adjusting the Shotgun's Accuracy -- The Shotgun's Dirty Secret -- Synchronicity in the Client Code -- Adding Polish: Shooting While Moving -- Modifying Grenades: The Cluster Grenade -- Further g.weapon.c Detective Work -- Why a Grenade Bounces (and Rockets Don't) -- Using What You Know: think and nextthink -- Making the Cluster Grenade Behave -- A Further Adjusting Gravity Wells -- Into the Vortex -- Testing for Collision -- Making Gravity Work for You -- Summary -- CHAPTER 4 MANIPULATING THE PLAYER -- The Quake III Player and His World -- Player Structure -- The Guts of gclient_s -- State of the Player -- Changing the Player's Movement -- Playing with ps.speed.

Gravity Kills -- The Case of the Missing client -- Solving the Jumping Mystery -- The Move to Pmove -- Modifying Jump Velocity -- Giving the Player a Jetpack -- Creating a New pmove Flag -- Defying Gravity -- A Surprise Effect -- Borrowing Code from PM_FlyMove -- Implementing Locational Damage -- Creating Hit Flags -- The Bounding Box -- Scanning Body Parts -- My Feet Are . . . Where Now? -- Switching Off the Hits -- Summary -- CHAPTER 5 QUAKE COMMUNICATION -- The Client/Server Relationship -- Leaving Peering in the Past -- Lag in a Nutshell -- The Quest for Low Latency -- The Process of Updates -- Bridging game, cgame, and ui -- The Server Is God -- The Main Event -- Interfacing with the User -- Modifying Variables on-the-Fly -- The Quake Virtual Machine -- Getting the Best of Both (Quake) Worlds -- Build Your Own QVM -- Summary -- CHAPTER 6 CLIENT PROGRAMMING -- Revisiting Weapons: Chain Lightning -- Trace Your Path -- Be Like Zeus -- Creating Client Events -- Enumerating an Event -- The Communication of entityState_t -- Chain Lightning Lives -- Working with Shaders -- A Shady Modification: Armor Regeneration -- Making the Player Glow -- Regenerating Armor -- Adding New Icons and Sound Effects -- Making It Count -- Getting Up in the Player's Face -- Cache Memory -- Summary -- CHAPTER 7 DEFEND THE FLAG -- The Rules -- What You Will Reuse -- What You Will Create -- Preparing Q3 for DTF -- Your Journey Begins at gametype_t -- itemType_t: Birth of the Sigil -- Fleshing Out the Sigil -- Bending the Rules with powerup_t -- Tranforming Flags into Sigils -- Every Item Is a gitem_t -- Sigils Become New Items -- Initializing Sigils for DTF -- Warning Q3 about Sigils (Or Lack Thereof) -- Creating the New Sigil Behavior -- Getting Touchy-Feely with Touch_Item -- Wiring Sigil-Touch for Touch_Item -- Keeping Score with Sigil_Think -- Keeping cgame in Check.

Tricking Q3: Reusing Spawn Points -- The Process of Spawning Level Entities -- Jimmying Item Entities into a Map -- Yanking Out CTF Flags -- Creating a Third Sigil Spawn Point -- Picking the Preferred Item -- Summary -- CHAPTER 8 WHERE TO GO NEXT -- Deathmatch, CTF, and Other Game Types -- Vanilla Deathmatch -- Games Without Frontiers: CTF -- A Class Act: Team Fortress -- Squad Tactics: Counter-Strike -- Structure of a Mod -- The PK3 File: Unlocking Its Secrets -- Art Is Life (and Death, in Q3) -- Modeling Without a Runway -- Brushing Up on Level Design -- Creating Sound Effects Using Household Items -- Summary -- CHAPTER 9 UI PROGRAMMING -- Basic UI Concepts -- Controls: Nuts and Bolts of UI -- Formatting Controls -- Controls Have One Thing in menucommon_s -- The Menu Framework -- Breathing Life into a Menu -- Tweaking Q3 -- Setting the Stage for a Menu -- Pushing a Menu Will Only Make It Mad -- Building a New UI Menu -- Starting ui_tweaks.c -- Defining the Menu Struct -- Getting a Handle on Menu Events -- Initializing the Menu Controls -- The Cache and Push -- Cleaning Up -- Working with More Controls -- menufield_s of Dreams -- The menuslider_s Control: Great for Parties -- Ultimate Power: menulist_s -- Summary -- CHAPTER 10 ENHANCING DTF -- Adding Sigil Status to the HUD -- Filling in the Missing Game Code -- Making the Config String Work for You -- Prepping cgame for the HUD Update -- Parsing Out Config Strings in cgame -- The Sigil Status HUD Comes to Life -- Adding a Flag Locator -- Getting to Know Cvars -- Adding a Cvar for the Flag Locator -- Adding the Flag-Locator Functions -- The Quick-and-Dirty CG_DrawSigilLocationInfo -- Sigil to Player: I'm Over Here! -- Adding DTF to the UI -- Specifying the Setup of DTF -- Handling Two Different Spawning Styles -- Making DTF Selectable -- CTF Maps are OK in My Book.

Adding DTF Options to the Game Server Menu -- Summary -- APPENDIX A: DEBUGGING YOUR MOD IN VISUAL STUDIO -- APPENDIX B: RESOURCES -- INDEX -- A -- B -- C -- D -- E -- F -- G -- H -- I -- J -- K -- L -- M -- N -- O -- P -- Q -- R -- S -- T -- U -- V -- W -- Z.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Electronic Access:
Click to View
Holds: Copies: