Every concern I have about Defold as someone completely new to anything related to game dev

Hi there. I have been wanting to create games for a really long time and figured I am going to try my hand at it. Ideally I want to make games for web, mobile, desktop and Nintendo Switch. Obviously Defold seems like it would fit like a glove. I have lurked here for a quite a while and thought I would just make a post about all my concerns instead of scouring the web any longer.

*** This engine does not seem beginner friendly**

From what I understand, Defold is able to produce small build sized because it doesn’t have a lot of premade features. A consequence of this is that the developer needs to create the features themselves. Being a total beginner, is Defold a good idea for someone who knows absolutely nothing about how that sort of stuff is created? Obviously I am capable of learning things, but stuff like creating 2D lighting seems incredibly complicated. Should I be using something like Godot or Unity instead?

*** Is Defold meant for large projects?**

This worry isn’t really based off of anything specific. I have just seen examples of games made with Lua and they don’t seem like large, long running games or anything like that. Again, I have no idea about what Lua is capable of or why this notion is in my head, but it is just something I have a worry about. A specific example would be something like an RPG with a large number of items, characters, enemies, etc.

*** Learning Defold**

I have absolutely no idea how to learn this software. I am used to finding a program I want to learn, typing that program’s name into YouTube. I just watch a bunch of tutorials until I feel like I am familiar enough to dive in and then figure out what else I need to know for my specific goals. This seems incredibly difficult with Defold, and I have a feeling this is a huge reason why this engine is somewhat obscure in the hobbyist game development scene. Do I learn Lua separately first, then try to figure out Defold? This probably sounds insane, but I don’t think I have ever even looked at software documentation before. Maybe this is more common in the world of game development but I have never needed to before with other software.

I can’t think of any other concerns at the moment, but even if there are others, these are the main ones. I REALLY want to like this engine because its priorities are PERFECT for what I want. I’m mostly worried that I am not smart enough to be able to fill in all the blanks that Defold leaves for me to fill. Things like fancy lighting and physics. I notice a lot of indie games with gorgeous lighting effects, physics, water reflections, and whatever. People are able to achieve this while being completely new to game development because it’s all just a button press away. I can’t help feeling that even thought the engine is perfect for what I need, it isn’t suited for what I want my games to look like or be. I might want to make 3D games later on but I’m not really concerned about that when starting out.

I don’t know. I just don’t want to make a mistake and have to quit, and relearn everything I just learned because I jumped in without thinking critically about anything.

Thanks if you read all of this.

8 Likes

Hi!

Context: Defold user with almost no previous relevant experience, now ~5 years in

Beginner friendly:
In terms of being beginner friendly- the fact is that making games is complicated. Especially if you are looking at an RPG or anything that requires 2D lighting. Honestly, after 5 years (of casual use) I would still have to study hard to create anything like that. The fact is, basic photo/audio editing is much easier learn than basic video game programming. I never read software documentation until I started with defold - but what I will say is that you CAN learn it yourself if you are willing to put some effort in. And it is fun, and it is worth it. I have no experience with Godot but I can say that Defold was easier for me to learn than Unity - although ultimately they are very different tools. FYI I started out using Stencyl, which I would definitely recommend as a learning tool (block based programming) assuming it still exists.

I would say that Defold actually is very beginner friendly, but most beginners have wildly unrealistic expectations (myself included) of how long it takes to make a good game. Start by making flappy bird. That is the level of game you can make as a beginner. Starting out by learning 2D lighting doesn’t make too much sense- that will come later. And making your own RPG, in any platform or program, will take many years.

Game size:
Fates of Ort is an example of a fantastic RPG made using Defold. There are a number of games (on Steam, on mobile, on Nintendo Switch, etc) that are large, complicated, and/or financially profitable etc - but they tend not to be labelled as “MADE WITH DEFOLD” as much as the smaller, simpler games made by hobbyists.

12 Likes

Lua is perfectly capable. The idea about it not being good for large projects probably comes from a comparison with languages designed to make software for large businesses, schools, governments, banks, etc., worked on by multiple, interchangeable teams with variable levels of skill. It’s more about maintaining the code than running it. And we’re talking about a different kind of “large” than the “my RPG has 1000 items” kind. Lua is designed to be simple and easy to use, not to be cost-effective for Microsoft. :stuck_out_tongue:


Defold is “easy” and “friendly” in an unconventional way. It’s not flashy and impressive, it doesn’t have eye-catching features, there aren’t many videos about it, it’s not very popular. But it does have a lot of amazing features that you won’t realize are amazing until you’ve used it for a year and then tried other engines. They may sound trivial and uncool to a newbie, but they will save you a lot of time and aggravation.

Defold won’t make you suffer. (…well only a little bit sometimes)
-Ross

  • The turnaround time is very fast, so when you make a mistake, you don’t have to wait 20 minutes to find out about it and start fixing it.

  • It’s simple. It’s possible to learn everything there is to know about Defold and spend all your time making stuff.

  • The documentation is complete and the manuals/guides are good and the community is very active, helpful, and knowledgeable.

    • No, there aren’t videos, but on the other hand, when you need some specific information, you don’t have to wade through multiple 5-60 minute videos to find it, you just look it up and it’s there.
  • It’s not buggy. Honestly, game-engine bugs are common. Defold sometimes has bugs, and a fair share of annoying things and features you really miss, but it doesn’t have many things that are truly messed up and not getting fixed.

  • There aren’t many dead-ends. Due to it being simple and stable, you won’t often waste time building something with a feature, only to find that it won’t actually work for your use case.

I’m currently using Unity for my “day job” so I’ll divert into a bit of a rant as an example of why these things are important… (more important than fancy features)

...continue rant about Unity & comparison with Defold...

A common chunk of my workday with Unity looks like this:

  1. Write some code.
  2. Alt-tab back to the Unity editor, it freezes for 9 seconds while it recomplies stuff. (and 6 more seconds to run the game in the editor.)
  3. Certain features & plugins (*ahemFacebook) can only be tested on-device, so I Build & Run.
  4. 6 minutes later, it’s done, I start the game on my Android device.
  5. Camouflaged within dozens of lines of spam, the game soon spits out an error into the external android console log.
  6. Check my code, no obvious problems. 5-minute google search, nothing obvious. Spend 20 minutes trying to find the documentation or some useful description of what the parameters for the function that I’m using actually do. I fail. The official documentation is very vague and incomplete.
  7. I didn’t find any concrete information, but I get an idea of what could be the problem.
  8. Start again at step 1…

I wasted at least 75 minutes today just waiting for Unity to bundle the game.

With Defold, the editor doesn’t freeze on you, it takes maybe 1 second to start the game. It takes about 15-30 seconds to bundle a simple project for any platform. Even if you need to test on a device, you don’t need to rebuild or even stop the game necessarily. You can install a build on the device once and then stream content to it from the editor, and hot-reload stuff while it’s running (if you set it up right). You get clear console output right in the editor. And to top it off, you can just read the docs, learn how things work, and use them. You don’t have to search through similar issues on stackoverflow hoping to find the trick you need.

Some random tips:

  • For learning, start with the Tutorials, actually go through and do them.
  • Check out the Examples when you feel like something bite-sized.
  • At least skim through the Lua Manual and keep it on hand at all times.

You don’t have to read through the API Reference documentation. Use that like a dictionary to get the details of things when you need them. Months later you can go through it thoroughly to find cool things that you didn’t know about.

Learning Lua is crucial, but making games (at least prototype mini-games) is pretty ideal for that, so no problems there. Just keep pushing to learn new stuff.

Reservations

Of all the things, fancy graphical effects like lighting and reflections, and advanced physics are possibly Defold’s weakest points. It’s probably possible to do what you want, but you may not be happy with how much of a nuisance it is to do—how much learning is involved.

15 Likes

I have absolutely no idea how to learn this software

My tip (for any software) is to browse through all available documentaion, even the Lua api’s.
The goal isn’t to learn everything by heart, but to know what is available, and what it’s for.

Secondly, understanding what you want to do is essential.
E.g. “I want to make a game” is of course too generic, and you will need to break it down into (many!) achievable sub tasks.

Since you are evaluating this software and have some concerns, I’d start by creating prototypes for testing those features.
E.g. a prototype to test lighting solutions.

How should a lighting solution work?
Well, that’s where the prototyping comes into play and you’ll have to decide what works for you in your situtation.
You probably want to think about workflow (how easy it is to change lighting), constraints (how many lights at the same time)
and features (are normal maps required?).

I don’t know. I just don’t want to make a mistake and have to quit

We all make mistakes. Depending on how large they are, they can vary in difficulty to fix.
I come back to the prototyping here, as it is meant to do its best to avoid such scenarios.

I wouldn’t expect you to have to “quit”, but perhaps rethink your problem, and ofc rewrite/rework some parts.

and relearn everything I just learned because I jumped in without thinking critically about anything.

Even if you would move to another engine, I doubt that you would have to relearn everything.
Sure there is a startup time for each new tool but a large part of a game project is understanding of what you want to do.
Also, you will have created art assets that is reusable, and your code is probably fairly translatable to other languages.

10 Likes

Not entirely true. The core of the engine is indeed very small but additional functionality can be added to the engine with very little effort through library projects/extensions. There are plenty of official and community created extensions in the Asset Portal.

There’s a tutorial/sample project here: https://github.com/defold/sample-lights-and-shadows. There’s a few steps involved but if you start playing around with Defold for a bit its actually not hard to get it working.

Yes. Family Island is a great example: https://play.google.com/store/apps/details?id=com.MelsoftGames.FamilyIslandFarm&hl=en&gl=US

Another is Fates of Ort: Save 33% on Fates of Ort on Steam

Learning a game engine will definitely require that you look at documentation and/or videos. Also, there’s two different things here: 1) Learn the programming language and 2) Learn the game engine.

Unless you already know the programming language then yes, you need to learn both. This is true for Unity, Unreal, Godot, Phaser and many others. The exception is probably visual/block based engines such as Construct.

You should not worry about this. In game development/programming there’s always something to learn from a tool or language, even if you don’t end up using it. You will start to see similarities and differences between languages and tools and this will speed up the learning process each time.

There’s rarely such a thing as “click a button to make everything look good”. That is to oversimplify things. Sure, some things will be easier with some game engines than others, and with Defold you may need to a bit more work yourself to achieve certain things, while others, such as physics is dead easy even in Defold.

10 Likes

You think too much. If you are a beginner, then you cannot make a big game on any engine, because there is not enough experience. I advise you to come up with a simple game, something like a platforming game, and just start making it. As you create the game, you will gain experience and learn. You can make games according to the official tutorials, it will be very useful. The main thing is to start doing something, the fastest way a person learns in practice. You will be wrong a lot and often, but if you don’t give up, you will succeed. And Defold is a very good engine for beginners, it has a simple programming language and few built-in functions, so you won’t get confused. I did not know programming and had no idea how to make games, but in about two weeks I was able to make a simple game and put it on Google play. (there are only 10 downloads, but I learned a lot in programming and game design). Set small goals that you can handle, and gradually complicate them, otherwise you will be disappointed and quit. If something does not work out, then the forum will always help.

12 Likes