This monthly recap will cover both the months of March and April. I intentionally skipped the March recap in order to take a short vacation in the spirit of avoiding burnout. I continued to pursue my goals in the second half of March, and as a result, I’ve combined the two recent months into a single post. Here is my recap of March and April.
Replication
Having become much more comfortable using UE4’s blueprint system, I decided it was time to start experimenting with network multiplayer. More specifically, replication, and how to best implement it over the course of a game’s development. This is an important aspect of game development that I’ve avoided up until now. I’m feeling bittersweet about starting on it, since it’s a powerful tool that will allow me to make the kind of games I’ve always wanted to make, but it comes with a catch. It’s far more complicated than I had anticipated.
My first impression of replication was what really set my expectations. I ran the Netherlight prototype project as two separate processes, setting one of them to host and the other to connect to that host. Simple enough so far. The two players were moving fine in both applications with consistent positioning, and only a few missing animations between clients. To make a long story short, these things working right out of the box were nothing more than a small convenience, and didn’t even begin to scratch the surface of what I would be doing throughout development. My initial impression was off the mark, but that’s why I’m here, and why I’m writing this blog. I’m here to learn and improve, and this is the next challenge.
I took a step back and looked over everything I had done up until now. In order to understand replication, and implement it with confidence, I would need to build something from the ground up. I created a fresh project and started into Unreal Engine’s official video tutorial on the subject. I streamed the progress on my regular schedule, and the effect of this shift in content did not surprise me whatsoever.
Choice Paradox
My streaming numbers dropped significantly during this time. For the average viewer, watching someone watch youtube videos, while recreating each step in-engine, is worthless. There is nothing of entertainment value to be had. During slow times of normal dev work, I would at least create some sort of banter with my viewers. I couldn’t even do that, because the tutorial needed to hold my entire attention if I was going to absorb any of it.
I was hosted by UnrealEngine and some other Creative streamers, and still gained the occasional follower. I was pleasantly surprised when one of the more popular streamers in the Creative community hosted me. She brought in 127 viewers, and admitted to me that she did it because my title at the time contained “Boring Youtube Tutorials Edition”. She stuck around for some time and kept the viewers entertained while I did my best to chime in between tutorials. Moments like this are rare, and regardless of these occasional successes, I decided to reassess my focus.
The Paradox of Choice, written by psychologist Barry Schwartz, illustrates how providing consumers with a lot of options can create reduced interest in making a purchase. This phenomenon is applicable to so much more than just selling a product. Reducing the number of options, and thereby reducing the amount of analysis required to make a decision, greatly reduces stress while also improving the comfort and likelihood of a decision being made. I applied this mentality to my life in many regards over the past year. I made the conscious decision to only focus on up to 3 major studies, projects, or responsibilities. By doing so, I’ve given myself permission to feel no anxiety from ignoring anything not categorized as a current focus. Of course anything under the umbrella of “responsibilities” must take priority when considering focus.
Return to Form
I am a professional Java developer by day, and a game developer by night. That is until my proclivity for professionalism tells me to be a Java developer day and night. As long as I’m improving a skill or knowledge, game development or otherwise, I am happy. So I have taken hiatus from streaming and UE4 development in favor of my career’s increased demands of my time. This does not mean that my goals have changed, and it certainly doesn’t mean that this project is over. What it does mean is that my focus is currently on Java instead of UE4 Blueprints.
A return to my early days as an apprentice developer has me falling in love again with canvas rendering and vector path algorithms. Trimbol, one of my games available for download in the Google Play Store, was also a first attempt at native graphics rendering on a mobile platform. Much of my time has returned to improving this skill, while also recovering my overall comfort within a Java development environment. This has sped up the work I am responsible for by day substantially, while still aiding in my desire to build the kind of games that I’d like to play.
My Java development by night will likely take over my usual UE4 development time, at least until I feel comfortable with rapid prototyping in Java again. While setting up a Java development environment on my streaming PC, I got distracted and decided to also set up a C++ environment as well. It’s safe to say that when I inevitably return to UE4, my focus will be on learning how C++ fits into the systems I’ve already learned so much about.
Closing Summary
Progress continues regardless of context. I’m getting the most of my experiences, and am learning more every day. I’ve taken on a lot more responsibility at work, which will soon become streamlined. My efforts to reduce friction and improve efficiency at work will help not only my career, but also my game development process. I’ve already learned new tools for project planning and management that I will be implementing. Whenever I consider the topic of focus, I remind myself that the most important focal point for progress is the present.
