viagra online | Tramadol | levitra
XanaxAdderall onlineLevitraADDERALL onlineadderall without prescriptionPhentermine onlinetramadol onlinevalium online

Archive for September 23rd, 2007

Playbalancing – any game can be made “fun”

I revisited the box-stacking game today. I know I not a great game designer and it’s not for a lack of ideas. I lack that “perfect-gameplay-from-the-user’s-perspective” mode.

I can see how box stacking could be fun. Stacking a common game mechanic used in Jenga and McDonald birthday parties (remember those environment destroying Styrofoam boxes?!!). To make a game fun, it’s all about the HOW – the design and playbalancing / tuning aspect.

Here’s how I think box stacking can be “fun”:

1) Instead of random generating box sizes, I decided to create a predefined box list. There will always be a way to win and the path to winning won’t be horribly lopsided or next to impossible. With random box sizes, some games become trivial while others become frustrating.

Catan, a board game, uses dice. With dice, the number distribution resembles a bell curve but the game is highly dependent on chance. The game can also be very frustrating or incredibly easy depending on the dice rolls. Do I like this methodology? I’ll answer that by telling how often I play Catan on XBLA these days: ZERO. There is an option for “dice drawn from a list” that makes the game more fair and skill-based.

2) Skill-based progression. Even with 5 meager levels, I slowly increase the difficulty by raising the goal height and providing more boxes of slightly larger sizes. Regardless, stacking becomes more difficult, but is achievable with enough skill…. This brings about the debate: Chance vs. Skill.

Games like Blackjack are all about chance. The only proven method of beating blackjack is through card counting a fixed number of decks (no random shuffle). Certain games provide the ILLUSION of skill, but are mostly based on chance.

I don’t think video games should be based on chance… board games + card games can be due to their social / competitive nature. Video games are often played solo and need some skill element. What I don’t want is old-school retro pixel-accurate difficulty.

So is the box-stacking game any fun? Not really. The first level is challenging and provides a few sweaty palm moments, but after that it becomes REPETITIVE.

The repetitive nature of the gameplay is why I gave up Catan and still play Carcassonne which is deeper and more complex (multiple paths to wins). Another analogy is to compare Risk (basic gameplay) to Advance Wars (one of the greatest turn-based games). Risk is about chance and some skill…. roll some dice and choose continents wisely. It’s social. It’s easy to play. It’s a pretty stupid game.

Advance Wars is highly refined and requires deeper thought once past the first two levels. It would make a TERRIBLE board game as it’s too complicated for any sort of social pick up and play mode, but it makes for a FANTASTIC single player experience.

I do think physics-based gameplay provides a deeper single player experience than many other mechanics, but in the context of box stacking it is used incorrectly.

4 comments September 23rd, 2007

Box2d Editor

While I was finishing up the game logic part of my second LineWorld experiment, I discovered I HATED manually creating levels by hand (i.e C++ code)

So I decided to design a simple “draw and export” tool that allowed the current Box2D world to be exported into C++ AND Lua.

Binaries and source available at SourceForge. Please use CVS to get the latest source as the .zip files will be at least a version behind.

Unfortunately, joints aren’t supported yet (almost). The sample C++ export code looks something like this:

//Box 2d Editor export by Casually Hardcore Games Inc.
b2Body* b0 = NULL;
{
b2BoxDef sd;
sd.extents.Set(2.5,5);
sd.density = 0;
sd.friction = 0.2;
sd.restitution = 0;

b2BodyDef bd;
bd.position.Set(-117.887,21.2296);
bd.rotation = 0;
bd.AddShape(&sd);
b0 = world->CreateBody(&bd);
}
b2Body* b1 = NULL;
{
b2BoxDef sd;
sd.extents.Set(2.5,5);
sd.density = 0;
sd.friction = 0.2;
sd.restitution = 0;

b2BodyDef bd;
bd.position.Set(117.651,17.0501);
bd.rotation = 0;
bd.AddShape(&sd);
b1 = world->CreateBody(&bd);
}
b2Body* b2 = NULL;
{
b2BoxDef sd;
sd.extents.Set(2.5,5);
sd.density = 0.5;
sd.friction = 0.5;
sd.restitution = 0.1;

b2BodyDef bd;
bd.position.Set(-111.602,20.6748);
bd.rotation = -0.361298;
bd.AddShape(&sd);
b2 = world->CreateBody(&bd);
}

The Lua looks like this:

-- Box 2d Editor export by Casually Hardcore Games Inc.
local box2d = Musicala.Box2dManager:getSingletonPtr()
local world = box2d:getWorld(0)
local box = b2BoxDef()
local circle = b2CircleDef()
local poly = b2PolyDef()
local bd = b2BodyDef()
box = b2BoxDef()
box.extents:Set(2.5,5)
box.density = 0
box.friction = 0.2
box.restitution = 0
bd:AddShape(box)

bd.position:Set(-114.571,20.2334)
bd.rotation = 0
local body0 = world:CreateBody(bd)
bd = nil
bd = b2BodyDef()

box = b2BoxDef()
box.extents:Set(2.5,5)
box.density = 0
box.friction = 0.2
box.restitution = 0
bd:AddShape(box)

bd.position:Set(114.187,18.812)
bd.rotation = 0
local body1 = world:CreateBody(bd)
bd = nil
bd = b2BodyDef()

box = b2BoxDef()
box.extents:Set(2.5,5)
box.density = 0.5
box.friction = 0.5
box.restitution = 0.1
bd:AddShape(box)

bd.position:Set(-108.263,19.8568)
bd.rotation = -0.273016
local body2 = world:CreateBody(bd)

Add comment September 23rd, 2007

Website crashed, some files lost, and still tons of comment spam!

Got a new version of Musicala with a neat Box2D editor to post….

Add comment September 23rd, 2007


Calendar

September 2007
S M T W T F S
« Aug   Nov »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Posts by Month

Posts by Category