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.
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:
- Write some code.
- 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.)
- Certain features & plugins (*ahemFacebook) can only be tested on-device, so I Build & Run.
- 6 minutes later, it’s done, I start the game on my Android device.
- Camouflaged within dozens of lines of spam, the game soon spits out an error into the external android console log.
- 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.
- I didn’t find any concrete information, but I get an idea of what could be the problem.
- 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.