Recent posts by Aesica on Kongregate

Flag Post

Topic: Game Programming / Implement badges before publish - Last Invader

Originally posted by Draco18s:

There are some notable examples of games below the 3.8 level, and I mean “got badges first” (as most games get badges and then drop in rating as people flock to it and give it a lower rating for whatever reason, e.g. not being able to get the badge). But you’re right, most of them are rated much higher 3.5.

True, although normally those are games released by established developers.

 
Flag Post

Topic: Game Programming / Implement badges before publish - Last Invader

According to that topic, you pretty much need a 3.8 or better. The graphics look good enough for that, so hopefully the gameplay follows suit. Good luck. :)

 
Flag Post

Topic: Game Programming / Can you check my game?:)

Just a bit of advice for future projects (or this one): Never start the game off by dropping the player into a situation where they will lose in a few seconds if they don’t do anything. Offer them some sort of pause or start button so they can get their bearings before the action starts. Also, javascript alert() is pretty much the mechanically separated meat of javascript programming. Avoid using it in a game for anything besides debugging code (which the players should never see, of course). Finally, some instructions or controls would be nice. I only knew what to do through trial and error, and because I’ve played snake before.

 
Flag Post

Topic: Game Programming / Implement badges before publish - Last Invader

I’m pretty sure badge requirement is even higher than 3.5 stars. The best you can do is report stats for things you think would make good badges (maxLevelCleared, score, gameCompleted, internetDragonsSlain, etc) and, if your game does well enough, hope for the best.

 
Flag Post

Topic: Game Programming / GiTD #45 *Creating Skeletal Wasps*

Originally posted by I_love_you_lots:

@Aesica – That’s a really nice dialogue editor!

Thanks. :D It’s an old library and an example of me thinking, “It would be nice to be able to edit game dialog on the fly,” then getting completely carried away. This contest helped me realize that it’s not as import-friendly as I’d like it to be, though. Time to fix that!

 
Flag Post

Topic: Game Programming / GiTD #45 - *Voting*

Before I say anything else, I want to mention that, in my entry, the dialog edit mode shouldn't have been visible. The lack of game content is because I really only spent about 2 hours on it--I had no inspiration until the last day or so, and then I mistook 9EST for 9PST. Spent 1.5 of those hours creating the (miserable) art assets and some other basic stuff when i realized it just wasn't going to happen. I probably shouldn't have even posted it, but I did. Oh well! :D

Votes:

1) Wasps Game
2) Untitled

And some random thoughts for each that are (hopefully) helpful:

Wasps Game: Eventually the wasps stopped spawning. I assume this is because I reached the last wave? If not, it's a..."bug." Also, it seems like using weapon #2 is all you really need to beat each wave. I didn't even bother with the barricades, I just launched skull-bomb-things at everything until things stopped spawning entirely. Also, loot can drop in the walls, making it inaccessible. Nice job overall though. If you decide to pursue this, maybe tweak the weapons so #1 is better/faster for single target, while #2 is slower to charge but better for aoe. You could probably offer a lot more weapons and neat things too via upgrades.

Kill Skeletons with Wasps and Whatnot: I...can't really even do anything because the red skeletons get up in my grill in the time it takes for me to get my bearings. A grace period or safe starting point would be ideal.

Untitled: Simple, but it kept me going until the last level. I'm not sure how to even make that jump. I tried jumping off a wasp but...yeah dead. What's the trick?

SkullWasps: Mainly a demo yeah, but still a better product than mine.

Edit: Re: Collabs for this contest: I don't mind it either. If people can organize themselves and work together for this, more power to them.
 
Flag Post

Topic: Game Programming / GiTD #45 *Creating Skeletal Wasps*

This barely even counts, as I only actually had about 2 hours (fucking EST). There’s nothing after the dialog because yeah, not enough time. The idea was that the Kargoth, being a stupid ogre (who I also didn’t get time to draw!) was going to make skeletal wasps by mashing giant wasps with skulls and bones. Yeah it’s basically Shalmezad’s idea with ogre logic behind it. :)

http://www.fastswf.com/Z8O3Z7c

I really probably shouldn’t have even bothered, but I did want to show my support for these contests.

Edit: Oh FFS, I left the dialog system’s edit mode on. Just a heads up that “Edit Mode” isn’t actually part of the game itself. There is no actual engine because I had far less time than I thought I did. :(

 
Flag Post

Topic: Game Programming / GiTD #45 *Creating Skeletal Wasps*

^ Ugh no. The only good wasp is a dead wasp.

Edit: …That just gave me an idea. What’s the deadline again?

Edit2: Oh. Tomorrow at 9? Hmm, so game in 4 hours then? (All the time I’ll have tomorrow for development) This ought to be interesting. ;)

 
Flag Post

Topic: Game Programming / [AS3] IDLE Game - Offline aktiv

If I had to guess, I’d say that, each time the game is loaded, it subtracts the time the last save was made by the current time, then adds the appropriate amount of bonus experience/gold/potatoes/whatevers. Of course, that’s easily exploited by setting the system time.

 
Flag Post

Topic: Game Programming / GiTD #45 *Creating Skeletal Wasps*

I’ve been trying, but I seriously can’t think of anything for this theme. Damn you, RNG.

 
Flag Post

Topic: Game Programming / How do I display/work with large numbers?

Nice bump. This topic is 2 years old.

 
Flag Post

Topic: Game Programming / GiTD #45 *Creating Skeletal Wasps*

Technically, “skeletal wasps” would look just like ordinary wasps. Because exoskeletons.

Seriously though, that RNG. Oh boy…

 
Flag Post

Topic: Game Programming / GiTD #45 *Creating Skeletal Wasps*

Adjective: Skeletal
Noun: Sorcerors
Verb: Fighting
Game Mechanic: Keyboard/Gamepad only

 
Flag Post

Topic: Game Programming / As3 Help? Referencing Siblings Through Class

in parent.player.x;, parent is of type DisplayObjectContainer, not DungeonMap1 or whatever the parent class actually is. You need to cast it: (parent as DungeonMap1).player.x; That’s my guess, anyway.

Same is true for parent.player.y;

 
Flag Post

Topic: Game Programming / AS2 SharedObject help?

Well in terms of personal experience, my really old, terribly-coded Nyan Cat idle game saves using the method I described (a few variables transferred to the SO + flush) every 60 seconds (as that's when relevant events happen) and not one person that I can see has ever complained about lag. However, you can bet they'd complain if they lost several hours worth of progress due to a crash because the game never once called flush.

I don't really play or pay attention to idle games these days, so maybe I'm wrong. Maybe it's perfectly okay to just spread the sharedobject out on the table and let every other class grope it when and how they want. It just seems like a lot more can go wrong when you're letting your classes access a live shared object like that rather than writing to the shared object only when you (the programmer) know your data is in a secure, stable state. In my previous post's example, sure you should reset locations and such immediately, but that's just an example of how things can go wrong when you relinquish control of flush and treat shared objects like common game variables. If the save/flush was initiated at a point in your game when you knew all of your data was where it should be (level incremented, player position reset) then bugs like that wouldn't happen.

Just remember, in AS3 (the OP expressed a possible interest in exploring it sometime in the future) you can't use shared objects like that if you plan on saving game data through serialization and bytearrays. No time like now to get into the habit of only dealing with the shared object when you want to load or save game data.

Edit: I think we're past the point of being helpful to the OP, so we should probably just agree to disagree. :)
 
Flag Post

Topic: Game Programming / AS2 SharedObject help?

When I say data corruption, I don't mean c͚̻̀ͅo̠̦͙̹m͘p̸͔̳̮̦̺͉̰ḽ̠̩̻̺͘e̦ṯ̖̹͉̞̲e͉̣͙̙̘̱̼l̛̝̯̭̭ͅy̸̟͚ ̠̺̩un͙̙͕̜u̞̘̪͚̪̬s͕̗̭̫̫a͞b̨̞͈͉̘̮l͇̳̤̜̹̙̩͞è ͍̩͉̠͙͠ͅd̞͉̼͚̝á͚͉͈t͈͙͢a͓̻. I'm referring to things saved in ways that can cause problems depending on when the player decides to exit the application.

Consider this example: Your character reaches the end of the level so you use so.data.level++, but his position (so.data.x, so.data.y) isn't updated until the next level is rendered to the screen. Player closes game before the next level is rendered. Player reloads game and is either partway through level 2 or even off the map entirely because the old level 1 x and y were the last coordinates saved. That's just one of many things that can happen if you treat shared object data like ordinary variables during gameplay. On the other hand, if you save everything all at once when you know your data is where it should be, that won't happen. I guess you could omit flush, but if the aforementioned crash happens and your player loses everything, they're also likely to rate your game a 1 and never come back. Besides, calling flush once per minute, 30 seconds, or whatever isn't going to lag your game nearly as much as some of the other horrific things AS2 does. Maybe I'm giving people the benefit of the doubt, but on a site like Kong, I'd think most people know to set their data storage up properly.

As for the player losing data because they closed 1 second before the flush, that's why you offer them a "save now" button in addition to the autosave intervals. I suppose that if you're afraid of flush lagging, you could hold off on calling it unless the "save now" button gets clicked.

I guess what I'm saying is that sure, the approach you mentioned is probably fine for what seems like a last-minute scramble to complete a class project idle application, but I just think it's important that the OP realize that letting the game engine and the shared object data sleep in the same bed like that is pretty much asking for trouble.
 
Flag Post

Topic: Game Programming / AS2 SharedObject help?

^ Actually, I only suggest AS3 over AS2 because it really does make things easier, and because I remember when I was using AS2, how stubborn I was about switching because “AS2 was good enough” or whatever. When I finally did switch, I was like “THIS IS AWESOME!” after overcoming the initial stumbling blocks. If I recall, the big ones were sound playback, event listeners, and stage vs root/displayobjects in general. I’m not trying to seem elitist, I just want others starting out to not waste a year or so like I did trying to make a mediocre and dead language work when there are better tools out there.

To the OP: I’m assuming you have a save snippet somewhere else. If not, make a function with something like this in it:

savedGame.data.exists = true;
savedGame.data.cashResource = cashResource;
savedGame.data.woodResource = woodResource;
savedGame.data.stoneResource = stoneResource;
savedGame.data.foodResource = foodResource;
savedGame.flush();

And have your idle game call this function periodically to save everything in a single pass.

Contrary to what’s been said, you DO want to use flush immediately after changing data in your shared object (although certainly not every frame because it WILL lag if you do that. Once every 30-60 seconds or so depending on your game’s needs, perhaps with a “save now” button in case someone wants an immediate save.

Writing directly to the shared object (savedgame.data.foodResource++ for example) as though it were just another variable in your game is messy code and can not only make things harder to debug, but is more likely to corrupt your saved data in some way because you’re saving individual pieces of data all over the place at various times rather than all at once in a single operation.

Edit: Added something that will allow the exists check to succeed once a save has been created.

 
Flag Post

Topic: Game Programming / AS2 SharedObject help?

Update to AS3. AS2 from what I remember has some really fun ways of just magically letting code fail silently in the background, making it a huge pain to pinpoint bugs. Besides, since AS3 is actually supported by adobe, you can find a lot more useful help and resources on the internet to answer questions.

 
Flag Post

Topic: Game Programming / Words are Hard

^ I’ve always converted both strings to lower case for the simple reason that I dislike anything in all caps, even if nobody else sees it. This, however, changes everything.

 
Flag Post

Topic: Game Programming / Words are Hard

Technically, a proper title should capitalize the first letter of everything that isn’t a word like “the” “and” “or” etc: “Never Gonna Give You Up.” Thus, if the game’s creator wanted capitalization on certain words, he’s doing it all wrong. But yeah, as mentioned, anyone who doesn’t apply a toLowerCase() (or toUpperCase()) to user-defined strings is making a subpar product in most cases. Try answering the ones that aren’t broken with AlTeRnAtE CaPiTaLiZaTiOn to see if that breaks it. If so, problem found.

 
Flag Post

Topic: Game Programming / Tile Array Size Change Problems

Well your approach to this seems…unusual and kind of hard to follow, but maybe I’m just tired. An easier way to iterate through elements of a 1d array in 2d would be something like this:

		public static function test():void
		{
			// the following creates a 1d array meant to hold 2d info  (3x2)
			var aSomeArray:Vector.<uint> = new <uint>[1, 8, 3, 24, 12, 666];
			var iWidth:uint = 3;
			var iHeight:uint = 2;
			
			var i:uint;
			var iLength:uint = iWidth * iHeight;
			var iCurrentX:uint;
			var iCurrentY:uint;
			
			for (i = 0; i < iLength; i++)
			{
				iCurrentX = i % iWidth; // determine where we're at on the pseudo-X axis of our array
				iCurrentY = Math.floor(i / iWidth); // as above, but for y -- and yes, we divide by the width, not height
				trace("Index [" + i.toString() + "]: '" + aSomeArray[i].toString() + "' (" + iCurrentX.toString() + ", " + iCurrentY.toString() + ")");
			}
			
			/* Output is:
Index [0]: '1' (0, 0)
Index [1]: '8' (1, 0)
Index [2]: '3' (2, 0)
Index [3]: '24' (0, 1)
Index [4]: '12' (1, 1)
Index [5]: '666' (2, 1)
			 */
		}

Adjusting to new height should be a lot easier this way. (if new width is smaller, splice out the surplus. if new height is larger, add new elements to the end) As for width though, there’s really no easy way around making a new array, even if it’s only a temporary one that you will then iterate through and copy over the contents to your primary array.

 
Flag Post

Topic: Game Programming / Tile Array Size Change Problems

It looks to me like you’re trying to store a 2d grid in a 1d array. As someone who has dealt with this same problem recently, I highly suggest switching to 2d arrays before you get too far into your project. With 2d arrays, increasing or decreasing the width/height becomes a lot simpler.

 
Flag Post

Topic: Game Programming / How to make the simplest p2p

Originally posted by player_03:

Then… maybe they aren’t that shitty after all.

Successful free to play games tend to have good game design at the core, buried underneath all those incentives to spend money.

Fair enough…but only to a degree. The game I was struggling with semi-addiction to is Rise of Mythos. I’ll admit I really do like the design behind its core mechanics: Place your units on a battlefield. These units advance each round and use their abilities in an extremely predictable manner, making proper placement critical to victory. I’ve been thinking of (after other projects that I never seem to get around to…ha!) making a standard flash game based on that mechanic, but doubt I actually will.

Anyway, there’s more to their design than just getting you to spend money, and some games (Wartune, League of Angels) really are crappy games, yet somehow, they dangle enough carrots in front of people’s faces to keep them coming back, day after day. I’m really not sure how they do as well as they do. The underlying concept of both is that you do a bunch of painfully-repetitive daily tasks to make your character stronger so it can kill stronger things. In wartune, the actual control of your character in combat is limited, and in league of angels, you don’t get to control your character at all. I’m not sure what the drive to keep people playing those two in particular is, but it seems to be pretty strong, even if the actual gameplay is…lacking.

 
Flag Post

Topic: Game Programming / Scratch

Originally posted by Draco18s:

By the way, this thread is 3 years old.

Oh FFS, I need to get better at checking post dates. All the old names should’ve been a warning flag…

 
Flag Post

Topic: Game Programming / Scratch

^ You may be underestimating what future artificial superintelligence resources will be capable of.