Arnas Puidokas

Graphics Programmer Portfolio

🏠 Home ⭐ Best Project 📁 All Projects 📰 All Blogs
Published: July 15, 2026 • 4 minutes to read

My First Game Jam

Tags: C# Arcade Gameplay Endless Unity

Overview

While I have attempted past game jams before they never fully worked out and this was the first one where I was able to plan, implement and summit on time for Gamebridge Game Jam 2026. Only finding about it the same day and with 5 hours to do it due to other responsibilities in the morning, I had to quickly plan what I wanted this game to be. An idea of dogeing enemies while they attack the player wasn’t a fundamentally unique idea but worked within the limited time I had for this game jam.


Plans for the Game


Figure 1: This was what my initial notepad had with some links as I went along and the order of priority for the game. (Figure is clickable).


Movement for Player and Enemy

First on the list was movement for both player and enemies. This was a basic concept seen in many games, but I quickly looked at different types of movements I could do and their related systems. While the modern input system by Unity would’ve been a better choice long term with its varying input support, I on the other hand went with a basic get raw axis date and move the position in that direction based on key input. A guide by Stuart Pixel Games1 goes over that perfectly with simple 2D movement and isn’t really any different from what I have done before.

Since the enemies wouldn’t be controlled like the player, having them move towards their position was enough through getting player position, enemy position and delta time. However, if the enemy was within a certain distance to the player they would stop and start a dash attack function, inside this function it would wait, change colours, dash and die.


Figure 2: Showing the enemy's update and logic for movement based decision. (Figure is clickable).


Figure 3: This is the enemy waiting, switching between colours and dashing to the player previous known position. (Figure is clickable).

Spawner and Collisions

For the enemy spawner I had four preset locations that it could go between and instantiate would spawn the enemies at said locations. Problem with this is that there is a lot of creating and destroying, a better method would be to have an enemy object pool that it would pull from.


Figure 4: This was the code for spawning infinite number of enemies with it slowly speeding the number of enemies spawned. (Figure is clickable).

The collisions were done quickly using tags for enemy and wall where necessary, before being checked inside the player script.


Figure 5: When colliding with an enemy or wall it would send the player back to main menu. (Figure is clickable).


Visuals (UI, sprites and background)

This section I’ll briefly talk about my design philosophy I had in mind for the game since the beginning and that was an arcade 80s art style since I needed something simple, while also trying to make it look as good as possible. For the player and enemy sprites, I went with a basic square and different colour for them. Then for stuff like UI, I used the button assets by Uryon Games2 and gotten background images online that matched everything nicely. Lastly used an arcade font that I found, which is pixel like. For the scoring system Unity learning courses3 gave what I needed initially and then added stuff from there. From doing the scoring system I learned how Unity does their instances since I only ever done it in C++.


Figure 6: What I did for the main menu of the game. (Figure is clickable).


Figure 7: This shows a snippet of the scoring manager like how it is set up, and how score is always getting added. (Figure is clickable).


Sounds

For sounds since I wanted an older arcade feel to the game I went with some techno music that fit by Neon Pulse4. This sound was used for gameplay music:

This sound was used in the main menu:


Entry

This was the summited entry I did for gamebridge 2026 game jam.


Final Notes + Gameplay trailer

There was still a lot I wanted to do even with the limited time like adding more sound effects, different enemy types, but with time not being in my favour I had to compromise. While a lot of the features in my head would’ve made the game better, I really wanted to look into shaders for Unity and would’ve been good in having a moving background instead of a static image in the background. This especially would’ve looked good on the characters since I forgot to add anything for them. Overall, I had a nice time doing the game jam and was a good experience in managing my time.


References

1: Stuart’s Pixel Games. (2018). How To Do 2D Top-Down Movement – Unity C#. [online] Available at: https://stuartspixelgames.com/2018/06/24/simple-2d-top-down-movement-unity-c/.

2: itch.io. (2026). Neon Pink UI Pack – Pixel Arcade Buttons – Uryon Games [online] Available at: https://uryon-games.itch.io/neon-pink-ui-pack-pixel-arcade-buttons.

3: Unity Learn. (2026). Add a scoring system. [online] Available at: https://learn.unity.com/course/2d-beginner-game-sprite-flight/tutorial/add-a-scoring-system?version=6.0.

4: itch.io. (2026). Free Action Arcade Music Pack – Neon Pulse. [online] Available at: https://soma-animus.itch.io/arcade-music-pack-neon-pulse.