Seeing how I missed like two weeks of mini blog posts, I’m deeming this one an actual “Devlog” (fanfare and such yada yada). I’m just going to call it a Dev Log.
So much has gone on the last few weeks that I’m struggling to piece it all together, so here is an attempt:
Computer Adventures:
So, I don’t haven’t built a dev machine from the ground up for years now, (maybe since college?) and typically just upgrade parts as I see fit (graphics card, ram, processor, etc).
Well, my motherboard has been giving me problems for close to a year now, where it occasionally decides “yeah, don’t really care about your boot device today”, as well as other miscellaneous things that required me to do things like removing the CMOS battery or main drive. I was also running out of upgrade options, so I got a bit fed up and decided it might be time to replace it.
I wasn’t going to be cost-effective to get another LGA1150 board and CPU, and I try to build computers with future-proofing in mind. I was also looking to get a smaller case too. I already had a nice GPU (GTX 1070) that I got a couple of years ago before cryptocurrency “did the thing” and graphics card’s prices got ridiculous, so didn’t have to worry about replacing that.
Ultimately, I decided to do a “completely new” build.
I’ve been building computers for friends and family for many years, so I literally woke up the next day and said, “I’m about to build this thing blind”.
Well, kinda learned the hard way of the hassle of going at it that way (along with committing a couple of noobish mistakes)…
Shopping Time!
Lesson 1: Double check store inventory before heading to a store that’s 20 miles away
Well, I choose the nearest Fry’s Electronics (it was Saturday, and I really wanted to get a machine built the same day). I get there and start looking for all of the cases and motherboards (severally disappointed that they only had one Micro ATX board in stock, something I was looking to get for the more compact build, but not as restrictive as a Mini-ITX, which they had several of). Impatient as ever, I decided I was going to pick it up.
While looking at other things, I hear another customer talking to a sales rep, and the rep mentions that they don’t have a certain CPU in stock. After listening even more (I’m noisy, sorry), he mentions that they have NO Intel CPUs in stock. I decided that I had to get in on this convo.
He informs up that as of late, their store may receive like, 10 at a time, and also mentions that their other location doesn’t have any either (both of these locations are 20+ miles away from me in Dallas).
I also find out that they don’t have the specific ram I was looking for either (I ended up getting something a little pricier). He ends up informing me that the Micro Center 10 minutes away from where we were should have some CPUs.
So I end up at the Micro Center and they did have the CPUs, as well as a case that caught my attention. They also had a lot of other nice things too! Kind of wished I would have known to go to Micro Center first, despite it being much farther from home.
Building Time!?
Lesson Two: Get a head-start of figuring out your plan for wire management and how pieces will fit in your new case
I got home and was ready to build. I spent a lot of time trying to get the interior wire management together since it’s a much smaller case than my last one. I ended up spending a couple of hours getting it just right (I don’t intend to go back into this machine once it’s complete since I’m nearly maxing it out spec wise for now), before moving out to everything else.
Getting my old water-cooling radiator in was a bit tough (a very tight squeeze), but after that, adding in the ram, etc was a Breeze.
Hours went by, I installed Windows, software, etc…
I go to shut it down (after having done several restarts for the software installs prior), and it doesn’t want to power off. After 10 minutes of waiting, I manually power it off. Whatever, I’m super tired at this point.
The next day (Last Sunday), I’ve encountered several other smaller issues. Updating the BIOS didn’t help either. Great…
Okay, Building Time For Real
Lesson 3: Kinda make sure things boot up and work before you get too early to clean/tighten things down in your build
After taking the whole thing apart, I ended up swapping out that mobo for another of the same kind (since Frys didn’t have any others), but then ended up ordering different board on Amazon. So waited another day or so and the new board arrived (it’s now Tuesday evening).
I rewired/rebuilt the computer once again, installed the software, etc. I spent most of Wednesday day checking in with the team and catching up with emails and such. Then Thursday as I was beginning to do some work, I noticed that the computer was saying that my Windows wasn’t activated. I go to my Microsoft account to retrieve my key, and the page wouldn’t load to provide me the key and would only show the transaction.
Lesson 4: Make sure to keep your activation key(s) somewhere other than online/digital if you can
It’s super late and the option to speak to someone was obviously closed, but they had a chat option, so I reached someone through there. After back and forth for a while, and him remoting into the machine to check the activation status, he tells me that the key might not be showing up because it was an “upgrade”, so I would need to buy another copy of Windows 10 again.
Lesson 5: Tell “Aaron” from Microsoft no over and over, and don’t fall for possibly sketchy things like sales pitches that come out of nowhere
I originally bought Windows Home and upgraded it to Pro on the same day back in 2015, so I told him that and he kept insisting that I buy Windows 10 again. I refused and told him that I wouldn’t and that I’d take care of this in the morning, and he then offered that I could pay a smaller fee to reactivate my Windows 10, but it would be a one time fee of like, $40. (I refused again).
When I go to end the remote session, he then informs me that he “Really wants to help me out” and ends up activating it anyway. (This whole thing seemly suspicious, I ended up recording it). I watched him activate Windows for over 10 minutes through some manual process (it’s almost 2am, and I had work in the morning). He eventually finishes and thanks/apologies. Not sure why I even had to go through all that, but whatever…
I ended up spending Friday wrapping up installs and doing a fresh system backup afterward, before moving along with pulling down the Breeze project from source control, and reminding myself of where I left off…
Anyway, long story short, I tried to get a system built in a day, and it ends up taking almost a week!
Okay, but did you get any dev done these last two weeks?
Yeah, somehow!
Health Bar and Health System:
The first thing the team and I did was evaluate a few things that are critical, but we’ve been bouncing back and forth on: The Health System
(WIP of a concept we’re working on for his healthbar)
The reason for this is mostly for game balancing purposes:
- Is this a game that focuses on having Breeze (the player) overwhelm his opponents with an array of abilities (think Devil May Cry/Bayonetta, Kingdom Hearts, God of War?)
- Or is this a game where Breeze must focus on finding openings to deal damage and avoid an onslaught of danger (think Hollow Knight, Ori, Megaman, pretty much most NES/SNES platformers)
Game design… is hard at times. Sometimes you think something will work well in theory, but when you get down into the specifics, you begin to question how certain things will balance out.
You’d think something like designing a health bar isn’t too trivial, until you realize that the Health bar represents the player’s health, and the player’s health influences the character’s survivability, which is then tied to other factors: what options does the player have to “survive” and what threatens that?
Anyway, not going to get too deep into that because I lack the PhD.
Basically, there was a bit of a rift in the UI design process that led to really evaluating game design items, and I’ve been working towards seeing what Breeze’s options are and how to limit them in areas, or how I can build the world and it’s inhabitants in a way that will make this all work out.
It’s not going to be something that will likely be answered quickly, but nevertheless, that’s Game Design™ sometimes…
Frame Data:
[Insert Craig of the Creek frame data meme here]
I used to have a really convoluted way of tackling this in which I would have events in the animation that if given an ID, it will look for a set of “Frame Data” and then look for a specific frame and then load that information up.
It would then pass that frame information into the active hitbox and if something is in it, math and physics and stuff would happen.
I didn’t change this up too much, but I did reduce the setup process by allowing you to just drop the FrameData right into the frame of the animation (no more extra array and ID lookup stuff!)
New Particles:
We’ve got new particles! There’s one for jumping/landing/dashing dust, as well as one for wall sliding.
In the last update, I added a feature that generates “points” at the edges of a character’s collider box (as well as other “checks”), so this helped in making sure that the particles are created in the right place. This was especially challenging with the wall sliding particle.
Also, with the wall sliding particle, I needed to implement a way to have a “looping” particle effect, as well as making sure the particle effect follows Breeze as he’s moving down the wall
Developing Sprite Model Sheets
We’ve got models sheets completed for just about all of the cast members, though, since there’s several artists on the project, as well as animators (including I), I wanted to get some sheets together that would work as a base for animators to use, and to eliminate elements that aren’t needed in the sprites (minor details that would be seen in promotional art or more detailed art in general), as well as get a proper size for the characters in-game.
Misc. Features
I’ve done various other quality of life code changes to make it easier to do certain things, like creating new attacks, making the screen pause/slow-mo when Breeze changes forms, and updated my Debugging Manager so that I can hide/show certain debug messages.
I’ve also been working on a RoomManager, and writing features to look handle what happens when the player enters a room (like starting a cutscene, showing UI, spawning things, etc)
I’ve also been looking into updating the game’s Music Handler, mostly for how to handle looping a song after it’s intro plays, as well as finding ways to add effects to tracks!
Other Breeze things:
I’ve been working on getting shirts done through Teespring, and I would have loved to show off some of the shirts I ordered, but Teespring shipped them using DHL, and somewhere between DHL and USPS, my shirts have been sitting in shipping limbo for 5-6 days, despite being like a city or two away from me… Maybe tomorrow ~
Also, working on a couple of enamel pin designs! Haven’t figured out the maker yet, but designs are coming along nicely!
Quick Test Build Coming
So, a week or two ago, I planned on releasing a quick build for the Drop Tier backers and above. There were a lot of features and such that I wanted to get done… before my computer stuff happened. Our goal was to have one out before the end up March, so….
I’m going to release one anyway. Maybe tomorrow?
I’ll be creating a post for those in the eligible tiers once I’m done compiling/building it! Please keep in mind that this build will be very minimal and exists to test out controls/physics. I wanted to make a strong first impression, but I’ll chill on the whole “striving for perfection” thing for now!
Also, I’m on vacation this week, so I’ll be cramming on Breeze stuff this whole week to make up for lost time!