Lucha Megadrive – Post Mortem

Standard

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.

The Good

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.

The Bad

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.

Conclusion

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.

Lucha Megadrive – Team Dynamics

Standard

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.

Programming

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!

Design

charaselect2An 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!

Art

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.

Production

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.

Conclusion

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!

 

Lucha Megadrive – Gold Master

Standard

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

winterwindsWinter’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.

Bug Hunting

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.

 

Lucha Megadrive – Tutorial Mode

Standard

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.

The Solution

tutorialdisplaySimple 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!

Lucha Megadrive – Beta

Standard

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!

LuchaBetaWe’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.

winterpunching.png

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!

Moving Forward

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.

 

Lucha Megadrive – Winter Testing and Trials Feedback

Standard

Playable Winter

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.

lucatraiIn 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!

Trials Transitions

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.

weeenterShe 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.

 

Lucha Megadrive – Pin Cancels

Standard

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.

Pin Cancels

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.

pincancelIt’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:

pin cancel trialThis 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.

Moving Forward

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!

Lucha Megadrive – Trials Mode UI and Bug Catching

Standard

This week was another week of steady progress for Lucha Megadrive!

Bug Catching and the Smaller Things

For me, this week was comprised of a lot of smaller tasks that added up. I implemented a main menu layout, implemented pin magnetization which works in tandem with the dynamic camera angles, and worked on several bug fixes that have added up in the past couple of weeks.

pinYou’ll look cool no matter where you pin.

This ensures that the pin will look natural no matter where you pin from and no matter what orientations the characters are at.

New Trials Mode UI

We implemented an initial trials mode last week, but the UI was most definitely lacking. Luckily our awesome UI designer drafted up a new UI plan and I got to work on implementing that. Now there are two styles to demonstrate what trial you are on, the old text style (which some players prefer) and a more intuitive visual style that shows buttons and motions. I spent some time setting up the system that would dynamically make the UI depending on what moves the trial is composed of – this is the result.

trialsuiMuch better – in my opinion.

Now our designer can make whatever trial they desire and the UI will automatically be made to fit. It’s not completely finished, but all the basic functionality is there. For the most part we just need some art assets to spruce things up.

Team Dynamics

Last week I mentioned some worries I had about our team’s current state and communication structure. I’m extremely happy to say that we’re well on the way on fixing those issues and bringing morale back up. The entire team is behaving and handling the situation very professionally as well. As a result of some of the issues the past couple of weeks, we’re cementing leads roles a lot more in order to facilitate communication and structure, which means a couple more lead responsibilities for me.

Lucha Megadrive – FMOD and Trials Mode

Standard

This week was a bit of a doozy, but we still managed to get a lot done!

Integrating FMOD

We have a guest audio designer that will be contributing to our team by making sound effects. I set up a sound manager before that did the job in the time we had, but our sound designer requested that we integrate FMOD into our project, saying that it would greatly increase their workflow. After taking a look at FMOD with our sound designer, I agreed and made plans to gut our old audio engine.

It was a learning process, but FMOD is fairly easy to work with. I got a basic workflow set up so that our sound designer could path the appropriate sounds to the right events. From there, it’s up to me to fire those events in their appropriate situations in the gameplay logic. The system is also flexible enough to easily add new events and sounds as design requirements change moving forward. Since we don’t have replacements for every sound implemented thus far, I made a dummy scene to prepare and test the architecture, so implementing what I’ve done won’t take too long once we have enough sounds to work with.

fmodNow our sound dude can hook up all the events they need to!

Trials Mode

Trials mode in a fighting game consists of set combos that a player has to perform in order to move on to the next. This can range anywhere between badges of accomplishment earned by doing cool things or even teaching the player some decent combos they can use in an actual match.

trialsTrials can get pretty hard

Duncan and I tag teamed this one, we both made the architecture for our solution and implemented different parts. He handled a lot of the core implementation while I’m working more on feedback and UI options. The main goal was to come up with a tool that would allow our designer to easily make, and modify trials at ease. Happily, the systems I had made in the previous semester greatly aided us in this endeavor. By exposing inputs and motions to the editor, our designer can make and test trials on the fly, while on our end we just read the current input and state of the character and check if it matches the current move in the trial. Trials mode is working and ready to be expanded on as we move forward!

Conclusion

It was another fairly productive week for us programmers, (beyond these things I worked on typical things like bug fixes and tweaks). Team wise, things were a little more tense than normal this week. Right now our game is undergoing a bit of an art revolution, so there’s a lot of stress on the art team. Unfortunately, our art lead had to leave for the week, and I feel like that combined with several other factors has resulted in some miscommunication about art progress and art plans moving forward. As systems lead I’ve been supporting as best I can from the programming side… which means I can’t do much. Despite all this I feel like our team is almost past this hurdle, and after that I know it will be smooth sailing.

Lucha Megadrive – Training Room and the Birth of Winter

Standard

It’s the third week of development and we’re about to challenge our green light conditions. Things are going well and the game is definitely moving forward at a good pace. On the programming end my main tasks were to begin the implementation of the coveted training room and starting to work on Nuclear Winter’s initial implementation.

Training Room

Duncan and I have been tackling the training room together. I set up a simple architecture to build off of and added some new events to allow for an environment where you can freely practice combos and different positions. Duncan handled showing inputs pressed and showing damage UI for the trainee to analyze as they test different combos. Right now, training mode is at a base state where the core functionality is there, but there are some more in depth training features we are planning to add in the coming weeks.

trainingTraining Mode is definitely on the way!

Nuclear Winter

Although the model isn’t finished yet, there’s a lot of animations to get done so our animators have already started to crack down on them. In order to test them in engine, I already started using the framework I set up last semester to begin the implementation of Nuclear Winter. I’ve started beginning the new animation tree and going through the initial set up of making a new character. I’m happy to say that the pipeline is still working great and that our animators are doing a fantastic job so far!

winterWinter will look sicker soon.

Moving Ahead
I feel like these past few weeks the programming team has been tying up loose ends and adding smaller features. We realize that during this lull between art implementation we have more time than we thought we had to add more features, so we’re currently talking with the design team to see how we could best spend our extra time. Right now, it’s looking like we might be getting a trials mode in, which is another fighting game must have.