The Game

About
Download
Screenshots

Readme
History
The Game was written by Virtu Halttunen, purely for fun. Its roots are in the ancient history, when there were none of these silly 3D shooters. Instead there were proper games like Laser Squad and Space Crusade. Virtu had enjoyed those, but wanted to make a game that was exactly like he wanted it.

TheGame.java
Started on June 20th, 2001
Copyright (c) Virtu Halttunen

February 20th, 2004: 	Changed the message field in TeamManagerWindow into a styled JTextPane.
			Much hilarity ensued with the layout blowing up. That was solved by using
			setSize( getPreferredSize() ). Yeah, ugly. Also changed ImageCropper into 
			ResourceManager with support for external resource directories. Getting
			closer to plug-ins...
February 21st, 2004: 	Added CommandBobsObjective that lets you tell those pesky
			civilians to get out of the way
February 24th, 2004: 	Changed the way the movements and attacks are handled and animated. 
			Took a lot of work, but now the bomber brute death sequences look better
February 25th, 2004: 	Game.addMonster now sorts the monsters acording to their sizes,
			so larger monsters should not appear beneath smaller ones any more. Shortest
			path finding for characters now only avoids those other characters that can
			initially be seen. Promotions and attribute advances are now displayed in
			TeamManagerWindow
February 26th, 2004: 	Added the Subordinate interface. Mines and sentry guns can no longer be told
			to move
March 13th, 2004: 	CommandBobsObjective now properly lets you give the Subordinates
			a target to seek
May 26th, 2004: 	And this line is for Sepe, another American cocker spaniel. A sad little
			runt when he came to us, 13 years ago, but he turned out okay at the end
December 26th, 2004: 	Fixed CommandBobsOjective so dead Subordinates can no longer be commanded
May 10th, 2005: 	Fixed mouse keys and modifiers and the display of inline messages for 1.4+
May 11th, 2005: 	Added quick and dirty support for displaying number of grenades left
July 17th, 2005: 	After a long hiatus, added melee combat. Added new About and Quit handlers.
			The Game now requires Java 1.4
July 21st, 2005: 	New XML-based (and gzipped) map file format. Objects are now destroyed at 
			once instead of piece by piece
July 23rd, 2005: 	Path finding now tries to use the room graph to optimise long distance
			searches. Weapons being fired makes noise that can alert monsters 
July 27th, 2005: 	Mission file format has been XML-fied. It was arguably a good idea to
			separate the primary and secondary objectives from the others in the file,
			but less so in the actual Game. After a lot of headache, it now hopefully
			works. Objective.getDescription() and isPrimary() have been removed as
			unnecessary. New getDescriptionClip() gives more flexibility, although it
			could be better, too
July 28th, 2005: 	Team status and marines are now saved as XML like the rest of the data
July 29th, 2005: 	Added the mission selection dialog and finished the support for mission
			prequisites, disallowing team changes and automatically opening next
			mission. Ladies and gentlemen, we have a campaign mode.
July 30th, 2005: 	Added GenericMonster class that will hopefully make it easier to add
			new monsters. Now they only need the graphics and a fairly simple XML file.
July 31st, 2005: 	Added Juve, the first GenericMonster type, tweaked the animations and
			monster numbers
August 1st, 2005: 	Added DestroySceneryObjective, obsoleting CloneVatObjective.
			New graphics for Brute
August 2nd, 2005: 	Changed the animation system slightly, to better account for variable
			frame numbers on each character type. Also moved the monster action
			handling from GameWindow to Game where it belongs
August 3rd, 2005: 	Updated graphics for ShotgunBrutes, BomberBrutes and the Marines. The
			soldiers now show their weapons in their sprites, and have more animation,
			including a wound action
August 4th, 2005: 	Added Tribbles and CollectTribblesObjective. Fun?
August 7th, 2005: 	Map objects can now be pushed around, causing damage to characters
August 8th, 2005: 	Added keyboard support for shooting and using stuff.
August 10th, 2005: 	Added Minigun, replacing the Smartgun as a player choice
August 12th, 2005: 	Added Auto-cannon, VipidiotObjective
August 30th, 2005: 	Map objects can now be shot with non-area effect weapons. Objects
			can no longer be moved to closed doors, and are now destroyed when closing
			a door on them. It is now possible to choose one-shot missions between
			campaign missions.
August 31st, 2005: 	RecoverObjective is now shown on the map only after it has been discovered
			in random missions. Added regrouping. Sort of works, but is a bit odd at times.
September 2nd, 2005: 	Regrouping is now more robust
September 3rd, 2005: 	Added plasma blaster
September 5th, 2005: 	Added WeaponSwitchObjective
September 17th, 2005: 	Civilians now blow up mines in the same way as Marines
September 19th, 2005: 	Added VipidiotArrestObjective and VisualTriggerObjective
September 21st, 2005: 	Broken objects are now drawn as stains, so other objects cannot
			be pushed under them, and new monster corpses are drawn on top, too
September 28th, 2005: 	Fixed a bug in SeekerAI that could lead to stuck game if a room
			didn't have neighbours. Fixed a visual bug with collected Tribbles.
April 1st, 2006: 	Fixed a NullPointerException in Vipidiot
April 2nd, 2006: 	It seems Rippers didn't roam properly. Now they do again
April 8th, 2006: 	Bloody heck. Finally changed the mission statistics to use a NumberFormat
April 10th, 2006: 	BattleRobots may reactivate again
April 12th, 2006: 	Bobs are now tiny bit less moronic about escaping enemies when they also 
			see player characters
April 15th, 2006: 	Fixed a NullPointerException in CollectTribblesObjective that could
			happen with AirLockDoors. Stains are now revealed properly


Older history
Last update: Mon, Apr 17, 2006