![]() |
|
Spaces home LightSleeperProfileFriendsBlogMore ![]() | ![]() |
|
LightSleeperGood times!
May 01 Gamefest 2008 is ComingPut it on your calendar: July 22-23 in Seattle. Gamefest is coming! If you've been to Gamefest in the past, you already know it's the ultimate place to get the latest and greatest information on creating games for Microsoft platforms like Xbox 360 and Windows Vista. If you work on games and you haven't been to Gamefest, you're missing something really special. I've already seen some of the proposed talk abstracts, and you can expect some amazing content from excellent speakers.
April 18 I Hate to WaitI admit to a certain fondness for first person shooters. I got hooked on Half-Life, but it was the Halo series that really put me over the edge. I particularly enjoy multiplayer fragfests. Most session-based games these days follow a model where you search for a particular session and either join an existing one or start your own. Either way, players are left waiting for the game to start when the session fills up with a certain number of players.
Players hate to wait, so it's always a good idea to reduce or eliminate wait times. The wait times for sessions can be described fairly simply:
Wait times rise when:
Wait times decrease when:
Games that group players by skill (Halo 2 and Halo 3 are examples) add another factor. The more skill groups you have, the longer the wait times. These factors are mostly in your control as a game designer and developer. If you want to reduce wait times there are multiple knobs to tweak. If you add a new multiplayer game mode, be aware that it will impact session wait times. Keeping sessions short is a great way to minimize waits. There are other ways, too. For instance, allow players to do something while they're waiting: chat, practice their skills, or watch something interesting. Of course, the most important thing you can do is ensure your game is great, because that will improve the overall pool of available players :).
March 28 When It RainsOne of the finest engineers I know, Bruce Dawson, pointed out a fatal flaw in my GDC 2008 string code. Even more devastating, it's not a subtle flaw. This one was staring me right in the face and I didn't even see it. Recall the code:
According to the C++ Standard, string literals can overlap in memory, so the "def" string could overlap with the "abcdef" portion. That much is still true. However, the "u" string is a copy of "def", not a pointer into it. When you declare a string with angle brackets, you have a character array, not a string pointer. You can modify the "u" string to your heart's content and it will never ever modify "s". That's because "u" is a character array, not a pointer.
Here's a revision:
Now we have two string pointers that point at literals. The "def" portion could overlap with the end of the "abcdef" portion in memory, so it's not safe to assume that the pointer uz does not point somewhere within the sz range. Modifying the literal is still not allowed, even though we've declared non-const pointers (2.13.4/2 says "the effect of attempting to modify a string literal is undefined"). Finally, the character array vz contains a copy of "ef" and we can modify vz safely.
As I said when I was giving the talk, C++ is a complicated language. It's up to all of to continue educating each other about the nuances. Sometimes explaining your bonehead mistakes is the best way to continue the education process.
February 27 GDC 2008 SlidesI've had a lot of requests for my GDC presentation from last Thursday. Although I've made the slides available to the good people at CMP for posting on gdconf.com, they aren't available yet. You can find a copy on my personal website by pointing your browser at http://www.tantalon.com/pete.htm.
A couple people mentioned an error in my talk. I showed some code like this:
According to the C++ Standard the string "bcd" could overlap with the string "abcdef". That's incorrect, because "bcd" must end with the null character. I've adjusted my slides to show something accurate:
Now "def" could indeed overlap with "abcdef" and changing "def" could change the "abcdef" string. Big takeaway: don't modify string literals.
February 15 GDC 2008 RecommendationsGDC is next week. It's an event I always look forward to: a chance to see old friends that I've worked with over the years, a chance to hear what's top of mind for game developers, an opportunity to see new technology and hear from some great speakers. Here's a few of the talks that I'll be trying to see:
Ray Kurzweil's keynote
Standing the Test of Time (Sid Meier!)
Any of the Halo3 presentations, particularly Matchmaking in Halo 3
Expect some tasty announcements at the Microsoft XNA keynote.
I also have a feeling this talk will be pretty cool -- if a tad scary: Thrills and Chills: Undefined Behavior in C++.
Hope to see you there!
|
|||||||||||||||||
|
|