Wednesday, August 26, 2009

[Concept] Coding Tricks

I was reading an article of Dirty Coding Tricks that game developers use to meet deadlines or simply cut down work needed. Here's a few I found interesting (some of which were comments posted by readers):

"At university there was a team (not related to me, but these guys are the perfect example :P) that made a FPS flash game...

For some bizarre reason, the programmer instead of checking if you was colliding with the wall and not allow you go there, he made the inverse, he checked if there was a wall, and allowed you to move parallel to it...

This sparked a bizarre bug: In crossings, you could not actually cross, only turn to the passage on your left or right.

The deadline was closing, and they had no idea on how to fix it...

Then the team writer fixed the issue! He told the artist to draw a animation of hands touching the walls, and then he wrote in the story that the protagonist was blind and needed to touch the walls to know where he was going.

-Hélder Gomes Filho



Back on Wing Commander 1 we were getting an exception from our EMM386 memory manager when we exited the game. We'd clear the screen and a single line would print out, something like "EMM386 Memory manager error. Blah blah blah." We had to ship ASAP. So I hex edited the error in the memory manager itself to read "Thank you for playing Wing Commander."

- Ken Demarest



I was fresh out of college, still wet behind the ears, and about to enter the beta phase of my first professional game project -- a late-90s PC title. It had been an exciting rollercoaster ride, as projects often are. All the content was in and the game was looking good. There was one problem though: We were way over our memory budget.

Since most memory was taken up by models and textures, we worked with the artists to reduce the memory footprint of the game as much as possible. We scaled down images, decimated models, and compressed textures. Sometimes we did this with the support of the artists, and sometimes over their dead bodies.

We cut megabyte after megabyte, and after a few days of frantic activity, we reached a point where we felt there was nothing else we could do. Unless we cut some major content, there was no way we could free up any more memory. Exhausted, we evaluated our current memory usage. We were still 1.5 MB over the memory limit!

At this point one of the most experienced programmers in the team, one who had survived many years of development in the "good old days," decided to take matters into his own hands. He called me into his office, and we set out upon what I imagined would be another exhausting session of freeing up memory.

Instead, he brought up a source file and pointed to this line:

static char buffer[1024*1024*2];

"See this?" he said. And then deleted it with a single keystroke. Done!

He probably saw the horror in my eyes, so he explained to me that he had put aside those two megabytes of memory early in the development cycle. He knew from experience that it was always impossible to cut content down to memory budgets, and that many projects had come close to failing because of it. So now, as a regular practice, he always put aside a nice block of memory to free up when it's really needed.

He walked out of the office and announced he had reduced the memory footprint to within budget constraints -- he was toasted as the hero of the project.

As horrified as I was back then about such a "barbaric" practice, I have to admit that I'm warming up to it. I haven't gotten into the frame of mind where I can put it to use yet, but I can see how sometimes, when you're up against the wall, having a bit of memory tucked away for a rainy day can really make a difference. Funny how time and experience changes everything.

- Noel Llopis"

[Source: GamaSutra.com]

Friday, August 21, 2009

Review: I MAED A GAM3 W1TH Z0MB1ES!!!1

This XBox 360 Live Arcade game, I MAED A GAM3 W1TH Z0MB1ES!!!1 is my definition of a realy simple yet fun game.



From the title of this game (which is almost the only lyrics of the soundtrack), I think you realise what the creator of this game is implying. Games with zombies are the current fad. So yet another zombie game to join the ranks of Left 4 Dead, Plants vs. Zombies, Killing Floor, Burn, Zombie Burn!, etc

And killing wave after wave of zombies really does feel good. This game is the pure essense of it.

FYI, It's going for just 80 points (or about a dollar).

Thursday, August 20, 2009

Concept: Custom TCG cards from your MMO character

The world of gaming is not only on video games on the PC, consoles and portable devices; it also includes board games, miniatures, card games, Trading Card Games (TCGs), etc.

I would saw that video games and card games are being produced based on each other. For example, Magic: the Gathering (TCG) has expanded into Magic Online (PC game), likewise World of Warcraft (PC game) has expanded into World of Warcraft: Trading Card Game and World of Warcraft: Miniatures Game.

However, Sony Online Entertainment's Free Realms has come out with a MMO (PC game), a Physical TCG and a Digital TCG, all at the same and linked them in a unique way.

"What Is a Digital TCG Card?

The Free Realms Trading Card Game is built right into the Free Realms virtual world! Click the card fan icon on the menu dock, and you'll be taken into the TCG.

What Is a Physical TCG Card?

The Free Realms Trading Card Game is also a physical trading card game manufactured by Topps™ and is available wherever trading card games are sold!

The ... Starter Pack contains ..., exclusive virtual rewards and your first-month Free Realms Membership!"

[Source: freerealms.com]


As you can see they have tightly coupled these two TCGs to their PC game and vice versa; and that's not all. The have come up with a new and innovative way to link them together: they allow players to use their character in the MMO to print out cards for the TCGs.

From MMO
Step 1: Dress up your character from the MMO.

Converting from MMO to TCG
Step 2: Your TCG personal card stats are based on your MMO character stats.

To TCG
Step 3: The finished card is ready for printing or use in the digital game.

Step 4: Trade your personal card with friend!

"Sony Online Entertainment has teamed up with trading card company Topps to let players create their own official personalized cards for the Free Realms collectible card game.

The Duelist on Demand Program allows players to turn their Free Realms character into a personalized card for use in the physical version of the tie-in trading card game. Using Topps' print-on-demand technology, players will be able to create and share themselves with friends in a distinctively family-friendly way."

[Source: Kotaku.com]

Thursday, August 13, 2009

New forum for this blog

As suggested by a friend, I have just created a forum for everyone to discuss game development in Singapore. It is still a work-in-progress.


I hope that you enjoy using it. ;D

Saturday, August 1, 2009

Unity - Game Development Tool

Unity (or "Unity3D" as it was first known as). It is currently at version 2.5.

It is a multi-platform game development tool, designed from the start to ease creation. A fully integrated professional application, Unity just happens to contain the most powerful engine this side of a million dollars.

Besides publishing standalone games, it has its own web player add-in (the download is about 9 MB) for browsers and IPhone publishing (at an additional charge). Currently in two versions: Unity Indie (US$199) and Unity Pro (US$1499).

"Unity supports three scripting languages: JavaScript, C#, and a dialect of Python called Boo. All three are equally fast and interoperate. All three can use the underlying .NET libraries which support databases, regular expressions, XML, file access and networking.

Scripting is frequently thought of as limited and slow. But in Unity your scripts are compiled to native code and run nearly as fast as C++. You get the fast iteration times and ease of use everyone loves about scripting languages."

[Source: Unity3D.com]

That seems very believable after viewing their Tropical Paradise demo.

Also, according to some bloggers, it is apparently easy to convert a game written with Papervision3D (Actionscript) to Unity. Something which they mostly do so as to publish their games to the iPhone.

Something to comeback to once I made something with Flash.



Update:

Here are some reviews/comments on Unity:
DevMaster.net - Engine details of Unity
StackOverflow.com - What’s the best indie game development environment?