Engine Sneak Peek
Today, we’d like to give a little sneak peek at some of the features of the engine that will support all our upcoming games including Mina the Hollower. Note: It’s still a major work in progress! And we can’t show everything…that might give away all our secret plans...
When we started out making Shovel Knight, we didn’t have an engine at all! In order to get that retro feel and look we desired, on every platform, we had to build one from scratch. Because we had to build the engine while making the game simultaneously…we took some...let’s call them shortcuts! Next, when we worked on Plague of Shadows, Specter of Torment, King of Cards, and Showdown, instead of fleshing out our engine, we did as little as needed to the existing engine to support our design needs. Instead, we started building the engine we wanted from the ground up! We’ve named it Propeller!
Today, we’d like to give a little sneak peek at some of the features of the engine that will support all our upcoming games including Mina the Hollower. Note…it’s still a major work in progress! And we can’t show everything…that might give away all our secret plans.
To support all our crazy game ideas, we wanted to make sure we had an engine that could support our needs in 2D and 3D. We’ll be showing off mostly our 3D toolset here (with a little bonus 2D), as we’ve shown off similarish 2D workflow tools in the past.
Our level editor supports all kinds of collision manipulation. Here you can see simple mesh manipulation with CSG operations. We wanted to make sure everything within our games could be built inside our own tool.
It’s a fairly easy process for any game programmer to create an object that can be easily placed in a scene, and be given custom gizmos for level designers to manipulate or visualize that object. Above, you can see a wave simulation test that was made by the programming team, that becomes easy to edit in the level tool. Those parameters come from code that’s simply marked up:
Here is a test of dynamically creating 3D art based on placement in the tool and gameplay rules about how it responds to collision.
Typically, all of our cutscenes have been largely hand coded in the past. But now we have nice handy animation tools where you can directly control the scene, tweak gameplay parameters, setup camera, shot locations, etc. In the bottom right, you can see the camera preview for what has been animated during the cutscene
Model / Animation Tool
We have a tool dedicated to importing models and animations. Here, you can see a 3d mesh with a spin animation. The textures on the model which we call materials can be given specific effects through code or shaders, and the data for them can be driven through the editor.
We can also use all the features of the level tool. Here, we take a collision shape and mark it as an attack, then tell it to follow a joint in the model. So very quickly we can create hitboxes for the game.
Particle effects are a critical tool for conveying gameplay. With Shovel Knight, we generated these through code, but now we’ve got this nice tool for composing and visualizing their effects. Like the model tool, we can animate them or add gameplay data like hitboxes.
We do way more with palettes than your typical game. In the past, all our palette effects and animations were hard coded by programmers.
We now can easily display how a global palette might affect a sprite (think: the scene transitioning to sepia), view an animation’s local palette, or directly control and animate what might be happening during an effect. Above, you can see the palette effect that occurs when any enemy takes damage in Mina.
We’ve greatly increased the number of in game debugging tools we have. Below you can see that each game object can expose debug functionality that can be viewed/manipulated.
All tooled up
That’s enough for today. A big shout out to Omar and everyone who contributes to Dear ImGui - which is powering the UI for the tools. Propeller would not be possible without it.
What’d you think? There’s a lot more we can deep dive into here! In addition..there’s plenty we didn’t even give a preview for, like how sound, text, or more of the 2D pipeline gets into the game. Or all the cool game-side tools that have been developed. Let us know what you’d like to see next!
If you like engines and tools, we’re hiring! Make sure to apply!