A 2D space shooter with a twist
This was made in a rush (it's also my first jam), I spent several hours on this and wish I could've spent longer.
The ships follow the cursor, and left click fires bullets.
Clones can be used as a shield from enemy bullets, or as a way of increasing firepower, although clones do less damage per shot compared to the original ship.
It (theoretically) gets pretty chaotic with loads of clones. Ships + Chaos = 2 themes out of 3
You ship's core is unstable, and frequently duplicates itself, dividing its health between itself and the clones. If your original ship (with yellow markings) dies, it's game over!
The executable was created after the Jam, but it is the same game, with no changes to gameplay etc (except more points are awarded per kill).
The post-AKJ version, which is currently being improved can be found here
An interesting concept with the self-cloning ship, it certainly helped filling the screen with a chaos of bullets :) As well as having them double as both extra firepower and shielding.
A few comments:
As I'm on Arch Linux, it's usually later versions I'm worried about ;)
$ python --version Python 3.8.5 $ python launcher.py pygame 1.9.6 Hello from the pygame community. https://www.pygame.org/contribute.html ... ... I click Play ... ... Traceback (most recent call last): File "launcher.py", line 13, in <module> main(execPath) File "/tmp/cos/scripts/main/main.py", line 6, in main window.run() File "/tmp/cos/scripts/main/window.py", line 80, in run self.handle_logic() File "/tmp/cos/scripts/main/window.py", line 105, in handle_logic self.game.logic() File "/tmp/cos/scripts/game/game.py", line 245, in logic self.gameData.transition.logic([self.CONSTANTS.DISPLAY_SIZE/2,self.CONSTANTS.DISPLAY_SIZE/2], self.data.dt) File "/tmp/cos/scripts/vfx/transitionoverlay.py", line 78, in logic draw_circle(self.copySurface, self.GREEN, self.circlePos, (self.timer**6)*self.surface.get_width()) TypeError: integer argument expected, got float
Edit: fixed by replacing that line by:
draw_circle(self.copySurface, self.GREEN, list(map(int, self.circlePos)), int((self.timer**6)*self.surface.get_width()))
Now the game starts, but sprites drawn are never erased. Any idea where I could add a clear call and what that should look like?
@thomastc Other people seem to be having this issue, I think pygame 2 doesn't mind floats which is why I never had that problem. I will try and fix this, but for now if nothing else works then try using pygame 2.
I feel like the idea has great potential to be mechanically interesting, but the hitboxes on the ships made things a bit frustrating to work with. When new ships would spawn in, it would cause my ship to teleport (sometimes into danger).
I have 2 major suggestions. First, it'd be nice if the clone behavior were changed so that they followed you in more of a line-like pattern without hitboxes so that you could make a shield in front and quickly get behind. Second, it'd be nice if the enemies had different firing patterns in terms of angles, numbers of shots, and spacing between shots.
While the execution of the idea could use some work, I definitely enjoyed how the concept made me think about the game in a way that's unlike anything else I've played.
@DaFluffyPotato Yes, I found that the clones often blocked the player from moving, and sometimes jumped around unpredictably (probably due to the way I was handling collisions while still trying to move all clones to the mouse pointer). I have somewhat fixed this issue in my post-jam version (https://scorpion-games-uk.itch.io/cosmic-chaos), so that the clones now form a line along the screen, but still move to the mouse's y coordinate. I have also made the enemies move more unpredictably, but I definitely think they need more work. Thanks for your suggestion for different firing patterns, number of shots etc, I'll try and implement that in the post-jam version (I'm thinking of adding more enemy types too, so maybe different firing patterns could relate to different enemies…?)
If, after viewing the pos-jam version, you have any more suggestions on clone movement, I would greatly appreciate feedback.