Took me a few hours to read through the discussion.
Firstly, great community and the team behind Defold is worth prasing! So perhaps I could help in some way…
Just wanted to share some thoughts as an outsider. I have tried quite a few different game engines and frameworks, each with their own pros and cons. Unity, Defold, Godot, Unreal, GDevelop, MonoGame, Phaser. I was making a Flappy Bird clone (not in Unreal =)) in each to get the idea how they work. I guess it’s like active procrastination or ADHD
I found out about Defold from Gamesfromscratch a few years ago, when it was still owned by King. In a YT video about Defold (an official video) I heard something like “Defold is a platform to publish/release your games, more than a game engine”. This idea has stuck in my head since then.
Personally, I would love to make mobile games and html5 as an additional source of income. And since Defold is the best in releasing/bundling a game it seems like a winner here. I believe that Defold is similar to MonoGame, Phaser, LibGdX because one would need to write a bunch of core codebase that could be shared between projects. Again, might be not an easy task for someone who wants to learn how to make a mobile game. Take this forum topic as an example with brilliant code snippets or Critique-Gaming’s dispatcher.lua (an event hub), context.lua (like a custom remote function execution as it seems). All of those are pure gems, I would say must haves, unless you want to copy/paste and hardcode the URLs all over the place, which is BTW will be even harder because there is no code completion for them, or compile-time validation. I guess experienced Defold users either have a template similar to Critique-Gaming’s or copy and paste a lot of stuff like that into their new projects.
Defold is definitely an opinionated engine, as I see it, a bit more than others. It is super lightweight, modular, which is a blessing but also a curse. Now, you have to do more set up and configuration yourself if you need additional functionality. I was not happy that I would need to add external packages for simple things, like, cursors, camera, etc for every single project I create. After reading the forum more I started to understand the Defold’s philosophy and that absence of convenient tools is a sacrifice made in favor of performance and minimum engine size. Then I realized that top extensions are actually “official” assets made by the Defold team. That’s cool! Hell, there is even a unit testing extension! Yaay!
So my take on answering the question “why defold popularity is not increasing?” possibly because of the steep learning curve. Reminded me of a meme image of learning curve of EVE Online My personal experience, nothing more.
That said, anything that could make the learning more smooth would help a lot to pick up Defold for newcomers, especially for inexperienced gamedev hobbyists…
Possible action items / Food for thought
- At the beginning of the post I mentioned that hardcoding game object URL is not an easy task, but this is something that you must do daily in Defold. The snippets simplify the job, still, you have to add them to all your game objects that interact with each other… not ideal.
Maybe it would be possible to come up with a built-in (recommended, best practice) way to do it? Perhaps, similar to “tags” in Unity? Where you could assign tags to your game objects, like, “player” or “enemy” and then at the runtime they “register” in a global lua module, so then you can request a url of your “player” or your “emeny” (can be many of them). Something to keep them decoupled and to make day to day defolding easier. I don’t have enough experience to suggest anything, just a thought. Apply the “Convention over configuration” principle. Could it be an asset library?.. can they add properties to game objects?
There was interest for hypercasual games (myself included). Maybe this is another thing Defold could be best at? The best engine for hypercasual games for mobile, html5. Consider adding a couple of playable hypercasual sample games with AdMob and app purchases already configured.
Consider adding a template with AdMob and app purchases configured. Add another one for Facebook instant games, and/or Poki, with SDK or extensions necessary. Configure the desktop game template for Steam, or/and Epic Games store? The idea will be to have project templates that are almost ready for release, you just need to add your gameplay (easy!). Combined with 1-click builds and you are good to go to release your game.
Consider adding top/must have extensions into the templates (camera? input? monarch? gooey? rich text?). Then show links to short tutorials how to use them in the readme once the project opens. This is for beginners. Experienced guys would have their own templates anyway, or could start from the empty project.
Consider adding more sample/template projects that can be opened straight from the editor. Basically, pic best ones that are on Github right now. In example, this one looks neat! Slasher Prototype
Refresh look of the tutorials inside the editor (New Project > From Tutorial). Consider flipping assets for more colorful ones? Kenney assets? I’ve completed the tutorials a few years ago and I loved them a lot. Now, they look a bit dated. It might give a wrong impression that the engine is not in active development, which would be wrong.
They say “Devil is in the details”. Maybe add an official extension with vector math? In example, functions like: direction to vector, distance to vector, move toward a vector, + similar ones for rotation/quaternions.
Another good one “Simple things should be simple, complex things should be possible”. I think that the default renderer should be good enough for most games (from my noob point of view), no need to scare away beginners saying they need to modify it. I know that’s what I was thinking when I was looking through some tutorials and manuals and straight from day 1 (or 2,3) read that I will need to change the renderer to fit my needs or something along those lines Why not make the default renderer more beginner friendly? Add more stuff there that would make simple things simple. In example, screen to world conversion. I was experimenting and came up with the following utility script that is easy to use. Now I need to copy and paste it to all of new projects… not ideal. I am lazy, so I would say that for this reason alone Defold might not look very attractive for game jams.
Learning / Tutorials
Beginner tutorials: Byte-sized examples that cover 1-2 topics each. Phaser is a great example - 1000+ examples. Phaser has super outdated website (getting started guide is for VS 2013), documentation seems to be outdated too, but they do have a ton of examples with the search. Each example with a running demo at the top of the page and screenshots, code snippets at the bottom.
Intermediate tutorials: Small examples with best practices, must have lua modules, performance tips. When to use collections vs game objects? Best practices how to organize them? Code snippets? Same layout: demo at the top, screenshots and code at the bottom.
Small tutorials / Blog
- Another engine as an example, GDevelop, growing in popularity according to Google Trends. I guess they have a small team as well. It advertises 1 click deploys (not free), but the development experience will get messy real quickly (in my experience). There things they do really well though: 1) teach new users (short 3-5 minute video tutorials are everywhere inside the engine UI) 2) there are “Plug n Play” “behaviors” that are easy to add into your project straight from the UI 3) Short to medium sized video tutorials on the website that look nice and shiny 4) Good marketing (active blog on the website, game jams, recent humble bundle, decent YT coverage done by their team).
Possibly some things that don’t require a big budget…
Yearly games showcase. Helps game devs to promote games in development, helps with more exposure. You will find Godot 2020, 2021, 2022. Personally, I do look for the showcase videos on YT when I’m curious about other game engines.
I like the idea of a Defold game jam. The participants could be asked to post screenshots of their games on Twitter with the #madewithdefold tag, or other tags for a bit of free exposure.
Maybe some other “flash mob” community Twitter activities for popular hashtags every Friday? #drunkgamedev with #defold
An hour every other week with Q&A or a stream of a Defold dev making a game in Defold (Twitch? YT?)
There are ZERO Defold tutorials on Udemy. Keeping in mind that there are almost no breaking changes the tutorials will be up to date for a few years. No maintenance passive income for anyone interested
A random idea… monthly sets of assets that can be used commercially only with Defold game engine. Maybe, some props, or GUI elements (progress bars, stars, other icons), or something else. A few other game engines does this kind of stuff, some of them require subscription, but it’s a nice bonus to have. Maybe some beginner artists would be willing to do it to get more attention?..
Add “Donate <3” / “Support <3” / “Sponsor <3” link at the top of every page on defold.com, and make it stand out. Currently, it is buried in the footer. Have a look at the following image as an example. It’s much harder not to notice it.
Nothing personal… frankly speaking, current donation goals are kind of meh. People like new and shiny stuff, which I’m sure you are working on. I would rather pay for something like “+1 full time developer to work on better 3D support” or “+1 marketing person working part-time to help promote Defold and make it grow” rather than “pay for servers, hardware, salaries”. Or adding to the previous idea with the free monthly assets. One of the goals could be “+$100-200/month = hire a freelance artist for monthly assets” (BTW they could be free for everyone, or only for people who donate to be more fair to them). It’s hard to say no to some assets in return while supporting the engine.
Another crazy idea. Start a kickstarter or other crowdfunding campaign. Is there something specific Defold could gain from a certain amount of donations? Maybe “Better 3D support” with list of features that will be added, some work in progress videos? $20k-$30k-$50k-? If at all possible to hire a contributor or someone for a few months to help out…
Search engines love lightweight and fast websites.
The lightweight game engine should have a lightweight website, right?
8 MB of images is probably too much. The .png could be replaced with .webp (10x smaller than .png) with fallback to .png for IE. Another options would be .jpg files with solid background if you are concerned about the browser support.
PNG (3.8 Mb) vs WEBP (102 KB, also resized to 50%)
Lazy loading for images is also a low hanging fruit that would add a few points to the speed index. Easy.
https://defold.com/ and https://defold.com/product look very similar, probably even competing with each other. There are a few pieces of info that I believe deserve to be on the home page. Engine size on different platforms is definitely one of the main selling points of Defold. It could be an image or an interactive chart that appears with animation.
I just LOVE the way Construct website looks. It is an eye candy. I was “sold” to it and instantly wanted to use it once I opened the website. Sadly, their “deploy anywhere” builds are merely HTML5 games, so not good. The website is great, though. Maybe it could be used as an inspiration. Videos definitely make the website look dynamic and more pleasant to visit. Consider adding a few videos to Defold home page with 2D, 3D features. Or perhaps a gif/video how easy it is to build for different platforms? An interactive chart comparing build sizes with other game engines might be nice. (APK, HTML5 gzipped, EXE, Mac?).
- I like the “everything is free” concept. On the other hand it might be worth it to allow paid assets. If someone is willing to create an assets library with reusable shaders, in example, and then sells it then it’s a win-win, or reusable GUI templates, and so on. With enough useful paid assets in the store it would be possible to make humble bundle sales that will help to get more exposure. Even Godot devs announced that they are working on full rewrite of their asset store AND they are going to support paid assets, which is in high demand in the community.