Hello everyone. I’m glad you’re here. Welcome to the first weekly installment of the Cubash development transparency report.
Last week, I announced the return of Cubash with this tweet: https://twitter.com/CubashGame/status/1528309778937794561
This post will aim to answer the question of what happened since this tweet, and the progress we’ve made since posting that tweet.
May 22, 2022 - Game client improvements
This day has seen multiple updates to the game client, such as smoothing out the jumping animation and adding a collision check to ensure you can not jump while you are in the air.
For the entire time that Cubash has been in development, there was never a jumping sound present. I took this issue to heart and added a jumping sound to give the user feedback on when they are jumping.
May 23, 2022 - The birth of the Cubash Editor
The first iteration of the editor
What would Cubash be without an editor to build your levels with? On this day, I had created a basic prototype that showcases the switching between editor and playing mode so users can test their levels while building.
However, this version had one issue. It was embedded within the client. For a few hours, I thought that would be okay because the game server performs checks over all movement clients make, and a client wouldn’t be able to do things like removing walls to walk through them.
If you are interested how this happens, I have written a blog post about this here:
I quickly realized that there was an even bigger problem, exploiters could potentially call the pointer to the level serialization function and steal levels. The client and editor needed to be separated solely for this reason.
For this reason, I have split the client from the editor.
May 24, 2022 - Splitting and tools
Like I mentioned earlier, the editor needed to be split from the client. This was done by starting a new game project that inherits common nodes such as the player and logic as the level loader through Git submodules. The issue is no more.
We now had an empty canvas with only a camera where the user can move around in the level. Something was missing; tools to work with.
I started to work on gizmos that would allow users to edit their levels.
This is only one of the three gizmos that would need to be added for a basic editor to exist. It was progress nonetheless.
May 26, 2022 - More work on tools and creation of the user interface
More work on gizmos
I have started to add the other two gizmos required for level manipulating, allowing users to rotate and scale bodies in 3D space.
User interface design
I am sure you have noticed the screenshot from above looked wildly different from the first one with the first prototype. That’s because the client was split from the editor and thus, everything needed to be made again.
This is when I decided to make a user interface to shell the Cubash Editor that will represent how the editor looks going forward:
May 28, 2022 - It’s all starting to take shape now
I have added the ability to change object properties for objects the user insert. In this iteration, users are now able to change the color of their objects as well as its name to uniquely identify each object to their likings.
It’s starting to look like a real level editor!
Play mode and level serializing
Like the prototype promised, I have added a way for users to spawn in with a character to test their level with a client of a single button. This is called play mode, and it plays out your level exactly as it would in a real game session in the game client.
Using this functionality is really easy and quick. All you have to do is press the “Play mode button”, and your level will be serialized (and thus, saved to memory), and your level will start to play.
That brings us to today
In the past week, significant progress was made on both the game client and level editor that will power Cubash.
As this wraps up to become ready for initial release, website development will begin as the game client enters a playable state.
Thanks for following the development of Cubash. I am glad to have you aboard.