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
|
|
|