background preloader

Game programming

Facebook Twitter

Doom3 Source Code Review: Introduction. June 8, 2012 On November 23, 2011 id Software maintained the tradition and released the source code of their previous engine. This time is was the turn of idTech4 which powered Prey, Quake 4 and of course Doom 3. Within hours the GitHub repository was forked more than 400 times and people started to look at the game internal mechanisms/port the engine on other platforms.

I also jumped on it and promptly completed the Mac OS X Intel version which John Carmack kindly advertised. In terms of clarity and comments this is the best code release from id Software after Doom iPhone codebase (which is more recent and hence better commented). I highly recommend everybody to read, build and experiment with it. Here are my notes regarding what I understood. Part 1: Overview Part 2: Dmap Part 3: Renderer Part 4: Profiling Part 5: Scripting Part 6: Interviews (including Q&A with John Carmack) From notes to articles...

Background First contact Download the code. Architecture When Doom3.exe starts up it: . Graphics Programming Black Book - Graphics Programming and Theory. Michael Abrash's classic Graphics Programming Black Book is a compilation of Michael's previous writings on assembly language and graphics programming (including from his "Graphics Programming" column in Dr. Dobb's Journal). Much of the focus of this book is on profiling and code testing, as well as performance optimization. It also explores much of the technology behind the Doom and Quake 3-D games, and 3-D graphics problems such as texture mapping, hidden surface removal, and the like. Thanks to Michael for making this book available. The full text of the book is available here in PDF format. Due to the book's length, we've made each chapter available separately. The files are large, so we don't recommend reading them online.

If you keep all files in the same directory, the "Previous" and "Next" links at the beginning and end of each chapter will work (provided you have downloaded those chapters). NOTE: Each chapter also has a "Home" link at its beginning and end. Source code (1.7 MB) Let's Code « ORFJackal.NjET. Let's Code Screencasts Here are screencasts of developing non-trivial open source projects, the way that I normally develop software. They might give you some tips on using TDD, refactoring, evolutionary design and other development practices.

I hope these screencasts will help any aspiring software craftsmen on their road to mastery by providing some examples to look up to. If you do not yet know how to do TDD, please have a look at my TDD Tutorial in GitHub. It will help in getting a start on TDD by providing some pre-written tests for a Tetris game and steps on how to proceed. New episodes will be announced at the Let's Code blog.

Subscribe to New Episodes Projects Dimdwarf - a distributed application server Text Adventure - a typical homework assignment Jumi - a test runner for the JVM Let's Code Dimdwarf Shows the development of a highly complex distributed application server using TDD. Project Web Site: dimdwarf.sourceforge.netSource Code: github.com/orfjackal/dimdwarf Latest Episode. What I Learned From Watching Notch Code - Jobs for Open Source and Independent Developers.

The theme music for this post is The White Stripes - A Ball and A Biscuit. Warning: This post may smack of fanboyism. Can’t be helped. During last weekend’s ‘Ludum Dare’ competition, famed Minecraft author Notch screencast his entire development process for almost all of the time he was coding (which, by the way, was a very impressive 40 of the 48 total hours the competition lasted!) I spent a good deal of time watching, and this is what I’ve learned. I should disclose that I’m not a professional game developer, though I am an amateur game developer and I am a professional software developer. The Nitty Gritty I could write a lot about all the little code tricks that he uses, like making his levels in Paint.NET or the way the lighting works in his cool 2.5D engine, but instead I’m going to write about the process, as this is where I learned the most. The most important thing I learned was his testing technique.

Incredibly Fast Testing Incredibly Thorough Testing How I Use This Knowledge. From Noobgrammer to Programmer - Part 1 - Greetings and welcome to the first of a many-part tutorial series designed to take you from a “hello world” jabroni to a game programmer with the confidence to tackle any challenge that might be foolish enough to face you. This series will be targeted at people who have a small amount of programming experience (those who understand functions, variables, and objects) and are having a hard time making the leap to something more complex..

As I was in this category not but a few years ago, I vividly remember the difficulties moving from basic comp-sci projects to full games and I hope to make your transition easier than mine. If you don't feel that you belong in this category, despair not! Check out my upcoming “education roadmap” entry for a guide to get you from noobgrammer to programmer. If you find yourself confused by a tutorial or would like me to cover a specific subject, shoot me an email at john.hayden@roarigami.com or leave a comment and I'll be happy to oblige.