
NightShift
A downloadable game for Windows and Linux
Hi, I’m Tahmid, a Game Designer specialising in Technical/System design. I have an extensive background in technical scripting outside of game development and several years of experience in game development and design.
For this project, I decided to make a post apocalyptic food delivery simulator. This would require several technical systems such as pathfinding, AI enemies, and game state management. I made the game modularly such that anyone should be able to use the tools and blueprints in the engine to prepare a new map to be used in game, or they could export the tools and use them in a different game.
My original plan was to pick 2 random points on the map, the pickup and dropoff points, and use Dijkstra's pathfinding algorithm to show the player the quickest path to each point. However, I ran into a few challenges and ended up not being able to implement it. The first problem was mapping out the in-game road to a data structure to use the algorithm on, especially since Unreal Engine does not natively support graph data structures or anything equivalent. I made a new structure, S_Graph which contains two vectors and a length, to represent the relationship and distance between any two points, and used an array of these as a graph.
I found a reference implementation of Dijkstra's algorithm in UE5 using blueprints, however it was on a different type of map, and since it had already been over a week I decided to leave pathfinding to the side and focus on the rest of the game.
In the end I ended up making a new pawn and just using UE5’s in-built navmesh and AI Pathfinding functionality. I gave the pawn a blue transparent material to give it a ghosty vibe, as this would fit in with the theme of the game, and called it Ghosty. It starts wherever the player is and for 5 seconds goes towards the next pickup point, before restarting.
This doesn’t follow the road exactly in the way that a digital map like Google Maps would, however this serves as an effective substitute.
If I work on this project further, I could polish the Ghost Rider as it was a very late addition, so it was fairly buggy/inconsistent. I could also make it more obvious what the goal of the game is, as well as finetune the combat/health.
However overall most of the mechanics mostly work, and there is a solid (if unclear) gameplay loop.
Furthermore, based on feedback I received from fellow game developers, the tools were easy enough to use/figure out, and they were able to use the tools exclusively using the provided documentation.
Credits:
Lead Game Developer: Tahmid Khan
Assets used:
- City - SpatialNeglect, Fab, Fab Standard License – https://www.fab.com/listings/0e2a42a0-b9da-403a-b659-0490cd51ea0f
- Cartoon City Free - Low Poly 3D Models Pack
- – ithappy, Fab, Fab Standard License – https://www.fab.com/listings/e41364e1-c811-40db-85f5-84441192591d
- Unreal-Dualsense - rafaelvaloto, GitHub, MIT - https://github.com/rafaelvaloto/Unreal-Dualsense
- DiscordRPC - imthatdev, GitHub, MIT, https://github.com/imthatdev/DiscordRPC
- Async Loading Screen - truong-bui, GitHub, MIT - https://github.com/truong-bui/AsyncLoadingScreen
- Food (Arcade Style) Icons – Icons8, Icons8 Standard Universal Multimedia Licensing Agreement (ISUML) – https://icons8.com/icons/set/food--style-arcade--games
- Delivery Icons – Icons8, ISUML – https://icons8.com/icon/yH7m2QFGC2Vt/delivery-scooter
- Plus Icon – Icons8, ISUML – https://icons8.com/icon/4AE0uDzxIgK1/plus
- Done Icon – Icons8, ISUML – https://icons8.com/icon/mej9MOJovqMH/done
- Zombie Icon – Freepik, Flaticon, Flaticon License – https://www.flaticon.com/free-icon/zombie_218153
- Send Icons – Flaticon Contributors, Flaticon, Flaticon License – https://www.flaticon.com/free-icon/right-arrow_724843
- Comic Neue - crozynski, GitHub, OFL-1.1- https://github.com/crozynski/comicneue
- Dreamscape (Stefan Composer & Outer123) - Stefan Composer, OpenGameArt, CC-BY 4.0 - https://opengameart.org/content/dreamscape-stefan-composer-outer123
- Resistors - Spring Spring/Spring Enterprises, OpenGameArt, (CC-BY 3.0, OGA-BY 3.0, OGA-BY 4.0, CC-BY 4.0, CC-BY-SA 4.0, CC-BY-SA 3.0) - https://opengameart.org/content/resistors
- Synth Car Engine Loop 1_1 - Joao_Janz, Freesound, CC0 - https://freesound.org/s/482664/
- Moonlight Drive - Yunior Arronte, bensound.com, Free License - https://www.bensound.com/royalty-free-music/track/moonlight-drive-lo-fi-relaxing - License code: K2ZEPMQOVH6DJDDS
- Doing Damage - Dollshade, bensound,com, Free License - https://www.bensound.com/royalty-free-music/track/doing-damage-energic-rock - License code: EIHZVVVHYGKBTUEU
References
- UE5 Hex Dijkstra – M4thi4sL, GitHub – https://github.com/M4thi4sL/UE5HexDijkstra/tree/Dijkstra_Blueprint - Repository contains and describes a reference implementation of Dijkstra pathfinding in UE5.
- Dijkstra’s Algorithm – Wikipedia Contributors, Wikipedia – https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
- Pathfinding / Dijkstra Unreal Engine Video – YouTube Creator, YouTube – youtube.com/watch?v=eO2HUsC7dHY
| Updated | 5 days ago |
| Status | Prototype |
| Platforms | Windows, Linux |
| Release date | 30 days ago |
| Author | Artemas Studios |
| Genre | Racing, Platformer |
| Made with | Unreal Engine |
| Tags | delivery, Driving |
| Average session | A few minutes |
| Inputs | Keyboard, Mouse, Xbox controller, Playstation controller, Joy-Con |
Download
Click download now to get access to the following files:







Leave a comment
Log in with itch.io to leave a comment.