Leonardo Boselli


Copyright © 2012, Leonardo Boselli.
All rights reserved.

What is MekaWars?

Just a few notes to describe what is available in this program.
<B>MekaWars</B> is a game of the <I>programming-game</I> genre: in this kind of
games like <A HREF="http://jrobots.sourceforge.net">JRobots</A> or <A HREF="http://apocalyx.sourceforge.net/guntactyx">Gun-Tactyx</A> the player programs the AI of his
team of bots and then watch them fight against teams programmed by
other players. In this case the game is set in outer space and the
players write the control script of star-fighter pilots and star-
ship captains.

The 2D viewer

To stop the simulation just tap the screen.
Then you can edit the AI scripts and restart.

The 2D viewer is organized as follows:
You can see a rectangle and a few dots. The arena is toroidal,
but only for the dots: radar devices are stopped by the walls,
while dots that enter a wall appear from the opposite side.

Red large dots: fighters
Green large dots: harvesters
Yellow very large dots: asteroids
(some are made of iron, others of uranium)
Cyan small dots: uranium resources
Orange small dots: iron resources
White small dots: cannon balls
Magenta small dots: missiles
Red small dots: torpedos
Green small dots: decoys
Finally, lines connect missiles to
their targets for debug purposes.

The simulator

Vehicles, such as fighters and harvesters, owns a pilot: the
pilot's AI is executed by a script (in this case "pilot_*.lua")
written in Lua (http://www.lua.org). Read the included manual
to know which functions are available to the pilots.

Then every dot can interact with other dots. Just a few disordered
notes because an organic documentation in not available yet:
<B>Cannon balls</B> fly at constant speed for the specified distance
and then explode, but they explode also when they hit an obstacle
or a nearby explosion
<B>Torpedos</B> are launched at different speeds, you can also simply
drop them (in that case they are similar to mines); they possess
an activation time and trigger distance (when they are not
activated, they can't explode; once activated, they explode when
hit, or when a vehicle moves in their activation distance)
<B>Missiles</B> are similar to torpedos, but once launched they link
to a target and try to approach it at constant speed. When the
target is missed (because destroied by other projectiles), the
missile moves on a straight line: when another vehicle is
approached at a certain distance, that becomes the new target.
<B>Decoys</B> resemble the vehicle that throw them: they confuse
missiles (they begin to follow the decoy if it is nearer than
the real target) and make torpedos explode as real vehicles.
<B>Asteroids</B> may throw pieces of resources when hit
<B>Vehicles</B> become iron resources after an explosion
in reason of half its mass and harversters, in
paticular, release their charge

More behaviors are built-in, but it's too long to describe all
them here. You'd better to see the sim at work.

Vehicle will be made of several devices with different purposes.
The only vehicle currently simulated are:
HARVESTERS install a generator, an engine, an armor, a radar,
a detector, a tank and a harverster, properly said.
Half harvesters install devices for iron, other for uranium.
The devices interact with each other and with the surrounding
environment realistically according to several rules (e.g. the
armor has a certain resistance - it depends on the kind of
armor - that brought to zero by damages destroys the vehicle etc.)
The radar is useful to detect obstacles and other vehicles.
The detector is used to find resources.
FIGHTERS install a generator, an engine, an armor, a cannon,
a torpedo tube, a missile lancher, a decoy thrower, a radar,
a threat device.
The threat device inform the pilot on the distance of the nearest
missile, so he can try evasive manoeuvres or launch decoys.
The cannon has illimitate projectiles, but consumes energy for
each shot (when there is no more energy, the vehicle is
disabled). There are only 6 torpedos, missiles, and decoys.

More should be described, but this little gives you an idea.

The scripting language (Lua)

The scripting language actually supported by MekaWars is Lua.
To know more about this language read the user's manual.


If you find this game interesting and want to support further
improvements of the project, you can fund it with donations.
The 5% of the amount you are going to donate will remain
to SourceForge.net for their great hosting service.

Thank you in advance!

URL for donations: http://www.sourceforge.net/donate/index.php?group_id=65456


I wish to thank all the people who helped in the development.

In particular, I wish to thank Paolo Antoniani for portions of the code and
his great ideas and suggestions whithout which the development
of this simulator was going to be much more difficult.

I exclude any and all implied warranties, including warranties
of merchantability and fitness for a particular purpose. I make
no warranty or representation, either express or implied, with
respect to this program, its quality, performance, merchantability,
or fitness for a particular purpose. I shall have no liability for
special, incidental, or consequential damages arising out of or
resulting from the use, misuse, or modification of this program.

All trademarks are property of their respective owners.

Terms for use (Part of license)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public
License along with this library; if not, write to the
Free Software Foundation, Inc.,
675 Mass Ave, Cambridge, MA 02139, USA.

Contact information

Leonardo Boselli tetractys@users.sf.net

MekaWars Site: http://mekawars.sf.net