Defold and 3D Support - Discussion

(Note: the general consensus on Defold and 3D is not exactly as I propose in this thread’s initial post. Please read through the comments as well if you are using this thread as a means to decide to use Defold for a 3D game.)

Hi there,

I recently received the official Nerd badge and figured now would be a reasonable time to bring up my thoughts on Defold and 3D support:

Capture

It is often stated that Defold is not meant to compete with other engines which focus more heavily on building 3D games. However, in the past year or so from my perspective, it seems as though the amount of questions and effort being put into building 3D games with Defold has increased drastically. I say this based on the activity I see on the forums, in Discord, and in the occasional engine new release threads.

To get to the point, it feels like there is a little too much effort going into implementing 3D support that could be much better spent working on the 2D side of things. It is honestly a little bit sad to see creators trying to build their 3D visions in Defold. They probably have never used an engine that is better suited for that, so they just decide to stick with Defold since learning a new technology can be annoying for a while.

Take Unreal for example. This engine is actually unreal. It is absolutely incredible to see just how much they manage to provide out of the box for their users. Advanced lighting, reliable netplay for multiplayer that takes less than a minute to get working, and who knows how many assets available for free in their Community Marketplace which serve a seemingly infinite amount of possibilities. Heck, even one of their many project templates–those little projects you can select on the launch screen–basically gives you a fully functional 3D first-person shooter with animations, dynamic lighting, and multiplayer already baked in. To achieve even these effortless results in Defold, it would probably take you… well, who knows? It really goes to show just how much time is wasted trying to develop for 3D in Defold.

On the flip side, Defold is one of the greatest engines out there if you’re looking to build a 2D game with low overhead and bloat. It’s really a diamond in the rough. You can quickly get a game going simply due to how intuitive the engine and editor are to work with. You don’t have to worry about managing features or components in your game that you don’t even want to use, thanks for Defold’s bare bones philosophy. If you decide to go for other engines for a simple 2D game, you’re going to have to deal with all kinds of complicated setup procedures and work around the inherent 3D support features. I remember this being a particularly annoying problem in Unity way back when, although I heard recently that 2D support has been improving over there.

Anyway, I guess I have two main points here.

  1. Focusing the vast majority of resources on developing Defold for only 2D games really seems like the better option here, for both competition with other engines and giving developers a top notch engine to build their ideas.

  2. Perhaps it is better to refrain from encouraging users to use Defold for their 3D game ideas. When someone comes to the forums and asks if their idea is possible in Defold, and it involves a lot of 3D, it’s probably better to say something like “Defold primarily supports 2D games rather than 3D, so it’s unlikely you will be able to see the project through unless you’re looking to reinvent the wheel,” rather than “Sure! Defold’s 3D support has been improving a lot recently and it would be exciting to see more 3D games made with it.” The latter feels scummy and you’re intentionally leading them down a path of headaches and missing features.

The goal of this thread is to spark conversation and interesting ideas, not to express contempt with the Defold Team! Defold, its community, and its development Team are awesome and I believe the community and frequent interactions play a major role in its success.

21 Likes

I agree. I hope the Defold team will ditch all 3D ambitions and focused purely on 2D. Why waste resources supporting 3D models when there aren’t even 9-slice sprites? Other engines are light years ahead in 3D, there is no point to even trying to catch up. But there is real chance to become the best engine for 2D.

5 Likes

I was working with Unity, Godot and UE4 and I would always suggest anyone to choose Unreal, if you want to make a 3D game. I didn’t made any game in Defold in 3D in the other side, but I see it lacks a lot of features from other engines and it will be probably a lot of learning to make so. So at this point, you might be right. Defold is and was always described as a game engine focused 2D games, “ultimate game engine for Web and mobile”

2 Likes

Whenever I see folks wanting more and more 3D support I’m reminded of similar discussions with other tools in the distant past. Folks were wanting 3D support (and video, and actual UI frameworks…) in Macromedia Director and Flash. While technically possible, these tools were never really designed with those ideas and mental models in mind. The result was, that while some of these feature requests did make it into these tools, the implementation was never to the level folks wanted, and it diverted resources and attention away from development of the core tools. Eventually, these tools began to suffer from the ‘solution looking for a problem’ dilemma. They weren’t good at the things devs wanted them to be good at (3D, video, enterprise UIs, etc), and they were no longer good at the things that made them attractive to developers in the first place.

5 Likes

Defold is a 3D engine, it’s never not going to be one.

It can be worth improving some of the features of 3D for the purpose of enabling better 2Dish games, because Defold 3D elements in 2D games can be useful. Such as setting up level assets in 2.5D platformers in the editor. Currently it’s cumbersome. But the viewport could be improved to make it more reasonable to do. Of course people making a game can make their own editors in engine to make these things easier without touching the editor code.

Currently the biggest financial supporters of the Defold Foundation are the mobile companies and tool companies. Realistically their needs should always come first because they are the ones who ensure Defold is free and open for everyone else, and they may wish for improved 3D features since many modern mobile game implement 3D elements within 2D games. Defold recently met its 50% funding goal on GitHub for hosting the build servers. That is very great, but it’s still dwarfed by the amount of money King and the others have given the foundation to help fund continued development. The community needs to grow, and more people need to become direct financial supporters until this balance of funding swings in the direction of the community. That’s not to say the Defold team does not listen to community feature request (in fact they are extremely responsive more so than any software team I’ve ever interacted with), I’m just saying the people who pay the bills need to be listened to and given priority.

it feels like there is a little too much effort going into implementing 3D support

By who? People who like making 3D games? They get to dictate how they spend their time and effort. My interests often lead me on what I spend my free time on. Testing the limits of things is fun.

I appreciate the 3D improvements to Defold over the last few years but they have in no way been the priority of development.

It is honestly a little bit sad to see creators trying to build their 3D visions in Defold.

Defold is very lean and stable. It is especially suitable for web and mobile games. There are certain kinds of 3D games which Defold can easily and reasonable handle which can do well on the markets. Certainly for big AA or AAA no one should think of using Defold, but for lowfi/retro leaning 3D games Defold is a viable tool with it being nearly viable for many other kinds of games within the PSX/PS2 eras.

They probably have never used an engine that is better suited for that

I have experience with other engines. If I am making a 3D hyper casual game I would choose Defold over Unreal every single time. Tools like Unreal have way too much extra baggage for these kinds of projects. Even Godot or Unity are not as ideal as Defold in this market segment yet people choose them often anyway.

People critical about 3D features getting any attention need to instead focus on themselves helping to improve the 2D features. Anyone can make pull requests or give the Defold Foundation more money.

“Sure! Defold’s 3D support has been improving a lot recently and it would be exciting to see more 3D games made with it.”

Most the time I just see people unaware that Defold is a 3D engine and supports 3D features at all. Nowhere is it marketed as having the kinds of 3D features an engine like Unreal has. Defold can be used to make 3D games, but of course expectations have to be met. It’s never going to replace Unreal for 3D. But still I use its 3D features in my primarily 2D games in interesting ways.

9-slice sprites

Maybe it’s time for a new thread detailing all of the missing 2D features people feel are missing. I agree that 9-patch sprites would be useful, but I can still manage making a premium 2D game without them. I encourage you to make a thread listing all of the 2D features you feel are missing yet necessary for Defold to become the best 2D engine. What is all that is left to add and improve? Better tilemap editor / features maybe?

Other engines are light years ahead in 3D, there is no point to even trying to catch up.

This has never been the stated cause for improving 3D features. It’s always been stated that the Defold team does not have the goal of competing with engines like Unreal in the 3D department.

Whenever I see folks wanting more

A big difference is Defold is open. Anyone can improve it to their desires even despite what the Defold team does to improve the product. So if someone really wants a specific feature they should make the effort to implement it.

20 Likes

As a 2D fan, I kind of agreed with the first post and was tempted to chime in accordingly. I did however think there was some nuance I was probably missing, and so I refrained. I think @Pkeod has provided that now.

While I am personally unlikely to use them, 3D features that spice up 2D games make sense. 3D features beyond that make less sense, but if they’re funded by corporations that make the Defold project thrive, then I’m supportive.

Like has been stated, Defold has always been 3D and the devs have made it clear that they aren’t competing with Unity and Unreal. I trust they know what they are doing.

That said, I agree with @WhiteBoxDev 's point number 2. My standard blurb about Defold when asked includes the phrase “it’s technically a 3D engine but it’s not the common way of using it” and I think that’s a fair point to make to newbies.

11 Likes

Thanks, we appreciate the feedback from you and others in this thread!

True. This is not our goal, and it never will be. We will not compete with Unity, Unreal or perhaps even Godot in the 3D space. It is much too crowded and fiercely competitive. I have said this numerous times here and elsewhere.

I agree. We are definitely seeing more interest in 3D. I believe a lot of this comes from the release of the Mesh component in Defold 1.2.169, released almost exactly one year ago. The mesh component is one of those low level but super flexible components that can be used for so many things. It is a perfect example of the kind of building blocks we prefer to provide. It is not super easy to use but it opens up sooooo many opportunities for cool 3D and 2D features.

I honestly can’t understand what you are basing this on. The Mesh component was released one year ago. I can’t think of any other feature released in the past year that has focused on improving 3D support. There was a recent contribution by @aglitchman to fix custom 3D convex shapes but I can’t think of anything else.

Are there really that many examples of this? The only thing that comes to mind is @Epitaph64 who struggled quite a bit with his Unexplored Territories game.

Other developers in our community with quite a bit of experience in game dev, such as @aglitchman, @Dragosha and @dlannan seem to take the features we do provide (mainly the mesh component) to heart and create really amazing things with them. I’m not sure if they struggle to build their 3D visions in Defold, but from my point of view the process seems fairly painless.

Yes, it would be a pretty big undertaking to create this in Defold. It is not something I’d recommend unless you’re a seasoned game dev with prior experience building 3D games. For a beginner who knows very little of 3D game development it is not advised to use Defold.

BUT I am also extremely sceptical of a template project such as the one you are referring to. It sounds great when you read the label on the box, but is it actually something that will hold up in the long run? Can it be used in production or will you have to spend a lot of time patching and fixing up things?

Yes, this is our main focus. But it won’t be our only focus. We will spend a small portion of our time to improve the 3D capabilities we have and to come up with the next “mesh component feature” that will give Defold developers another low level but super flexible feature that can be used to build cool things (in 2D and 3D).

Are we really encouraging users like this? I think we are usually pretty clear on the messaging around the capabilities of Defold and it is definitely not our intention to mislead anyone. And I appreciate if you call me out if I get too excited about 3D! And I do get excited when I see developers create stuff like this:

17 Likes

Hi, I think this an interesting discussion and I have maybe a different view about Defold and I hope people find it useful.

Firstly, I agree entirely with @Pkeod and @britzl. Defold is, in its own right, a 3D rendering engine - not a 2D one. And Defold does do well to stay a 2D_game engine. Please notice the emphasis on rendering and game notation of the engine type.

For me, Defold is something a little special, and I think people need to understand why it not easily compared to Unreal Engine, Unity or similar.

Defold is an open framework and this is very different to a closed source game engine. Godot is somewhat comparable, but again I think its in a different space than Defold (for a number of rather complex reasons which I will explain).

Defold really has advanced and unique capabilities:

  • You can change the source and build your own Defold to suit your needs. This is important if you need to customize for targeted solutions - 3D games and 3D simulations are exactly that. You never get exactly what you want with a generic system. You always end up buying support from Unity3D or Unreal if you need to do serious platform development. This is not the case for simplistic and targets solutions that already work within these systems.
  • It is one click build on any supported platform, from Win, Linux and OSX. This is unique to Defold. There are some that do similar things, but none do one click builds without SDK installs. And (imho) this is THE most powerful feature of Defold by a mile. Do not under-estimate this feature, it is going to be important for Defold going forward and it heavily relates to the editor, plugins and feature sets like 3D.
  • The Defold community is inspiring. There are so many kind hearted and wonderful people here on the Defold forums and discord. This is critical in an open framework. And it is very reminiscent of the early days in Unity3D forums (circa 2008). Again, this cannot be understated. So keeping these forums open, active and a little controlled is highly valuable to long term development progress.
  • 3D is a feature not an application. Critically its a rendering feature. Under the hood, Defold is fully 3D capable (see my repos) and it should not be a priority to make the editor fully 3D capable. This would be a grave mistake in my opinion. Every implementation of 3D for a game, app or other use will be different so it is far better to have a 3D capability that people can utilize as they see fit rather than build an entire system with 3D interfaces that then need to be extended and maintained and provide complete generic capability for everyone. A quote I like to use for this (not sure who it is from) - “If its good for everything, then its good for nothing.”.
  • Native plugins are your friend. If you want 3D, then native plugins are the beautiful way forward. Imho, this is probably going to be the best (and most likely) way the 3D systems will flourish in Defold. I have been able to implement cross platform 3D simulation and gaming within such plugins with relative ease. Even compared to Unity3D or Godot, I was stunned to see how quickly I built a complex shader working in 3d (sky / cloud sphere rendering) and a simple fps as well. Building a gltf loader for dynamic asset loading was also very easy (less than a week)… so it shows the power of 3D within Defold is already there.

I think what is happening with many peoples ‘need’ for 3D features is they are new to 3D development and want all the facilities of Unity3D within the Defold editor. This should not be something people should ask for nor should they expect it. Again, its clear to me that Defold is an open_framework that has a 2D game engine focus. If you dont understand this, then I think maybe you need to spend some more time learning the internals of Defold. Knowledge is power.

It also concerns me that many people are “asking” about 3D capability in Defold, but are not doing a simple search in github or forums to see all the amazing 3D work people have already done. If you dont want to spend the effort, then I recommend moving onto an engine that works at a higher level rather than hassle the brilliant Defold contributors.

And my last point. Please, please, please take note of this paragraph. Defold and the people working on it have made something very special. And I have been in this business (games, simulation and networking) for a long time (20+ years) and I havent seen anything as powerful as what these talented individuals have come to together to make. Make no mistake, I believe Defold is going places. But before you try to coerce it in one direction or another, understand it. Understand what Defold is, how it works, and the amazing features it has. It is so flexible and expandable I am utterly convinced that Defold is far from just a 2D game engine already… :slight_smile:

24 Likes

I don’t know why when we talk about 3d games, people’s mind points to AAA console/PC games.

I never tried 3d game with Defold but I think it is close to be a proper “mobile 3d game engine”. I think just few points are missing to be the same category as BuildBox (that buggy engine… at least with Defold we have a solid core base). Maybe that’s the direction that Defold dev team is taking…?

7 Likes

Just a few thoughts
Like stated on the last roadmap the defold team have their priorites based on stakeholders. Take a look on Community requests. If people are interested in 3D is pretty normal to get a little more of attention but that doesn’t mean that the Defold team will stop whatever they are doing to focus on something else. Mostly because they still got the Defold vision there. The Defold team have their own principles and ways to do stuff. They know what they are doing and what Defold is capable of.

I really like Defold. Sometimes I make a small prototypes using other engines but the Defold’s workflow is out of this world. Yeah, if I could make 3D games (easy to use) with it would be awesome. And I only need this level of 3D hehe:

Edit: what are the core 2D features that are still missing in Defold?

9 Likes

A lot of this discussion is pretty vague. If you see some language about 3D support on the website or forum or anywhere “official” that you think is misleading, you should just point it out specifically, and I think the Defold team will happily fix it in a matter of hours.


My own viewpoint: If I were to make a 3D game right now, I would use Defold.

I don’t have delusions about it’s 3D capabilities. I don’t want all the fancy features of other engines, they come with a lot of extra baggage that I don’t need. I don’t think anyone comes to Defold looking for AAA 3D graphics and animation features that match UE4.

Even with it’s limitations for 3D (and otherwise), I don’t know of any other engine that—for me—is suitable for making a small, simple, 3D game. The 3D capabilities shouldn’t be advertised strongly, but the few people looking for just what it has shouldn’t be turned away too strongly either.

13 Likes

Nicely put. Its almost impossible to make a “tool” fit everyone’s needs. (Although Defold comes horribly close). But I think its more important people learn what Defold actually is, what native plugins are and what luajit is and spend time in the forums and github before drawing conclusions about capability.

Because personally, I dont think Defold has 3D limitations :slight_smile: … Would people say OpenGLES has 3D limitations? (Of course not), and you have access completely to it, so… But, the Defold editor is what many people confuse as being all of Defold, and that has simplified 3D capabilities - thats the tool, for the tool is limited in 3D. Sometimes concepts and wording matter I think especially when discussing capability.

And like you @ross.grams I would not hesitate to use Defold in a 3D simulation system right now (In fact we are and its a joy!). I look forward to everyone’s insight in this discussion. Its important that people contribute here their expectations and ideas. Its how the Defold team and others can gain understanding into what people are really wanting when they say I want 3D capabilities.

4 Likes

This is a very poor assertion. If developers wanted to use raw OpenGLES, they wouldn’t look twice at Defold. They’d just use OpenGLES. Simply offering an underlying 3D library which can be used on its own is not the same as offering utilities for making 3D development easier as part of an engine.

But, the Defold editor is what many people confuse as being all of Defold, and that has simplified 3D capabilities - thats the tool, for the tool is limited in 3D.

There’s no reason users should have to dig into the engine’s source code to use its 3D capabilities to a greater extent than what the editor offers. That would be a failure of a product, and certainly nowhere near user-friendly.

Defold is an open framework and this is very different to a closed source game engine.



2

Sounds like a game engine to me.

3 Likes

Indeed what you say is correct. It is a game engine. You however are referring to a 3D feature set not a “3D” game engine. The title of this thread is “Defold and 3D support”.

To be clear, 3D features are usually related to a rendering and auditory capability and a toolset capability which can be a hugely broad discussion. Everything from GIS, Raytracing, Realtime Rendering, Animation, 3D positional Audio, VR/AR, Holographics, Haptics and so on… its a big field. I think constraining your use case will help in understanding what you think is missing.

All of Defold’s rendering (under the hood) is 3D. As @Pkeod pointed out. It already has complete 3D support. What you are referring to is 3D tools and 3D high level interfaces - ie editing tools and api’s. And as everyone has mentioned Defold doesn’t support 3D editing well. But this does not make it unable to be used for 3D applications.

OpenGLES is a toolkit and api as well. And yes you could just use that. However, Im assuming you know about and understand native-plugins in Defold. With OpenGLES in a native-plugin you can use all the 3D you want within the scripting of Defold objects, and I often also use properties in Defold objects to set and call 3D features - so it is quite easy to use 3D, its a matter of just spending time learning how to do it.

For me (which I have a background in 3D) I found getting a 3D scene up and running in Defold very easy and I understand for newer people to 3D this may seem difficult. What I would suggest is to visit the tutorials (there are example projects and samples for 3D) and read all about the great snippets on the forums for 3D. Try loading the 3D sample, and then pressing build - you should have a 3D scene.

The images posted are not really relevant to 3D Support. And nor does Defold state that it is a competing 3D engine - nor do people even say that here - which is why I find many of these discussions a little weird.

Also, if people want to make their own 3D Defold, then whats stopping you? The source code is there… go nuts?

Rather than complain about missing “scope” like 3D. State clearly what you would like to seen in 3D and if its not available, I’ll see if I can make a little sample for you (within reason of course :slight_smile: ).

But more importantly, the statements above are powerfully true.
“The Ultimate Game Engine” - for me, shit yes.
“No setup” - this is so utterly amazing… I love it. look at other engine setups? (Ive used dozens of engines commercially for two decades)
“Truly cross-platform” - I cant say enough about this. One click build to any platform is insanely good.

So what specifically is wrong or would you like to see?

10 Likes

My take on 3D in Defold is that using 3D models can greatly enhance a 2D game. I’m working on a 2D game now in which most game world objects are 3D models. It allows for smooth rotation of objects that would otherwise not be possible (or using a lot of texture space with individual sprites).

In another 2D game I’m working on, the camera is slightly tilted so that more of the world ahead of the player is visible, making it easier to navigate the 2D space.

In short, I see 3D in Defold as something to complement the 2D, not to compete with it.

23 Likes

I like combo a simple 3D perspective with 2D textures and sprites, it makes a final picture slightly different from other 2d games.

video: https://twitter.com/dragosha/status/1403287532004122626

+1

27 Likes

What would happen if you made a game like brawl stars today? I mean, how is defold for simpler games, not aaa?

This game looks kinda similar to brawl stars and is made with defold:

So 3D games are definately doable

12 Likes

I am pretty happy with how this thread turned out. Lots of interesting takes on 2D and 3D in Defold. Sounds to me like most agree with the idea that the 3D elements are a much appreciated supplement to some otherwise 2D games and that small improvements and community additions are the way to go. Some of the screenshots posted here were also neat to see. :slight_smile:

9 Likes

Has anyone been building 3D hypercasual games with Defold? I’m talking about this kind of games:



At some point I’d like to develop some of those, but wondering if I should invest in learning another engine (Unity, Godot?) or if it’s perfectly doable using the 3D features of Defold.

1 Like