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!
Author: olano (Page 3 of 7)
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!
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.