Before doing battle, in the temple one calculates and will win, because many calculations were made;
before doing battle, in the temple one calculates and will not win, because few calculations were made;
many calculations, victory, few calculations, no victory, then how much less so when no calculations
By means of these, I can observe them, beholding victory or defeat!
(Sun Tzu, The Art of War)
Tabletop and miniatures game are nice, sometimes damn good-looking, but they need players to be in the same place, at the same time, and sometimes require a lot of time, money and physical space to set up. So, it can be difficult, in not impossible, to play, and of course to gain experience. The book "The Art of War", by Sun Tzu, gave me the idea: what I needed was a simulator! Why 'Strategic'? Someone could say: "Why didn't you use/join an existing project?". Well, there are many reasons:
- Some projects were apparently dead;
- Some were not native portable to different platform;
- Some had unwanted and problematic features (ie.3d, sound, etc);
- Some were simply not suitable for the job.
So, what is 'Strategic'?
So, I decided to create s new project called "Strategic". It's goal it's to create a lightweight game simulator, based on portable languages, text based, flexible and expandable, designed to be interfaced with third party tools.
Status and road-map
Actually, there is nothing implemented yet. All I have is some 20 pages of written brainstorming and generic ideas, and a small amount of code for test purposes. I have a generic idea of how the project design should look like, but nothing has been yet decided. Here's the situation:
Text based application: the main engine will be entirely console driven. Every single command will be a command line on a console. This is to keep things simple, and to allow external programs to talk with Strategic using plain-text strings, or to load sequence of commands from external sources (ie. text files, email, remote connection, ai applications).
Multi-platform languages: since I have experience programming java, and I'd like to develop both at home (linux), and during breaks at work (windows), I decided to use java and groovy to write down the whole thing.
Customizable and package-based: many games may raise copyright issues on game systems I'm going to implement, so the application will be divided into two parts: the engine and the packages. One single engine will be able to load many packages, and run them separately, handling multiple players on different games. Every package will contain every rule, script, data-file, needed by the game implemented in it. Of course I'll have to define some rules that must be complied with in writing the package itself.
I'll write down more details about what are my current ideas, libraries I'll probably use, and about the design of the system. Stay tuned...