Doom's SnapMap feature is more versatile than a typical custom map creator, but it's not quite on the level of full-blown mod tools. So what happens when you try to recreate one of the more complicated game genres known to man in it? Kotaku reader Patrick Roeder just released a beta of his Doom MOBA (AKA DOOMBA, which could also be a tiny mechanical cacodemon that cleans your living room carpet), Armies of Hell: The Core. It's got five classes, cores to defend, shops, creeps, a jungle and ultimate abilities. You can read up on all the features here, or you can see it all in action in this video:
Roeder's got a bit of a leg up on other SnapMap users, given that he's a game developer. Currently he's lead instructor of the Simulations and Game Development program at Blue Ridge Community College near Hendersonville, NC. Before that, though, he was art director at the now seemingly defunct Digital Roar Studios. He's no amateur, is what I'm saying.
I wanted to understand just how far you can push SnapMap before it starts showing its seams, so I lobbed a few questions at Roeder about his devilishly elaborate passion project. Turns out, he encountered quite a few difficulties along the way, likely due to the complexity of his game. He's currently contending with one bug so severe that he's probably going to have to rebuild the whole thing.
Kotaku: How hard was this to make? What were the most difficult parts of building this in SnapMap?
Roeder: It was fairly OK. It helped that I have a background in games programming. This was the first time I've done any visual node based programming, though. I should also note I did this all with a controller on the PS4.
The hardest part was learning what all the functions did with only the examples provided by id. Since I was working so early after release, there wasn't the huge pool of resources I usually have when coding projects in something like Unity. This meant I spent just as much time testing the limits of the scripting as I was prototyping/implementing.
The second hardest part was debugging. I came across a game crashing bug when someone captures the Baron Boss then proceeds to damage the core. It's not a logic error on my end, but rather some kind of seg fault or memory leak. When it happens, the game literally freezes for the guest and they see some weird black bar artefacting on the screen. But right now, there is no way to diagnose those kind of errors. I assume id didn't anticipate my level of insanity in the scripting or it was a feature left on the cutting room floor.
SnapMap also has a habit of crashing Doom completely when trying to save or sometimes when trying to make a new logic connection. I'm also guessing I was pushing the limits of what the editor could do. This happened about 15 times, and I'm worried that it might have had some unseen damage to my map. Which might explain the Baron bug. But again, I have no way of knowing.
Kotaku: How are people responding to it? Have you gotten many players? Have they come up with any strategies or exploits you weren't expecting?
Roeder: I haven't really been promoting the map since I've been testing and refining still. The friends that have been helping me test seem to be committed to the process because I think they believe in the fun factor. The beta that I have published will really tell the story. I've got a QA survey linked to my site so I can get some metrics (one of many features I wish SnapMap had included).
Kotaku: What's next for your map? How are you going to get around those big bugs?
Roeder: I've tried everything I am able to outside of rebuilding the whole thing to fix the Baron Bug. So right now, his room is locked off with a beta message.
So the only thing I can do right now is rebuild the whole map, logic and all. But I'm not that upset about it. I've learned a lot in the process and early functions I made will be remade with more efficiency. In the end, the mod will be better for it.
I want to speak to the importance of spending time with your creations and iterating constantly on your work. If something isn't working quite right, don't settle. Get in there and make it the best you can. You will learn so much and feel very accomplished afterwards. That's just the teacher in me, I guess.
As for the rebuild, I plan on adding a larger Base Shop, fixing the Baron bug, making the map a tiny bit smaller so I can free up more resources and adding a new rocket launcher based class, The Salvo Lord. I've been wanting to add that sixth class for a week now. This will be a perfect opportunity to do it.
Kotaku: Are there any other SnapMap ideas you're planning to try?
Roeder: Armies of Hell: The Core is just the start. During the rebuild, I plan to create it with multiple game variations in mind.
I have an idea for my next game type. It's called "March", and it involves both teams escorting a chunky Cyber Mancubus into the other team's base to score. I plan on adding some Capture the Flag mechanics into that game type as well since The Core had capture points.
I wouldn't mind having various maps and play styles in the future. Kinda like Heroes of the Storm (my go-to MOBA for the past year).
Kotaku: As a game developer, do you wish Doom also had more fleshed-out mod tools, or do you think SnapMap strikes the right balance between modding and map making tools?
Roeder: I think SnapMap suffers from unmanaged expectations. The restrictions of only being able to use room prefabs was a bummer for sure, but I'm 100 per cent sure it wasn't because "dem damn game devs are lazy". The complex lighting, advanced materials/textures and the post process filters you can put on rooms would have been a nightmare to get working with totally custom levels. I couldn't imagine being able to package a "bake lights" tool to the common gamer.
What SnapMap IS is an amazing environment for scripting events and features. I'm 100 per cent sure I could teach the concepts of programming to my students using SnapMap alone (but I shy away from teaching programming using visual node based editors).
If you look at SnapMap in this light, then I think it strikes an absolutely great balance. It is kinda geared more towards designers/programmers who just want to get in and start scripting their game type without having to worry about assembling. Every. Single. Part of the environment.
And in fact, the room prefabs can breed some creativity in the face of the limitations.
I know a lot of PC players are clamouring for a "true" mod tool because of the history of Doom. It irks me a little that they are blaming consoles for the limitations. Of course they have a point, but id has done something truly amazing by making a cross-platform mod tool. They recognise the potential in players of all platforms, and in the end, it will only lead to better mods across the board.
That being said, I still sympathise with the critics. A solution would be to make a separate tool outside of SnapMap that allows modders to create their own room prefabs and then bring them into SnapMap for use. This would allow for a fresh environment for id to make tools just for environment assembly and a way to create a series of checks to make sure the prefab is stable and game ready.
Here are some other tools I wish SnapMap had:
- Being able to assign custom variables to players/demons so you can access them more easily.
- A more robust debugging toolset (or one at all).
- The ability to collapse a logic chain into your own custom function.
- A better id-sponsored glossary (the current one is just the same tool tips found in SnapMap).
- A way to publish maps for testing without being able to vote on them.
- Encourage testers with SnapMap points.
- The ability to lock down a logic chain so you can't accidentally edit it.
- A better explanation of what the limits of network, objects and memory do.
- Being able to access player score as a variable (had to build my own scoring system because of this).
- A feedback metrics collector.
Overall, I never expected to fall this deep down the rabbit hole. I started just by trying out a few of the snap map puzzles and realised just how advanced the tool is. What started out as an experiment of seeing if I could get Minions to spawn and fight their way into an enemy base evolved into a whirlwind of late nights and the Dev Obsession.