Skip to content

c08oprkiua/space-game-rewrite

 
 

Repository files navigation

Space Game

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.

Downloads

Linux, Mac, and Windows builds will be available upon first release.

Credits and License

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.*

*The song ~*cruise*~ is available under CC BY-NC-ND, and is excluded from the MIT licensing.

How it works

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!

Gameplay Differences

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!

Screen Shot 2021-08-19 at 12 02 03 AM Screen Shot 2021-08-19 at 12 01 31 AM

A final note

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!

About

Godot version of Space Game, optimized

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • GDScript 100.0%