Monday, March 30, 2009

Plague 3.27

Hi all,

Plague has gotten a bit easier with the last few releases. 
  1. Any ideas on what would make it more challenging for you, while retaining/improving the fun factor?
Changes:
  • Made plague harder by lowering threshold for more zombies, and scaling initial zombies to score
  • Feat: Added health, sprint and ammo bars
  • Feat: Replaced text for grenades with "g" so players (hopefully) know to use g to change grenade
  • Op: Added a frame counter so that UI text is updated every few frames
  • Fix: Changed laser to dump heat into cells instead of temp (more realistic)
  • Current values shown next to selected menu option
  • Editted menu option in green
  • Grenade UI text prettied up
  • Other code changes to menu/options to make the code more intuitive
  • Options menu now shows default values
  • Survivors now have many small health bars (instead of one big one). If a bar is partially filled, it recharges reasonably quickly. If it is completely depleted, it can only be replenished by a medkit. The GUI has been updated to reflect this.
  • Recock time for weapon is now shown in a white bar (good for sniper/gauss rifles).

21 comments:

sean said...

I got through a few things yesterday, mostly a few tweaks to the menu code to make it more intuitive. There's also a bit of UI cleanup to fit with the new fonts. I'll check the changes against 3.27 and put them up right away.

sean said...

Changed files are here.

In addition to the what I mentioned above, I also tweaked UI_update_text a bit so there's less 'update lag', especially with weapon_text. It shouldn't hurt the FPS since there's still only 1 call/frame.

The health & sprint energy bars are pretty nice, but the ammo one feels a bit awkward. It might be nice to have some static text over the bars saying what they are. Then again, it might be better to leave it until designing a new GUI comes up.

The FPS of this release is probably the fastest I've had so far, so the optimizing is definatly paying off.

sean said...

Oh, the selection colour for the difficulty menu is set on main.py 779 if you want to change it.

Benedict Carter said...

Hey Sean,

Cool, I'll go through those now. Yeah, the text was "laggy", but I wasnt sure if it was too much. I guess it was :P

Whats awkward about the ammo bar? Adding text is a good idea, I'll do that. Have you had much experience with using pre-made GUIs?

Benedict Carter said...

Done.

Its great to see the current value. I haven't looked into the details of the code (since I've just reviewed the diff quickly). How hard would it to be to see the default value on all options at the same time?

I like your change to the grenade text thats been displayed. It had been mildly bugging for a while and I hadn't yet decided how to deal with it (was considering renaming grenades, didnt occur to me to truncate the string).

Also, lots of good "code tidying" little changes, cheers.

I'll pop this revision up now.

sean said...

re the ammo bar:
-Ammo for each gun is already displayed in weapon text.
-It's not future-proof if ammo types get seperated.

re seeing default value of all options:
-Hah, it would actually be a lot easier. That's something I could probably do tonight if you like.

re premade GUI's:
-I have 0 experience unless WX counts.

re respawning: I think it'll take a bit of time for me to do it decently, so if you think you can get the riddick-style health within the next version or 2, it'll probably skip it in favor of AI or proper survivor gun-holding.

Benedict Carter said...

Hi Sean,

All options would be great!

How about better survivor art images instead of respawning? - the new health system should be done tonight (unless lots of bugs crop up) and your artwork is way better than mine.

Fair enough about ammo and future proofing - I'm still not convinced if I shoud move away from universal ammo (I quite like it). Might go for a grittier more realistic version later with separate ammo types in which case I'd turn that into many ammo bars (kind of like like a riddick health system). While it isnt needed as the numbers are there, its quite nice to see, esp when you dont have agun (so there are no numbers).

would WX be appropriate for Plague - easy to link thru, low overhead?

Benedict Carter said...

Wooo. Health bars are cool. I haven't added invulnerability yet, or made it data driven (specific to sim_type) but I thought I'd just throw it out there.

sean said...

I like the health bars. As for making the game a bit tougher, maybe slow down the rate that healing kits recharge, or reducing how much 'health' they can dispense.

When you say GUI, do you mean a windowing system, or the in-game UI?

Benedict Carter said...

in game UI. needs to be able to bring up windows for things like inventory, character stats, factions stats, etc (in game).

sean said...

That makes sense. I don't think WX would be willing to play nice inside of pygame but there are a few native python/pygame GUI's around. I'll take a look at them. Were you thinking this would all be something that'd come up while the game is paused, like in most RPGs?

I put the changed classes for the menu up here in pastebin.

And of course, something new for the task list:
It'd be pretty neat if survivors and their inventories carried over between levels. If you finish level 1 with 4 survivors and they all have SMGs, you should start level 2 with 4 other survivors w/ SMGs.

sean said...

the guns set to 'semi' (pistol & shotgun i think) will fire faster if you mash the fire button than if you just hold it down. Not sure if this is the desired behavior.

Also, it'd be nice to have a reload timer between shots for the sniper rifle / gauss.

Benedict Carter said...

I would like the game to be paused while menus are active (as I'm getting old). I guess your point is that performance wont be an issue then.

It would probably be nice though to put info about guns and the like in wdigets, so that players can move them about the screen to a better location for them.

Cool, thanks for looking at some GUIs - I've done that and left confused as to what would be appropriate.

Yeah, I also want survivors and inventory to transfer over, but I havent though of a nice way to do this yet. I've had issues trying to pckle sims (for saving and loading), since they have image data. It will be necessary when they have unique stats (that you may have upgraded. Thoughts on how to best approach?

Yup, the semi guns are supposed to be mashable. I dont mash them (cant be bothered) but a friend does (she was mashing the mouse button when the guns werent semi so I added that as a feature for her).

A reload timer will be trivial to add, I'll do that tonight for you.

Benedict Carter said...

Oh yes, cool, pastebin, will look at tonight.

Benedict Carter said...

Sean, the menu is so good!

sean said...

Nice work. Would it be too hard to throw in something like
if firemode == 'manual':
over the reload timer drawing? It's perfect for the sniper but kind of distracting with the pistol.

I'd do it myself but I'm trying to leave the source alone as much as possible until I actually get some animating done.

Benedict Carter said...

not a problem

sanityimpaired said...

Wow. This is absolutely outstanding, guys! Awesome!

Smiboo said...

Hi again, I'll have to check out this version, but I thought I'd drop by and mention that I wasn't going to drop my tickets formation idea on you and bugger off... I'm putting together a basic harness to experiment in 'Processing'. 'Processing' is a Java harness for doing visual stuff.

Anyway, I'm going to try and come up with some cheap algorithmic steps for sorting out bot positions, dealing better with formation changes, fast player spins and moving the better armed bots to the front.

Benedict Carter said...

Thanks SanityImpaired!

Hi Smiboo, cool! You can just drop by with ideas if you like, but its nice that you want to help out with code to, many hands make light work.

Benedict Carter said...

I'm sure you've probably already done this Sean, but just in case:

line 1063 of simobject.py:
if self.weapon.firemode == 'manual':