Performance Clues

BlitzMax Forums/BlitzMax Programming/Performance Clues

Macguffin(Posted 2008) [#1]
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.


plash(Posted 2008) [#2]
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.


ImaginaryHuman(Posted 2008) [#3]
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.


Macguffin(Posted 2008) [#4]
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."


Gabriel(Posted 2008) [#5]
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/