Day 1: Pathfinding


It doesn't look like much, but this is where I've left things for the end of Day 1 of 7DRL.

This is Ghost: DroneSync, or just DroneSync for short.

The Story Pitch:

You play as a mercenary, codenamed "Ghost" (you may remember her from some of my other games), sneaking into some unspecified, highly secure, complex to perform some espionage. You'll have to dodge guards and traps to stay undetected, achieve your objectives and exfiltrate safely.You won't be alone though. Ghost will have her personal cyberdrone <name TBD> to assist, allowing her to hack various systems and distract the guards, to complete her mission.

Project Setup

DroneSync is being written in DOME, using my personal framework Parcel on top. I've used iterations of this for other games before (including two other 7DRL entries), so I'm quite happy with it as a base toolkit for roguelike production.

How was day 1?

On balance, day 1 was successful. I started the day with a character in a room that could move around (there are some recorded streams on my Twitch and YouTube showing this).

I very quickly began implementing the most essential behavioral logic I would want for the enemies in a stealth game, allowing them to:

  • stand and wait
  • patrol between a set of points
  • chase the player

Unfortunately, I lost a lot of time today due to a performance issue. The path-finding algorithms built into Parcel were running very, very slow when trying to generate paths between guards and the player, or other points, even for fairly trivial sizes of room and path. After 3-4hours of tinkering, I realized there was some kind of bug in the custom Priority Queue that these algorithms relied upon, so I ripped that out and added something simple and naive, and it ran smoothly again.

Once that hurdle was cleared, I started working on the elements required for a "complete game loop". This means that the game has conditions built in for success and failure, and ways to handle them. They are rudimentary, but they work. You can be beaten up by the guards if you stand in their way, and you can reach an objective, interact with it, and escape. Alternatively, you can escape without doing the objective.

I'm following my development process from last year's 7DRL: I want to finish each day with a playable package, and every feature in it "polished" to a workable standard. It might be rough, but still playable. To help prevent scope creep, features for the game are grouped into logical "stages", so I can stop at each key stage and feel like the game is "complete".

Thus, you can download and try out DroneSync at different stages of development, if you like.

Next

I think by the end of tomorrow I'll be able to make the core experience a bit more engaging, and make some steps closer to the high concept of the game. What I'd like to work on:

  • The guards can't shift between behaviours right now - they just patrol up and down between two points, hoping you'll walk in front of them. I need to figure out a simple way for them to detect you, and then shift modes to chase you down.
  • This will probably mean I need to start implementing field-of-view and line-of-sight algorithms, so I imagine getting that right will be the bulk of tomorrow's work.
  • As an extension goal, I'd really like to start experimenting with "deploying" the drone, and being able to control it.

I should also be streaming during the evenings over the next few days, so feel free to drop by my Twitch to check out the progress. See you there!

Files

Linux x64 4 MB
Version 0.0.1 Mar 05, 2022
Mac OS ARM x64 1 MB
Version 0.0.1 Mar 05, 2022
Mac OS x86_64 684 kB
Version 0.0.1 Mar 05, 2022
Windows x32 1 MB
Version 0.0.1 Mar 05, 2022
Windows x64 1 MB
Version 0.0.1 Mar 05, 2022
Linux x64 4 MB
Version 0.1.2 Mar 25, 2022

Get Ghost: DroneSync

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.