skyjade
  • Home
  • Games
  • Programs
  • About us
Image 1
Image 2
Image 3
Previous Next

Spaceshooter

Spaceshooter is one of our greatest project, we are very proud of it as we won a competition with it. We put a lot of time and energy into this game, so we hope that the players will enjoy it. The game is a shooter game, where you have to survive the attacking pirate spaceships in a vast space. The concept of the game describes a complex upgradeability, however, the currently downloadable version does not contain this feature. The gameplay is simple, but it gets harder over time, more enemies come, and the game also has a bossfight.

The game was written in Python, using the Pygame module, which the user can run on Windows in EXE format without any external installation. The game can be downloaded for free by clicking on this download button, and the source code will also be available soon on our GitHub page.

About the game

We used our mathematical knowledge again, a lot of angle and distance calculation was needed to write the game. In the game, the player controls a spaceship that moves in a 2D world, where enemy spaceships must be destroyed. The source code is over 1000 lines long, and a total of 3 people worked on this project. The game is currently in English, but we will definitely make a Hungarian translation. Perhaps this is the most resource-intensive game, but it runs stably at 10 frames per second even on weaker machines. The program contains a "deltatime" time and movement calculation method, which allows the game to be playable on weaker computers. The FPS limit is 30 to avoid errors, but this is not noticeable at all.

How do I..?

After downloading the game, let's extract the .zip arhive, and run the "spaceshooter.exe" file in the folder. After a short loading time, the main menu will appear, where we can navigate with the mouse. By clicking on the Start button, the game will start, our ship will appear in the middle of the screen, and the interfaces will appear in the corners.
We can control our ship with the WASD keys, but don't get lost in space, our first enemy will arrive soon. We can use the selected weapon with the left mouse button, which is marked with a red font in the lower right interface. We start with two types of weapons: a burst and a laser. We can switch between them with the 1 and 2 keys, and we have to hold the mouse button for the laser. Both weapons have a reload time, which costs the ship's energy. We can turn the Reaction Control System (RCS) on/off with the R key, which are the thrusters that slow down our ship so it doesn't drift into infinity.

Interfaces

There are three interfaces. On the bottom left one, you can see your ship's telemetry data, and the shield and hull integrities. Every ship has their own shield, which stands from 8 different segments, each facing in a different direction. Whatever direction the ship recieves an attack, the corresponding shield segment's energy will decrease, which is indicated by the appropriate color on the interface. If a shield segment is disabled, and the ship recieves further attacks, the hull can be easily damaged, and other modules can be damaged too, which can be seen on the top right interface, which can be opened, just like in GravitySim.
On the bottom right, there is a smaller interface, which shows the data of the selected target, including the shield, hull integrity, and distance (D)
You can select a target with the F key, which will always switch between the enemy ships, and finally the automatic targeting will be turned on, if there are no more selectable ships. The program will indicate this with an "A-TGT: ON" text on the targeting interface.

Controls

  • WASD: Movement
  • Left click: Fire weapon
  • R: RCS on/off
  • F: Switch between targets, autotarget on/off
  • I: Debug information
  • B: Ship menu
  • M: Radar map

How does it work?

The game contains a tick system, letting 10 game events happen in a second. The movement of the ships, the firing of the weapons, and the movement of the enemy ships are all based on this system. The movement of the ships in the game is a simple vector calculation, which calculates the speed and direction of the ship. The movement of the ships, unlike gravity, is linear, however, the acceleration of the ships also plays a role in the gameplay, which is achieved by increasing the speed of the ships. Every tick, the program checks for possible collisions of all ships with all fired lasers, and if they collide, it calculates the angle and subtracts the shield strength of the shield edge located at that angle. When the hull state of the ships is damaged, any module can be damaged, resulting in a decrease in the efficiency of that module. The enemy ships are simple programmed NPCs based on given conditions. The game has two possible endings: The fuel tank explodes, or the ship falls apart. The gameplay is endless, there is no winning option in the current version, but this will change later.

Kódrészlet - ütközésérzékelés
Code of collision detection
Code of deltatime
Kódrészlet - hajó mozgatás

Developement and changelog

Version Release date Update details
1.0 2024.04.26 Game engine, movement, interfaces, burst, enemy ships
1.01 2024.04.28 Menu system, bossfight
1.1 2025.06.13 Save/load, asteroids, cargo, upgradeability, etc...

Updates on the way

1.2 2025 summer Space stations, ability to build, more weapon types
1.3 second half of 2025 More ships, sectors and wormholes, optimizing
1.5 2026 LAN Multiplayer, campaign gamemode

Worth a download?

We would be very happy if you try our game, especially if you give us feedback!


skyjade

© 2024 Skyjade