I think Good Phantom is both the best and worst map I've worked on. It's the best in terms of presentation, theming, level design, and datapack engineering, but it was the worst in the sense that it failed to give players the experience they wanted. While I'm still very proud of the work our team has done with this project (and this is my favorite of all the maps worked on), I think it's worth investigating how we got here.
A few years ago, I played an old Sega Saturn game called NiGHTs Into Dreams. I knew it through reputation, and I found it for dirt cheap on Steam one day and decided to try it. I enjoyed my time with it, and I was fascinated by how weird and wonderful it was. It's a vibrant and creative game with a unique and addicting scoring system. It's also a game that's very difficult for a modern games enthusiast to look back on.
NiGHTs' gameplay is pretty overwhelming to look at, and a new player probably won't even understand what they're doing. It's a 2D side-scrolling flying game where the playing field snakes around a 3D environment. There's colorful collectables and enemies all over the place, and there's a lot of HUD elements on screen that can be hard to understand the purpose of. It is also hard for players to intuit that you need to avoid re-entering the gazebo thing until the timer is about to run out if you want to maximize your score.
After beating the game and A-ranking every level, I had an interesting thought: could this game be adapted to work in 3D and be made more intuitive to play? Could I make this into a Minecraft map using Sprint Racer's mechanics as a starting point? Maybe. And then I didn't do anything with the idea for a few years. And then, like most of my projects, a map jam got me to commit to actually making it.
Our group Team Scripted had previously competed in several short map jams hosted by Vertex (now Yeggs), Yeggs, StickyPiston, and Fingermaps. We had solid placements in each jam we entered, and we had even taken 1st place at the Fingermaps map jam. Armed with our strong experience, we decided to take on another Yeggs Map Jam when we saw the announcement in early 2023.
Usually map jams have pretty tight restrictions on things like team size (typically 1-3 people), time limit (typically 2-3 days), and use of pre-made assets (typically NOT allowed). Jams also traditionally have one or several provided themes that each submitted map should adhere to. The 2023 spring Yeggs Map Jam came with a surprise-- all of these restrictions were tossed! It was announced that there was no theme, no restriction on team size, and pre-made assets were allowed. At this point I had a realization: "Hey! I can finally make that NiGHTs-like game I've always wanted to make!"
I took full advantage of the unlimited team size. I enlisted the help of:
Frenderman as an artist (like always!)
AriaZeroQueen as a musician
MichaelMana as a builder (he had recently helped make some very impressive tracks for Sprint Racer!)
SwishierTuna as a builder (a friend of MichaelMana who was called in when we started to get overwhelmed with building)
MCFilms as a helper and organizer (co-founder of Team Scripted!)
Team Scripted was the biggest team of the jam!
Getting my wacky idea for my map across to the entire team was going to be a challenge. So I decided to make a goofy little presentation to spitball my ideas.
The presentation seemed to work well and the team had a good grasp on what we were going for. It also helped that the level design was similar to Sprint Racer, which everyone was already familiar with.
Speaking of level design, we took a more pre-planned approach than with previous projects. With more builders on the team, it was important to have a plan for us to follow. Frenderman started us out by providing some concept art showing how he wanted each dream to look and play. I then sketched out some level layouts for the 3 dream levels we would be making.
Taking advantage of the pre-made asset rule, I made some basic block-outs of the levels inside of Minecraft. Once we had the block-outs ready, our builders went absolutely NUTS! I mean, look at this before-and-after of Moonlit Mountains!
Also: shoutout to Evtema3 for combining the shaders we needed for skyboxes and emissive textures!
Even with the head start we got from being able to use pre-made assets, the project turned out to be dangerously large in scope for a jam map. Our builders put in serious work, and they were able to get all 3 dreams and the lobby done in time for submission. Unfortunately, I kind of let the team down by not finishing the code and object placements for all the levels in time. So in the end, we only had 2 completed dreams. The 3rd dream "Shattered City" was still playable, but only 1/3 of the level was ready to go. After players would complete the first portal, it simply kicked the player out of the level instead of moving onto sub-stages 2 and 3.
Even with the last level being incomplete, we managed to take 1st place in the jam. I was very proud of our team, and I was also proud of myself for managing to steer a large team to victory with an ambitious project.
Oddly, I think this experience gave me the confidence to start taking leadership roles in some of my senior-level group projects in college. I even ended up taking a management role in running my sales territory for my job. I guess something material finally came out of me making free Java Minecraft maps? 🤣
After this initial success, we decided to expand on the map and do a full v1.0 release of the map with 2 additional dreams and a new multiplayer mode. Unfortunately, v1.0 took significantly longer to develop than the jam release, and some cracks in my design started to appear as we brought in play-testers.
SwishierTuna, who had stepped in to help finish the building work during the map jam, started taking a more active role in the project in the run-up to v1.0. One very helpful thing he did was to bring in playtesters to see what the experience would be like for a typical player. In doing this, we very quickly realized that Good Phantom was hard-- Really hard. Players were stressed out and they were unable to complete the first level without running out the time limit.
In response to these playtests, we made some concessions to make things easier for new players. I added an optional "Assist Mode" (inspired by Celeste), and SwishierTuna designed and built a tutorial area to introduce the enemies and game mechanics. I also relaxed the time limit on many levels and added more time bonuses to help players progress further into the levels. These changes definitely helped, but it didn't address the core issue that players were overwhelmed and stressed out by the time limit in the levels. At this point, I probably should've ditched the time-based Score Attack mode and replaced it with something more approachable, but I stubbornly stuck to our initial gameplay loop.
It was becoming clear that Good Phantom didn't have the same broad appeal as Sprint Racer despite having similar mechanics and level design, so to try and win back fans of Sprint Racer, I began working on a multiplayer race mode. It was initially called "Versus", but the name was later changed to "Portal Race". Because the levels were already linear closed loops with fairly wide lanes, it was easy to re-use our existing levels for Portal Race mode. We did end up making some changes to the levels for racing, though. We smoothed out tricky platforming sections that would interrupt the flow of the game or tear players apart from each other. We also added some alternate routes and lanes to cut down on situations where all players would need to funnel through a single narrow passageway.
Adding this new mode sort of felt like an admission of defeat. Score Attack mode wasn't going to click with most players, so I made a simpler mode borrowing from previously successful projects and popular juggernauts like Mario Kart. It was still (probably) the right call, though. It also gave me the chance to challenge myself in a fun way by programming bots for Portal Race, and I put in some real effort to make them more dynamic and performance-efficient than the bots in Sprint Racer.
At the end of the day, we're hobbyists making free games, and we have the freedom to make niche stuff if we really want to. Maybe I panicked a little too much about the appeal of Score Attack mode. If I was making a game for a publisher or a games company, however, this probably would've put my career in jeopardy.
Remove time pressure. Re-design Score Attack mode in a way where players feel empowered to play at their own pace. This would probably mean the levels would need to be one-shot affairs instead of looping back on themselves.
Design separate levels for Score Attack and Portal Race mode. It's kind of cool that the levels work in both gamemodes with a few minor alterations, but it'd be better to balance Portal Race levels entirely around items and racing while allowing Score Attack levels to lean into platforming and enemy encounters.
Don't rely on Minecraft's hotbar for character abilities (boost, bite, projectile). Instead, it would've been better to bind every ability to a key so players don't have to fumble around looking for the ability they need while they're in a tense situation.
Some players criticized Good Phantom for reasons already explained, but many of these players also said they still admired how unique the game is. And they're sort of right-- there is (currently) nothing out there quite like Good Phantom. The map has a special value solely in how unique and creative it is. And you know what? We take those.