Avengers In The Field
Disney Infinity Custom Level
This was a minigame I made in Disney Infinity 3.0 as part of a Captain America: Civil War themed community contest. In it, you have to protect your base from oncoming enemies while also completing bonus tasks that pop up from time to time in order to get bonus points.
You can watch a gameplay montage of this minigame below. Make sure to watch it all the way through the end to hear the Avengers theme which I programmed in as the end-of-game fanfare using the in-game music tools. I was very proud of putting time into that little detail.
Past the video is a write-up of my production process.
Disney Interactive used to hold regular community contests for Disney Infinity 3.0 where players could use the game's content creation tools to make a level that matched a given theme and compete to have their levels featured prominently within the game. Due to some glitches specific to non-American versions of the game I couldn't actually enter these contests for a while, but still toyed around with the tools to get familiar with them.
Eventually I found myself with a fixed game and some spare time so I decided to make a serious entry into one of these contests. The theme was 'Captain America: Civil War' so I set out to make a level based on the movie. Mid-way though my work, production on the Infinity franchise was outright cancelled, along with all community contests. Oof. This was a big blow because I absolutely loved this series, but I decided to just stick to the deadline anyway because I'd already done so much work.
My initial concept was to make a sort of 'Story So Far' that introduced you to all of the 'Team Cap' heroes in Civil War through themed minigames. I started making a shooting gallery for Hawkeye, but it was quickly evident that a whole compilation of games would be too much work for the small timeframe of these contests (about a month). I decided I would need to focus on one game to ensure it was of the highest quality, and so I picked the idea that would be most impressive as a stand-alone product.
My minigame would be based on a scene from the movie that was released online (the film wasn't in cinemas yet) where Captain America's Avengers team attempts to stop Crossbones and his mercenaries from releasing a bioweapon in Lagos. There's a small fight outside of a building where the team combine their powers to take out some mercenaries, and then Scarlet Witch uses her telekinesis to propel Cap up to a high floor of the building. You can watch this clip below.
This minigame was going to be a Scarlet Witch themed one, as her telekinesis was a key part of the scene and I thought I could have some fun mechanics based on throwing things around. Scarlet Witch isn't actually playable in the game but you can pick up and throw characters and enemies, so you could still re-enact the scene that way.
I tried to identify some key actions and goals that would need to be featured in this minigame. I used the movie clip as inspiration and aimed to stay as faithful to it as possible.
Since this was a Scarlet Witch themed game, I wanted to base the objectives of the game around things she does in the clip. The team are fighting mercenaries, and Scarlet Witch assists by throwing one enemy up to Falcon for him to take out. She also uses her powers to throw Cap up a few floors in the building to take out enemies inside.
So I got the idea to have a sort of Horde Mode style game where players are under attack by enemies, but where bonus objectives popped up every now and then which could earn you more points. I thought it'd be fun to have to throw enemies up to Sam like in the clip, or throw a Captain America NPC into buildings to stop more enemies from spawning.
To add a bit more variety I had the idea to have civilians spawn around the map who need to be evacuated by throwing them into an escape vehicle.
I drafted out a map that kept things tightly-packed while providing enough room for fights. The centre of the map would have the 'base' that would need protecting from enemies, and it would be surrounded by large trucks to replicate the setting from the clip. To the north and south would be two tall buildings that Falcon could swoop down from. The northern one would allow the player to throw enemies straight up whereas the southern one would require players to climb a smaller segment first and then throw the enemy from there.
On the east and west would be other buildings which you would need to throw Captain America into when prompted. The eastern building was obscured by some kind of tall structure, making players walk around it, while the other would have a ditch in front of it which would make it harder to get a high-enough throw (as well as provide some varied terrain for fights).
Enemies would spawn from two corners of the map, while the other two corners would be where the evacuation vehicles would appear for you to throw civilians into.
I was happy with these objectives and layout and so I set out to implement it within the Infinity editor.
This ended up being a complicated and involved process despite being a small project in a tight time-frame. There's lots of intricacies, challenges and successes I could ramble on about but I'll try to keep this condensed to just a few of the main things I encountered.
I quickly set about recreating my map layout in the game. The thing that stood out right away was the scale and spacing was way off. I tried using partial pieces of buildings to make them easier to throw things into, but it meant the buildings were as tall as the decorative walls that were placed around the levels and you were throwing characters to heights they could easily just jump to. It all looked a bit odd and silly.
I made the buildings full-sized which made the act of throwing more interesting, but with varying success. Some of the throwing challenges needed little platforming segments added in to assist with getting players to the heights they needed. Some of these work well but others are a bit too finicky with Infinity's controls, and the tools available for marking spaces as objectives are a bit limited so it can be hard to tell where you're supposed to throw characters.
Things were feeling a bit more cramped now as well, so I stretched things out a bit more to make fights against approaching enemies more exciting and to require players move a bit more to get around to each of the buildings as prompted. The extra space also allowed me to make more interesting environments to put endangered civilians in, like ruined buildings and parks.
While Infinity doesn't have a cover system or anything like that, dynamic objects and varied terrain can make fights more interesting. Like the trucks in the centre of the level - lots of fights occur there and result in the trucks getting knocked and flung around, making your blows feel like they have more impact. Obstacles and terrain force you to move around and engage from different positions, not letting you get complacent in just mashing the attack button over and over. Infinity's combat is surprisingly deep when it gets the chance to shine.
Unfortunately, a lot of this design was for naught because when enemies are told they need to destroy something they will rush it with single-minded abandon, meaning the fighting is pretty much centralised to, well, the central area of the map.
Infinity uses a system called 'Logic' to control events in levels. There's nodes like scoreboards and timers that can be connected to each other and to physical objects in order to trigger behaviours when set criteria is met. I'd toyed around with this system quite a bit but this was far more complex an undertaking than I'd attempted before. It's a lot like how you can goof around with programming experiments and make some cool mechanics or prototypes, but making a full game out of them is much more work than you'd first think.
For instance, it's easy to spawn enemies and make them attack me, but I wasn't just doing that; I was spawning them at random intervals only if there weren't already too many of them, and making them charge on a specific object that will end the game if it is destroyed, causing an ending sequence to play and the whole game to reset. [deep breath]
While I tried to apply good programming and design principles to this system to keep things organised and 'readable' (like grouping all nodes related to one functionality together, and placing them underneath the relevant section of the level), the system can make it really hard to work out which pieces are connected to what or make big corrections if you find an issue or a way to streamline things.
Logic was responsible for just about everything in this minigame, from spawning enemies to marking objectives on the minimap to making sure that the vehicles were always in the centre of the map when the game starts. So it's very easy to see how it could get out of control quickly.
I had to a lot of tweaking to the game when testing it. One of the main areas was in the enemy spawns; they had to spawn close enough to the centre and regular enough to keep enemies on their toes, while still giving players breathing room. I tweaked the scores that each task in the game rewarded you with a lot as well, ensuring that the harder ones were worth the effort. I tweaked the health of the target object and damage levels of the enemies enough so that a round for a solo player would clock in at around 15 minutes, but playing with friends could make it last pretty much as long as they wanted. If I had the time it would have been good to increase the difficulty over time with stronger or more frequent enemy spawns but given that the logic was already so complicated and most people play the game solo or in pairs I decided against trying to get that working this time around.
Bugs and Jank
It's no secret that as fun as Infinity is it can be really buggy and janky in a lot of ways. I ran into this a lot when making this level, from scoreboards not recording scores to Captain America not triggering his event when thrown if he's the slightest bit off-target. I tried to work around any issues I encountered to the best of my ability but there were some points where I had to just say "Look, that's just how the game is".
Something that really bummed me out was that I couldn't use Syndrome's Zero Point Energy device in this minigame. This is an item that lets you pick up characters from a distance and fling them away like Syndrome does with Mr. Incredible in The Incredibles. It was a perfect stand-in for Scarlet Witch's telekinesis but it turns out you can't aim these energised throws like you can normally, meaning you didn't have the precision needed to trigger the optional objectives. So plain old throwing would have to do.
By the end of this project I had a better understanding of the limitations of Infinity and would have been able to design towards them in future ones (if the servers weren't being turned off, killing custom text entry and online level sharing permanently).
Strengths and Issues
The level is very well themed, both in appearance and recreating parts of the movie through gameplay
The minigame is easily replayable due to its manageable length and different paths through the level depending on your abilities
It's a fun twist on the Horde Mode archetype by giving you varied objectives to do to supplement the fighting. In multiplayer there's a strong element of teamwork as you need to work together to clear the objectives while fighting off enemies
Some tasks require a level of finesse that Infinity's engine doesn't always enable e.g. throwing Cap into the building can fail because you were off by a millimetre and the game can't account for it
The players can get overloaded with objectives. Not a big deal when playing in multiplayer because you can split up, but solo players can get swamped and forget what tasks they need to do
Parts of the logic are a bit buggy. This was inevitable with so many moving parts in play, but even now when I play it I see things like mission failure messages triggering when the game is over
I'm glad I stuck this out and came as close to my original vision as possible, it's just a shame that it wasn't as well-suited to Infinity as I thought. If I were to do this again I think instead of trying to make a mini city I'd go for something more arcade-y. Maybe a tight arena that enemies charge into, with some small 'buildings' made of blocks and partial components on the sides that you could easily throw enemies onto when prompted. They might not have looked as nice as full buildings but would probably work better with the mechanics. Then maybe cut down on the objectives and make it more of a survival brawler. It'd be a lot less impressive, but much better suited to Infinity's strengths and limitations.