Introduction
Wormlings was originally written for the Allegro SizeHack 2000 competition. It's a multiplayer game similar to LightCycles/Tron, with 360 degree movement, turbo and stop powers, and bouncing balls of death. The game has no AI, so you need one to three friends to play. The goal in the competition was to write a game using no more than 10 KB for source (not counting whitespace and comments) and data files, so the game is very simple, but I think it's kinda fun in its simplicity.
Please contact me through the following email addresses:
support@bitblaze.com
(help requests, bug reports, feature suggestions)
info@bitblaze.com
(other queries)
Visit bitblaze.com for news and updates.
License
Copyright 2000-2005 Daniel Schlyder.
Distributed under 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. (See accompanying file LICENSE.txt or copy at http://www.gnu.org/licenses/gpl.html)
System requirements
Windows binary
- Windows 9x/Me/2000/XP (with DirectX 5.0 or higher)
- 450 MHz Celeron or better processor
Source
- Allegro 4.x
- An environment supported by Allegro. The supplied makefile has been tested in Windows (MinGW) and Linux (GCC). Hopefully, it will also work using GCC in BeOS and QNX. Please let me know of any problems!
Controls
Default control keys
You can change these in the menus.
| Keys | ||||
|---|---|---|---|---|
| Player | Turn left | Turn right | Turbo | Stop |
| 1 | Left | Right | Up | Down |
| 2 | A | D | W | S |
| 3 | J | L | I | K |
| 4 | 4 | 6 | 8 | 5 |
Other keys
| Key | Action |
|---|---|
| P | Pause game |
| F12 | Take a screen-shot (saved in TGA format) |
Command-line options
-w, --windowed
Start game in windowed mode.
-f, --fullscreen
Start game in fullscreen mode.
Credits
Design and programming
- Daniel Schlyder
Third parties
- Allegro
- JPGalleg by Angelo Mottola (allegro.cc project page)
- Background texture was downloaded from Graphtallica.com. The site is no longer working, so I can't figure out who made it. Let me know if it's you!
- The logo uses IronMan font by Pizzadude
Version history
3.0 | 2005-03-04
- Added music and sound effects.
- Added three second countdown to start of rounds.
- Fixed: Fails to load files if current working directory does not equal directory containing executable.
- Fixed: Scoreboard can be exited too fast if controls are pressed while it is about to be displayed.
- Some source cleaning.
2.4.3 | 2005-02-08
- Won't use 100% CPU in "Configure game" and "Configure player names" menus and while playing.
- Minor build system improvements.
- Uses Allegro's WRITE3BYTES macro to possibly speed up 24 bit mode somewhat. (Yeah, I should have benchmarked it. :-))
2.4.2 | 2004-05-21
- Nothing of interest. Just released to update an e-mail address, but it also modifies the makefile's clean targets slightly.
2.4.1 | 2004-04-09
- Using JPGalleg 2.3.
2.4 | 2004-03-13
- Changed license to GPL.
- Added support for 24 and 32 bit colour depths and using desktop colour depth (seems to have a positive effect on framerate in Linux).
- Fixed: "Configure controls" and "Configure game" menus don't wait for key release before moving on to next setting.
- JPGAlleg 2.2's improved JPEG support allowed recompression of JPEGs, reducing combined size by 46.5 KB.
-
Windows
- Using Allegro 4.1.13.
-
Source
- Provided Allegro is installed on the system, compiling optimised dynamically-linked version, on any system, should now be as easy as typing 'make'.
- Use plain MinGW instead of MSYS/MinGW on Windows.
- More makefile improvements/fixes.
- Old Allegro text API is used if linked against Allegro < 4.1.4.
- Bundled JPGAlleg 2.2.
- Takes advantage of 7-Zip support in latest Inno Setup versions, removing need to use ISTool.
2.3 | 2004-01-16
-
Windows
- Using Allegro 4.1.12
- Distributed as graphical installer instead of zip archive. (thanks to Inno Setup and ISTool)
-
Source
- Fixed: fix.sh tries to find non-existent *.h instead of *.hpp files.
- Changed optimization flags, removed UPX support and made other microscopic makefile changes.
2.2.1 | 2003-10-16
- [Source] Fix: 'dist' target incorrectly checks for Info-Zip availability on platforms other than Windows.
- Updated addresses to point to my new homepage (bitblaze.com).
2.2 | 2003-08-18
- Possible values for most options tweaked, and options and values given user friendly names for display in menu.
- Replaced ball options with new option defining total, combined size of balls. A random number of balls of varying sizes will be created each round.
- Optimisations should give you a few more FPS.
- Added '--fullscreen' switch to complement '--windowed'.
- [Source] Added support for profiling builds to makefile. New environment variable, BUILD, controls type of build (debug, release, or profiling).
- Some other tweaks.
2.1 | 2003-08-07
- New options: Wormling slow growth and max length. (Set max length to 0 to play with infinite length like in previous versions.)
- Upgraded JPGalleg to 2.x; This allows slightly better compressed graphics, reducing size of distribution archives by ~20 KB.
- [Windows binary] Upgraded Allegro to 4.1.11.
- [Source] Fixed "deprecated" warnings.
- [Source] Miscellaneous improvements to Makefile. Please read updated instructions in Makefile!
- [Source] Various minor tweaks, including replacing tabs with 4 spaces throughout.
2.0.1 | 2002-10-27
- [Windows binary] Upgraded Allegro from 4.0.2 to 4.1.4
- [BeOS] Fixed crash caused by switch-in event during start-up (Might also have affected other ports)
- Using less CPU time when in menus or paused
- HTML-ified documentation
- Added --windowed as an alternative to -w
- [Source] Made it compile cleanly with MinGW 2.0.0 (i.e. GCC 3.2)
- [Source] Various Makefile improvements; mostly to make it easier to compile the source. Among other things, it now supports both static and dynamic versions of Allegro; and linking with JPGAlleg is easy (silly static library modifications are no longer required). Please read the updated instructions in the Makefile!
- [Source] Replaced pi variable with Allegro's AL_PI
2.0.0 | 2002-07-21
- added crude menu with options to configure game settings, player controls, and player names, and switch between fullscreen and windowed graphics modes
- added nice background texture and logo stored as JPEG and loaded using JPGalleg by Angelo Mottola
- power levels displayed as horizontal bars instead of text, and drawn translucent to not hide wormlings or balls that might be underneath
- power regained twice as fast, and at a minimum of 2 points per second
- improved scoreboard
- divided source into multiple files, rewrote some parts, cleaned up others, and added more comments. The changes are too numerous to mention, but mostly cosmetic
- wrote a much better makefile that adds supports for QNX, BeOS, and Unix/Linux (only tested with MinGW though)
- maximum size of balls increased to 20 (just don't play with maximum number of balls at maximum size cause that will really slow the game down!)
- balls start twice as far away from players' starting positions
- tries to launch game in 15-bit graphics mode if 16 bit fails
- supports task switching
- some optimisations (most importantly, using
bmp->linearray instead ofputpixel()/getpixel()) - fixed unused parameter `struct BITMAP * bmp' compile warnings
- screen-shot format changed to TGA
- added program icon to BeOS and Windows versions
- fixed problem with trying to unpause game using 'P' key
- modified copyright notice and disclaimer in README, and added credits section
- using new version numbering system: major.minor.micro
1.1 | 2000-04-28
- more readable source (more descriptive variable names, functions declared at top, etc.)
- slightly modified to be more ANSI compliant (thanks to Trent Gamblin!)
- game settings are stored in config file
- added pause key ('P')
- replaced #defines with constants and functions (shadowColor)
- added new functions installTimers, removeTimers, and textoutCentreShadow
- more minor source changes
- fixed: bug where turning while stopped would cause collision when moving again
1.0 (SizeHack version) | 2000-04-18
- SizeHack version finished! (hehe, ended up at exactly 10240 bytes ;-)
- finished turbo power code
- minor code improvements
0.9b | 2000-04-17
- almost feature complete (or as feature complete as fits within 10K :-)
- added options (size, turn radius, etc.)
- added bouncing balls
- improved collision detection (pixel perfect, I think)
- added stop power
- added turbo power (code incomplete)
- slightly improved background gfx and lots of other stuff
0.5a | 2000-04-11
- initial version. basic gameplay works
