Godot Engine Tools

Project Duration:

20 weeks

Team Size:

1

My Role:

Engine Programmer
Tools Programmer

Tags:

Godot Engine

C++

Student Project

Client Project

Description

I’ve always been a fan of Free and Open Source Software (FOSS). However, during my university studies I did not have as much time to devote to interesting FOSS projects as I’d like to. I was instantly intrigued when I came across Godot Engine and I started contributing in my spare time. After meeting with a group of regular contributors and core developers on one of the Godot’s events, an idea crossed my mind: What if I picked up Godot tools development as my school project? I pitched this idea to our teaching staff and they approved of it!

During initial meetings with the Godot Tech Lead, Juan Linietsky, and Project Coordinator, Rémi Verschelde, we pinned down the engine’s debugging toolset as a good candidate for further improvements. After more research and planning further down the road, the goal of the project was set: Develop three new debugging tools in the Godot Engine editor.

Main Contributions

Expression Evaluator

Expression Evaluator is one of the most basic code debugging tools present in majority of IDEs in one form or another. It can be used to verify our assumption about the current state of the program while debugging.

I implemented this as a first tool to extend the current debuging toolset because it was a simple enough task to get me acquainted with the codebase.

Together with the Script Watches, this feature used this GitHub Pull Request.

Script Watches

Script Watches are an extension of the  Expression
Evaluator tool. They are used in case when the value of certain
expression doesn’t need to be verified at one point in time but needs to
be observed over the course of the program execution.

The tool keeps a list of expressions which are evaluated
periodically while the game is running. In addition to this, boolean
watches can be marked as tracking watch which causes the execution to break once the watch evaluates to False.

Together with the Script Watches, this feature used this GitHub Pull Request.

Game Camera Override

Game Camera Override is implementation of a debug camera. Enabling the tool makes the active editor viewport camera override the in-game camera, allowing the user to roam freely around the running game world using the familiar editor camera controls.

This feature was implemented because Godot is currently lacking Play in Editor mode present in other popular engines and it was a long-requested feature.

You can view the development process of this feature in this Github Pull Request.

 

Testimonial

juan-linietsky

... In overall my impression of Erik’s work is that at all times he worked efficiently, with a professional attitude. His ability for understanding the Godot Engine codebase (which is over a million lines of code) and do modifications and additions to it is definitely well above average...

Juan Linietsky

-

Godot Engine Tech Lead