Dark Ship Dev Log

This is the second post of a daily catchup on my dev progress. From week 5 it’ll drop to once a week, promise.

Major Developments

Tilemaps

Got tilemaps working with the dual grid system. The tilemap is an existing asset which had to be broken down and rearranged to make the dual grid system work, but this meant fewer unique tiles were required.

Player Movement

Player character and movement. Copying across the jetpack behaviour from an old prototype helped speed things up. The movement still needs some refinement

Death Line

Created the death line and got it to move properly. Very “developer art” but it works

Lessons Learned

Pulled a late night and burned out the next day. Lesson learned. Respect my working hours and screen time limits.

State of the Game

  • Possible to play a level all the way through while being chased by the death line.
  • Map resets on player death
  • Map can be scaled up but some concerns over performance when size approaches 32x256 tiles
  • All seeds appear to be playable
  • Bridges and ledges are placed properly
  • It’s fun being chased across a large and unknown map
2 Likes

You can watch the gameplay video via my Reddit post
https://www.reddit.com/r/gdevelop/comments/1q5p7dw/dark_ship_dev_log_week_2_tilemaps_and_first/

1 Like

Hey!
I would recommend making a “Megathread” if you want to stay a bit more organized with your posts. I myself have a Megathread where I post about all the new updates to my templates. :smile:

This way, all of your Dev Logs would be in one spot!

2 Likes

Yeah, I couldn’t find anything I could judge the local etiquette from. I tried to change the title of the first post and it was fixed so I couldn’t easily convert it. TBH, this is my first time dev logging so your advice is appreciated.

2 Likes

Hello @Dw00k!

Me who loves platformer games, i am admirative of your game!

I like very much the halo of light which appears at certain times when the player is moving.

Trully, i appreciate your work and am impatient to see more.

Good job!

A+
Xierra

1 Like

As long as your post is in the Devlog category, you should be able to edit it as many times as you want :smile:

1 Like

Looks like I can edit the text, but not the title? If I’m missing something then let me know, I’m knee deep in data modelling and version control setup so I’m a bit frazzled!

1 Like

You should be able to edit the title…that’s pretty weird.

I guess you can always PM me to edit the title for you, as I’m TL3 and can do so :smile: (Or any other TL3)

That is very strange that you can’t though :confused:

1 Like

@Dw00k , maybe its coz ur a basic, but im just guessing.
heres how :
step one click pencil button.


then change whatever u want

9th January 2026 - Week 5

Major Developments

Pickup placement

I managed to completely rework the pickup placement. It is now easily extensible as it is data independent, looping over all values present and not requiring any static conditions or events. Hopefully this same technique should carry through the placement of enemies (on the roadmap)

Small Art Progress

The deathline animations are now a bit more interesting. There are now tilemaps and layers for the map background, and player fore, middle and background. This makes it easier to put the player “in” the map and to add visual elements. Some minor tweaks to the tilemaps to test this out.

Data Loading Approach

I want to be able to manage all of the game data in a spreadsheet as this is an easy place to make changes and understand what is going on. It seems that GDevelop doesn’t really have the native tools to make bulk data editing possible so here’s my new workflow:

  1. Create the data in a spreadsheet
  2. Export the spreadsheet to CSV
  3. Use a CSV to JSON convertor (https://jsoneditoronline.org/)
  4. Copy the compacted JSON to a global string variable in my game
  5. Load the JSON from the string into the target array

Version Control

Implemented version control through Diversion. This seems easier to use on a day to day basis that Git and GitHub

Data driven game loop

The game can now be “played” from the beginning

  • Data loads from the JSOn strings
  • Player can select a ship and rank
  • The correct config data is loaded into a level (times, size etc)
  • The player can complete the level
  • Sector/Room values increment and the player loops through the workshop to the next room
  • On completing the ship the player unlocks the next rank
2 Likes

16th January 2026 - Week 6

Major Developments

Player Finite State Machine

Player dynamics have been moved to a specific Finite State Machine with external events. Gives much more control over the more complex parts of the player behaviour around the jetpack and cuts a bunch of code out of the main gameplay scene. It should also make the entrance, exit and death processes easier to manage.

Data Management

Importing of the core data, copying it the the player profile and then using the player data to create a run specific data set. This allows for locked items to be excluded from a run.

Workshop Rough Pass

The Workshop is where the player will purchase upgrades between runs. It can now generate equipment and gacha cards, select their type and rarity and place them in the correct areas of the screen. The equipment will respect rules around not showing duplicates of existing equipment.

Lessons Learned

If your events are getting more and more complex it is probably a sign that you have missed something obvious. It’s worth working through the mess to get to a better and simpler solution.

Don’t be afraid to spend time drawing things out. It’s tempting to be 100% in the code but you need that helicopter view from time to time. Even 5 minutes with a pencil and paper can be valuable.

State of the Game

A lot of background progress with not much new appearing on the front end. Annoyingly the Player FSM was 3 days of work to be visually identical to before. On the plus side, the game is now far more solid on the back end.

3 Likes

Hi Adam!

I love very much your analytic presentation with these graphs.

Do you authorize me to use myself these graphs for my usage?

Thanks by advance.

PS: do you use an extern program to generate this graphs?

A+
Xierra

1 Like

Hi Xierra,
If it helps you on your own project then please feel free to use the FSM diagram. I’m a big fan of Miro which is a digital whiteboarding tool. It’s great for everything from ideation, planning and even a bit of light layout sketching. It’s great for collaboration too if you’re working in a team.

Thanks Adam.

A+
Xierra

23rd January 2026 - Week 7

Major Developments

Hierarchical Finite State Machines

Created an FSM for the Run and Room scripts. This is a better way to keep everything organised, though I abandoned having each state in its own external script as that was a pain to navigate.

Players can now navigate through all of the main menu screens. They can start a new run, pick a room from the map, complete the room and loop back through the workshop to the next run.

A Single “Run” Scene

The game originally had different scenes for the different views but I slowly realised that lots of the scenes had overlapping content and data. For this reason, I pulled them all into a single “Run” scene which is where the player plays the game. Very few variables now need to pass between scenes, but the layer list is a little crazy.

Time Management Loop

One of the main gameplay elements, the time management loop has been a scary thing to get in place. It is the first time the game is pulling data all the way through from the source databases into the core gameplay, and then being modified and persisted between rooms.

The player can now complete a room ahead of schedule and “bank” some of the spare time to help on the next run. The headstart and target times are based on the player’s rank and the sector and room they are entering. Lots of UI work required :face_vomiting:

Lots of Bugs

A lot of time has gone into resolving small bugs caused by changes to the data structure, names and locations of variables and unexpected behaviours when picking objects. I’m still working towards a releasable core loop so it’s very much a case of working on the golden path for now and ignoring weird edge cases.

Lessons Learned

Refactoring the core structure of the game was a big time sink this week. The worst of it was renaming variables so they were not conflicting or confusing. It’s probably worth doing more design thinking ahead of time to make sure it is clear how the game will be architected.

Also, finding the right level of structure for your code (Event groups, external events etc) is important. In the end it all gets compiled together so its really about finding what conceptually works for you as the developer.

2 Likes

30th January 2026 - Week 8

Major Developments

Gameplay UI Implemented

There is now the “Suit” layer which contains the gameplay UI while the player is playing the game. Escape time, location, lives and Energy now have a home.

Shop UI Starting to Emerge

The player can now purchase Equipment items that will enhance their abilities and modify the way the game works. They can reroll the shop (if they have enough energy) and purchased items are moved up to the “Rack” where items are stored.

Event Handler Implemented

A core part of the game is how the purchased equipment and other items influence the game at different times. Working out how to do this has been a major risk to being able to complete the project.

After a lot of head scratching the solution arrived this week and was quickly implemented. There is now a “Event Manager” external event which contains all of the instructions for each upgrade, depending on which event triggers it is listening for. When an event occurs a variable is set to define which event and then the external event sheet is linked

This has been proved out with the jetpack which now responds to owning equipment like Fuel Cells, Sipping Gas or Lean Burn. Extending this system for all equipment and events will take a lot of work but the core function has been proved to work.

State of the Game

This is the first time a player can complete a run with the default settings, just about survive and then use the workshop to upgrade their equipment to make the next run easier. This is the main game loop at this time so having this complete is a huge step forward. Only combat remains as the sole untouched system, everything else has at least a working first pass (with many bugs)

  • Load all of the data supporting the game from JSON (levels, equipment, progressions scales etc)
  • Player can create a new run with control of ship and rank to provide progression
  • Player can run through a seeded map being chased by “The Incident”
  • Completing a run opens the workshop where players can buy enhancements
  • Enhancements are triggered by events (run start, workshop reroll, run complete, sector complete)
2 Likes

Oh is such a cool thing you have an seed level.

1 Like