Can Age of Empires 2: DE be ported to defold?

Hey guys! Today I heard about Defold going open source and was wondering if it can run AoE 2: DE at 4K smoothly?

Currently, AoE 2: DE is using Genei Engine from 90s which doesn’t support using multiple cores of the processor. Since Defold is a 2D game engine, I would love to know if it is even practical to develop a heavy game like AoE 2: DE on defold.

1 Like

You have the source code to Age of Empires 2? The term “porting” means to take a product aimed at a particular platform or using a particular framework and retarget it to a different platform or framework. In order to do that you must have the original source code and assets.

If you mean you wanted to rewrite an Age of Empires-like game using Defold, then yes you probably could do that, however if would take a fairly big team to deliver a game of that size. And no small amount of skill.

It would be interesting to see a large-scale project made using Defold. I have no idea if Defold is capable of handling something like AoE.

Assets are possible, but not the source code. But my question was that can Defold work any better than Genei Engine?

Is Defold optimized to use multiple cores of the CPU?

1 Like

Instead of porting AoE2 to defold, might I suggest you have a look at “0 a.d.” (open source game in the same style) with open source engine built for real time strategy games and good modding support.

I believe they are also using a combination of c++ for the core engine with a scripting language (javascript) for logic and ui.

1 Like

In general, if something runs slowly at high resolution but smoothly at lower resolution, that’s a bottleneck with your GPU, so multi-threading with your CPU cores wouldn’t have any effect.

You can scroll through the Defold showcase to see what’s been made with it. I think both Fates of Ort and Family Age are pretty big (and Family Age is for mobile…). Defold is pretty fast as modern game engines go, but comparing it with a game engine from the late 90s…who knows. There’s going to be a big difference in their features and how they work under the hood.

In the end, there’s no way to know if one engine is faster than another without doing identical performance tests on each one, with the same hardware. Each one could be faster or slower at different things. Comparing similar games isn’t very relevant either, since the final performance is at least as much determined by how the developer made the game, as it is by the underlying engine.

3 Likes

Now that the source of C++ is available and C++ is a language that allows threading you could offload some work from main thread like “write save state to disk” in C++ in case that is not already done so.

The simplified flow would be something like:

defoldDoThis, defoldDoThat, DefoldDoSomething -> Lua: cppDoThis, cppDoThat,cppDoSomething -> C++ :

  • doingThis(on main)
  • doingThat(on second)
  • doingSomething(on third)

It is possible to run independent Lua on each C++ thread but that would complicate things more than they need to be as it is simpler to just use oneLua to pass instructions(which is not resource intensive) to C++ and manage threading and actual compute work there.

3 Likes