This is a redone version of the Godot port of the Wii U homebrew app Space Game (and Space Game NX). The goal of this fork is to more natively integrate the game into the Godot game engine, by using Godot's features in place of the features the original C game had to provide.
Linux, Mac, and Windows builds will be available upon first release.
This program is licensed under the MIT license, which grants anyone permission to do pretty much whatever they want as long as the copyright notice stays intact.*
- Programmed by VGMoose
- Original codebase based on libwiiu pong by Relys
- Music is ~*cruise*~ by (T-T)b*
- Space ship sprite by Gungriffon Geona
- Logo font by Iconian Fonts
- OSScreen-similar font by M+ Fonts
- libwiiu/bugfixes: MarioNumber1, CreeperMario, brienj, NWPlayer123, dimok
*The song ~*cruise*~ is available under CC BY-NC-ND, and is excluded from the MIT licensing.
All the previous scripts in the game have been split up into smaller, more specific scripts, to more comfortably fit how Godot uses scripts for nodes. For example, the player related functions from space.gd/space.c have been moved to spaceship.gd, which is now attached to the spaceship node. Functions that no longer have any use (i.e. moveBullets) due to being natively handled by the engine have been removed, though their original purposes have been preserved and reimplemented to try to keep that same "feel" of the original.
Space Game NX uses a Bitmap font to get around the lack of an OSScreen font in SDL. In this version, the text is saved in a universally used Control theme, so that all labels automatically use it. The NX bitmap font can be toggled with the code 11111
on the Password screen.
Most of the bitmap compression/rendering/matrix logic has been replaced by native Godot functions for rotation, movement, and sprite displaying.
Due to it using the same prng method, all old passwords should work from previous versions of Space Game!
The big change is that now Space Game runs at 60fps when it can, and when it can't it maintains the same speed of objects in game. Godot will try to maintain 60fps, but may bump down to 30fps if 60 is too demanding. This difference means that regardless of the fps, the gameplay should "feel" the same speed (which is important, as later levels will make the enemies faster). In the previous homebrew versions the game would render each frame as fast as it could, which turned out to come in lower than 60fps or allow inconsistent slowing down depending on what was occurring on screen.
Game saving has been added! When the player does something, like enter a password or complete a level, a save file is created, an "options" selection will appear on the title screen. This will house options to toggle various gameplay things as well as any cheat/easter egg codes (at least, that change aspects of the game) the player has entered. Furthermore, the player's progress will be saved, and can be optionally resumed from when starting subsequent sessions.
The Password screen now acts like a subscreen of the title screen (because it is) instead of its own isolated area.
The code 22222
is also added to toggle the music playing within the code, and some other passwords also had their functionality changed. For example, the code 24177
now enables a new double firing function from the ship, whereas before it would transform the player's sprite. Some passwords also now also open URLs as easter eggs. Like in the original, certain cheats will disable the score counter. The code 77777
to swap the red and blue channels from the NX port is also present!
This is technically the fifth port of Space Game! The porting history is as follows:
Wii U Space Game (2016) -> JSpaceGame (2017) -> Space Game NX (2018) Space Game (2021) -> Space Game Rewritten (2023) (You are here).
Space Game NX (an SDL program) was intended to be the "final form" of this small game, but using a game engine like Godot allows for better control over the FPS issue as mentioned earlier, but also personally gives me greater confidence in the codebase being more accessible in the future in a way that SDL fell a little short. Trying to explain to others how to play Space Game always forces me to start off with a "Well..." as I picture the homebrewing paths, Java path, or trying to get SDL working with their setup (aka Controllers, framerate, OS concerns, etc). Now it can be easily brought to computers, phones, consoles, or other Godot projects!
That is also the reasoning behind just naming this "Space Game"– I want this version to be "the thing" I'm referring to when I picture the original game, in the absense of a nearby Wii U of course!