Wednesday, July 7, 2010

Plague rewrite - your design thoughts wanted

I'm in London and unemployed right now, which leaves me with loads of unallocated time that I can use to upskill (and spend going for runs in the sun). I've started learning C# and XNA and am planning on releasing a new variant of Plague - it'll have similar gameplay but with different design trade-offs.

I'm concentrating on programming, with the game as an after thought (but also a concrete testbed in which to write lots of code). As such I'm happy to outsource lots of design decisions.

Here is what I am thinking at this point:
  1. Top down shooter
  2. Procedural map generation
  3. Procedural weapon generation
  4. Line of sight for game agents
  5. Hive mind for zombies (so they dont all have individual memories which was quite expensive)
  6. Tower defence elements
  7. RTS style controls for friendly agents
  8. Much less AI for friendly agents?
  9. Keep game fast (probably lose cellular automata fire and explosions)
  10. Open world gameplay (I really hated the confined maps of Plague) - not sure how I'm going to do this - any hints?
  11. Unlimited ammo?
  12. Recharging health?
There are about a billion design decisions to be made within this design outline, and I'd be keen to hear your thoughts. If anyone wants to help out, please let me know. There will be plenty of testing/balancing required.


Monday, June 21, 2010

Attack of the paper zombies

The excellent indie freeware game, Attack of the paper zombies can be found here: http://www.indiebird.com/blog/?page_id=376

It's a really fun tower defence/squad based RTS. Really simple controls and gameplay, but with enough depth to be interesting and very well executed.




Monday, February 15, 2010

No news is good news?

Nope, not in this case.

So in my last week of holidays I decided to add RTS controls to the game. But when I went to look at the existing codebase to add the new systems, I found a horrible "complexity bomb" waiting to go off (marginal improvements took exponenially more time to implement due to a design and construction of systems that dont scale up well). Which, if memory serves is why I stopped working on this a while back and started studying code design and construction properly.

With my new found knowledge, I decided that I could fix it, and so I started to with gusto, but as the days rolled on, I decided it might be better to start from scratch with a new clean engine designed to handle the complexity I want to throw at the game (no offence to myself, but its a terribly designed and constructed game engine for the amount of complexity I've added in. Not bad for a first attempt at programming though and a very good learning experience :P ).

So I started investigating Panda3D and BlenderGame (designed and constructed by teams of people who knew what they were doing), and thats when I ran out of holidays.

Right now I'm in the middle of a transition from happily employed in NZ to unemployed (hopefully short term) in the UK (hopefully long term). This happened right at the end of my holidays which is why there hasnt been an update since my last until now (haha). The transition of course doesnt leave a lot of time for other things, and so work on Plague is on hold, indefinitely. I might next get a chance to look at it in June. But even thats massively unlikely.

In the meantime, Plague is of course openSource, so if anyone wants to go and gut the beast and recode a new shiny engine, or better yet take the parts you like and put into an existing shiny engine, feel free. I've already got a sourceforge etc setup, so if anyone wants access, shout out. I'd just like to be able to contribute again in the future, as time permits.

Friday, January 1, 2010

Has it really been that long?

Wow. I knew I hadn't done any development for a while, but I didn't realise it had been that many months. Blame training for a sports event, too much work and a slew of excellent games culminating in (a much delayed but sublime) Fallout 3. That's the best game I've ever played (if quite buggy). Browsing the mod scene for Fallout 3 has lead to me a "28 days later"mod for Oblivion... I'll try to resist installing that and get back to programming with my remaining week of holiday but no promises :)

Tuesday, September 8, 2009

Fort Zombie

Wooooo. Kerberos are making a zombie game that I want to play (which is what Plague will eventually be)


If you like Plague, it might be worth keeping an eye iout for Fort Zombie, I certainly will be waiting to give it a play.

Tuesday, August 25, 2009

Plague 3.39

Not much in the way of changes from 3.38 from a players perspective - I've just recoded some of the engine stuff - treat as a beta-ish release since all manner of bugs can crop up (although I think I've squished them all so far). Main reason for release is so the dll pack isnt needed.

Tuesday, August 18, 2009

Plague DLLs

I've just uploaded a 1Mb zip file of dlls for the windows version of plague. Unzip them into the same directory as the plague.exe. This fixes the missing "mixer" error message.

This seems to be caused by developing on Win7 - weird. It's kind of ugly having all the dlls there, so I will probably compile on winxp from now on (doesnt seem to be a quicker answer for sorting this out, but I'm happy to be proven incorrect).

Sunday, August 9, 2009

Plague 3.38

So I've just picked up Code Complete, and I'll be reading through that before working on Plague - see if I can learn some stuff to reduce the complexity in Plague to increase the speed of development.

I'll probably then refactor/recode large amounts of Plague with better coding practices which will mean no visible development for a while - hopefully there will be speed improvements though and the end product should be much easier to continue development on.

The plan is then to stop working on the "battle" simulations and get onto the strategic game layer. Adding features to the battles can resume once theres some more context for them.

I've also picked up a couple of AI programming books. Once I've worked through those I'll upgrade the AI infrastructure from a state machine.

As always, if anyone wants to work on this, feel free; either drop me a line in the comments or send me a gmail to benedictnz.

One thing that would be particularly good is a fast implementation of an A* like pathfinder - I've got one written in python, and its good (and since its written in python, easily modified) but with 10AI using it things get kinda slow.

The other issue thats been bothering me for a while is the simulation will "pause/lag" for a fraction of a second every couple of seconds when doing grunty calculations (eg: calculating partitions during the tech demo). I have no idea why. Does this happen to you? If so, do you know why? If so, can you provide advice or a fix? If it doesnt happen to you, can you let me know your system specs and OS?
  • Finally fixed annoying ammo bug (I think) - still some other bugs to do with removal of shrubs and rocks, but not worth worrying about right now.
  • Added smoke trail to Rocket Launcher.
  • Altered petrol dispersal from molotov grenade.
  • Updated "kill" method of Sim.check_boundary()
  • changed the way sim command destinations are updated (to decrease and distribute cpu cost)
  • corrected 2 errors in resources.py that led to incorrect images for memorised pistols and shotguns
  • improved manual map building functionality
  • rocks create smoke when destroyed



Monday, August 3, 2009

Plague 3.37

  • Fixed Bug: items could be dropped from inventory after they had been removed, leading to AI bugs where the AI would try to pick up the item (but it wasnt possible, so they'd become stuck). Similar bug (to do with blocks/hives/shrubs) may still be present... nasty bug!
  • Survivor AI: Will now turn and fight if pressed too hard by zombies
  • Ammo: Ammo generated as part of level recharges (eff. ammo crates)
  • Survivor AI: Will now not try to pick up ammo which is mostly empty
  • Rocket launcher now has a min_dist before explosion
  • Survivors now start all over the map
  • Floating point maths error with shadowing fixed (so shadowing always work properly now)
  • Tweaked flamethrower stats
  • Saved survivors now join your squad (max 4 for speed)
  • Improved demo to include survivors and zombies (battle but without the player)
Todo:
  • Need to reduce path finding updates (/or some other path finding speed optimisation)
  • continue removing stupid ammo and block bug (grrr)


Thursday, July 23, 2009

Plague 3.36

Well, Plague seems to be fairly stable, so heres another playable release. I wont get to work on it for the next week at all, so the next release will probably be two weeks away.

There is a desperate need for some better artwork for the Rocket Launcher (RT) and Flame Thrower (FT), both images and sounds. If anyone wants to help out (with that or anything else), please feel free.

Changes:
  • Flamethrower (oh so much fun)
  • city type level generation
  • random level type
  • level generation paramerisations randomly picked to increase level unpredictability
  • Changed collision checking to be event based (speed op)
  • Removed various bugs (sorry, cant remember, too tired)
Todo in the near future:
  • cave system type level generation
  • RL_bullet bug - sometimes explodes straight away as it collides with RL (need to add a min safety dist check)
  • tile based background
  • doors
  • add more survivors, less weapons and make them start at random locations
  • check shadowing algorithm for bugs (sim removal sometimes removes too much shadow)
  • human corpses
  • zombies drag corpses back to hives
  • refactor level generation as a state machine to control level generation outcomes

Sunday, July 19, 2009

Weekend update

I havent posted Plague 3.36 yet as I'm still working on randomising level generation. The new flamethrower is pretty fun and I've rewritten collision detection to be much faster. Should have a new release in a few more days (as I dont get much time per day to work on it).

Sunday, July 12, 2009

Plague 3.35

I didnt get as much as I wanted to do done today, due to unforseen events. That said, I:
  • Added end of level stats showing your cumulative kill count etc (I'll put in discrete kill count as well next time)
  • refactored: simobject rmeoval to remove a bug
  • refactored the cellular simulations for heat and shockwaves to take time as an input variable, and made them update at varibles rates (trading accuracy for greater speed)
  • increased sim sight radii - need to see further for explosions - Plague is probably too easy right now, dont worry, I've got something planned that you'll either love or hate :)
  • improved smoke art - it was uuuugly.
  • turned off pre-processing of line of sight by default (turn on in options if you want)
Stuff I didnt get done that I'll try for next weekend:
  • Flamethrower (now I've sped up the fire)
  • cave system type level generation
  • city type level generation
  • random level type
  • level generation paramerisations randomly picked to increase level unpredictability
  • add more survivors, less weapons and make them start at random locations

Tuesday, June 30, 2009

Plague 3.34 redux

I'm just uploading 3.34 again. I was mucking around with the smoke and opaque smoke costs a ridiculous amount of CPU time. I have therefore set smoke opacity to zero, and now Plague runs nice and fast - smoke is just eye candy now. Gutted. Anyway, if you get the source version you can put make opaque smoke (simdata.py line 1499).

Monday, June 29, 2009

Plague 3.34

It's been a long time since my last release! (I've been playing Gothic3. Sacred2, Prototype, Viking, Too Human in my weekends). That said, I think I'm through most of the games I want to play, so we should be back on track for regular development of plague.

Plague 3.34 changes:
  • Survivor AI now essentially event based where possible
  • Survivor squads added back in (use "V" to issue orders). It's not perfect, but it works good enough for this release.
  • I've added a Rocket Launcher (so much fun) - it needs decent art and sounds...
  • I've added smoke to explosions that is (poorly) physically modelled - yeah, it's really slow, but its kinda cool to look at and it obscures vision (I need to cleanup the collision code to become event based to help speed this up)
  • Survivors now dont bump "hard" into each other, and I'm reasonably satisfied with the friendly collisions now
  • Survivors dont get hurt by bullets, and they dont check their fire. This means you can shoot safely past friends, which is a major change. I basically got sick of trying to sort out formations not blocking your line of fire and decided this was an easy quick fix. I might change this back in the future once formations work well again
  • Loads of small code fixes/cleanups
  • I've changed the players avatar color to be easier to differentiate (I was finding it hard).


Monday, June 1, 2009

Plague 3.33

The survivor AI has had a comprehensive rewrite. Survivors now remember the state of the map and utilise this information while they prioritise actions, and they plan their journeys accordingly.

I have disabled survivor formations and orders for this release (I'm out of time this weekend). I'll add that back in the near future.

I'm not convinced the state machine I've designed is the best one possible (I'm fairly sure there's a couple more rewrites from me as I gain more experience/need more performance). If anyone has experience with writing state machines or planning state managers and wants to help out with designing and/or coding, I'd love to hear from you.

Sunday, May 24, 2009

Plague pathfinding

I added pathfinding to Plague last night (Eli Bendersky's python algorithm - thanks Eli), so survivors and zombies can be a whole lot smarter. It'll take a little while longer to re-engineer the AI to take advantage of that, and then I'll post a new release.

Sunday, May 10, 2009

Plague 3.32

  • Game mode system is now functional - allows the user to resume games (eg: after going back into the options menu). 
  • Improved survivor graphics from Sean Lange.

Friday, April 24, 2009

Plague 3.31 update

I fixed the mem leak, but I didnt add the cleanup code to the game, just the test environment (Whoops!). This release of 3.31 removes the major mem leaks from the battle scenario as well.

Thursday, April 23, 2009

Plague 3.31

  • Fixed mem leak
  • garbage collection debugging code added by Droid - thanks!

Sunday, April 12, 2009

Plague 3.30

  • Changed shadowing algorithm - removed artifacts, nice clean code
  • bugfix: shrubs now leave behind burnt shrubs when burnt - not sure when I broke this
  • bugfix: AI sims try to pick up guns (again)
  • bugfix: AI sims now switch weapons if they run out of ammo (again)
  • tidied for world.add_sim so that force is used where appropriate, and other checks removed
  • added a key (j) so you can see the new shadow maps - I think they are kinda cool  (and they were good for debugging) .