BigCalm : SWOS Java

SWOS re-creation in Java


Uppers: The latest version of Sensible Soccer built in. A massive database of facts and figures. The most precise control over tactics imaginable. Seamless integration between the playing and management sides.
Downers: It hasn't got any of the plot stuff that Steve likes.
The bottom line
The best Amiga game ever. 95%
- SWOS Review, Amiga Power, 1994


Re-creating SWOS in Java will be no easy task. What follows is a list of the tasks that need to be completed, their difficulty, and their "must have" need. My diary of development should keep you updated, but it may consist of 90% proof rantings and incomprehensible gibberish.

TaskDescriptionDifficultyNeed
SpecificationSome kind of coding spec would be useful :=)210
TacticsIf there's anything that sets SWOS apart from other football games its fluidity of play, and its immediateness of controls. Almost anyone playing SWOS for the first time can easily pick up how to play it within ten minutes. However, as the saying goes, ten minutes to learn, a lifetime to master. The AI contained in the tactics file is absolutely intrinsic to the game, and must be copied, virtually unchanged into any SWOS implementation. Without this, it would just be another football game. It needs to be reverse-engineered if possible. This is the most important, and the hardest aspect of the implementation. I need to work out the file-format of the tactics editor using a hex editor, possibly attempting to decompile the source as well.1010
Goalkeeper AIThough not as important as the tactics, the goalkeeper needs to be good, though he doesn't necessarily have to be identical to the original88
PhysicsPhysics of the ball, and players needs to be calculated, but this should be relatively easy, but might require fine tuning to get it to run like the original910
GraphicsThough essential, graphics are nowhere near as important as the tactics stuff. I'm quite happy running blobs round the screen as long as the game plays like the original1 (7 if decent graphics are used, 8 if they're ray-traced)5
SoundSound is much much more important than graphics. Any game can have good graphics and be rubbish. Good sound, leading to good "atmosphere" is essential to a games success. Crowd sounds (probably looped .wav files) are essential, as well as standard things like the thunk as the ball bounces off the crossbar, the referees whistle, and the sound of a player kicking the ball. Commentary is much less essential. However, it shouldn't be difficult to obtain such sounds on the www28
Current Player AIA lot of work went into SWOS to determine which was the current player that the player was controlling. This is sort-of tied up with tactics AI, but again, will probably be difficult to reproduce and difficult to tune it correctly. It's also just as important as the tactics section.1010
TeamsOther people in the past have managed to make a hex-file description of SWOS teams files. This shouldn't be too much of a problem to convert these to another format if we have the HEX specification. Neverless essential.48
Menu SystemThe menu system includes all the options of the original, comprising Career mode, transfers, injuries, friendlies, DIY cup, etc. It'll be a fiddly job and I'm not planning to exactly duplicate the original because I think several improvements can be made, especially to career mode.6 (+2 because it's a tedious job)3
Other Team AIThis could be the hardest part. Propose some kind of finite state machine. Possibly at a later stage introduce neural-nets and genetic algorithms so that the AI can improve.9 (potentially 10)10

Why Java?
Because it's multi-platform. I don't want the project to be restricted to just one platform - Linux, PC and MAC communities should all have access. Another old game, Dungeon Master has been cloned in Java. It should be possible to get a Java version of SWOS. Java suffers from the disadvantage that it is memory hungry, and is difficult to write games in because of its interpreted nature (i.e. Will run a lot slower than C code for example).
Open Source?
Yes. But I'm not entirely sure what license I'm going to distribute the source under yet.
New features?
Let's not go overboard on this yet - I want to recreate the game. If I manage to make a reasonable clone, I'll think about adding new features. Note that multi-player over the internet is a high priority, so don't worry!
JAWS?
Stands for "JAva World of Soccer", in homage to the original. Dreadful name isn't it.
Will it be runtime or applet?
Possibly both, though as an applet you can't have load/save options. I am trying to write it as a runtime game that can be made to run as an applet. If I hit technical difficulties with making the code run on both, it will probably be restricted to pure runtime.
Resources
Various books, software and examples have been used


Stages


1) Write a simple java program using mouse to move a ball around a pitch whilst the players move to their preset locations coded in the tactics file. Done! Source available

2) Simple java program which allows one player to move around the pitch, dribble the ball, pass and shoot it.

3) Change this simple java program to have players control the ball and be able to pass it to each other. At this point, tune the current player selection.

4) Add a goal keeper

5) Add ball physics and proper player interactions, so the ball may be passed, lobbed, shot, headed in a manner similar to the original

6) Add Opponent AI. Work on this part may take time, does not necessarily need to be identical to the original, but the AI must be good.

7) Crowd Sounds and Action Sounds (Thunk, Pheep, Tap, Pheep Pheep Pheewwweep, etc.)

8) Additional in-game graphics work. Potentially extremely time consuming section, but with a bit of help this might be reduced.

9) TEAM file decryption (Pablo may help with this

10) Menu building.

11) Implementation of Menu options to be reflected properly in the game, mainly tactics editor and player editor

12) Investigation of multi-player (net) option

13) Implementation of multi-player option

14) Inclusion of new control devices: Joysticks, Joypads. Allowing of 2-player on same computer option

15) Implementation of all normal Menu options - DIY cup, Preset competition, Friendly

16) Implementation of Career mode.


What do SWOS fans want from a clone


First and foremost, they want an exact clone of the gameplay. This often isn't even mentioned as the top priority. It is so obvious people sometimes miss it.

Secondly, net-play is the feature that seems most requested by SWOS fans everywhere.

Thirdly, there are numerous other tweaks that people have requested. I love all the jumpers-for-goalposts, moon-pitch, and alternate player-graphics suggestions. These should all be possible.

04th April 2002 Jonathan Daniel 2001