Open source presents a great opportunity for learning. Matteo Grasso, software engineer and founder of DIGIBL Studio in Italy, is leading his company on the path to creating tools and resources to assist students, teachers, employees, and developers when it comes to new learning techniques. In this interview, Matteo discusses how he came to Open 3D Engine (O3DE), the projects he is working on, and the ways newcomers can benefit from the tools.
Tell us a little bit about yourself.
I am a software developer with a strong passion for innovative technologies and video games. I’m interested in all those “unconventional” ways to use game mechanics—such as serious gaming, gamification, etc.—rather than for entertainment purposes only.
After earning a computer engineering degree, I worked as an IT consultant for nearly a decade, experiencing several software technologies and infrastructures. Recently, I had the opportunity to take my career to the next level, combining my earlier experience with my passion for video games to start my own game studio.
The goal is to help people along their learning process, providing innovative solutions based on video games to accelerate the achievement of new skills.
How did you hear about Open 3D Engine?
I discovered O3DE when I found the announcement of the project while browsing the technology news back in July 2021. It piqued my interest because there were big names in the announcement that were supporting and contributing to the project. Since I use Linux and other open source software daily, seeing that the Linux Foundation has a key part in creating a full open source solution for game development pushes me to say, “OK, let’s try and see what O3DE can offer.”
Tell us a little bit about your passion behind helping people learn.
Some years ago, I discovered that the current learning process in schools is behind the technology that we are using in daily life. There is a huge need to improve learning, and fortunately, some innovations are already appearing. But the required effort to close the gap is still big, and I think that video games can provide an option to help.
What is your company doing to reach its goal?
My company is fairly new and is still committed to releasing its first product.
In general, the idea is to take subjects that are difficult to grasp via books and convert them into some media that is of greater interest to students, such as video games. Through playing, the students can learn something new and enforce what they’ve already learned in books. The same approach can be translated to the corporate world as well, where training courses can be less than engaging for employees; interactive solutions can help them to acquire new skills more easily.
Students who want to learn game development present a special case, as this is our area of expertise. For them—and any other developers who are interested—we also offer resources to bootstrap their learning process, sharing our knowledge with guides, tools and other learning content.
How are you using the Open 3D Engine in your projects?
At the moment, O3DE is used to create learning content for all newcomers who want to start making video games. Truthfully, there are many full-featured game engines in the market that you can just pick up and use to create a great game, but it is important to start learning the basics if you want to build a solid career path in the industry.
O3DE is a very interesting prospect as a training foundation since it is a full open source project. Everyone can access it, dive into the source code, and look at how things work under the hood. My goal is to create resources that help people understand how a video game is developed by providing immediate visual feedback without requiring too much coding. This is an ideal way to introduce most of the game development concepts to beginner programmers, or even to those who have never coded before. At the same time, these resources can become a useful prototyping tool for all developers, or for small teams that are working on their next video game and need to test the feasibility of different game mechanics in their early development stages.
But it isn’t just a matter of providing the source code to look at. Being an open source project means that everyone can get involved. Thus, the students have a chance to test their skills in real-world scenarios: they can try to implement newly requested features, submit their code to an upstream public repository, and receive feedback from more experienced programmers who are already working in the game industry. This is a great plus during anyone’s learning journey, since it helps to build additional soft skills that will be useful when you start working in a company.
For the future, as I continue to experiment with O3DE and get more experience with its features, we will for sure use this game engine to make other products too. I look forward to all the upcoming features that O3DE will offer.
Tell us a little more about your experiments with O3DE.
The first experiment that I did was to run O3DE inside containers. This was the main requirement for me to evaluate whether to adopt O3DE or not, since our internal working pipeline is heavily based on containerization technology. It was fast to run the O3DE Editor with our internal tool, but it required some coding work to automate the entire process. So, I decided to create a standalone tool (O3Tanks), and released it freely to make O3DE containers available for everyone.
Next, I participated in the first “O3DE Jam” event in November 2021. It was my first attempt in creating a game using O3DE, and it was a really pleasant experience. It took me only a few days to develop a working prototype from scratch. The game was trivial: an endless runner where the player chases an AI-controlled target along an infinite maze that is generated procedurally.
Then, I started to refactor this prototype, splitting its features into individual external modules (called Gems in O3DE) that can easily be reused with any other project. I released two of them in February 2022, allowing developers to work with time in a human-friendly format (a “Date & Time” Gem) and manage the daylight cycle in the game (a “Day-Night Cycle” Gem).
Currently, I’m working on other two external Gems—”Locomotion” and “Viewpoint” Gems—that help set up a full character controller (animations, camera and input) with minimal coding effort. Other Gems are also planned to simplify other aspects of game development, since they are the foundation of the learning content that my company is going to provide.
Can you talk a little bit more about O3Tanks?
I started to develop O3Tanks in July 2021 when O3DE was still in Developer Preview. Initially, it was intended as a simple integration with our internal containerized toolchain, but it quickly evolved into a standalone tool for public release.
Containerization is a great technology because it allows you to bundle software inside an isolated environment, reducing conflicts with other processes and/or system dependencies. The same environment can be reused across different machines without spending time having to reconfigure everything. It is usually used for cloud environments, but it can provide benefits for development environments too—especially if you want to be sure that your teammates can quickly work on an environment that is similar to yours. However, it isn’t always trivial to set up a container from scratch.
O3Tanks is a tool that aims to do that automatically, aiding developers by doing the internal heavy lifting of generating and managing O3DE container settings. It is provided as a command-line interface tool, so that it can be easily integrated into an automated CI/CD pipeline. I’m also working to make it compatible with some IDEs, for those who prefer using a graphical interface.
What have you liked most about Open 3D Engine?
I think that the most important part, and the one that I like most, is the modularity, which makes it possible to activate and deactivate only the parts that I need. This modularity is the key that can be the biggest selling point. There are other engines that are modular, but O3DE’s modularity can provide developers with many options to alter how the Engine works and adapt it to their workflow.
Can you describe your experience with the O3DE community?
I discovered that, when I have a problem and I ask the community for help, I receive very quick, insightful answers from them. This was one of the reasons I chose to continue my learning journey inside O3DE. I found that, when you have a problem, the community is still small enough to address all the questions that arise, which makes it easy to solve all the issues you may have, even if there aren’t a lot of resources online elsewhere. I think that these online resources will grow in the future, but right now, the interaction with the community is very efficient. I hope to better understand O3DE by then because I want to contribute and help the community more.
Do you have any recommendations for other developers looking to use the Open 3D Engine?
I think the best starting point is to read the documentation. The tutorials are also great in helping you to understand all the possibilities that the Engine offers. Then, just try to do something, even if it goes nowhere, even if the Engine crashes, and if that happens, try to look at the code. The great selling point—the biggest upside—is that the source code is completely free and open, so you can look at how it works and try to understand why you’re having a particular problem. If you need help fixing the problem, the community is there to help you. The community is quick to answer questions, so it’s great for someone who wants to learn a new skill.
Matteo Grasso
Founder
DIGIBL Studio – Digital Basil Leaves
GitHub: https://github.com/loherangrin
Twitter: https://twitter.com/loherangrin