OPEN  WARGAME  LIBRARY  (OWL)
owl logo

email  Administrator

OBJECTIVE: This year: an updated, 'Open' Battleground-like napoleonic wargame engine that runs the NiRP files.
screen shot here1   screen shot here 2

You want to help write the source?

Great! First a few housekeeping details:
  • Try to keep to the same coding style. We reserve the right to refuse changes or edit them. We use C++ and MFC windows.
  • We use the Win API graphics library (and MFC wrappers).  Why not use DirectX?  Simply, we are extremely impressed with the longevity of the old Talonsoft NiR Battleground series. It CORRECTLY ran unchanged (except going to 32 bit between 3.1 and 95) in operating systems 3.x, 95, 98, ME, 2000, XP. That is impressive. Why did that happen? Because business software runs on API mostly and Microsoft isn't going to piss off its customers by making its new O/S not run older software that users might have. In our own example we use an image editor in Win XP and Win Vista that dates back to Win 3.x era!  The graphics requirements of this open source Nappy game engine are not extreme, plus with the modern graphic cards, Win API does the trick. This is basic engineering:  "Keep everything as simple as possible but no simpler."
  • MAKE SURE YOU USE     ASSERT( )    macros liberally in your code implementation. Ideally every time you make an assumption. This is absolutely essential when you access an array index!!  We won't accept code that does not constantly check and validate itself.
  • MAKE SURE YOU USE   const     liberally in your code implementation. Use the files below as an example if you're unsure of what we mean.
  • Know this: we or others associated with this program will not try to PROFIT from existing or your newly added work. However (like the Gnu copyright for LINUX OS) this work is not "FREE". We may charge at some future time a small fee to help with the upkeep of this web page and server. Or we may sell the entire CD with all games, Battlefield.exe file, and installation files for a small fee to cover costs; this is an aid to the non-technical user who doesn't want to mess with all the installation details. (We're talking at most $10 here and it will be for ALL the work, not $50 for each small time-scale battle like some commercial companies are doing. AND IT WILL INCLUDE completely OPEN Map, Scenario, and OOB editors all from the same application!)
  • We also keep a copyright on the work to prevent unscupulous individuals from taking the code and from it starting their own company for profit.
  • At some point we will release the code in (most) of its entirety, but that might be a year or more from now as it becomes more stable.
  • This effort is for fun. When we try to make a living from it, it will lose its status as a hobby and no longer be fun.

Now for what you really want ... the files.  YEEE-HAAA!

Filename(s)

Description of work needed ...
BattleMap.cpp, BattleMap.h
 
Loads MAIN.MAP from sub-directory folders and manages all aspect of the non-view map details. Check sum is incorrect for some map files, particularly for NiRP projects (ie, LD, MB, etc). Needs to be fixed. Can you find the error? Thanks.
FireTable.cpp, FireTable.h

Internally loads the NIR and NiRP weapon and fire effects tables. Partially complete. The option to load from the pdt file is not yet implemented. Can you do this? Also check for errors. (NOTE: The internally loaded files will be a radio button option at the start of PBEM games. This allows players to KNOW that no one is changing the weapon, fire, or melee tables during play. Coupled with not allowing a file save until the turn is ended will greatly increase the confidence players have when playing stranges across the internet. We believe (though many are secular humanists), like the Catholic Church, that humanity is depraved and needs some outside correction to behave civilly. This can be as simple as a locked door which will not keep out anyone who wants to damage the fixture to gain entry but will deter the casual inscrupulous person. [Aren't we all at some time or another?] This is why some basic changes to PBEM play are needed.)
MeleeTable.cpp, MeleeTable.h

Do the same as for FireTable.xxx implementation but for the MeleeTable files. Use the similar approach. Can you implement this? Improve?
OrderOfBattle.cpp, OrderOfBattle.h

D. Derwinski (I believe) some years ago wrote a program to edit OOB files. However, we'd like to have a seamless OOB, Map, and Scenario editor with the battle application. Can you implement the code to load the *.OOB file? Also include accessor functions for later GetXyz() and SetXyz() needs. Use the BattleMap.cpp implementation as a guide or do it better ...
Dice.cpp, Dice.h

Implement a dice class. Make sure it can take in its constructor upto 10 dice and 100 faces on each die. Basically just want to instantiate a dice object for example CDice dice(2, 6) for the standard two six-sided dice and then get a   DICEROLL dr = dice.Roll();   result.  Etc.  typedef diceroll with int or long. Have fun.  Make sure you randomly seed the random generator at the start of the the class construction. Also put in a memory of all dice throws in the past for each instance of the class so that we can keep track of the stats of a particular dice; this might be used to suggest less than honest behavior later during PBEM play. Ie, over hundreds of dice throws, the stats better be very close to the expected distribution; nature doesn't lie in that sense -- at least all past observations in statistics suggest this.
ScenarioFile.cpp, ScenarioFile.h

You know the drill if you've read the above. Continue implementing loading of the *.SCN files. Also include accessor functions using the   GetXyz() and SetXyz()   methodology, etc.



rule_changes.txt

You can also help by emailing any ideas for changes or additions to the existing game engine. This file gives a quick list of those already in progress in the new 'Battlefield' game engine. We'll take them into consideration.





Not a programmer? You can help by cleaning up any of the image files in the "Downloads" section (see link above). For example, many of the 2D maps have embankment hexside images in the water hexes. We have no idea why that is so. You could clean those up. Also, Golden Morale for most of the Russian Campaign scenarios are needed to be added.




Here I am sitting at a comfortable table loaded heavily with books, with one eye on my typewriter and the other on Licorce the cat, who has a great fondness for carbon paper, and I am telling you that the Emperor Napoleon was a most contemptible person. But should I happen to look out of the window, down upon Seventh Avenue, and should the endless procession of trucks and carts come to a sudden halt, and should I hear the sound of the heavy drums and see the little man on his white horse, in his old and much-worn green uniform, then I don't know, but I am afraid that I would leave my books and the kitten and my home and everything else to follow him wherever he cared to lead. My own grandfather did this and Heaven knows he was not born to be a hero.
-- Hendrik Willem van Loon