Eternal Blue Devlog #3: The Long Road


Introduction:

Game development is hard. Now I'm sure that comes as no surprise to anyone watching videos about it on youtube or reading posts on itch.io like you are right now. After all, for every developer encouraging you to get into it, there are even more trying to get across the hard truths of it. But perhaps the most difficult thing about creating indie games that I can speak to is the act of balancing a solo project with your life. You know, striking equilibrium between working fast and touching grass isn't the easiest thing in the world, and its extraordinarily easy for one to consume the other. When work engulfs your life, you lose friends, family, opportunities, mental and physical health. When life consumes personal projects, this is often where you see indie developers fail. In a world that puts so much emphasis on living to work, its often difficult to do all of the things you want to do. Because of this, I regret to inform you that I was just fluffing out the first paragraph with something philosophical because damn, life's busy.

For anyone in the Eternal Blue discord server it's no secret that I was drowning in school work pretty consistently from January to my graduation from University in May. But when I wasn't doing school, I still had a job to do. Starting in February, my job reassigned me to a top secret new project within the company, and that project was publicly revealed in May to be a game focused on the world's most iconic Blue Blur: Sonic Speed Simulator. You may have seen it mentioned on various gaming news platforms. Heck, maybe you even saw the trailer for it released on IGN prior to the game’s Chemical Plant update. Working on the project has been a blast, to say the least, and in that time I've picked up a ridiculous amount of optimization techniques for working with 3D art for deployment on mobile devices. In fact, many of these optimization strategies slowly began working their way into my general 3D art workflow, which is why I’m currently creating 20 AC units for Eternal Blue--all of which are mapped to a single 2k texture. Somehow its working.

Some examples of atlas-mapped AC units.

Another example of an atlas-mapped AC unit.

Now, originally, this was going to be a proper devlog with a handful of updates and a new playable demo. However, this is only partially the case. While I do have a few updates to share, the next demo will be in September. Details of which can be seen in the roadmap at the bottom of this post. Anyway, without further delay, let’s dive into this devlog.

Changes and Fixes:

Aside from the dozens of bugs that I fixed from the previous beta build, Eternal Blue also went through a significant engine change. For those of you who don’t know, Eternal Blue has been running in Unreal 4 since I first started it as a learning project back in early to mid 2020. This is no longer the case. As of April of this year, the project was ported to the glorious Unreal Engine 5. In my humble opinion, the beauty of Lumen and the detail brought by Virtual Shadow Maps is 1000% worth the performance hit (which is negligible on modern hardware). With the game realistically having another two years in the oven, computer hardware on par with the “next-gen” Playstation 5 and Xbox Series X will likely be common place. If not, then we have officially lost an entire generation of technology to global happenstance. That would suck.

Eternal Blue's Player charact rendered in UE4's SSGI (RTX Off) vs UE5's Lumen with Virtual Shadow Maps (RTX On)

Currently, I’m also diagnosing some edge-case animation oopsies that didn’t exist prior to the upgrade to this new version Unreal. This is because Unreal 5 silently snuck in a new feature that let me take the 5 star italian cuisine that was my previous animation graph and turn it into a beautiful organized rainbow. The feature in question? State Aliases. For fellow Unreal users who don’t know what these are, think about State Aliases as a teleport of sorts. When you create one, you’re effectively creating the destination portal that can be called at any time while your Animation State Machine is running. All you have to do is select what Animation States can “teleport” to it via checkboxes. Once the Alias is set up, you can connect transition conditions as normal. Its an incredibly useful tool and it still baffles me how it flew under the radar of everyone talking about the engine’s numerous upgrades.

Animation State Machine before and after State Aliases.

New Additions:

Concerning what's actually new, I finally finished time trials! These bad boys were an interesting mechanic to tackle, but I managed to make them in a very modular way. You see, every time trial is nothing more than a simple Data Asset where I can define the Name, qualifying times and the world locations of each checkpoint. This way when a player begins a time trial, all I need is to call my Game Mode’s “Time Trial Start” function with a reference to the corresponding Data Asset plugged in. Underlying code handles the rest, so peppering these trials or variants of them throughout my game world will be a trivial, plug-and-play task down the line.

Example of the simplicity of creating a new Time Trial.

Another new addition are 3 curved bars in the center of the screen that serve as a stamina bar for dodging, because giving the player infinite consecutive dodges never fails to make combat game-breakingly easy. Functionally, dodging is done by tapping space when moving in any cardinal direction that isn't forward. It is a bit dodgy though (pun fully intended), as there are some kinks to work out. But the foundation is there, because truthfully I want to move onto combat very soon.

Also, while still a bit buggy in some cases such as wallrunning into them, ladders are a thing now too. Pipe climbing animations are also in the game but won't be supported until I make meshes for them, which will be before the next demo.

Finally, I made good progress in the art side of things. As mentioned in the introduction, I'm currently in the process of texturing 20 unique AC units with a single 2k texture split in a way to guarantee myself a roughly 512 pixel per meter texel density for the objects, which range from 1 to 3 meters in height. I also made some architectural meshes such as modular building walls with and without windows, and a typical stairwell found on the outside of many Tokyo apartments.

Stairwell interior.
A sample of residential window modules set up for a showcase.

Final Thoughts:

It took a long while to get to this point, especially with inconsistent freetime and other obligations, but despite the disappointingly little progress I've made in the past 8 months, I feel confident saying this: The parkour is done. Sure it still has bugs, and there are a lot of other quirks and edge-cases that come with it, but realistically speaking, I'll be ironing those out for the entirety of the project. At this point in time though, it's important that I move on to the game's other pillars so that I'm not stuck running in place and risking never finishing the game. While my current focus is getting some game art out of the way to provide me with some legitimate final-product assets, my next programming focus will be on a modular interaction system and potentially some other smaller level-scripting type tasks while I prepare to tackle the combat system--which has by far been the thing that I have dreaded the most in this project. Hopefully it won't be too difficult, though. I already have a few ideas on how to implement what I have in mind, so that should hypothetically be in a good spot before the year is up.

Anyways, I apologize for the long wait. Six and eight month gaps back to back probably look pretty bad, but ideally it won't be that way in the future. With the completion of some smaller tasks, I hope to be able to do one of these at least once a month from here on out...but life always finds a way to mess up my plans so no promises. Well, I hope to see more feedback from everyone after I release the next parkour beta build! If you enjoyed this devlog and are interested in the project, feel free to join the discord. I give some sort of live update concerning what I’m working on at least once a week in there, and everyone is super friendly. I hope to see you there! For now please refer to the roadmap for what to expect going forward. Until next time!


Get Eternal Blue (Parkour Beta)

Comments

Log in with itch.io to leave a comment.

Please, dont do catalyst rip off! 2008 og Mirrors edge was better than that shitty reboot! i hope your project will be popular!