Geeks Who Shower



Gooey Relationships
posted March 03, 2009 by eedok
World of Goo holds a lot of parallels to relationships. Especially the bridges, as ones with strong bases tend to go further, when they start to get shakey it's best to fix the shake as adding stuff on top at this point will just cause it to collapse, and often the simplest ones tend to last the longest.




Adding Acceleration to Flash Game U's Top Down Drive
posted January 31, 2009 by eedok
Lets start this off with the example from the book (if you own the book ActionScript 3.0 Game Programming University you can get files here)

You may notice several things that just don't feel right with it, but for today I'm just going to look at one, that being there's no acceleration for the vehicle starting/stopping.

So first off, we're going to have to find the speed in the actionscript, it'll look something like this:
static const speed:Number = .3;

we're going to want to change this to a variable, and since speed is going to be continuously applied instead of just when there's user input we're gonna change it to 0(at rest): private var speed:Number = 0;

Now we need to add the variables needed to apply the acceleration, so I'm going to throw in the acceleration variable, a max speed (just higher than the old one so it'll be a bit faster ;)) and a friction variable which will slow the vehicle down when the accelerator isn't being applied:
static const acceleration:Number = 0.002;
static const friction:Number = 0.0001;
static const maxSpeed:Number = .4;

So now with your variables set up and your vehicle stuck if you try to run the code now, we should restructure the logic. So we need to find the part where the car is moved which is here:
// move car
if (arrowUp)
{
    moveCar(timeDiff);
    centerMap();
    checkCollisions();
}

Now we need to restructure this to make it so the car will move no matter what the input, and that hitting the up arrow will accelerate the car:

// move car
if (arrowUp)
{
    speed += acceleration * timeDiff;
    if(speed > maxSpeed)
    {
        speed = maxSpeed;
    }
}
moveCar(timeDiff);
centerMap();
checkCollisions();

Now we add some acceleration decay for when the accelerator is not being held down:

// move car
if (arrowUp)
{
    speed += acceleration * timeDiff;
    if(speed > maxSpeed)
    {
        speed = maxSpeed;
    }
}
else //decay acceleration
{
    speed -= friction * timeDiff;
    if(speed < 0)
        speed = 0;
}

moveCar(timeDiff);
centerMap();
checkCollisions();

to finish this off, we're going to make a bit easier to stop since now the car doesn't immediately stop when you let go of the accelerator, so I'm going to make a brake, which we're going to bind to the space bar. So first we need to declare our braking power:

static const braking_power:Number = acceleration * 2;

then we need our key for the brake:
// game variables
private var arrowLeft, arrowRight, arrowUp, arrowDown,spaceBar:Boolean; //spaceBar added to this

then we need to modify the key up and key down functions to add in the new key:
// note key presses, set properties
public function keyDownFunction(event:KeyboardEvent) {
    if (event.keyCode == 37) {
        arrowLeft = true;
    } else if (event.keyCode == 39) {
        arrowRight = true;
    } else if (event.keyCode == 38) {
        arrowUp = true;
    } else if (event.keyCode == 40) {
        arrowDown = true;
    } else if (event.keyCode == Keyboard.SPACE) { //Space bar logic added here
        spaceBar = true;
    }
}

public function keyUpFunction(event:KeyboardEvent) {
    if (event.keyCode == 37) {
        arrowLeft = false;
    } else if (event.keyCode == 39) {
        arrowRight = false;
    } else if (event.keyCode == 38) {
        arrowUp = false;
    } else if (event.keyCode == 40) {
        arrowDown = false;
    } else if (event.keyCode == Keyboard.SPACE) { //Space bar logic added here
        spaceBar = false;
    }
}

and lastly modify our logic to accomidate for braking:
// move car
if (arrowUp)
{
    speed += acceleration * timeDiff;
    if(speed > maxSpeed)
    {
        speed = maxSpeed;
    }
}
else if(spaceBar)
{
    speed -= braking_power * timeDiff;
    if(speed < 0)
        speed = 0;
}
else
{
    speed -= friction * timeDiff;
    if(speed < 0)
        speed = 0;
}

moveCar(timeDiff);
centerMap();
checkCollisions();

and here's the end result:


(I know that acceleration is covered in the next chapter but I don't like the way he implements acceleration decay and doesn't have a brake)



No glory without challenge
posted January 29, 2009 by eedok
I've been asked several times why I don't like Fallout 3. To be honest, yea the concept of taking guys heads off and having them fall to pieces is cool, it becomes uninteresting when all it takes is pretty much hitting make guy fall to pieces from a menu (or the alternative clicking your mouse when your cursor is over them). So what I'm saying is I like my games with at least a bit of a challenge (I want to be the guy is a bit excessive), so it at least feels like my accomplishments have some meaning.

I don't understand how people can have so much fun with a game that pretty much bends itself to let you beat it. To illustrate this point I'll compare the games as schoolyard adversaries, with tough games being tough guys and Fallout 3 as a crippled kid. There's chances that even crossing paths with the tough game means it'll beat you up, and quite possibly steal your lunch money, and you could just quit right then and cry then only stick to easy games and give Fallout 3 and Bioshock undeserved praise, or you could reflect on what went wrong and go back after the tough game. The game may end up humiliating you again, but this is no reason to quit at this point, you should be getting back up and trying again. If the game is tough enough, the mere act of making progress will feel like small accomplishes, and these will quickly add up, some say it's masochism, others say it's you just wanting to miss out on more school through suspensions but we'll ignore them for the sake of personal growth. One day you'll finally beat this tough adversary and the personal glory you receive from this is unmatched, and if the adversary has some fame about him, the side cheering you get from others who have failed against them is a nice bonus. Compare this to beating up the crippled kid and you see why I see no glory in it.



10 years without a new genre rebuttal
posted January 01, 2009 by eedok
Recently I read an article on how there hasn't been a new genre in 10 years. In which the arguments presented seem to have a few fundamental flaws. The first is how genres come to be, generally a genre is just a form of game classification grown large enough to need to be easily distinguished from games unlike them. In 1982 people most likely called Pitfall an action game, whereas in the early 90's it'd be classified as a platformer as by that time a large number of similar games had popped up by the early 90's.

Another good example is how the FPS genre came to be. In the 70's Space Invaders came out and caused such a ruckus that it inspired many similar games which were pretty much Space Invader clones. After this the games evolved to be different enough from Space Invaders to be considered a clone but similar enough in game style that the shooter genre was born. Fast forward to the 90's, where Wolf3D and Doom came out and inspired a bunch of games often labelled as Doom clones. The gameplay evolved again and the need to classify Doom style games from their parent genre created yet another subgenre the first person shooter, which today is probably one of the most popular and mainstream genre.

An example of one of these subgenres to pop up within the last 10 years would be Tower Defense, which I believe started as a Warcraft 3 mod but since then has inspired several hundred games across several platforms. Another up and coming genre that has no set name but is generally referred to as an open world or sandbox games is evolving from games which would previously be labeled Grand Theft Auto 3 clones. Another couple examples of yet to be definitely named genres are genres I like to call physics puzzlers which has games like Boom Blox, Line Rider, Totem Destroyer, or Spate(I'll link once it's public). Then there's games which I've been calling play with yourself games which include games like Cursor *10, Chronotron, or even Choke on my Groundhog you Bastard Robots.

So in summary the only way you're not seeing the recent game genres is if you're putting on your blinders so tight you're ignoring the similarly typed games of a broader classification just waiting to be more tightly classified.


Zompocalypse Episode 1 Review
posted December 20, 2008 by eedok
Published by: Toadtrip
Developed by: Toadtrip
Genre: Awesome
Number of Players: 1/2
Release Date:
October 26, 2008
Platform: PC

Giant wall of text reviews from shitty games with high numbers tacked on them distracted me from this game for 46 days too long, and might as well cancel the game of the year awards as this game deserves all of them

As for the facts, this is a 2.5D shooter game which you can play with a friend if you want(joysticks are recommended), and the object of the game is to massacre all the zombies. You can do so with your weapon which you can swap out with for bigger weapons when you reach a new experience level, and gain upgrades for the weapons which will be discussed below. This game was made by 2 people from Australia which is odd as Australians are notorious for voting in people who hate video games with violence and foul language.

Now with all the facts out of the way, here's why Zompocalypse is awesome:
- No story to waste your time
- Shit tons of Zombies to murder
- The playable characters have awesome names (Sergeant Chuck McPain and Captain John Smackdown)
- The characters say important things like eat lead motherfuckers instead of stupid shit like reloading
- A well shaped difficulty curve
- Flawless game flow
- Lots of enviromental elements to aid in your zombie massacre
- The game doesn't require a monster PC to run it and actually works (no DRM, online activation or CD check)
- You regain your health by rescuing female survivors and having them flash you (just like in real life)
- You kick babies to get weapon upgrades


Conclusion
Download the Demo/Buy it now, seriously quit reading this review and play it

If you've made it to this sentence without playing the game, I consider you a failure as a person

∞∞∞∞∞/10



<< Newer Entries Older Entries >>