First Progress
Points of Interest
Tank Assault will be different (and better) than Bolo in the following ways. Note these are hypothetical ideas, not a product description. Most of text verbatim from MW's original email, quoted with permission. -Jolo
- Object oriented
-
Tank Assault is being written from the ground up as an Object Oriented game. (One would think, since it is written in Java.) It is hoped that this will make the creation and up-keep of the game more simple. ;)
- Client/Server
- Using client/server technology, game lag should be kept to a minimal. Consider the typical nightmare with current Bolo where somebody with a fast connection starts a game and is joined by several others, including inevitably a modem lagger. Under the ring topology of Bolo, that means every piece of information is passed around all the players in a ring, so that the overall lag is the sum of all the individual lags and everybody is limited by the slowest player, resulting in a laggy broken ring. Under a client/server topology, each individual client player connects to one server machine with a fast connection, which passes the information to the appropriate clients. If a modem player's connecting freezes up, others will continue to play unaffected.
- Minimal Information
- The initial networking will be done on a mostly "send only what has changed" algorithm. This keeps network traffic to a minimum. Because of some of the overhead needed to calculate object positions, etc. This will be balanced with the "tell them everything" technique for some of the objects. Finding the right balance will take time and testing.
- Variable frame rates
- This will be fully tested before the game is officially released. Easily done, but still not sure if this is the best option.
- Observers
- The game will have an "Observe Game" option to allow people to join in and watch a game without participating. There will probably be an option to turn this off.
- Base view
- Something that has been wanted in Bolo for years and years, this option will allow one to see what is going on around their bases, like they can their pills.
- Scroll-back message window
- No more missing messages on the small one-line window.
Where's the game?
Game? What game? At this point, it doesn't even look like much of anything. Im taking the time out to drop in supporting object structures and methods to do some of the simple things.
For instance:
-
Im creating aTank control mechanism that brains will use. The built in driving of the tank and LGM control will actually be just a watered down brain. Brains will be a threaded part of the program. They will not pop into and out of existence.
-
Objects are created for the tanks and pills and bases. These are threaded parts of the game. Pills go to sleep for a period based on how "hot" they are. When they wake up, they shoot the nearest enemy tank and then go to sleep again. (Tho shells do not go across the screen yet.) Bases go to sleep, wake up and replenesh so much, etc.
Currently the game can load a map and it will select a starting square. It can scroll through the map, but there is not even a tank driving on it. (Hopefully this will be done by the end of March.)
Once the tank is driving around on the map properly then I starting the shooting mechanism and have shells zooming across the screen.
When will the game be released? Why, by "Christmas" of course. :)
FAQ
Q: Why isn't this a violation of Stuart's copyright?
A: TA will be entirely independently developed from Bolo. It will have entirely different code as its guts, and will likely have different graphics. As such MW feels it is safe. Note that this is the case with AA as well, and those guys didn't think it was safe enough to release. We'll see how it works out.
Q: It's Java, are you sure it is fast enough to handle this?
A: So far so good! I figure that if I can get it to work on my 6100, it's fast enough
Q: I hear Java is not really good at cross-platform development and that it's a real pain.
A: That's for me to find out, eh? So far what I have written on my Mac runs beautifully under Windows
