Well, the game is done! This is definitely a game that would need at least a year or two of full time development before I’d consider a full fledged release, but as our graduation nears and our classes end, so must our production cycle.
Our team worked incredibly hard and for the most part communicated extremely well to be able to pull off what we did. I think we did a fantastic job of communicating, and adjusting how we do so as the semester went on. We did a great job at scoping, and taking hits when we needed to as well. I think we also did a fantastic job of supporting each other and really coming together as a team to get our game done.
I think the main issue that really affected our workflow was the lack of a more organized animation pipeline. Both of our animators had some miscommunication with the rig which caused lots of animations to be re-exported with new references, which wasted a lot of time on the animation side and on the implementing side. There were also so many animations that some of them were also lost in translation and had to be re-done.
What I Would Change
Well for one, I definitely would want more love and attention played to the animation pipeline. On the programming and architecture end though, I really wish I would’ve designed and written a robust state machine to handle animation transitions and gameplay logic. A lot of the bugs we ran into was because of our reliance on Unity’s animator transitions. The problem is our game has so many animation states that might need to switch at a moments notice, and the more complex our animator got the more weird animation glitches happened – which were a pain to fix! Having a more robust state machine would have also made gameplay logic easier to write and debug.
I’ll always look fondly to this project. I felt like I applied a lot of what I learned from previous experiences but also learned so much more in the process. In the future, I would absolutely love to restart production on this game again to see where we could take it, cause people really seem to like it! You never know what the future may hold.
If there’s one thing I’m definitely sure about, it’s that I’m going to miss the hell out of my team. Everyone did such an awesome job and poured so much passion into this project that it’s no wonder that it came out so great. I’m gonna take this blog post to talk about how my interactions went with the other disciplines.
Including me, there were two programmers on this team, so me and the other programmer, Duncan Carroll were pretty close. We both understood how fighting games worked very well so delegating and splitting up tasks was pretty easy and went pretty seamlessly. Since he joined the team halfway through, I would catch him up on how the games architecture worked from time to time, but he was really good at adapting and implementing new features quickly. We’re also really good at hunting down bugs together, overall I couldn’t have asked for a better programming partner in crime!
An example of our updated UI!
I definitely have been working extremely close to design since day one. Paul Klimazewski, our lead designer has been in charge of combat, and with so many deep and complex systems going on I was constantly making sure to communicate with him to make sure mechanics were working as intended. I also made sure that the tools I made for him were working well and improving the design process. Halfway through I also had the pleasure of working with Natalie Orlando, our UI/UX designer. They were a joy to work with, as they gave our game’s UI the much needed love it deserved while also striving to make sure their designs wouldn’t put too much extra stress on the programming and art team. They came up with several smart solutions and were very comfortable with implementing their own stuff in the engine as well!
Our art team really outdid themselves with this game. The art scope we put on ourselves was huge, and I believe they really rose to the occasion. Our art lead Cole Kirkpatrick did an amazing job of concepting and wrangling in the art direction while also ensuring scope was always reasonable. Our environment artist Tori Vergara also did an amazing job of bravely stepping out of their comfort zone to help with character modeling when the occasion called for it. Last but definitely not least, our animators Sean Walsh and Joey Lefebvre took an insane amount of animation work this semester and handled it really well. I also really appreciated their patience as our animation pipeline could have used some work and they really worked with us to make sure animations were looking great and feeling well.
I’m also really thankful for our producer Elijah Dixson, who had the monumental task of managing the communication for a team making a fighting game! He really outdid himself and did everything in his power to ensure that all we had to worry about was making sure our tasks were done and that our timelines were feasible. He also put in the extra work to help our team bond and get to know each other, which I think resulted in way better efficiency in the later sprints. Lastly, Brian Flaherty our audio designer provided some awesome tracks quickly and without any stress.
Although things may have been a bit rocky at first, our team really got comfortable with each other and by the end of things it did feel a bit like a small family. We all poured our hearts and souls into this game and I hope it shows!
As Gold Master week came up, there wasn’t much to add to the game, just a whole lot to punish, and a little bit to fix!
Making Hard Decisions
Nearing the end of our game, there were a couple of animations our combat designer had planned that would have involved some last minute changes to our animation system in order to get working. As cool as it would have been to get it working, I know it was unrealistic, required crunch, and would’ve introduced way too much risk of new bugs in our game right before the big show. I regret not looking into this sooner, but as Programming Lead I had to put my foot down, it’s a tough thing to do but someone had to.
Polish, Polish, Polish
Winter’s artic winds activating as she enters her hype state
Since most of the art was squared together, the programming team worked with our animator who put on a temporary VFX role to get some cool VFX for our characters during their hype state. We had some weird scaling issues going on with them, so we had write a short script to make sure the VFX were displaying properly.
We have an infamous “fix it” doc where team members can log bugs, glitches, or design critiques. We also spent a lot of time tracking down and fixing any leftover bugs, resulting in a stable and polished experience.
Learning a fighting game is tough, and Lucha Megadrive like any other fighting game has a plethora of mechanics. That’s why we implemented a simple tutorial to teach new players the basics. As the programmer, I set up the systems, requirements, and light AI required to finish the tutorial.
The First Pass
So I started first by not worrying too much about UI and just setting up a system so that the tutorial manager can listen for specific events and feed new situations to listen for as old ones are completed. This got the job done well, but the UI was definitely lacking and in order to get it working with the current set up there’d have to be a lot of UI specifically designed for the tutorial, which probably wouldn’t be a good use of time for how far we were into the project.
Simple and clean.
Our UI/UX designer and I worked together to come up with an amazing solutions, we would make a quick and easy panel system that visually showed the player what they should be doing along with checklist type of UI that allowed the communication of the completion of a variety of different tasks. It ended up looking like this and I’m pretty happy with how it turned out!
Life has been busier than ever lately, so it’s been a while since my last post. I’ll spend this post updating you on the current state of affairs of Lucha Megadrive.
We’re in Beta!
We’ve been working hard!
So yeah, a WHOLE lot has changed. As of now we’re about three weeks out before Gold Master is due. For the past couple of weeks our team has really worked hard and come up with some amazing results. The artists have a lot on their plate, from working on the new environment, tweaking and fixing animations, and texturing Winter, there’s been a lot of visual oomph added in! Our designers have also been balancing and tweaking moves with the new character – Nuclear Winter, and our UI is getting some much needed love.
On the Programming Side…
The game is finally feature complete! The programming team has been focusing on fixing bugs, adding polish, and implementing any last features needed for out Training and Trials mode. I in particular have been working on the Tutorial, which is something I’ll cover in it’s own post.
I also worked hard on implementing Winter specific features in the past couple of weeks, and getting her into a final playable state. I think she’s looking fantastic and I look forward to see what players think!
My plan is to work hard the next couple of weeks to get the game into its best possible state for gold master. Because I’ve been going a little light on the blog posts I’ll take some time to delve deeper into specifics on some of the work I’ve been doing recently, but for now I wanted to make a quick update on the overall state of the game.
This week was mainly focused on getting Winter to a playable state, which caused me to run into some unforeseen issues. While my combat designer handled plugging in our fantastic new animations and tweaking hit boxes and move data, I went into the code to expand our Winter subclass to give her what she needs to function as a playable fighter. I also had to implement some extra functionality in our Fighter base class so that our designer could tweak certain moves for Winter-specific interactions. Particularly, the ability to activate armor, push forward, and push back effects mid animation.
In motion it looks pretty slick.
After the initial implementation, we had to clean up our match flow infrastructure a bit to allow for two characters. Champlain expects us to prototype and develop rapidly, which means some old prototype code gets leftover sometimes. Duncan and I dove in and cleaned it up however, so our character select screen finally has a purpose besides color select!
We’ve had a working Trials mode for a while now, but it’s been really lacking proper feedback for completing and transitioning between trials. I took some time this week to get trials feedback working according to the design docs.
She is a FORCE to be reckoned with.
It’s definitely one of those situations where the little things really end up adding A LOT by the end of it.
Current State of the Project
Moving forward, I think the last big task will be implementing a tutorial. Besides that, art is finally getting to the point where the programming team can really help to bring the game to life. Duncan will be focusing on graphics while I’ll be focusing on tweaking remaining systems and cleaning up any weird interactions that sometimes happen. Programming wise I’m feeling extremely confident that we’re gonna finish everything we need to get done.
I had a lot of fun this week implementing a whole new mechanic – pin cancels! One of the last game play critiques our game had is that the pinning aspect needed a bit more agency from the attacker’s side, so I spent most of this week implementing the mechanic our designer designed to address this feedback.
The idea is that during a combo, you can cancel any move that knocks down or juggles into a pin. By spending a bar of meter (equivalent to a super attack) you instantly transition from your previous attack into a pin position, with the advantage that your enemy has half the safe area they would have had if you just had pinned them normally.
It’s hard to show in a single frame…
You can see from the inputs, that I used crouching punch to launch the opponent, juggled with standing heavy punch, and then immediately pressed pin to go right into the pin combo. As a result I’ve used one bar of meter and the opponent will have a tougher time getting out, cool!
Pin Cancels and Trials Mode
Since pin cancels are a new and vital mechanic, we wanted to incorporate them into trials mode as well. This way, players can learn about what cool combos they can do before they try to quickly end the match:
This one might be too easy.
On top of that, our designer can now choose the start points of each player per trial. This will help for things like corner specific combos. Trials mode is almoooost where we want it to be, we just need to plug in some pretty UI and provide a satisfying transition between trials.
I feel like our team is finally operating at peak proficiency. We’re getting a lot done every week and there are some huge changes coming up! Our remade Fuego will be coming up soon and we’re planning to have a playable Nuclear Winter in the next two weeks. A lot of very cool things to be excited about!