Strategic About

Preamble

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 goodlooking, but they need players to be in the same place, at the same time, and sometimes require a lot of time, money and phisical 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 lifeless;

- Some were not natively 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 expandible, designed to be interfaced with third party tools. Status and roadmap 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 nothin 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, python and XML languages 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, datafile, 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...