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 globalgamejam.org.

For those of you with an AI programming bent, there’s AiGameDev.com is running a game AI contest, details at AISandbox.com. 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.

Most game developers I know have a network of other developers and online sources they follow to keep up with game development trends and ideas. Most students haven’t developed this set of sources yet, so I plan to start posting a series of links to things I run across and find interesting. Since my own postings are admittedly graphics focused, I thought I would start with an AI article. This one, originally from Game Developer Magazine, gives a high-level comparison of AI options as used in games: AI Architectures: A Culinary Guide

 

 

Make plans to come to the 2012 UMBC Digital Entertainment Conference (DEC) on Saturday, April 28th, starting at 10am in UMBC Lecture Hall 1. This day long event is organized by the UMBC Game Developers Club, and sponsored this year by Zynga.

The DEC is open to anyone, and features an all-star lineup of speakers from Firaxis Games, Zynga East, Pure Bang, and Mythic Entertainment. 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.

Schedule:

10 AM Barry Caudill, Director of Gameplay Development at Firaxis
11 AM Tim Train, Studio Manager at Zynga East
12 PM Lunch Break
1 PM Eric Jordan, Programmer at Firaxis
2 PM Ben Walsh, CEO of Pure Bang Games
3 PM Brian Johnson, Director of Online Operations at Mythic Entertainment

If you are unfamiliar with the UMBC campus, there’s a convenient online map. Note that permit parking spots on campus are free over the weekend, so only head like a lemming to the visitor meter spots if you like spending quarters.

The Undergraduate Research and Creative Achievement Day is a great tradition at UMBC. It celebrates creative work done by UMBC undergraduates through posters and presentations. This year’s is Wednesday April 25th.

The game developers club has long presented their creative works at URCAD. This year, we’ve got an extra dose of game. The featured alumni speaker is Joshua Barczak. Josh is currently a Senior Graphics Engineer at Firaxis Games. He got his BS (CMSC 2003) and MS (CMSC 2006) at UMBC. His talk is during the general session, 12-1 in UC 312. Be sure to check it out if you can!

UMBC has earned an Honorable Mention on The Princeton Review’s third annual list of undergraduate schools to study game design, placing it in the top 32 undergraduate schools for game design and development in the U.S. and Canada.

The list, “Top Schools To Study Video Game Design For 2012,” salutes 50 institutions (32 undergraduate and 18 graduate) for their outstanding game design and development programs.

Compiled by The Princeton Review, one of America’s best-known education services companies, the 2012 list names 10 undergraduate and 10 graduate schools in ranked order and 22 undergraduate and 8 graduate schools as Honorable Mentions. The list is published on The Princeton Review’s website at www.princetonreview.com/game-design.aspx.

The Princeton Review chose the schools based on a survey it conducted in the 2011-12 academic year of administrators at 150 institutions offering video game design coursework and/or degrees in the United States and Canada. The survey, which included more than 50 questions, covered a wide range of topics from academics, curriculum, and faculty credentials to graduates’ employment and career achievements. School selections were based on a comprehensive analysis of data that analyzed the quality of the curriculum, faculty, facilities, and infrastructure, plus the school’s scholarships, financial aid and career services.

Said Robert Franek, Princeton Review Senior VP/Publisher, “It has long been our mission to help students find – and get into – the schools best for them to purse their interests and develop their talents. For the burgeoning number of students aspiring to become game designers, we highly recommend UMBC as one of the best and most innovate institutions to study and succeed in this exciting field. We also salute the faculty and administrators at UMBC and the other schools on our 2012 list for their extraordinary programs and commitment to students. “

We have a streaming feed from the Global Game Jam at UMBC at www.ustream.tv/channel/umbc-ggj

Check it out!

Participants at Global Game Jam 2012 at UMBC listening to the keynote presentations…

« Older entries § Newer entries »