Welcome to another developer interview following the introduction of the Godot Showcase page! This week, we are interviewing John Watson about the game Gravity Ace.
Introduce yourself in a few sentences.
Hi, I’m John, I’m a (mostly) solo game developer making games that I want to play. I’ve been making games as a hobby since 2013, mostly by participating in weekend or month-long game jams. My first game was for the One Game A Month challenge. Now I’m working on my first commercial project. My formal training is in programming but I’ve always been interested in art and music as well. Game development is fantastic because it allows me to bring all of that together into a single project.
Gravity Ace is a 2D multi-directional gravity shooter (cave-flyer). It’s a love letter to Thrust and Gravitar and all of the amazing games they inspired. Remember Thrust? Most people don’t but I loved that game and I really wanted to play it again. Gravity Ace is inspired by Thrust but adds a lot of modern touches and generally brings the art, sound, and gameplay up to modern standards. It’s currently in Early Access with an expected release date in 2021. Linux and Windows. You can wishlist or buy it on Steam or itch.io.
How did you discover Godot? When did you start using it? Do you have prior experience with other game engines? Why did you choose Godot for your project?
I’ve made games in a bunch of different engines and frameworks and languages over the years. Haxe, Lua, JavaScript, Java. Those experiences were great but they all fell a bit short in terms of ease of use or features or productivity. I think I discovered Godot not long after the project was open sourced. At the time I was looking for an engine with a built-in visual editor because I was tired of moving things around by typing coordinates in code. I needed something to speed up my workflow and make it less cumbersome to quickly prototype ideas.
Of course I tried Unreal and Unity but as a full-time Linux user I was unsatisfied with their lack of official support. And those engines felt just so… massive. I chose Godot for a lot of reasons. It’s small, fast, and has first-class support for Linux. It has all the features I need for the games I want to make. It’s open source with great leadership and community. And I think it has a bright future.
Which parts of the game development process did you enjoy the most while working on your project?
One of the reasons I like making games is because it allows me to combine several of my interests into one project. I enjoy programming. But I also enjoy making art and music. So I tend to bounce around between those things. That’s one of the benefits of working on a game solo. I get to do everything. (That’s also one of the drawbacks of working on a game solo.) So if I get tired of programming I can switch to animation or sound or music. It keeps things interesting.
Which parts of the game development process did you find the most difficult to apply in your project?
I mean… My mind went immediately to the cliché answers to this question but really, when I think about it deeply, I can’t think of anything about game development that is easy. It’s all difficult and it’s hard to pick one thing. Yesterday I was working on a bug that is caused by some combination of timers and bad math that I still haven’t solved yet. I’ve thrown away more art than is in the actual game.
Game development is hard, right? It’s not the engine or the programming or anything like that… it’s the process. Designing things, thinking deeply about how things should work, making interesting artwork, it’s all hard. But it’s the kind of struggle that’s fun to do if you have a certain kind of personality. Like, I guess there are people who climb mountains? For fun? That’s not easy and it’s certainly not me but I get it. Would I make games if it was easy? Probably. Maybe. But it’s hard to imagine.
How has Godot helped you advance on your project? Which aspects of Godot do you consider to be its strength?
I think without Godot I’d be much farther behind where I am now. Godot just works in a way that meshes with how I like to think and work. I’d be much less productive for sure.
The 2D workflow is pretty great. Just drop some images in and drag them onto the canvas, attach a script, write a few lines of GDScript and you’ve got the beginning of a game. Modifying assets is seamless. And the node tree is super powerful. Reusing scenes in other scenes allows me to do a lot of stuff quickly and visually that would have been much more cumbersome in other frameworks.
This is a huge selling point for me. Being able to build for multiple platforms from a single code base and all from a single machine is amazing. The fact that all of my builds finish in under a minute is icing on the cake.
Which challenges have you encountered when using Godot?
Nothing out of the ordinary really. Every engine I’ve ever used has a few warts and bugs that you have to work around.
Which features would you like to see in future versions of Godot?
Nice thing about an open source project is that you can see all of the open issues and the developers are very open about what they are working on. So I know better 3D support is coming, which I’m very excited about. I’m pretty happy with the 2D support as-is. New features are great but I’d almost like to see the devs focus on stability, performance, and improving the features that we already have rather than continue to work on new stuff. I’d love to be able to edit shaders in the main code editor instead of a dock. I’d also like to see better and more stable support for 2D lights.
Would you use Godot for a future project?
Yes, absolutely. In fact, I already am.
Gravity Ace is available on Steam and Itch.io for Windows and Linux. You can also follow its development on Twitter.