Welcome to the first ever dev log for Pablo's Journey post Steam page launch!
It's been nearly 2 weeks since the page went live, so far I've gained around 20 active play testers + 100 wishlists which seems insane, but I'm super happy to see people are taking an interest in the game.
Over these 2 weeks I've been making a number of tweaks to the game based on feedback + plans I had pre-test. I have outlined every change in the change log below. But I also want to deep dive into a couple of the core changes to the game.
Weapon throwing reworked
In the previous version of the game, to throw your weapon you need to unlock and equip the Sage Toss spice. I made a decision to remove this spice and instead allow you to throw your weapon from the get go. I had a couple reasons for this, but one key one was that I want to build level puzzles/encounters around this mechanic, so if it is optional to equip this spice, those will not work!
As well as making it a first class citizen for all characters, I also added the ability to see the trajectory of the knife before you throw it. If you hold down the throw button you can see where its going to go! The graphics need a little bit of work, and you should be able to cancel a throw, but I really like the result I came up with. You can see it below:

Netcode improvements
A more subtle, but big behind the scenes change in this update is that I tweaked the game state synchronization packet shape, reducing the data sent by ~50%!
What does this mean...? When playing online the host player sends messages to the client player containing information regarding the current state of the game. For example, the message will contain the position of all the enemies in the current level.
The less information you can send in each message the better, as more information means more data sent over the network, which can result in slow downs and more information loss when messages get dropped (networks are not perfect!).
At a high-level I changed the shape by removing "keys" from each message. Instead every message will just send lists of information. This is best shown with a visual example of what the information in a message could look like:
Before:
[
{
"entity_id": 481,
"position": { "x": 10, "y": 15},
"health": 23,
},
{ ... }
]
After:
{
481: [[10, 15], 23]
}
This is example is an over simplification, but the theme stays the same, the "keys" are dropped and information is organised in arrays. The data is also not sent in plain text, its sent as binary + its compressed (this was previously the case anyway in older versions of the game). To achieve this keyless approach I am utilising MessagePack as a serialization tool.
I'm super happy with this new approach, as it has reduced the data send rate by up to ~50% in certain cases.
This has been something I have been meaning to tackle for a long time, but its always fallen to the bottom of my backlog. Now its in, I hope you should all get much smoother online games! There are future netcode tweaks I need to make but I will cover those at a later date. For now, I need to make a fun game.
v0.2.6 Change Log
Gameplay
- Sage Toss reworked - Sage Toss is now a core mechanic rather than a spice. You can throw your weapon from the first level.
- Throw aiming - You can now hold down the throw button to see a trajectory preview before releasing.
- Healing spice reworked - The healing spice has been redesigned for better UX. You now have a percentage chance to heal when you kill enemies with your special attack.
- Checkpoints revive teammates - Reaching a checkpoint now revives downed co-op partners.
- Auto-select next level - The level select screen now automatically highlights the next level to play.
Bug Fixes
- Skip cutscene prompt - The skip cutscene button is now visible during cutscenes.
- Throwing knife damage - Fixed throwing knife not damaging slime enemies.
Multiplayer & Netcode
- Client-side predicted enemy deaths - Enemy deaths are now predicted client-side for a snappier feel in co-op.
- Fixed entity pop-in on level loads - Resolved entities visibly popping in when transitioning from your ship to a level.
- Significantly reduced packet size - Re-worked packet formats so that packet sizes are massively down and your online games should run better!
Controls
- Tweaked default keyboard controls - Updated the default keyboard bindings based on play tester feedback.
What's coming next?
- New levels - I will be extending the play test with a number of new levels
- Level select UX - The level select screen is slightly confusing to use. I will be giving that some serious love.
- Options menu - Currently you cannot change resolution/adjust volume etc, so this one is long overdue!
- Cutscene improvements - The current cutscenes in the play test are very much place holder, so they will be receiving some tweaks.
- Bug fixes galore - The continued play testing has highlighted a number of bugs which need fixing.
How do I stay updated?
We'll be sharing more updates here, and on the steam page as I continue development. So stay tuned!
If you want to chat development, Pablo's Journey or just say hi, you can drop into my Discord server.