Recent posts by Aesica on Kongregate

Flag Post

Topic: Game Programming / GiTD #44 Theme Suggestions

I don’t know how twitter would help unless you have a lot of followers. Then again, maybe I just suck at twitter.

 
Flag Post

Topic: Game Programming / What's the new programming trend?

OpenFL looks like something I should really be looking into. GitD looks likes a great excuse to try it out!

 
Flag Post

Topic: Game Programming / Troubles with Array lenght!

If everything in your arrays is going to use the same data type (in the case I’m seeing, strings) you should consider vectors instead. Vectors are stricter and will throw errors when mistakes crop up rather than just failing silently like arrays do. They also give you access to autocomplete for elements, whereas arrays do not. Now regarding enums…yes. Use them. They are aweome. To give an example:

private static const ITEM_TYPE_GENERIC:int = 0;
private static const ITEM_TYPE_ARMOR:int = 1;
private static const ITEM_TYPE_RANGED:int = 2;
private static const ITEM_TYPE_SHIELD:int = 3;
private static const ITEM_TYPE_WEAPON:int = 4;
private static const ITEM_TYPE_CONSUMABLE:int = 5;

private function someFunction():void
{
    var itemList:Vector.<Vector.<String>> = new Vector.<Vector<String>>(5);
    var armor:Vector.<String> = new <String>["leatherHard", "rusty", "leatherBlack", "iron"];
    // do the same for vectors with names such as:  ranged, shield, weapon

    itemList[ITEM_TYPE_ARMOR] = armor;
    trace(itemList[ITEM_TYPE_ARMOR][1]); // traces:  rusty
}

Personally though, I wouldn’t ever consider sorting my items like that. Make an item class, then have one of the properties be “type”. Then use enums to assign “type” a value corresponding to the enums. Using the same ones from above, a class would let you do something like this:

var inventory:Vector.<Item> = new Vector.<Item>(40); // our inventory has 40 slots

var healingPotion:Item = new Item();
healingPotion.type = ITEM_TYPE_CONSUMABLE;
healingPotion.name = "Healing Potion";
healingPotion.goldValue = 25;
healingPotion.power = 100;

var blackSword:Item = new Item();
blackSword.type = ITEM_TYPE_WEAPON;
blackSword.name = "Blade of Eternal Suffering";
blackSword.goldValue = 1; // elite gear always seems to have stupid sell costs
blackSword.power = 255;

inventory[0] = healingPotion;
inventory[1] = blackSword;
 
Flag Post

Topic: Game Programming / GiTD #44 Theme Suggestions

N: Robot
V: Build
A: Fighting
Game Mechanic: Turn-Based

Build a custom robot and turn it loose to fight enemy robots—RPG-style!

 
Flag Post

Topic: Game Programming / Happy Programmers Day!

Time for some code revision:

while (!programmersDay)
{
    if (Math.random() < 0.000001)
    {
        workOnProject();
    }
    else
    {
        slackOff();
    }
}
 
Flag Post

Topic: Game Programming / Happy Programmers Day!

I’m going to settle for elegance in simplicity.

while (programmersDay)
{
    slackOff(); // randomly spawns instances of world of warcraft, youtube, twitter, facebook, or other random distractions
}
 
Flag Post

Topic: Game Programming / Need your opinion for a just published game

@wercooler: Several things actually, as long as you don’t mind my harshness.

1) It needs some kind of animation and audio queues to indicate that the player is attacking, as well as something to indicate hits and damage taken by both the player and enemies. I actually didn’t even know I was taking damage at all until the game over hit. The health numbers really don’t count and could probably be replaced with health bars. Polish, polish, polish!

2) Levels. The “play until you die and get a game over” mechanic really doesn’t work in this day and age. Offering levels not only allows players to reach checkpoints, but it gives them a tangible goal to work toward. As it stands now, I suspect many people will just walk away after the first game over, once they see they’ll be starting back at square 1 when they try again.

3) Smiley faces and stickmen are two things a lot of budding developers use, but doing so rarely results in a game people will take seriously. If you choose to refine this game, you should consider replacing them with more aesthetically pleasing assets. Zombies, aliens, etc. That also allows you to utilize a better storyline, too.

 
Flag Post

Topic: Game Programming / GiTD #43 - *Congrats Halysia*

Yeah I suck. Mine got scrapped because I wanted to try out Starling, then decided halfway through that, after getting used to blitting, I really didn’t like working with displayobjects for anything other than UI elements.

Oh well, voting:

1) Fly Horror: Despite the almost complete lack of graphics and silly “storyline,” I rather enjoyed it. My only complaints would be that the character moves too slowly and that I can go outside the game boundary for some reason. Have you considered faster movement, but with less time to complete the objective? Also, does the other guy actually do anything other than get in the way slightly?

2) Slime Horror Dash: Feedback omitted as per developer request.

As for the others:

Flappy Horror: The clicking isn’t very meaningful because it’s pretty easy to “stay afloat” while not going within range of the death walls. Needs a clear goal other than just “harvest body parts.” Maybe have each level provide a “shopping list” of what’s needed to build a homunculus and pass the level. To add spice, certain “creatures” yield more of a certain body part, so you could reward players who harvest effectively. Finally, while I’d like to say that more hazards should be present, I think they might be overly annoying and unpleasantly difficult to avoid, given the current controls.

Earl the Horror: Despite the simplistic graphics, I knew right away what was “good” (the bean-looking things) and what was “bad” (the shuriken-like things) so good job with that. As with Flappy Horror, a quota of beans to collect in order to pass a level would probably be nice. Possible upgrades too, such as more life, less slippery movement, the ability to shoot back, smaller character, etc.

One thing I wanted to say though, as it pertains to all of the games, and most of what we make in nearly every GitD: The “Game Over” mechanic is pretty much obsolete, and players today generally don’t seem to be into it. Back when I played NES/SNES games it was fine, but games today are all about encouraging you to keep going. The trend seems to be:

1) Get sent back to the nearest checkpoint you last visited, with progress rolled back to when you triggered that checkpoint. This is more for metroidvanias than linear games, as it encourages you to perhaps try a different route, strategy, etc.

2) Fail the level, but keep any currency, exp, upgrades, etc. They encourage you to try again, typically after picking up some upgrades to make the next attempt a bit easier.

I realize the scope of GitD doesn’t generally allow for multiple levels, and “the big game over” is significantly easier, but I just wanted to put that out there.

Having said that, nice job guys! :D

 
Flag Post

Topic: Game Programming / Time spent on games

I spent about a year making Eisydian Saga, which is pretty much crap, but was a huge learning experience for me. First, I made it in AS2, then ported it to AS3 when I realized it wasn’t going to be viable in AS2. Casual/spare time project. I’ve been working on the “sequel” to it over the last year or so.

Note: By “sequel” I really mean a replacement, meant to tell the story properly and combine the other two sequels I had planned because I want to move past shooter games after this is done. I should note that while ES was made at a very leisurely pace, the sequel is coming along even more slowly than that. I find it hard to motivate myself lately, given how mediocre flash games seem to do these days unless they’re scumbag MMOs.

What can I say? Shinies like World of Warcraft, Star Trek Online, and a huge pile of sci-fi books tend to distract me and suck up most of my free time these days. :)

 
Flag Post

Topic: Game Programming / The future of flash

Originally posted by EndlessSporadic:

I’m going to throw all of the flash fanboys under the bus here because they need to wake up and smell the coffee. Flash is dying as a medium for making profitable and respectable games. […]

Technically, that’s not throwing anyone under the bus. That’s simply stating that Flash game development isn’t what it used to be.

 
Flag Post

Topic: Game Design / Eisydian Saga - A Post-Mortem

So yeah, I decided to write up a post-mortem analysis of a game I made over a year ago to both focus my own thoughts and to perhaps help out other devs. Anyway, it’s here if anyone’s interested in reading it:

Click Me!

Let me know what you think and more importantly, what kinds of things I should add to make it more useful. Thanks guise! :D

 
Flag Post

Topic: Game Programming / Demo PaintProgramming

Not a lot of color choices, not a lot of pen size options. About the only things I can draw decently with this are dicks.

 
Flag Post

Topic: Game Design / Drawing Quality Training

3 “uses less colors” because it’s primarily background graphics. You can’t make background graphics that are over-saturated because then they become difficult to distinguish from the foreground graphics. 3 is easily the best one of the lot in terms of being useful for game development. 5 could only be justified as an RPG boss or static image, 4 is pretty much useless, 2 could work as a mediocre rpg battle background, 1 could actually work pretty well in a sidescroller, and 0? Well, I’ve never been a fan of ultra-pixelated graphics, so I couldn’t tell you.

 
Flag Post

Topic: Game Programming / Need your opinion for a just published game

Performancewise, it’s great. Starling (I’ve been playing around with it too) isn’t going to lag until you get a lot of things going on onscreen or if your computer is crap. Designwise, however… Yeah, sorry, just not a lot going on that keeps my interest. The graphics are cute, the sounds are nice, but the actual gameplay and the lack of any kind of noticeable challenge increase had me bored after about 50 eggs, where I just gave up.

Rotten eggs as suggested, different-sized eggs that fall at different speeds, variation in the bird’s drop rate + movement rate, etc. Good places to start.

 
Flag Post

Topic: Game Programming / GiTD #43 *Flying Rotating Horrors*

Oh my bad, I thought you were posting a second suggestion for some reason. :D Rotating, huh? Looks like the perfect excuse to try out Starling!

 
Flag Post

Topic: Game Programming / GiTD #43 *Flying Rotating Horrors*

So what’s the theme? The announcement says the 21st and it’s the 22nd. At least where I live. :o

 
Flag Post

Topic: Game Programming / Any ways to speed up exporting of SWF when debugging movie in Flash?

Do you have a lot of audio or other large file assets? I find that things always compile pretty quickly for me until I add the really big stuff, so you may want to put those things off until everything else works fine if you can help it.

 
Flag Post

Topic: Game Programming / Problem with loop and buttons

Originally posted by NineFiveThree:

As the enemies probably play an important role in your game, you’d want to create a class for them anyway.

Please do this. Storing your enemy data in an array like that is going to make working with enemy data much harder than it has to be. It’ll also make adding any new values much easier as development continues.

 
Flag Post

Topic: Game Programming / GiTD #43 *Flying Rotating Horrors*

Noun: Dragon
Verb: Replicate
Adjective: Procedural
Game Mechanic: Collection (I was going to say turn-based too, but it’s already covered!)

 
Flag Post

Topic: Game Programming / As3, how do i write this?

@darkjonas8: You forgot to specify the type, both in the declaration and the instantiation.

var aBunchOfGrassBlocks:Vector = new [SFoliage1, SFoliage2, SFoliage3];

Should be…

var aBunchOfGrassBlocks:Vector<Class> = new <Class>[SFoliage1, SFoliage2, SFoliage3];

Originally posted by Shake_N_Baker:

The extra pair of brackets made it an array of arrays while it was expecting an array of classes.


“Yo dawg, I heard you like arrays so I put an array of classes into an array so you passed in an array of arrays of classes when it expected an array of classes.”

Sorry, I couldn’t help myself. :D

 
Flag Post

Topic: Game Programming / As3, how do i write this?

Oh neat, I wasn’t aware of the global function. Plus, my mind (for whatever reason) automatically inserted a “new” as I read over that part, so I was like “why are you passing in an array where the constructor expects a uint?”

 
Flag Post

Topic: Game Programming / As3, how do i write this?

Is this what you’re trying to do?

var aBunchOfGrassBlocks:Vector<Class> = new <Class>[GrassBlockA, GrassBlockB, GrassBlockC];
var i:int = Math.floor(Math.random() * aBunchOfGrassBlocks.length);
var myGrassBlock = new aBunchOfGrassBlocks[i]();
addchild(myGrassBlock);

Edit: player_03 beat me to it, but yeah. Roughly that, although I’m not sure that version of filling the class vector will work.

 
Flag Post

Topic: Game Programming / Squeezing as much audio into a game

Originally posted by truefire:

Nope. Just nope. Java has a lot of problems and they’re not going anywhere. Ever loaded a Java app and had your browser crash with no explanation? Yeah, I thought so.

Not to mention the updates never seem to install properly.

 
Flag Post

Topic: Game Programming / Squeezing as much audio into a game

Originally posted by EndlessSporadic:

Dont use MP3. You need to license those. If possible, switch to ogg format.

What? You really can’t use MP3 files in flash games? Or am I just misinterpreting something?

 
Flag Post

Topic: Game Programming / Squeezing as much audio into a game

Change the bitrate, which is usually listed as something like “128 kbps.” The lower you take it, the smaller the file but also, the worse the sound quality. Also, try to use “mono” or “joint stereo” (if you need stereo) instead of “stereo.” You’ll have to play around to find which bitrate you feel is a good compression-vs-quality tradeoff.