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



4 comments:

Brian said...

Best of luck hammering things out under the hood to your satisfaction!

Asking around a bit, here seems to be the method to get a page going at Roguebasin:

"Ah, all you have to do is create a login,

then edit the recent news page, and create yourself a page."

Hope that helps and looking forward to the next release whenever it happens. I recommend posting any technical queries you have over at Roguetemple or the Roguelike.development Google Group

Sealer said...

Hey there, I really like the idea of your game, but I´d like to know what are the requirements to run it?

I´m using windows vista 32x and I get a weird error "this application has requested runtime to terminate it in an unusual way". Any cure for that?

Anonymous said...

I have Windows 7 and when I run your game I get a dialog box saying:

"Errors Occurred

See the logfile 'c:\games\rl\plague\Plague 3.38.exe.log' for details."

Said file contains this (obviously repeats itself whenever I run it again):

"(ImportError: MemoryLoadLibrary failed loading pygame\mixer.pyd)
C:\games\rl\plague\Plague 3.38.exe:45: RuntimeWarning: use mixer: MemoryLoadLibrary failed loading pygame\mixer.pyd
(ImportError: MemoryLoadLibrary failed loading pygame\mixer.pyd)
Traceback (most recent call last):
File "main.py", line 80, in module
File "main.py", line 48, in load_game
File "game.pyo", line 840, in __init__
File "engine.pyo", line 22, in __init__
File "pygame\__init__.pyo", line 70, in __getattr__
NotImplementedError: mixer module not available"

I've tried every single compatibility option, always gives the same error.

Benedict Carter said...

Hi Sealer, Anon,

The req are pretty steep, about 1Gb ram + a decent CPU (a slow CPU will just make the game run slowly, it should still start).

Sounds like the latest .exe compile didnt work - sorry about that.

I'll recompile, test, and re-release. I'll post on the blog when thats done (tonight).