So yeah, beta testing time draws near! page 3

119 posts

Flag Post

LOL yeah, that icon is terrible and in no way will be the actual release icon. It only exists because FGL demanded an icon in order to upload. For the actual icon, I’ll spend a good amount of time on proper artwork.

 
Flag Post

Pfft, SFXR? Use Audacity. If you’ve got money, use Pro Tools.

 
Flag Post

It only exists because FGL demanded an icon in order to upload. For the actual icon, I’ll spend a good amount of time on proper artwork.

Your FGL icon is very important. You need a good icon before you put it up for sponsorship. Likewise you’ll probably get more dev views (and worthless empty feedback wooo) with a better icon.

Pfft, SFXR? Use Audacity.

Yes, because all of us know exactly how to make sound effects in audacity.

I tried for a while, and everything ended up coming out as a garbled mess.

 
Flag Post

Ok. Finished all but the last level on impossible. I don’t know if it’s ridiculously hard (hell, I killed the boss like 7[?]] times and it kept fighting) or if I’m tired. I guess if I had all upgrades… but I don’t feel like grinding.

The good

  • Great dialogues + dialogue graphics.
  • Good music. Take it from someone who mutes over 90% of games. I player with music for over two hours and never got sick of it.
  • Autofire is great, so is the option to switch the default weapon. A really nice extra would be having a hotkey to toogle it in the middle of a level, although you have to toogle it many time/sec to beat impossible levels without having to grind for upgrades, or at least that’s how I did it.
  • ♥ custom controls. I wouldn’t have finished the first level without them.

The bad

  • There’s a bug with the laser when you have auto-fire enabled. A couple of times it stopped firing all of a sudden, while the ice missiles kept going away. I fixed it by toogling focus on/off, but still, may want to take a look at that.
  • Coins. The ammount you get seems to be totally random, and sometimes you can get more money from an enemy which died in less than a second than what you’d get from some harder enemy.
    Same for the bosses, sometimes I’d get a bunch of black coins or even a red while going through the level and after defeating the boss I’ll only get a bunch of golden and purple ones.
  • Trophies / rewards. A silver trophy for getting 90% kills and 4 injury on impossible + first try? And that’s the best I got; the rest were bronze and the other, crappier one. That seems to defeat the point of playing in a hard difficulty; why bother to finish everything in impossible when I can simply launch easy mode and get a diamond trophy in every level?

The ugly

  • The laser graphic may need some work, given that it’s big, static and stays on the screen as long as you fire, the little details are easier to see.

Really nice overall. Also, performance friendly, considering it’s AS2, I was afraid it was going to be unplayable, but it ran nicely.

 
Flag Post

Pretty Entertaining. I’m just terrible at this type of game though. The difficulty on level 3 seem to spike too high. I beat level 1 and level 2 boss no problem. Level 3 trash is just hard. I cant seem to kill anything anymore and those mushrooms just run all over the screen.

I liked it though. I got entertained during my little break.

 
Flag Post
Originally posted by truefire:

Would anyone be interested if I started offering video reviews w/ commentary, akin to FGL pre-reviews, at $12/hour? I believe FGL has a service like this already (After the first free one) at $10 for 15 min, and you can get anonymous reviewers for $5 per 5 minutes, no audio.

Yep, for sure

 
Flag Post
Originally posted by truefire:

Yes, because all of us know exactly how to make sound effects in audacity.

I tried for a while, and everything ended up coming out as a garbled mess.

Audacity is really easy to use. I figured out how to use it really quickly.

And if your game is a pixel/retro game, it’s probably ok to use SFXR.

 
Flag Post

@Senekis: Excellent feedback, thanks. :D Yeah, the last boss was meant to be pretty hard (especially on impossible!) but if you made it to the phase where the screen was littered with little stars, you were just about there.

Regarding the beam attack bug, do you recall exactly what you were doing when it stopped working (using another ability, getting hit by something, etc) or was it just seemingly at random? As for the graphic, since you pretty much got to the end of the game, I’m sure you noticed that the beam’s graphic changed as you upgraded it. Which (if any) of the visuals were preferable, and which were the most hideous?

The coins are based on the current game level with a bit of randomness thrown in. Baseline, the first level = all copper, second is mostly copper with some silver thrown in, and it gradually scales up that way. There’s a 1:20 chance for each coin to be 1 grade higher, and another 1:20 chance on top of that for it to be 2 grades higher. I wonder if I should make the boss’s last phase automatically yield a batch of coins 1 grade higher. (Still maintaining the 1:20 chance for 2 grades higher, of course)

Trophies. So the trophies still seem pretty brutal, huh? You should’ve seen how unforgiving they were in their initial incarnation. Maybe I’ll just axe the iron, rusty, and poop trophies entirely and shift gold, silver, and bronze down accordingly. More important than the trophies though is the rating number, as that’s what contributes to your score, and higher difficulties apply a bonus multiplier ( > 1) to that total while easy applies a penalty ( < 1) The idea is that a skilled player running impossible should get a higher score than a skilled player trying to cheese his way through easy with a perfect on each level. Maybe I need to math it up and tweak the modifiers a bit more.

@lan14n: Way back when I first started it, I had weird things in the enemy AI like “increase movement speed based on the level the enemy appears in.” (Then i realized it’s just better to make new enemies—go figure!) Now that I think about it, the mushrooms are among the only enemies which still have that crap, so I’ll weed it out. For level 3 being difficult, which upgrades did you take? And which enemies seemed too hard? I never really thought about it, but perhaps inundating the player with every possible upgrade right from the start opens the way to traps. (taking felfire before getting fireball, or energy before getting entropic sphere, for example). Hmm!

 
Flag Post

About the beam bug, I think it happened during two boss fights. Creag(?) and the “rotten bitch”, iirc, and another time while there were no enemies at all. But I wasn’t able to find a common thing (being hit, getting shield, etc).

Regarding the beam graphic, would you believe I didn’t notice? I only used the beam for a couple of levels, and never upgraded it past level 3.
For the rest of the levels I was constantly spamming the A key (my focus key) to make it easier for me: by doing so, you can use the spread attack/fireball + some short beams and ice missiles. It’s a tricky way to have all weapons at once, which really makes the game easier, especially because of the icy things; having stuff moving at 50% speed is just great.

And yes, I noticed the rating thing and the score, but the trophies seemed to have a heavier impact since, you know, they’re shiny little things, while rating/score is merely a number. It’s like a “Hey, nice job! Here, have a poop trophy.” d:

About the boss. I was in that part, so I guess it’s a matter of upgrading my health, the eldritch gift and ice+spread to the max level.

Also, one thing I forgot to mention: the “boss” thing at the bottom of the screen is just amazing: You can focus on avoiding the hell and killing the boss without having to take your eyes away from the girl.

 
Flag Post

Interesting. Most people I’ve had test it cling to the beam almost exclusively, especially vs bosses. I should probably implement some sort of (short) firing delay when switching firing modes though, because I’m not a fan of button mashing and I don’t want players to think that they need to do it in order to excel. (Hence why shots fire continuously while attack is held down and the autofire option exists)

I’m open to suggestions regarding good ways to discourage focus mashing while still offering versatility for the firing modes.

 
Flag Post

Well, it’s not like you need it, the other option is to grind each level until you get enough upgrades to beat it. So it’s more of a strategy than a requirement to beat the impossible difficulty.

By the time I reached the final level, I didn’t have a single level 5 upgrade; fire and beam were at 3, damage, ice and spread at 4. Green fire, shields at 1, sphere, energy and health at 3. Eldritch gift level 2, slow level 3.

Having all upgrades maxed would’ve made it a piece of cake, but I hate grinding. The only levels I had to play multiple times were the one of the rotten bitch, which I played four times until I got the ice missiles and found out that you can simply move around avoiding the bullets and she would eventually die. The other one was the one where you find the fireballs for the first time; it took me a couple of hits to figure out that they bounce to your current position. And I think I replayed some other level, but I can’t recall which.

If anything, you could lower the price of the upgrades, so there’s no need to mash buttons or grind a level many times. I mean, 10,000 for level 5 translates into ~3 replays of level 7, implying you got to level 7 with level 4 upgrades. For earlier levels it may translate into playing a single level over 5 times for a single high level upgrade.

I think that you should only replay a level when you lack the skill or haven’t figured out how to defeat a particular enemy, and not because your upgrades are limiting you and all you can do is to grind over and over until you have enough upgrades to succeed by doing the exact same thing that you did on the first try. So yeah, the only thing that comes to my mind is to reduce the cost of the upgrades.

Of course, that’s just my opinion. Given that there are tons of games which require you to grind and many of them are amongst the top rated, I’m gonna guess most players don’t mind replaying the same thing over and over until they get enough money/exp/whatever.

 
Flag Post

You could keep the trophies you currently have but have different ones for different difficulties (i.e., great on easy == silver wheelchair trophy, great on normal == silver old shoe, great on hard == silver puppy, great on impossible == silver top hat; that sort of thing)…? Though I think diamond seems a wee bit high-end for easy, IMO (maybe cubic zirconia?).

Can’t comment on the game (can’t play! Sob!); just popping in for my 2 cents about the trophies.

 
Flag Post

@Senekis: My projected goal was to have most players reach the end with most things on the second-to-last upgrade rather than being fully upgraded. You know, kind of like in an RPG, where you might get to the last boss at level 50 even though the highest level is 99? I wanted the grindy stuff to feel optional though, not mandatory (unless the player just isn’t very skilled) so I’ll look into another price reduction. Especially in a game like this, I don’t think it’s fair (or fun) for players to grind a previous level in order to beat the next.

There’s another option I’ve been considering, although at this point, it’s a pretty huge change: Completely eliminate the individual weapon upgrades, roll the bonuses into the attack power upgrade. I’m going to admit, I don’t think “upgrade your attack power for all attacks” is very fun when you also have “upgrade your attack power for each individual attack.”

@dragon_of_celts: A wheelchair trophy! :D I don’t want to make fun of people who play on easy though, because to people that aren’t familiar with bullet hell games, “easy” is all they can manage.

 
Flag Post

Oh, well in that case, you should change “easy” to “inversely difficult” and the wheelchair trophy to a glass ego. ;)

 
Flag Post

Most people I’ve had test it cling to the beam almost exclusively, especially vs bosses.

I personally use the beam most of the time, but I shoot everything with a felfire blast (DoT) as soon as it appears once.

Completely eliminate the individual weapon upgrades, roll the bonuses into the attack power upgrade.

Nuuuuu don’t do that. Variety in upgrades is good.

 
Flag Post

Necrobump! So yeah, I took a few weeks off for other things and only now got around to tweaking a few of the way-too-easy levels, making menus prettier, and a few other finishing touches.

Now, the bad part; the REALLY bad part. I’m actually kind of worried, because ever since the latest flash player update, it’s been unusually laggy when previewed on web pages. It has to be the most recent flash player (or maybe firefox) update, because I haven’t changed anything regarding the game’s core engine functionality. I can’t think of what else it might be, but in its current state, I’d consider it unsellable.

Is it laggy/choppy for anyone else?

 
Flag Post

It is for me, I’m afraid

 
Flag Post

That’s all right. So far, everyone has confirmed that it lags, which means one thing: Time to port the WHOLE THING to AS3. Yeah, I could really use a drink about now…

Thanks for checking. :)

 
Flag Post

Not necessarily. You might be able to get away with your current structure. If its possible, check out a profiling tool for AS2 (if one exists). Take a look at memory usage. If they have a graph that displays the memory used during certain times, and it isn’t a somewhat flat line, you might have found your source of lag. Memory allocation is expensive.

 
Flag Post

I was all super-doom-and-gloom yesterday, but now, I think you might be right in that I can perhaps salvage it without redoing it all in AS3 from the ground up.

1) I know it can’t be an issue of expired things not getting garbage collected, as I made a point to constantly keep my on-screen object arrays filled only with active displayobjects. Dead enemies, expired shots, obtained powerups, finished visual effects, etc are all removed from the screen and kicked out of their associated arrays. However, my method might be a bit questionable. Splicing out expired displayobjects is the fastest/easiest way to do this for the array part, isn’t it? (Because that’s definitely not what happens, LOL)

2) I think cutting the framerate in half will go a long way. I was running at 60fps, and while beautiful in the Flash 8 Pro preview player, is simply expecting too much. 30fps might not be as pretty, but the choppiness and lag has decreased dramatically as a result since it’s only doing half as much as before.

3) I’ll probably have to sledgehammer a bunch of functions to limit per-frame function calls. That means adhering to bad coding practices, such as replacing “super.FunctionHere()” with a copypasta of the actual contents of super.FunctionHere(). :( By the time I’m done, I won’t have to worry about encrypting my game because nobody will be able to make sense of anything.

 
Flag Post

Inlining code. Don’t do it just yet. Last resort. You need to see what things are causing a slow down.

Are you sure it is your code?
Are you sure its not the graphical effects you have going on?
What functions get called the most?
Which functions have you proven to be bottlenecks.
Post relevant answers/code back and we’ll see if we can help you out.

 
Flag Post

I have to head out in a few minutes, but when I get back, I’ll test some stuff out and see what I come up with.

Is it my code? I’m sure that’s a big part of it, unless a recent flash player update has afflicted other AS2 games with the same kind of lagginess. Since this project was started when I was pretty new to coding, there’s some older, bad-practice things lurking around that I need to clean up. I’ll post my array cleanup when I get back, because I think it’s a great example of “wtf rly?”

Garphical effects: I’m pretty sure they’re sound. I learned pretty quickly that alpha, glows, and blend modes are dangerous, so my graphical effects are pretty much limited to rotation and scaling. Alpha is really only used for the boss death animations and brief screen flashes. Glows exist on the HUD text to provide the stroke effect only. Any glows on enemies, menus, bullets, etc are all a part of the image itself. Blend modes aren’t even touched.

Most commonly called functions & bottlenecks…I’ll have to review that when I get back, but anything in the GameObject and EnemyObject classes seems like a good place to start, as they represent pretty much anything on the screen that shoots things and moves around.

 
Flag Post

Well I personally would guess the lag comes from the bullets, which would in turn suggest lack of garbage collection and/or excessive hit detection calculations

 
Flag Post

The lag also seems to hit when I move the player, which is unusual. Anyway, I suspect my garbage collection, while I’m certain it works, is pretty inefficient since it was one of the first things I created for the game engine. Up until I posted it on FGL, I had a display with array counters to track the size of each array for player shots, enemies, enemy shots, powerups, and misc effects. They all increased and decreased properly, and things do in fact vanish when they move off the screen, die, or are otherwise flagged for termination.

I suspect the process by which this happens could use an overhaul, though. Here’s a rough look at the garbage collection system. (And yes, I realize my variable naming system isn’t conventional)


	private function DoGameObjectMovement():Void
	{
		var i:Number;

		for (i = 0; i < aPlayerBulletObject.length; i += 1)
		{
			aPlayerBulletObject[i].DoMovement();
			if (aPlayerBulletObject[i].bTerminate)
			{
				//trace("Destroying object: " + aPlayerBulletObject[i]._name);
				aPlayerBulletObject[i].Destroy();
				delete aPlayerBulletObject[i];
			}
		}
		// The same loop is done for each of the other game object arrays--aEnemyObject, aEnemyBulletObject, aPowerUpObject, and aMiscObject
		// bTerminate is a boolean set on an object that dies, moves off-screen, etc.
		// Destroy() triggers any on-death visual effects, then removes the movieclip
	}

And then we have this next snippet. I suspect this is a rather toxic and inefficient approach, and that it could be done in a far more efficient manner. I’m open to suggestions on how to optimize this. (and yes, I appreciate the irony of this function’s name) :D


	// compress game object array to keep it compact
	private function OptimizeArray(aOld):Array
	{
		var aReturn:Array = new Array();
		
		for (var i:Number = 0; i < aOld.length; i += 1)
		{
			if (aOld[i] != undefined && !aOld[i].bTerminate)
			{
				aReturn.push(aOld[i]);
			}
		}
		
		return aReturn;
	}

Oh look, already I notice that I never typed aOld as an array, and that I’m using Number for i instead of int. Like I said—early-project code, reporting for duty!

Anyway, this is how it’s used in the main game container’s onEnterFrame(). It occurs after DoGameObjectMovement() function. (If bTerminate is going to be set to true on a particular frame, it’s going to be during DoGameObjectMovement() or the hit test portion.)


			// movement of all game objects
			DoGameObjectMovement();

			// ...a few other things go here:  hit tests, keyboard/input crap, regen events

			// reorder arrays
			aPlayerBulletObject = OptimizeArray(aPlayerBulletObject);
			aEnemyObject = OptimizeArray(aEnemyObject);
			aEnemyBulletObject = OptimizeArray(aEnemyBulletObject);
			aPowerUpObject = OptimizeArray(aPowerUpObject);
			aMiscObject = OptimizeArray(aMiscObject);

 
Flag Post

While we’re on the topic of optimization, I know “int” is faster than “Number” in as3, but is the same thing true of AS2? Is mx.data.types.Int just a sloppy coat of paint over “Number,” or is it really worth going through all of the older code I have to change every integer-use-only “Number” into mx.data.types.Int?