I am always excited when I hear of another game engine that allows for a lot of customization. Something that allows the user to make either 2D games, 3D games, and even a nice combination of the two. Games in the Paper Mario series come immediately to mind: 2D sprites interacting in a 3D environment.
Enter the Urho3D engine.
What Can a Urho3D Video Game Engine Do?
Despite its name, Urho3D can create both 3D and 2D titles. One title that drew me in from the start was a release by a one-man team in Poland called Clinically Dead. Pretty sweet name and the visuals blow me away.
Imagine a mix of an LSD trip and a trippy dream sequence. You play as a person in the seconds before death, solving puzzles and navigating a world inhabited by extremely over-the-top visuals, as well as delivering different philosophies on death and what it means to be alive. Pretty heavy stuff for a game, and an indie game no less.
Paweł Mogiła worked on this game for 4 years, using the Urho3D game engine. An insane adventure into the cosmos within our very minds, it’s currently on Steam now—definitely check out some gameplay videos, although take care not to get hypnotized.
How did he do it, especially all by himself? Urho3D.
What’s in the Name?
If you were wondering about the name, (and I know you were), it actually means ‘hero’ in Finnish. The team describes the engine as, “…a free lightweight, cross-platform 2D and 3D game engine implemented in C++ and released under the MIT license. Greatly inspired by OGRE and Horde3D.” For those unfamiliar, cross-platform refers to games across multiple systems. Here’s a list of the biggest cross-platform games right now.
Seeing that it uses the MIT license reminds me of another engine, the Godot engine, which is a current fan-favorite among burgeoning game developers just starting to hone their craft. The MIT license, along with being very popular among developers, allows for users to have more control over their projects, with the exception that they only have to mention the terms of the MIT license in their project, and usually ends up with a more seamless distribution to the public.
How Much Does it Cost?
Rejoice, gamers: like Godot, Urho3D is completely free. No scrounging around the couch for spare change or busking on a street corner with your musical instrument of choice, it’s FREE.
I had recently done research on some other engines, like the famous RPG Maker MV, and was surprised to see how expensive the entirety of the game, (the massive amount of DLC, the base game, even tutorial books), could be. It would burn a hole in your savings really quickly.
Don’t worry, Urho3D is here to make sure you can freely and seamlessly experiment with what it has to offer.
Speaking of, what does it have to offer exactly?
Reading off of their site, it has an impressive, (and somewhat exhaustive), list of features to the engine. Ones that stuck out to me were some more prevalent features:
- OpenGL 2.0 or 3.2v1.4
- OpenGL ES 2.0 or WebGLv1.4 rendering
- Cross-platform support using SDL 2.0 (currently runs on Windows, Linux, macOS, iOS, tvOSnew, Android, Raspberry Piv1.3 including other generic ARM boardsv1.6, and Webv1.4 with Emscripten toolchain)
- Geomipmapped terrain
- Shadow mapping for all light types
- cascaded shadow maps for directional lights
- normal offset adjustment in addition to depth biasv1.6, and
- particle effects.
Whew, sorry about that. That was only a fraction, (and I mean fraction), of what the engine has to offer in its current version.
They also state that it is not a fully developed engine that you could purchase, and as such you would need to use your computer and programming skills to perhaps fill in a few blanks. Things like Editors and additional asset conversion functionality Integration of additional 3rd party libraries, for example, a more complete UI library, HTML rendering, or additional network protocols.
I’d say that this is a small price to pay for what you’re getting and what you could potentially do. It also includes sample projects within its default state, which again is fully open source and free.
The Reviews Are In
A user on Slant, Endi, listed a possible grievance for new time users of the engine: To install Urho3D you need to get the archive from GitHub (be careful to download the master branch) and extract it. After that, you need to compile the engine with CMake. If all the dependencies are installed, then it should be a straightforward process, otherwise, you will need to track down and install all the missing dependencies.
For people who don’t have much experience with CMake, this whole process may seem a bit like magic. For people who do have experience with CMake, the whole installation will be relatively easy.
If you can create anything like Clinically Dead, you have great potential for some interesting projects, putting these issues on the backburner. You couldn’t tell just now, but I just got severely sidetracked checking out all the games they have in development and released.
Titles like Hellbreaker, Borderline, (a puzzle game for Google Play exclusively). Edge of Time, an isometric action/puzzle game that draws inspiration from the bygone days of the first two PlayStation consoles, looks so cool.
Their feature list is impressive, but when it comes right down to it, it’s a bunch of words. These pictures and videos honestly paint a better picture and tell a better story than I could ever do by listing their different features.
Another thing I like about this engine is the robust community it has backing it. It has a great forum if you need to hit it up for some tips and guides.
Most impressively is the extremely long list of developers for Urho3D. I perused some forums and found a very supportive community that freely shared their own cool little projects. For example, this user shared his RPG hack and slash with another user who was new to the engine.
We need more community members like this in the gaming community; sharing is caring, people!
Now that we got all of that out of the way, here’s the meat of the review: the tutorials. Let’s get down to business.
- Active developers: the team behind the engine is always updating so that by the time you’re reading this, there will probably have been 2 more updates.
- Open source and free: more freedom to develop the projects you only dreamed about.
- Quick development: With a mix of high-quality code and fast development speeds, your projects are completed with lightning speed.
- UI can be hard on the eyes. Seriously, this seemed to be the only major consensus when it came to cons. Other than the engine might not be someone’s preference, I’m not sure if there are any glaring mistakes or downfalls of trying this engine. How about you try it and get back to me?
I have found that there’s usually a no better place to go than the people who made it and constantly use it to complete their projects. From animation topics to simple things like finding the best lighting for a horror game, these topics range from deep dives into the engine’s code to something I thought was really neat: recruiting.
Users can request the help of more professional users and contract them to help them with aspects of their projects. I loved the topic that was seeking a male and female to record voices for their sci-fi space opera game. That one was relatively simple—there are other users looking to recruit actual graphical engineers for their projects.
This is an interesting dynamic that I haven’t found with other engines on their forums, and I think it brings the community closer together.
This criminally underrated YouTube channel provides an extensive series of Urho3D tutorials for the beginning developer. Along with about 20 videos on Urho3D starting with basic development to more complicated matters, he offers a few cool little videos displaying what he himself created in the engine. Good tips and even better inspiration.
I watched him create an environment right before my eyes. It reminded me of a rudimentary Mass Effect environment but in the best way. I can see a lot of promise not only from his projects but the potential you have to make using the engine.
Along with the forums found on the website, the developers have also released documentation to help you with a new project. They outline the basics in everything from ‘audio’ to ‘physics’. It’s arguable, but I think this would be the best place to start, then head over to the forums if you have more specific questions.
Along with that, I wouldn’t hesitate to email any of the developers of Urho3D to see if they can remedy a problem or help you with a roadblock in your project.
I know I always run the risk of falling down a Wikipedia rabbit hole, and this is no different. This is the official wiki of Urho3D via GitHub, with articles running the gamut. You can find the article that helps you develop your first ‘big thing’ to reading some more advanced articles for the Urho3D veterans out there. The article ‘How to manually control bones’, aside from being my favorite title for anything possibly ever, actually shows you the code to control your character’s bones in-game.
The logical place for you to start once you have your bearings is the ‘First Project’ article. It’ll tell you how to control cameras, lights, shadows, and other aspects of a new game.
Another forum, Dark Dove specifically deals with game engines, namely a lengthy and detailed board on Urho3D. A tip-off from a Reddit user, I found Dark Dove’s topic called ‘Urho Flow Part 1’. In this post, the forum user and admin BlueMagnificent totally floors me with the insane amount of detail he provides users. He also drops this important bit of info about the engine’s functionality:
“The heart of Urho3D is the Context object which must always be created as the first in every application and deleted last. All “important” objects that derive from the Object base class, such as scene nodes, resources like textures and models, and the subsystems themselves require Context pointer in their constructor. This avoids both the singleton pattern for subsystems or having to pass around several objects into constructors.
The Context provides the following functionality:
- Registering and accessing subsystems
- Creation and reflection facilities per object type: object factories and serializable attributes.
- Sending events between objects”
Definitely important to know, and thanks to posters like BlueMagnificent, you won’t miss vital info that maybe wasn’t immediately detailed in the engine’s documentation on the home website.
BlueMagnificent follows up with a post saying that he plans to continue this series of tutorial posts, so keep a lookout for his work!
I know I keep repeating myself, but none! Zip! Nada!
You just go to the main website and choose where to download from: ZIP, TAR, or view on GitHub. I think for the possible quality you could receive from the engine, they should charge something. But they don’t!
However, I always recommend that if you’re able to do so, that you should consider donating to the developers. They keep the engine up and running with their constant dedication and work ethic. So if you can throw them a few bucks, why not support indie developers?
Should you use Urho3D? You mean you haven’t already downloaded it, (for free!), and give it a shot? Come on, what do you have to lose?
Aside from potential download difficulties and other possible hang-ups, the engine is ready for you to get started right away and create that game you always wanted to. Like I stated before, the user interface may leave something to be desired, but apart from that, get cracking!
Now, if you’ll excuse me, I’m going to go get hypnotized by all the pretty colors in Clinically Dead.