WWIIOL - Ballistics

NOTE: This project is currently active again! Yeay!

This is a program I've been chipping away at in my spare time to get back into the habit of programming all the time, and to get myself more familiar with loading/saving in XML from Java, as well as playing around with some of the SWING features I've never really cared to get too involved with.

The program is done entirely in Java, using SWING for all of the UI components and XML for all file saving (although other file formats will be supported in the future).

Program Goals

Often, the sheer variety of the tanks, anti-tank guns (ATG's) and anti-tank rifles (ATR's) is overwhelming in the game. Keeping which guns can penetrate which tanks armor, and at what range is a complex task. It's also one I'm not very good at. So I decided to make a program to help me determine with a better degree of success when I would be able to take a penetrating-shot on enemy armor. With this in mind I wanted to input the gun I was using, the tank I was aming at, and the distance between us, and have it calculate (visually) whether or not I was likely to be able to kill the tank.

I decided to develop the program in a number of phases, each phase being an improvement on the last. Also, at the end of each phase it was my goal to have a program which is at least HELPFULL, even if it doesn't meet the overall program goal. This way, I would have a program that was growing, yet still had tangible and useable results as it improved. Planned phases so far are:

  1. A simple chart of penetration data. Vehicles, guns, ammunition, and the penetration data for each would be stored in the system, and should be displayable in a chart which makes comparason between the various guns and ammunition types easy and fast. Using the information entered, penetration values for ranges between the known data points should be interpolated to provide simple penetrationAtRange() functionality.
  2. A chart similar to Phase 1 (ammunition penetration values) with the addition of being able to chart the armor values (for the various components of a tank) on the same visual chart. Mainly to allow a fast and easy visual clue about ranges and gun-penetration figures against the various AFV's.
  3. A diagram of each vehicle, with the various components drawn in a color indicating the likelyhood of penetration by a selected gun at a selected range. Most likely the user will select a gun, a tank, and a range. The diagram should then show in one color all the armor panels that can be penetrated by that gun, and in another the armor panels that cannot.

As I am currently in the process of implementing this system, I am unsure if whether or not I will choose to take into account angles to target, and armor sloping. The data is present in the XML Schema derrived for this project, but at current it is not used.

Also, since there is often much contreversy over the capabilities of the various weapons in WWIIOL, the program should be organized in such a way as to allow fast and easy switching of gun penetration values. Furthermore, the XML Schema should store data on the source of the various data points and armor values for tanks, so that a critic has the tools available to check the work that has been done, and contest its validity if necessary.

Download

The various versions of the program are avilable here. Version 0.1c onward should have a changelog included to keep the changes since the original 0.1a version updated. If a version has a showstopper bug, then it might be made un-available.

Latest Version:

[November 07, 2005] 0.4b - Beta Release - Changelog - Known Issues

Old Versions:

Installation

The application is distributed as a .jar file, and requires Java 1.5 to run. If you have the Java Runtime Environment (JRE) installed, you should be able to run the program simply by double-clicking on the .jar file included. The latest JRE for windows is available HERE for those of you that don't have it.

The program should run on Mac's as well, but since I don't have access to a Mac or Linux box it is un-tested.

Screenshots (from v.01a):

Example Graph Example Graph

Current Features:

Upcoming Features: