Quantcast
Channel: #AltDevBlog » Programming
Browsing latest articles
Browse All 101 View Live

Code Share: Source Censoring, Part 2

A while ago I shared the tool we use for censoring source code in the Bitsquid engine. Quick recap: We need to censor the code in our source distributions because there are parts of the code that are...

View Article


C/C++ Low Level Curriculum Part 11: Inheritance

Hello, and welcome to the 11th part of the C / C++ low level curriculum. About time? Definitely! Last time we looked at the basics of User Defined Types: how structs, classes, and unions are laid out...

View Article


Image may be NSFW.
Clik here to view.

C/C++ Low Level Curriculum Part 12: Multiple Inheritance

Hello, and welcome to the 12th part of the C / C++ low level curriculum. Really soon after part 11! (No, of course part 11 didn’t get too big and need to be split. Why would you ask?) Last time we...

View Article

Strattonian Gambit

After a 1 year hiatus from the site (including a bit of crunch), I thought I’d try to start making videos again.  Hopefully I can also finish a bunch of the almost dones and post them as well. I...

View Article

A project management view on IT vs. games

I come from a background of IT development, where I worked in multiple roles from programmer to system architect. During that time I saw many different project management techniques ranging from the...

View Article


Data-driven design with Unity 3d, Part 1 – Brainstorms, Initial Requirements.

This is a slightly-edited re-post of a series that I’ve been writing in quiet isolation (which you get used to doing indie development) on my blog.  Currently up to part 4 of the series, they have been...

View Article

Image may be NSFW.
Clik here to view.

Gentle introduction to Google Analytics in Flash

Introduction Being able to check out how many players play your game, from what countries, for how long, on which levels they have problems, how much points do they score, even do they ever visit your...

View Article

Accurately Reproducing Game Audio in the Playback Environment

Sound Designers are faced with a difficult proposition. Add sound effects, music and dialogue to a game, set rules that determine how those sounds are panned, attenuated and processed in real-time...

View Article


There’s nothing like a tidy codebase

There you are! You, yes you! Been tasked with a new feature or a change, to the code or a script, to be done by yesterday, haven’t you? Yes, yes, I know your pain. You’ll be wading through oddly named...

View Article


Data-driven design with Unity 3d, Part 2 – Server design / API and assumptions

As mentioned previously, I’ve started fleshing out the backend for the server that I’m looking to build for my ongoing experiments. Let’s recap the key points: The first 2 elements to our server design...

View Article

What documentation?

Imagine a situation where you have just been employed by a game development company with a large code base. You might setup your computer, adjust your chair, get some coffee and then start...

View Article

Git Off My Lawn – Develop 2013

Recently myself and Andrew Fray (@tenpn) presented “Git Off My Lawn” at Develop 2013 in Brighton. The talk was designed to discuss how we took a Perforce centric development process and moved over to...

View Article

Image may be NSFW.
Clik here to view.

Finding nearby stuff

A problem that crops up quite often in game programming is the need to find stuff that is “close to” other stuff. For example, you may want to find all enemies close to the player, all treasures close...

View Article


An introduction to: Go[lang]

I think it’s valuable for game developers to know of a broad range of programming techniques and tools, and programming languages are one of our fundamental tools that strongly dictate how we phrase...

View Article

The main loop in Devil’s Attorney on Android

Abstract Android OS is filled with undocumented behavior and quirks that are taught the hard way; by discovery and by experience. Once you start playing around with the NDK, OpenGL and Android...

View Article


Code Build Optimisation Part 4a – fatal error LNK1170

If you previously followed Code Build Opt Part 4 then you have yourself a fantastic project that incrementally links and everyone is happy… there is a gremlin in this machine however. Before we...

View Article

GLKit to the max: OpenGL ES 2.0 for iOS – Part 1: GLKit Features

Apple uses OpenGL extensively – their 2D desktop libraries (Quartz, CoreAnimation) are OpenGL-based, and iOS has inherited that link (along with some funky tricks you can pull). December 2013: I’ve...

View Article


Image may be NSFW.
Clik here to view.

Git Off My Lawn – Large and Unmergable Assets

I posted up the Git talk myself and Andrew Fray did at Develop 2013 and mentioned I’d have a few follow up posts going into more detail where I thought it was probably needed (since you often can’t get...

View Article

The technical interview

This post will appear (slightly lenghtier) also on my personal blog, c0de517e.blogspot.com Introduction I’ve had in my career the pleasure of working with a few different studios, seeing a few others...

View Article

Image may be NSFW.
Clik here to view.

OpenGL ES 2: How does it draw?

UPDATED 24/09/13: Added some essential details to the class files at end of post, and corrected typos UPDATED 24/09/13: Added Github project with full source from this article December 2013: I’ve...

View Article

Scripted Network Debugging

Debugging network problems is horrible. Everything is asynchronous. Messages can get lost, scrambled or delivered out-of-order. The system is full of third-party black boxes: external transport layers...

View Article


Image may be NSFW.
Clik here to view.

Accurate Collision Zoom for Cameras

Here’s the takeaway of this whole post: For camera collision zoom, don’t cast a ray. Don’t cast a sphere. Cast the near face of the view frustum. Now, let’s start from the beginning. Consider the...

View Article


Image may be NSFW.
Clik here to view.

OpenGL ES 2: Vertices, Shaders, and Geometry

(this is Part 3; Part 1 has an index of all the posts) We finished Part 2 with the most basic drawing of all: we filled the screen with a background colour (pink/magenta), but no 3D objects. NB: if...

View Article

Wolfram’s Mathematica 101

This will appear in a longer, more rambling form, on C0de517e. It’s main section is inspired by LearnXinYminutes Introduction Games and rendering are becoming increasingly “data driven”, in a sense...

View Article

Simplex Update #2: Unit-Testing

NOTE: If you want to read this post with syntax highlight I strongly suggest you read it on my blog: http://simplex-engine.com/2013/09/23/simplex-update-2-unit-testing/ It’s been almost a month since...

View Article


Image may be NSFW.
Clik here to view.

OpenGL ES 2: debugging, and improvements to VAO, VBO

UPDATE: This post sucks; it has some useful bits about setting up a breakpoint in the Xcode debugger – but apart from that: I recommend skipping it and going straight to Part 4b instead, which...

View Article

Image may be NSFW.
Clik here to view.

iOS Open GL ES 2: Multiple objects at once

Recap: Part 1 – Overview of GLKit Part 2 – Drawcalls, and how OpenGL code is architected Part 3 – Vertices, Shaders and Geometry Part 4 – (additions to Part 3); preparing for Textures …but looking...

View Article

Image may be NSFW.
Clik here to view.

Easy Collaboration with Object URLs

At DROOL, we’ve recently started using URL “links” to our game objects that we can easily share via e-mail.  It’s simple and probably not a unique solution.  But it’s been useful and feels like a...

View Article

How to become a Graphics Programmer in the games industry

As we were recently hiring a new Graphics Programmer at work I had to identify what kind of technical knowledge and skills we would expect from a potential candidate. Although this definition will be...

View Article



Image may be NSFW.
Clik here to view.

OpenGL dumb mistakes: the mysterious Perfect Circular Hole

I’ve got a long-running project around rendering 3D Earth in interesting ways. It’s being used in a game project, and some non-game stuff too. Here’s a recent screenshot: I added a particle system that...

View Article

Image may be NSFW.
Clik here to view.

4 Beginner Projects for Launching into Game Programming

Photo credit: minipixel Lots of students and beginner developers ask me, “What’s the fastest way to become a game programmer?” Once you’re an amazing programmer, the world is open to you. You can make...

View Article

Image may be NSFW.
Clik here to view.

Reading The Papers: Guaranteed Candy

For some developers, all this talk of procedural content generation is bittersweet. If you’re generating a world map, for instance, you probably don’t have too many requirements of it. A bit of land,...

View Article

Image may be NSFW.
Clik here to view.

Havok Physics: 4 tips you won’t find in the docs

Hey fellow coders, I’ve used Havok Physics at several game studios over the years and I thought I’d share some little-known but hopefully useful tips about this middleware. For a rigid body, find all...

View Article


Roll-Your-Own Vector

(Also posted to upcoder.com, third in a series of posts about Vectors and Vector based containers.) STL vectors offer a great combination of dynamically resizing convenience and low level contiguous...

View Article

Avoid Resize()?

(Also posted to upcoder.com, number 4 in a series of posts about Vectors and Vector based containers.) This post is essentially a response to feedback to this previous post. In that post I talked...

View Article

Image may be NSFW.
Clik here to view.

Reading The Papers: Exhausting

When programming systems it makes sense to keep complexity and scale in mind. Don’t try and render 400,000 sprites all at once. Don’t try and send the entire world state to every player on the server....

View Article


Image may be NSFW.
Clik here to view.

Reading The Papers: Ludus Ex Machina

I haven’t discussed my own research in this column yet, but you may know that I’m interested in automating the process of game design in its entirety. At the highest level, game designers produce...

View Article


Image may be NSFW.
Clik here to view.

Multi-Threaded Programming 1: Basics

This will be a series of posts in which I will cover a good portion about what I have learned in terms of multi-threaded development in the realm of video games. I am writing this since I have been...

View Article

Image may be NSFW.
Clik here to view.

Multi-Threaded Programming 2: Communication

The next step in learning about multi-threaded programming is going to involve seeing how threads communicate with each other. This is important so that it is understandable why many of the pitfalls...

View Article

Implementing a code generator with libclang

[DOI: 10.5708/szelei.2014.A.1] Introduction Click here to skip the introduction and see the code. The following article covers the process of implementing a practical code generator for C++ in detail....

View Article

Image may be NSFW.
Clik here to view.

Data Structures for Entity Systems – Contiguous memory

This year I’m working on two different projects that need an Entity System (ES). One of them is a non-game app written natively on iOS + Android. The other is an FPS in Unity3D. There are good, basic...

View Article


Image may be NSFW.
Clik here to view.

Keyboard shortcuts info in debug builds – IMGUI style

I want to share a little discovery, a trick easing the creation and development of games. First a short motivational and historical introduction. Case study I don’t know if you have it too, but when...

View Article

Unity3D Resumable Downloads

The Problem I keep working with mobile games built using Unity, most of which have a target executable size of 50MB. These games however  tend to have more than 50MB worth of assets, so they pack...

View Article


Zero Initialisation for Classes

(Also posted to upcoder.com, number 5 in a series of posts about Vectors and Vector based containers.) This is a response to comments on a previous post, roll your own vector, and has also been...

View Article

Image may be NSFW.
Clik here to view.

Principled Design

What makes good software? Lots of properties, certainly, are probably required for us to consider a bit of code to be good. It’s probably robust, and well tested. It probably has a clean API, a lack of...

View Article


Image may be NSFW.
Clik here to view.

GDC 2014 Report

It’s that time again. Personally I think GDC this year was more interesting that a few preceding ones. Next-gen consoles have arrived, mobile gaming is really big still, and a quality Virtual Reality...

View Article

Image may be NSFW.
Clik here to view.

Multi-Threaded Programming 3: Locking, Lock-Free, Wait-Free

Now I want to cover the basic terminology used when talking about concurrent algorithms. This will be helpful so that you are familiar with the available techniques you have when you have multiple...

View Article

Image may be NSFW.
Clik here to view.

Building an Engine Plugin System

A plugin system is a useful way to allow developers to extend the capabilities of a game engine. Of course, an engine can also be extended by directly modifying the source code, but there are several...

View Article

Prototyping and Code Quality

Prototyping is a popular method for getting a feel for the core features of a given application. It is often used as the first step when your company is looking into a new prospect with a lot of...

View Article


Multi-Threaded Programming 4: A Locking Queue Implementation

We covered the basic differences between the various multi-threaded techniques to protect our shared data in the last post. Now lets look at some code that will implement a locking technique. I will...

View Article

Browsing latest articles
Browse All 101 View Live