Showing posts with label concept. Show all posts
Showing posts with label concept. Show all posts

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]

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]

Sunday, May 17, 2009

Concept: Procedurally-generated content

Designing content (like levels, models, maps, items, etc) by hand can take a lot of time, so this acts as a limit the amount of detail that is put into a game.

The alternative is to generate the content procedurally, which means to create programs that do the design for you in a random and believable way.

One early example is the games Diablo which always create new areas and items so that players never have the same experience twice.

Here's a video that demonstrate this concept:



There is a HQ (Higher Quality) version which you can view by clicking on the "HQ" button on the bottom right of the video.

If you like it, you can download it as a screensaver.
(Note: press "F1" for settings)

Monday, May 11, 2009

Concept: Making money from advertising

As an indie developer, one possible source of revenue is from advertising.

Games are made available freely so as to generate web traffic to the site, which generates a small amount revenue each time users view the site, however this revenue is generated on each visit and does not require any purchase from players.


There are two possible routes for this: self-hosting and third-party hosting.

With self-hosting, the creator gains all the revenue from advertising and does not require to share it with anyone else. However he has to pay for the hosting of his application, manage the advertisements (usually through Google's AdSense) and handle publicity of his game.

With third-party hosting, the creator can publish his game to one (or more) of the many game sites which will host if for free, manage the advertisements and help with the publicity of the game by listing it on their site (and sometimes providing reviews, ratings and usage statistics). In exchange for this, the revenue from advertising is shared.


Here are some such game sites:


Newgrounds: They have been paying for embedding advertisements into Flash games for a while, and recently (on 14 May 2009) started paying for any game (or content like animations, music, or even blogs) hosted on their site.
If you make browser games, you know the Flash portal Newgrounds. They’ve had their own embedded ads service since about May 2008, but now they’ve kicked it up a notch. Newgrounds now automatically share their ad revenue whether you sign up for the ads or not.

For example- I made a game recently and got it sponsored by a third party. The terms were that I wasn’t allowed to embed any ads in the game. So I didn’t, there are no ads in the game. Now Newgrounds will pay me regardless just because my game’s on their site. Not just games either, ad impressions come from audio submissions, animations and even my damn userpage. I made 3 cents for having a blog. Thanks!

[Source: TIGSource.com]

GameJolt: Unlike other sites, they deal with not only Flash games but freeware too. They are just one of the new independent gaming sites that have been recently appearing.
Their new Ad Revenue Sharing plan will go into closed beta very soon, at which time every member who has signed up to the site and uploaded at least one game will go into a hat to join the beta and start earning a whopping 50% of the ad monies.

[Source: IndieGames.com]

Kongregate: A flash game site that has been around since 2006, they have built quite a reputation for themselves. Sadly, unless you host on their site exclusively and use their API, the percentage of revenue that they give you is much lower than other sites.
By default, all developers receive 25% of the ad revenue generated from their games. This includes all ads within the games and any potential ads on the game page that may be added in the future. Games that are integrated with all of Kongregate’s APIs earn an additional 10%, and games that are offered exclusively on Kongregate’s site earn an additional 15%. Thus, it’s possible for a game to earn 25%, 35%, 40%, or 50% of ad revenue.

[Source: Kongregate.com]

BigPoint: They host both Flash and downloadable games, however are very selective on game submissions. Their revenue model is not visible and probably depends on the type of game.
We'll take care of the success of your game. In addition, we offer promising developers interesting financing models.

You profit from business and marketing cooperations for single titles or
for your entire portfolio.

In this way we can support you with professional advertising campaigns and an established distribution network with some of the largest media partners and portals, such as Pro7Sat1 AG, Yahoo, Web.de, etc.

[Source: BigPoint.net]


There are a lot more of such sites. And while you will not make a ton of money, they are a good way to build a reputation for yourself or your indie company.

Friday, May 8, 2009

Concept: Customizing Games for Donations

Daniel Benmergui, has released several Flash games that can be downloaded and played for free.
The unusual thing is that he also offers to customize two of them: Today I Die and I Wish I Were the Moon if you donate to help him build his next game.

  • $27 … and you become an silver sponsor of my next game and your name will appear in the credits, including a link of your choice [17 available]

  • $75 … and I’ll make a “pixelated”, moon-style version of yourself or whoever you want [5 available]

  • $497 … and make you a custom version of I Wish I Were the Moon or Today I Die, creating both characters after whoever you want, making the game the most original gift ever [2 available]

  • $995 … including a new ending of your liking! [Only 1 available]
[Source: Ludomancy.com]
That is a very interesting idea. An interactive gift in the form of a game.

And, people who donated get something nice and special.


By the way, I found "Today I Die" (puzzle) game play where it uses words as part of the game to be unique. Substituting words cause the background and certain object to change allowing to progress further. Really requires thinking outside the box.

Tuesday, May 5, 2009

Concept: Complexity... the good and the bad

An ex-colleague and good friend of mine, Andrew posted the following, and I thought it would be good to share it. Here it is paraphrased to be more generic:
There are two types of complexities in games: inherent complexity and emergent complexity.



The inherent complexity is inherent within the basic mechanics of the game. Those things that you need to know in order just to be able to play it. This complexity includes the rules and interface to play the game.

In a board game, this complexity is a necessary evil as it is what creates the game in the first place. It defines the shape of the board, the pieces and the basic constraints on their movement. To play the game you must understand these constraints. (Perhaps this is less so in computer games where the interface prevents you from straying beyond them, but an overall big picture view is still really quite essential even if some details can be left till later).

To be able to play the game you need to know this. Without it you can still be clicking away but much of what is going on around you wont make sense, and I'm not sure that you could be considered to be 'playing' any more than a monkey behind the wheel of an out of control truck could be considered as 'driving'.



Then there is the other type of complexity, emergent complexity.

This includes our understanding of the consequences of the basic mechanics, and the strategies and counter-strategies we apply to playing the game.

If the inherent complexity is the game board, then emergent complexity is the game that is played upon it, for it is but a function of the various strategies, techniques and styles that players come up with given the constraints imposed upon them by the basic game mechanics.



There is a very critical difference between the two types of complexity and it is this difference that makes inherent complexity bad and emergent complexity good.

Inherent complexity is a roadblock that must be passed before a player can participate in the game. The bigger the barrier the fewer who will pass it. Learning the details that make up the inherent complexity will not let you compete better, it will merely let you compete.

It follows that we would want to minimize this aspect.

I wont argue that there is a certain satisfaction - especially for the geekier among us - in learning systems of byzantine complexity and memorizing vast tables of obscure statistics and the such, but I think its accurate to say that for the most part players would like to get their basic training out of the way and get down to the real business of playing.

Emergent complexity does not prevent you from playing.

In fact it is the secret sauce that keeps you playing, because every time you play you learn a little more about the game. Something you think you did wrong this time and are eager for next time to try and correct it. Some new idea you want to try applying in the next game.

You will notice I use the words 'think' and 'idea' here. These are not cold hard facts to be learned, instead these are subjective. They are opinions, styles, choices. Making these choices is playing the game.

Eliminating the emergent complexity means eliminating these choices. Eliminating the emergent complexity means eliminating the gameplay.

So I want people to minimize the inherent complexity and maximize the emergent complexity. Because while the inherent aspect is the price of the ticket, the emergent part is the game itself.

To finish with an example, take a look at the games of Chess and Wei Qi. Both have very simple inherent complexity but extremely high emergent complexity. They take but an hour to learn yet a lifetime is needed to master them.

I gather that both games still enjoy a certain level of popularity despite having been released quite a while ago.

[Source: forums.sjgames.com]
With this in mind, I always aim to design games that are extremely simple to get started with, but have a lot of depth that can be slowly learnt over time.

I think this is the simple reasons that some good games become so popular, and other good games rarely have more than a small fan following.


Make a game with too much inherent complexity and few people will finish learning to play it, whereas if you make a game with too little emergent complexity and most people will get bored after playing it a while.