Articles by olano

You are currently browsing olano’s articles.

Make plans to come to the 2013 UMBC Digital Entertainment Conference (DEC) on Saturday, April 27th, starting at 10am in the Engineering Building lecture hall on the UMBC campus. This day long event is organized by the UMBC Game Developers Club, and sponsored this year by Mindgrub.

The DEC is open to anyone, and features speakers from Firaxis Games, Zenimax, Pure Bang Games, Bioware Mythic, and Mindgrub. Whether you are a High School student, go to UMBC or another University, or are already working in a different industry, you are sure find interesting information about how the games industry works, how some current developers got started, and what they do. If you are a game developer, you are sure to find High School students, UMBC students and students from other Universities who are interested in jobs in the games industry.


10:00 Jeremy Shopf – Lead Graphics Engineer, Firaxis
11:00 Ching Lau – Artist, Zenimax
12:00 Lunch
1:00 Ben Walsh – CEO, Pure Bang Games
2:00 Carrie Gouskos – Lead Producer, Bioware Mythic
3:00 Michelle Menard – Designer
4:00 Alex Hachey – Game Design Lead, Mindgrub

Sponsored by mindgrub_logo_small

There was a nice article in the Baltimore Sun on the state of Maryland’s games industry.

Word of the day: “turbulent”. Second word of the day: “indie”

We have 30 participants in the Global Game Jam at UMBC this weekend, working on eight different games. Fitting for a world-wide event, the theme this year is non-verbal, it is the sound of a human heartbeat. They started at 5PM Friday, to build games around this theme.

Starting around 3:30PM, each team will be demoing their game, with the demos live-streamed on the web at Watch and be amazed!

This weekend, UMBC will be one of 320 sites from 65 countries around the world participating in Global Game Jam 2013. This year’s theme is announced at 5pm local time on Friday, and teams all over the world work all weekend to build games around the theme. If you want to participate you can sign up through the Global Game Jam global organization. UMBC’s site is full, but there are other sites in the MD/VA area for those interested in participating. You’ll be able to track our progress on twitter (#ggj13 for global twitter feed, #umbcggj for UMBC), and on our live streaming feed (to be announced here when the game jam begins).

For those signed up for the UMBC site, here are some basic details on what to expect Friday.

  • We’ve got a talk about the Corona mobile game SDK at 4:30 Friday.
  • The main GGJ activities start at 5:00 this Friday, and will conclude by 5:00 on Sunday.
  • The UMBC site will be closing down from 11pm-7am Friday and Saturday night. Do not plan on being able to spend the night in the lab.
  • We’ll be in the GAIM lab, room 005 in the Engineering building. For those not already on campus, there are campus maps online.
  • Permit (not visitor) parking spots are free after 3:30 Friday and through the weekend.
  • Thanks to a generous donation from Next Century Corporation, we’ll have food for all participants all weekend.



OnyxFest is an independent game showcase, with networking opportunities, presentations by area indie game developers, and games to try. It will be Saturday, February 2nd from 10:00-3:00 in the Gameroom in the UMBC Commons. Details on the facebook event page.

According to a story on the Washington Post web site December 17th, a study of game sales per capita and gun-related murders per capita in 10 countries shows no real correlation. At the end, there’s a graph showing a linear fit through the data, showing a weak negative correlation, but as scattered as the data is, even drawing that line makes no sense to me. None the less, it certainly doesn’t look like correlation (much less causation) between the two.

Here’s a post that’s interesting for both programmers and artists. Sébastian LeGarde is an game engine and graphics programmer at Dontnod entertainment in Paris. He has a blog with a variety of good posts on the programming side of achieving realistic physically-based illumination. He’s just started a series on rendering rainy and wet scenes, starting with a collection of photos and observations showing the different ways rain actually appears in the real world. Whether you are an artist or programmer, when you’re trying to get something new, it’s always a good idea to go out and observe the world. You can’t get it right, if you don’t know what it is supposed to look like. Check it out!

UMBC will once again be a host site for the 2013 Global Game Jam. This is a weekend-long game development event with hundreds of host sites across the world. Participants at each site form teams and work all weekend long to build games on a common theme, announced at the event. The 2013 Global Game Jam will be held from 5pm Friday, January 25th to 5pm Sunday, January 27th.

For Maryland/DC area participants, this year there are sites at UMBC, College Park, the Universities at Shady Grove, and George Mason. Some sites charge entrance fees, but thanks to generous support by NextCentury Corporation, the UMBC site is free and open to anyone 18+ years of age. Space is limited, so participants should register in advance for the UMBC site on

For those of you with an AI programming bent, there’s is running a game AI contest, details at The contest started November 7th, but you can build and submit your entries through December 10th. You (or a team) creates an AI commander to direct your bots in a game of capture the flag in a complex world. If you like AI and have some time, give it a shot!

Another linked article, this one about a set of foundation libraries released by bitsquid under the MIT license, the Bitsquid Foundation Library

Some observations…

Memory management and avoiding C++ STL

Memory is often as critical a resource as execution time. Bad memory management can result in lots of little fragments of unusable free memory and a game that crashes when trying to load the next level. In addition, many standard memory allocators serialize the memory allocation in order to be thread safe when running on multiple CPU cores. With lots of memory allocations, this can turn into a performance bottleneck. The C++ Standard Template Libraries are handy, but mostly consider memory allocation and deallocation as free operations, and are waaay more willing to do them than most game developers would prefer. Consequently, you’ll find a profusion of different memory allocators and data structures that most people think of as being part of standard C++. This is one such library.

Header organization and compile time

Compile time is a big issue for major game projects. Some use Visual Studio precompiled headers. They are good for relatively unchanging headers, but any change to any file in the precompiled header will result is a sloooow rebuild of the entire project.

Some try to reduce the dependencies between header files to only include what you absolutely need, and (in C++ at least) declare by name the classes you just need for pointers or references. This reduces the number of files that will need be recompiled for a header change. I first read about this technique in Large Scale C++ Software Design, by John Lakos. That book also advocates the pimpl approach, where rather than declaring private members in the public include file, the class will just contain a pointer to an implementation class. The implementation class is declared and defined with all of the implementation code, so does not need to be part of the class include file, and implementation changes do not cause recompilation for anyone using the class. Most games that I’ve seen do not use the pimpl method, because each class (even if created on the stack) results in an extra memory allocation, and each member function has an extra pointer dereference into the implementation class.

Bitsquid uses another technique, where the public class only contains data declarations. Rather than use member functions, you use regular functions to operate on the class. The idea is that most of the header interdependencies that increase compile time are just member-to-member dependencies which only need to know the data layout. Source implementation code may need to know about the functions too, but that’s still fewer dependencies (and faster compilation).

I have not done much coding in this style, but the key takeaway here is that game developers spend a lot of time compiling, and anything that makes compilation slower is potentially hours per day of lost work.

« Older entries § Newer entries »