- C++ 47.2%
- C 38.4%
- Java 12.8%
- CMake 1.3%
- Shell 0.2%
| .github/workflows | ||
| android-project | ||
| build-scripts | ||
| cmake | ||
| Data | ||
| Docs | ||
| external | ||
| game | ||
| maclib | ||
| macres | ||
| miniz | ||
| mods | ||
| screenlib | ||
| store | ||
| utils | ||
| Xcode | ||
| .gitignore | ||
| .gitmodules | ||
| CMakeLists.txt | ||
| COPYING | ||
| CREDITS | ||
| Maelstrom.rc | ||
| README.md | ||
Maelstrom 4.0
You pilot your ship through the dreaded "Maelstrom" asteroid belt -- suddenly your best friend thrusts towards you and fires, directly at your cockpit. You raise your shields just in time, and the battle is joined.
The deadliest stretch of space known to mankind has just gotten deadlier. Everywhere massive asteroids jostle for a chance to crush your ship, and deadly Shenobi fighter patrols pursue you across the asteroid belt. But the deadliest of them all is your sister ship, assigned to you on patrol. The pilot, trained by your own Navy, battle hardened by months in the Maelstrom, is equipped with a twin of your own ship and intimate knowledge of your tactics.
The lovely Stratocaster R&R facility never sounded so good, but as you fire full thrusters to dodge the latest barrage you begin to think you'll never get home...
Maelstrom is a licensed open source port of the original shareware game for the Macintosh by Ambrosia Software, Inc. It is a fast-action, asteroids-like game, with classic pixel graphics and original sounds.
In addition to being a faithful reproduction of the original game, this version adds game controller support, mobile touch controls, and both cooperative and competitive multiplayer action.
Maelstrom is available for free on:
- Steam: https://store.steampowered.com/app/4239950/Maelstrom
- Google Play: Send me e-mail at slouken@libsdl.org to be added to the beta
- Apple Store: https://apps.apple.com/us/app/classic-maelstrom/id6760607912
- Web: https://www.libsdl.org/projects/Maelstrom/play
You can download the latest release and source code from GitHub
New Features
Kid Mode
Clicking the "kid mode" icon next to the play button will enable an easier play mode which will add the retro-thruster prize and automatically shield you as long as shields are available - but beware the Shenobi ships! Their shots will not trigger the automatic defensive systems.
Achievements and high scores are not available while in this mode.
Multiplayer
You can host or join a multiplayer game from the main menu. Up to three players can play at once, and they can be any combination of other players on the local network, connected controllers, and friends invited via Steam Remote Play.
Steam Achievements
If you play the game on Steam, there are lots of fun achievements to unlock, such as "Alien Abduction" and "Balls of Steel".
Steam Game Recording
If you play the game on Steam and enable game recording, the timeline will automatically be populated with exciting events such as aliens, nova explosions, and more!
Replays
You can click on the high score entries to watch that game again. This is especially fun with the Steam game recording feature, as you can see the events on the timeline and re-share the game video with your friends.
Easter Eggs
The classic easter eggs from the original game are all there, and it's up to you to find them...
Mods
Click the cardboard box button on the main menu to select the art and sounds you want to use. The Maelstrom 1980 mod comes with the game, and you can easily make your own!
Copy the folders in Data to a new folder, modify the files, and then zip them up and drop the archive into the top level "mods" folder. If you place a file README.txt at the top level in your zip file, you can set the name and description field used by the game. You can look at Maelstrom_1980.zip in the mods folder for an example of this.
Note that if you play network multiplayer, all players must have the same sprites in order to play together.
If you have access to the original sound and sprite packs for Maelstrom, you can build the macres tool included in the Maelstrom source code and use that to export the files in a form that can be zipped up as a mod for this game.
The usage is:
macres --export [file] [output_directory]
Porting to SDL3
I did a short series of live-stream videos documenting the initial port from SDL2 to SDL3, available on YouTube:
Enjoy!
Sam Lantinga (slouken@libsdl.org)
