stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

Shooting with Shapes

  • 3 Devlogs
  • 20 Total hours

A game where you must protect your spaceship from attacking enemies as you travel to a far-away planet to bring back coveted stars for your homeland. The game contains 24 levels of increasing length and difficulty.

Ship #1

This is an arcade-style top-down shooter where the player must defend their ship from approaching enemies. The enemies all have one of six shapes, and the player must bring the corresponding shape to the corresponding launcher to shoot at and defeat them. As the game progresses, more types of enemies appear, which require more effort to defeat. I started this game before the summer, so this project specifically adds the new enemy types and onwards (see the git history for more info).

The most challenging part of this project was teaching new players how to play. I say that because I obviously know the game better than anyone else, so it was hard for me to tell what new players would struggle with. One example is the NOT enemy, which has to be hit with the wrong shape before being hit with the right one. I spent a long time trying to figure out how to convey this concept to the player without interrupting the flow of gameplay, and eventually settled on a way to explain it with the design of the enemy, as well as an enemy reference page as a backup. Another example is the overall difficulty of the game, which some players found too difficult and others too easy. To avoid the hassle and potential negative feelings of having players manually change their difficulty, I created a dynamic difficulty system which learns from the player’s win rate to make the game easier or harder.

I think I’m the proudest of the “juice” (sound and video effects, music, etc.) I added to the project. The programming and logic side of game development has always appealed to me more than the more creative side, such as choosing/making assets, so I was worried I wouldn’t get the game to look or feel good. However, after a fair amount of effort, I was able to get that aspect of the game to a place that I’m happy with, which was a good learning experience.

To play the game, you can simply go to the demo link below. It’s a Unity WebGL project hosted on itch.io, so it should run on any device. Keep in mind that the game is meant to be played with a keyboard and mouse, so it may not work or be an enjoyable experience if you try it without those. Thanks, and I hope you enjoy!

  • 3 devlogs
  • 20h
Try project → See source code →
Open comments for this post

10h 9m 34s logged

Adding JUICE

In this session, I focused on making the game feel good to play by adding sound effects, screen shake, and music, among other things.

Background music

I added five background music tracks, with one being for the ending cutscene, three alternating ones for normal gameplay, and a fifth for menu scenes.

Sound effects, screen flash, particle effects, and camera shake

I spruced up the game by adding a screen flash when an enemy hits the ship, particle effects when enemies are killed, a camera shake when an explosion happens or an enemy hits the ship, and sound effects for all of those events (plus clicking buttons in menus)

Difficulty updates

I had noticed that some players struggled with the first levels, while others breezed through them. To help with this, I added a dynamic difficulty system to make the game a bit easier for players on a losing streak and a bit harder for players who are getting comfortable. I also discouraged players from letting the tougher enemies through by making the special enemies do two damage and the boss enemy take away all three hearts. Lastly, I made enemies more likely to spawn close to each other to maximize the satisfaction of taking out two at once.

UI additions

To help better communicate with the player, I added a progress bar to indicate what fraction of the level’s enemies have spawned, as well as a reference page with information on all the different enemy types.

Debugging

Finally, I fixed a multitude of bugs, such as the player respawning at the wrong Z position when falling off the map or a second music player being created when the user returned to the title screen.

0
0
28
Open comments for this post

4h 35m 25s logged

Spawner and Boss Enemies and Final Level

Spawner Enemy

Added the spawner enemy, which splits into two normal enemies of the same type when killed, and appears on level 18.

Boss Enemy

Added the boss enemy, which splits into two spawner enemies of random types once killed, and appears on level 24 (the last level)

Final Level

Tweaked the weights and enemy count for the last level so that one boss enemy would appear right at the end

Playtesting

Finished testing all the levels of the game and adjusted the weights and speeds of enemies to make later levels easier

Debugging

Fixed an issue where killing any spawned enemy would result in winning the level prematurely, and fixed the tutorial level, which had broken after recent changes

QoL Updates

Updated the checkmark asset to a better version, added an exit button to the main menu, and made enemies stop spawning after the count has been reached

0
0
12
Open comments for this post

4h 59m 17s logged

I had been working on this game previously and gotten feedback on its alpha stage, but had stopped working on it recently. After I picked up the project again, my first main goal was to implement the feedback I had received on the alpha version, namely adding more enemy types. In my game, the player is on a small spaceship and must pick up ammo in geometric shapes to bring it to the corresponding launcher and use it to fend off the corresponding shape of enemy. As of now, I have added two out of four planned types. The first is the NOT enemy, which needs to be hit with any shape that is not its, then needs to be hit with its shape. The second is the hardy enemy, which simply needs to be hit twice. It’s worth noting that there was previously only one type of enemy, so I also added a weighted probability system for different types of enemies. I also made a fair amount of QoL updates, such as making new ammo spawn at a more intuitive time and adding offsets to different RNG instances to make the game seem more random (by preventing enemy placement from predicting enemy type, for example).

0
0
10

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…