Recent posts by Aesica on Kongregate

Flag Post

Topic: Game Programming / GiTD [#50] Voting

Holy crap!

Hey cheng3939, congrats on Aisleen making it to the front page!

Edit: ! Game in Ten Seconds and Carpe Diem made it, too! Bravo, guys/gals/etc! :D

Flag Post

Topic: Game Programming / Need a Balancing Mechanic

Originally posted by BrainpanSonata:

Maybe tie the currency system into a separate set of checkpoints that award you currency based on how much HP you have at the time?

Kinda my thoughts on this. It seems to me like having money == life is setting yourself up for a trainwreck. As the difficulty goes up, it’ll get harder and harder for the player to afford anything and thus, make it harder and harder to progress. Just my thoughts, though.

Flag Post

Topic: Game Programming / GiTD [#50] Voting

Originally posted by JohannasGarden:

And keep coming back, please~having this kind of energy in GiTDs was really wonderful! :)

Yeah, I seriously hope the future GitD contests can have this level of of participation. I may have missed getting an entry together this time around, but it’d be nice to have a decent amount of competition like this for a future contest down the road.

Flag Post

Topic: Game Programming / GiTD [#50] Voting

I meant to enter this, but yeah, I suck. So instead, all I can really do is vote:

1st: Aisleen - This was pretty much a no-contest decision for me, as this particular game was not only extremely well-done for a 10-day competition, but also, the subject matter really resonates with me. One thing worth noting is that, if you're lucky enough and you pick the right cards via quick sketching, etc (you want Wanderers, Inspirations, etc) you can set yourself up for an endless turn. This game rocks, please expand on it even more. :)

2nd: Extreme Electronic Invasion - I'm a sucker for bullet hell games, and that's pretty much what this reminded me of, except for the fact that you're not shooting back, but rather, just trying to not get hit. Decently polished too.

Honorable Mention: Carpe Diem - I almost voted this as 2nd, as it looks to have a ton of content that I can't realistically look at before the contest ends.

Well done, everyone. :)
Flag Post

Topic: Game Programming / AS3 - Movieclip will not remove itself




Are the same, and both are indeed the correct way to have a movieclip remove itself. If it’s not working, then I think we’re missing something from the bigger picture. Could it be that you’re calling parent.removeChild(this) from something like a button or something else instead of the actual movieclip you want to remove? Because doing so would only remove the button, which could be the problem.

Flag Post

Topic: Game Programming / [AS2] How do you set depth height limit?

Even if you don’t want to use blitting (you should learn to use it, it rocks) AS3’s layer control is far superior to AS2’s.

Anyway, onto AS2: EndlessSporadic gave you what you need. You want to create containers (empty movieclips) and add those containers to your stage (or ideally, to yet another main container, which will let you remove the entire gamefield in one go). Then, add things like the character, enemies, hud, backgrounds, combat text, etc to their appropriate layer. With good layer management, the depth and order of which things get added ceases to matter.

Flag Post

Topic: Game Programming / Collision

It looks like what you're trying to do is effectively move the player away from the walls at the same speed it moves when it collides. This means your character won't usually end up flush against the wall, but a distance away since you're effectively undoing the movement. Here's what I mean:

// Let's assume the following:

character.x = 5;
characterSpeed = 10;

// Now, let's say the left side of the wall is located at 9 along the x axis
// Character moves 10 pixels, going from x == 5 to x == 15
// Collision is detected, so character is moved back to x == 5
// Thus, character appears to be too far away instead of being flush against the wall
What you really want to do is push the character back just enough to have it at the edge of the wall:
character.x += leftWallX - character.x;
Now, character.x == 9 -- smack up against the wall where it should be. This same principle applies to the right, bottom, and top parts of walls, too.
Flag Post

Topic: Game Programming / Games too big for the computer screen...

The worst culprits in this case are those nasty pay-to-win MMOs, which you’re frankly best off not playing in the first place. Take it as a blessing in disguise. :)

Flag Post

Topic: Game Programming / What is a better design choice?

Click (anywhere on the screen) while the text is typing out to finish it immediately. That’s what I both prefer and use. A button to skip the entire dialog sequence entirely is ideal too, because even though you spent time writing the story, some people will want to skip it on their first playthrough and that’s their choice. Even people like me who enjoy stories will want to skip it on subsequent playthroughs because we already know the story. So yeah.

Flag Post

Topic: Game Programming / Game state to String

Copy/paste is tacky and really not any easier than using the FileReference class. FileReference lets you use the load/save file browsing menus native to your user's OS to load or save game states. Serialize your game data to a ByteArray, then save the ByteArray using FileReference. It's really easy.

As a bonus, if you get in the habit of serializing your game state data into a ByteArray, that same ByteArray can be saved as either a SharedObject or be exported via FileReference. Two birds one cu- ...err, stone.
Flag Post

Topic: Game Programming / GiTD [#47] Voting

1st: Crayon Cat
2nd: Battle cats

Crayon Cat: I’m not sure if this is a bug, or if the wings just spawn randomly, but on my first playthrough, I died after a decent-length run. On the second playthrough, the wing-like things (which I assume is the game finisher) were there right away. It wasn’t clear if I actually “won” or if something else was going to happen, but never did. Still, not bad at all.

Battle Cats: Not bad, no bugs from what I can tell either, so good job on that. If I may though, there’s too much RNG. I think the game could do a lot better if some sort of strategy element could be introduced so the player feels like they’re doing more than just picking random tiles.

Overall, good job guys. :)

Flag Post

Topic: Game Programming / I like when involved, long-play games do this!

Not to mention, what happens to the game when/if the server used to save goes offline for good? Server saves are overrated, but there’s no reason devs can’t try to use the FileReference class, allowing the user to import/export save data to a file manually. I’ll probably be using it in any future games, assuming I make any more. :)

Flag Post

Topic: Game Programming / GiTD [#47] Theme Selection

Black cats are halloween-themed. Just thought I’d throw that out there. :)

Flag Post

Topic: Game Programming / GiTD [#47] Theme Selection

Because a halloween theme would be awesome for this month:

Noun: Holiday
Mechanic: Keyboard only

Flag Post

Topic: Game Programming / Ive always wanted to make a game

Originally posted by Valfrit:

The only way you will be able to even begin to write your first line of code is until after you’ve completed a Computer Science degree. See you in three years!

This is 100% true. Before getting my CS degree, I tried to code but the keys wouldn’t even physically press down. Thinking I was clever, I tried to copy-paste snippets from notepad, but each time, the compiler returned various error messages and shut itself down. Once I received my CS degree and scanned it into the system, everything worked fine.

Originally posted by Shalmezad:

Before replying to the post(s) above, please repeat after me:
“I will not feed the troll”

Even trolls have to eat sometime. Otherwise they starve to death and the internet becomes a lot less fun.

Flag Post

Topic: Game Programming / Export/Import save data

The initial description is misleading. Try the using following:

var fileRef:FileReference = new FileReference();
var hello:String = "Hello World!";, "hello-world.txt");

You now have a text file in whatever location you saved it in with “Hello World!” in it. For loading stuff, the only functions you need to worry about are browse() to get the location of the file to load, and load() to load the file contents from the results of browse(). It’s really a lot easier than it seems at first.

Flag Post

Topic: Game Programming / GiTD #46 - *Congratulations Halysia *

Keep in mind the origin of the verb/adjective/noun idea. With something as broad and open as “pirates”…

The system we’ve been using was a good idea in theory, however it didn’t account for pairing our bad theme suggestions into something even worse. :D

The best way to find out is for everyone that has an interest in the GiTD that did not produce anything for the Pirates theme to post why they didn’t do anything for such an open theme.

For me, I think it had to do with not being able to come up with anything as well as various distractions, however I feel like the resulting theme tightening probably went a bit too far. That’s why I think that keeping an open general theme, like “pirates” would work provided it came paired with a game mechanic. It might be hard to come up with something regarding just pirates, but if you threw in “one button play,” I think that’d help people focus a bit. Personally, I can think of several ideas based on “pirates + 1 button play” that I probably wouldn’t have (and didn’t) come up with when the theme is just “pirates.” Replace “1 button play” with “procedural generation” or “platformer” and I get a whole new set of ideas right away.

Flag Post

Topic: Game Programming / Export/Import save data

Interestingly enough, I was just reading up on this very thing to export xml files from my tile-based background editor without having to play with the clipboard. One of the types of data it supports is ByteArrays, so if you’re playing it smart and serializing your data before you save it to your SharedObject, the FileReference class should be pretty much plug & play.

Flag Post

Topic: Game Programming / GiTD #46 - *Congratulations Halysia *

First, I meant to vote, but kept getting distracted and forgot. Oops. :(

Second, welcome new coordinator guy. :D

Third, I definitely agree with Halysia about making the theme selection a bit more open than it has been. For several contests now, I wanted to enter and was excited when the announcement was posted, only to go “oh…” and lose interest when the theme turned out to be something really awkward. To also use the wasps one as an example, I couldn’t come up with anything until it was too late to do anything besides write an intro dialog segment.

Up until now, it’s been a pretty tight theme of verb-adjective-noun or whatever, with an optional game mechanic. Like Halysia, I think the optional game mechanic should actually be the most important thing. Drop the verb, drop the adjective. Keep the noun. To pick on the skeletal wasps theme:

The theme is Creating skeletal wasps with an optional mechanic of one button play.

By dropping the verb and adjective while keeping the game mechanic, we’re left with “a game themed around wasps and 1-button play.” There’s a lot more things people can do with something like that.

Flag Post

Topic: Game Programming / saving loading error sharedObject

Saving objects to a SharedObject is a dangerous game unless you serialize through ByteArray.

1) Since they are objects, and saved by reference, what you save to your SharedObject at the moment you call your save function may not be what actually gets saved. That's not what's happening, though. For that, see #2.

2) SharedObjects don't save complex objects. Assuming your cards are something like this: myCard:Card, what gets read when you try to load it is, var myCard:Object. So, assuming your card class has a getSuit function, since the reloaded version is of type Object, there is no getSuit function and your code fails.

The method I've been using for some time now involves making a sort of SavedData class which holds references to any variable that needs to be loaded or saved. When saved, this object is serialized into a ByteArray which can then be saved into the SharedObject. When loaded, the ByteArray is deserialized and everything is properly restored. To make sure your custom classes survive the trip, you'll need to use registerClassAlias.

This may help.

Serialization may seem intimidating at first, but it’s worth learning because it eliminates both of the problems I mentioned above.

Flag Post

Topic: Game Programming / Show us a screenshot of what you're working on!

Originally posted by EndlessSporadic:

Each border pixel can be used as an int, and you can encode several bools in one pixel. I find it very nice to not have to make a parallel config file with info like this

Makes me extremely happy to not have been developer 10 years ago. What a pain. I am a huge advocate of using the entire RBG layer to store texture maps (4 textures per image is massive space savings), but doing stuff per pixel just for configuration seems extremely absurd to me. I know many people still have data caps and low bandwidth, but 1KB for that extra config file isn’t much.

That’s why you make a program to do it for you. My sprite sheets store data like this, with each pixel being an aarrggbb value that represents various things:

0, 0: width of all sprites
1, 0: height of all sprites
2, 0: number of sprites (0 means chop up the entire image)
3, 0: n/a
4, 0: n/a
5,0 and beyond: data for animation loops, grouping, etc

Too much of a headache to work with manually once you start playing with animations and grouping, but simple when done through more human-readable means. Besides, the nice thing about storing data directly in the sprite sheet is not having to deal with finding the matching data file.

Flag Post

Topic: Game Programming / Show us a screenshot of what you're working on!

First thing I noticed was actually the random black & white pixels outside the boxes in the upper left corner (and a bit in the upper right). For a moment, I thought perhaps I wasn’t the only one deranged enough to encode spritesheet data in pixels, but then I realized it’s actually just part of a word in some sort of background.

Flag Post

Topic: Game Programming / Newgrounds API on Kong

I find it best to use something similar to a sitelocking script. If loaded from kongregate, connect to kong api. If loaded from newgrounds, connect to newgrounds api. Else, don’t connect to either. Etc and so on.

Flag Post

Topic: Game Programming / Gathering A Team To Create A Game!

Originally posted by firedragonflame:

To avoid wasting your time, people interested in this is going to be fueled by their own interest and passion in programming as i am not going to pay :X.(That is until the game is done and ready for sale where earnings will be split in equal shares)

What defines “equal shares?” 96% for you, 2% for the programmer, and 2% for the musician? :D Anyway Drakim’s right. Everyone on a game development team needs to have an actual reason to be on that team. What will you be contributing?

Flag Post

Topic: Game Programming / GiTD #46 - *Beats Beasts Ablaze*

So you can’t use preexisting art assets of yours that aren’t open source? I ask because (and this could just be my opinion on the matter) it seems to me like creating a library of art assets (or sounds/music) to use in various projects is no different than creating a library of classes.