Articles by olano

You are currently browsing olano’s articles.

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…

Microsoft is offering a great incentive for Global Game Jam teams at UMBC who make a Windows Phone game this weekend: a Windows Phone. Come early Friday (at 4pm) to UMBC ENG 005 to see a pre-jam demo on developing Windows Phone games. There will be a Microsoft representative on site this weekend to help you out if you have problems, and any team that makes a Windows Phone game gets a free phone!

Or sign up online and come at 5pm for any of the other ways of developing game jam games: Microsoft XNA Game Studio, Flash, Unity (free Pro trial available for game jammers), GameMaker (free HTML 5 version for game jammers), or any other freely available game development tools.

To help everyone get ready for Global Game Jam 2012 this weekend, here’s a shout-out video from around the world. UMBC is at about the 4:36 mark.

 

Want to see what you can do in 48 hours? Game portfolio feeling a little thin? Have a feeling you’ll need a break by the time you’re two days into the Spring semester? Well, the Global Game Jam is entering its 4th year, and for the 4th year, UMBC will be one of the world-wide host sites January 27th-29th.

This is a 48 hour event, where teams from around the globe work to each develop a complete game over one weekend. The first year had 54 sites in 23 countries. The second year had 124 sites in 34 countries. Last year was up to 169 sites. The UMBC site is open to participants at all skill levels, and it is not necessary to be a UMBC student to register. Just go to <http://globalgamejam.org/> and register for “United States – Maryland – Baltimore – UMBC”. Participation will be limited to the first 40 registrants.

The jam will start at 5PM on Friday, January 27th in the UMBC GAIM lab, room 005 in the ITE building. At that time, the theme for this year’s games will be announced, and we’ll brainstorm game ideas and form into teams. There is no need to come as a team: each individual has an equal chance to pitch their game ideas, and you can join the team whose game you like best. Teams will have until 3pm on Sunday, January 29th to develop their games. We’ll have demos of each game and selection of local awards, wrapping up by 5pm Sunday. Thanks once again to generous support by Next Century, there is no registration fee for the this site, but you must register for the UMBC site in advance at www.globalgamejam.org.

Hope to see many of you there!

« Older entries § Newer entries »