Slow Jam 2023: Week 4

Day Twenty-Two

Getting two of my custom characters fighting in the engine confirms that my pipeline for getting my models from Blender into UFE works. The next huge hill I have to climb is making move sets for all my characters. Having such a large roster means I’m going to need a lot of animations in order to have diversity among my characters. I want each fighter to have their own feel, and that means I want to create 13 different move sets with idle, movement, blocks, attacks… That is a lot of animations I’m going to need to source or create.

I’m interested in learning more about animating my 3D models, but I’m pretty sure creating the moves myself isn’t a viable option for this project. I have basically zero experience animating. I don’t think what I would produce would be to the level I want, and it would take me way too long. So that means I’ll need to source the animations for the game. I start looking for animation assets in the store, and searching for other online sources where I can get get some animations.

Going through the available 3D animation assets on the Unity Asset Store.

On the art front, I fixed some texture issues on a couple of the models. I’ve completed the UV texturing of all my main playable character models, and I start working on some of the boss characters. Most of the models were textured using basic colours broken up along seam lines. The pieces of their meshes have all their vertices collapsed down to a single points which are then UV mapped onto the desired colour on the texture.

Most of the texturing I’m doing is simple colour swapping, so I can work with the way the UVs were originally packed. Once I’ve re-marked the seams along the edges of the elements of the model, I can select all the related faces at once and adjust the location of their collapsed vertices to the new colour I want.

Using the UV editor in Blender.

But for some characters, I want to do more than just modify colours. I want to add some custom textures, like logos on t-shirts and stuff like that. Since my low poly models lack facial details to help identify my friends, I think some personalization in texturing will help sell the who each character is. But that’s going to be a challenge since in most cases the model’s geometry has been collapsed down to a point on the UV map.

After playing around with it a bit, I figure out that by pulling out one vertex at a time, I can attempt to reconstruct the mesh shape in the UV so that I apply the custom textures I want. Once again the decision to  use the low poly models works to my advantage since it means the faces I need to re-create are simple enough that I can re-create them by hand. Seeing the hairy gut texture applied to Burton Cummings is one of those moments that makes me so happy to be in game development. It’s funny, silly, absurd, and I’m so happy with the outcome.

Texturing in Burton Cuming's hairy belly made me giddy.

Day Twenty-Three

I take a break from the project to celebrate American Thanksgiving. It’s not usually an observed holiday here in Canada, but I have a cousin who works for an financial company down in the states. He takes the holiday as an opportunity to come home to visit, and we take this opportunity to celebrate his coming home with a family dinner.

After an evening of turkey and family, I take a look at the rigging and animating course I picked up on GameDev.tv. I want to get a better idea of how all that works so that I can make educated decisions when I’m sourcing animations for my game. Fortunately the rigging and animating course feels more generalized than the anime modeling course. The course is still primarily taught by following along with examples, but  the examples do a better job of demonstrating the key pieces you need to work with to animate in Blender. 

Animating a jumping leg using inverse kinematics.

It doesn’t take long for me to feel comfortable in Blender’s animation interface. In my previous life as a filmmaker, I spent a ton of time working in editing and effects software, so working with key-frames and timelines is second nature to me. I’m a little surprised how easy it is to get something animated that looks pretty decent. Despite the success I’m having, I’m very aware that the animations I’m creating are an order of magnitude simpler than the ones I’d need for my game. A disemboided leg bouncing up and down doesn’t have the same level of complexity of throwing a punch or a jump kick. But I do feel empowered enough that I think I now think I could model and animate a simple, stylized game assets. I’m going to plan to do a compo jam in 3D where I model and animate all the assets in Blender.

Day Twenty-Four

Tonight I participated in a mentor mingle event at my old college. I’ve done a bunch of these events and they’re always fun for a couple of reasons. To being with, it always feels good to give back to the community and encourage students in their development. I remember when I was a student and how I looked up to the mentors from industry I got to the opportunity to interact with when I was learning. It helped me get to where I am today, and I’m hope that I can pay that forward to help new classes of students achieve their goals. It’s also really fun to get to go back as an employee for one of the world’s biggest video game companies. People get excited, and you get to be a bit of a rock-star.

Another big reason I enjoy these events is that it’s also great to see some of my old classmates. After the event, a couple of us alumni go to grab a couple drinks and catch up. On the way to the pub, we cut through the college campus. It’s been 5 years since I graduated back in 2018. Going back to college was a huge decision and turning point in my life. Walking the halls of the campus again, wandering past old lockers and spots I used to spend hours studying, it was really nostalgic. It’s fun hearing about what everyone has been doing since graduating, and catching up on how everyone’s career is growing. We’ve all come so far since our days together at RRC.

I really appreciate the time I got to spend being a student at this school.

Day Twenty-Five

While the animations and attacks are the next biggest obstacle for me, making stages is another big piece of the puzzle that I need to figure out. My plan is to use assets from the Synty packs to create the levels, so like I did with the characters, I start by planning out what I want to create and seeing what I have available to leverage.

In addition to art for the stages, I’m also going to need music. Since this is just something I’m giving as a gift to my friends, I know I could get away with using copyrighted music. But the artist in me wants to do things the right way, so I start looking around the Free Music Archive to see what I can find. There’s so much stuff on FMA! Which is both a good and a bad thing. It means there’s a lot to look through, and a lot of it is pretty crappy. But if you’re willing to spend the time to dig around, you’ll be rewarded with some real gems. I still haven’t settled on a story for my game yet, so I’m not sure what kind of tone I’m going for. I search for tracks by ‘lo-fi’ and start listening through the results in the background while I work, and any track that stands out to me gets added to a playlist. I can do a better job filtering them and narrowing them down once I figure out the tone I want for the game.

Still in the process of searching through the archive and tagging anything I like to review later.

Day Twenty-Six

The deadline for the slow jam is coming up in a few days, so that has me thinking about deadlines for this project. My hard deadline is Christmas. That still feels far enough away that I’m not stressing about it yet. Plus I’ve been making great progress. This dev log has really helped me to see how much I can get done in a short amount of time. I’m optimistic about getting this done. But I am very aware that Christmas is going to be here quicker than I expect. I need to sit down plan a schedule so that I can have an idea of what pace I need to be at to land my deadline. 

In order to start making the game feel a little more custom, I add some of the music tracks I’ve found on FMA, and start experimenting with designing some more stages. Being an old school Street Fighter fan, I want each character to have their own stage. That means 13 stages, which seems a bit insane. What’s more realistic is that I’ll be able to get a handful of stages complete that will be shared by all the fighters.

I’m really partial to the Synty shopping mall asset set that I have. Maybe I can just expand out the demo scene a bit and have all the fighting take place in the mall? I kind of like that idea. I met most of the friends in this game when we were all in high school together, and our high school was across the street from a mall. As you can imagine, we spent a lot of our time in that mall. So having the game set in a mall fits with the nostalgic vibe I want to tap into with our shared history.

The Pirate's Den Arcade was my home away from home throughout high-school.

Day Twenty-Seven

Today was a rough day at work. Things just weren’t going my way and I wasn’t happy with the way things went. The funk I’m in has me feeling down on this project too. I feel like the game is a dumb idea and that it’s not going to work. In light of how I’m feeling, I decide not to attend the Slow Jam presentation session.

We all have bad days...

I was already feeling a little weird about presenting the game once I had transitioned over to the gift game idea. It feels egocentric and self-obsessed to present this big inside joke to a group of people who aren’t in on it. I know I could focus the presentation on the work I’ve done and not talk about the whole gift aspect of it. But honestly the fact that I’m making this as a gift for my friends is where a lot of my passion for the project is coming from. It’s the inside jokes and video game inspired references that are getting me excited about the game. How I would be able to give a good presentation on the project without being able to talk about the thing that gets me excited about it? And since I’m not even feeling excited about it right now, it took even less energy to convince myself to weasel my way out of the event and I backed out.

Day Twenty-Eight

I’m feeling a bit better today and I get back to working on the project. I start pulling in some animation assets into the project. So far I’ve only found two major sources for animation assets: Mixamo and the Unity Asset Store. Digging deeper into the internet didn’t really produce any sources. Although, maybe I’m just bad at searching the internet now? I’m so ingrained to using Google that if I can’t use it to find what I’m looking for, I’m not sure what else to do. All I found were a handful of independent websites that were selling some animations or mo-cap samples. I knew animations were going to be challenging to come by, but I was hoping that by searching around I’d at least be able to find a couple more than the two sources I started with…

From the asset store, I pull a free pack of attack animations to use as a sample. I’ve been looking at other animation asset packs on the store and I have compiled a list of ones that look like they could be interesting. There’s a large pack called Fighting Animset Pro by Kubold that looks like it has a solid variety of basic movement, strikes, blocks, and hits. WeMakeTheGame has a series of asset packs based on different fighting styles. The animations in those packs are flashier and I could use them for special moves.

Just like with the art asset packs I picked up earlier this month, the animation asset packs I’m looking at are part of the Black Friday sale. But even at the reduced sale costs, they’re still pretty expensive assets, and I need lots of them. The dangerous thing is that I’m already starting to get attached to the idea of certain characters with certain styles from the asset packs. I think I NEED to have my mall Santa fighting with Drunken Boxer style!

Spoiler: I would eventually get my drunk boxing Santa...

Wrap Up of the Week

As this week wraps up, I’m trying to find a solution to my second biggest hurdle: animations. I haven’t sat down and worked it all out, but I think I can get enough assets from the sources I have to create the full 13 character game I have in my design. To get everything I want, it’s going to cost more than I was hoping to spend. So before I commit, I do want to do the math to make sure I’ll have everything I need if I make this investment.

Although at this point, I honestly don’t think I have any other options if I want this game done for Christmas. I can’t make the animations myself, and I’ve come up dry when looking for other sources of animation. I still haven’t done a thorough investigation of what’s available on Mixamo, but I know it won’t have enough of the specific kinds of animations I’ll need for my fighting game. I think if I want to hit my deadline, I’m going to have to get these asset packs from the store.

Conclusion of the Slow Jam

At this point the Slow Jam is done, but this project isn’t! Since I’m enjoying working on this dev log, and I’m appreciating the perspective and history it’s providing for the project, I’m intending to continue with this series as long as I’m working on the game. The goal at this point is to have the game done by Christmas, which is now less than one month away. I’m still optimistic that I can make my deadline, but the reality of how much work is ahead isn’t lost on me. It’s time to buckle down and see how much progress I can make over the next week or two.