Performance Clues

BlitzMax Forums/BlitzMax Programming/Performance Clues

Hey all,

I'm starting to wrap up my get-my-feet-wet project, and to think about a larger scale one. The one I have in mind is a high-level strategy game - think along the lines of the Europa Universalis / Hearts of Iron games from Paradox Interactive.

I'm wondering a couple things that I'm hoping some of you veterans might know answers to, or point me in good directions to investigate.

1) I expect this game to be much more expensive computationally than graphically. Are there any key areas that Blitz bottlenecks early, non-graphically?

2) One goal I have for the game is to make it very user extensible. This will involve having a ton of accessible data for modders. I haven't gotten far enough along to look into this much - the benefits of text vs xml vs scripting vs whatever. My current view is that it will be a tradeoff between ease of end-user modding and speed. How prone a given method is to bugs will also enter into it, I'd guess. Any thoughts are appreciated.

3) Anything else you think might be helpful for me to know. ;)

I realize this is a big project, and will take a while, and that I'll be writing and rewriting of code as I go - especially given my lack of experience. My goal at this point is to make sure that I have my head around some of the really important stuff early on, so I can make better decisions at the start. I'm viewing those items as having a good grasp of OOP (to ease refactoring), and have some approach in mind to deal with user extnsibility and the eventual perf bottlenecks.

Thanks.

1) Nothing really, but there is no multi-threading.

2) BriskVM is a really good scripting language - you can limit what your modders have access to aswell.

There aren't any performance bottlenecks until you write some code ;-)

I think you may need to outline what kind of things you will be `processing` before you can get down to figuring out if there will be any bottlenecks - you'd have to have some idea of the kind of algorithms you're going to use, what kind of data, how much of it how often etc.

Extensibility-wise I recommend scripting. I think xml is highly overrated. It's supposed to be used for giving `meaning` to otherwise meangless out-of-order data and I don't see why so many people use it for meaningless things like config files and the like. It may be an improvement over a proprietary file format that's not human readable, but xml isn't exactly very friendly to read either.

Thanks guys.

@ImaginaryHuman - yeah, I realize these are about as overly broad as I could get on questions, but I wanted to see if there was an, "Oh God, never do it like X issue in the weeds."

Are you aware that Paradox Interactive recently gave away the game engine used to make Hearts of Iron and Europa Universalis 2? Might be worth a look given your interest in making this type of game.

http://www.gamersgate.com/engine/