Godot or Heaps?

So, I am coming from Unity, but want to use another engine now as it is becoming unbearably convoluted, expensive and slow. Also, I want to target HTML5 for mobiles for my next game, and Unity is not anywhere close to being able to handle mobile web.

After looking at a lot of game engines, my two final contenders are Heaps and Godot.

The more mainstream choice is Godot, but I do not like GDscript (looks exactly like javascript, which I really want to avoid), and C# seems to be less supported. Also, it produces pretty large files, which is a problem on mobile. Not sure about performance, but seems Heaps is much more lightweight and wont stand in your way. I used to make a lot of Flash games before, and I like the down to bare bones approach, the Godot editor adds a lot of things I do not really need in my workflow.

I really like Heaps as it is a no-nonsense super optimized framework, and Haxe looks like a great, modern language, very similar to other languages I already know such as Actionscript and C#. Also, I love the game Dead Cells, it is a great showcase giving me a lot of confidence that Heaps is a great choice for commercially competitive games.

Some questions though:

  • I want to target both HTML5 (for an easily accessible demo) and Steam. But, after creating the game for HTML5, how hard is it to build a Steam version of it? I noticed Dead Cells comes with a huge amount of DLLs. How would I know which ones to include? Any tools available for a Steam export and to connect to the Steams services/API?

  • How well is the HTML5 build protected from prying eyes? From what I understand Haxe targets javascript and not webasm, so it means the game code would be quite exposed. Is there any way to protect it?

  • Anyone here has experience with both GoDot and Heaps? Would love to hear your thoughts. :slight_smile:

Thanks

2 Likes

Well… No surprise here perhaps since you are asking on the Heaps forum :slight_smile: , but I think Haxe is a great language for anyone coming from C# or especially ActionScript / Flash.

Using Heaps to target native / desktop with Steam, you would likely use the HL vm. https://hashlink.haxe.org - The dll’s needed to run it are bundled with the release, those are the ones you need. Infact, you can just bundle all of the HL vm with your game. Also, you would need the Steam extension (with the dll’s for that).https://github.com/HeapsIO/hlsteam

It should be quite easy to target both HTML5 and desktop from the same code, but i would advice you to try and develop testing both HL and HTML5 along as you go - this way you will be ready to publish to Steam in no time!

And as far as the HTML5 code being protected - there are ways to obfuscate js code for the browser - this would be the same ways as normal js developers would use. But i wouldnt worry about this - remember the code is generated - so good luck to anyone trying to rewrite or use parts of it anywhere else. Just dont store important info in plain text :slight_smile:

3 Likes

And just to add to the confusion… its actually possible to use Haxe with Godot also :slight_smile: … :

2 Likes

Thank you for your reply, this gives me more confidence in the Heaps route. :slight_smile:

I tried to look more at Godot, but the editor heavy approach and GDscript optimized system is just not very attractive. The main reason I am looking at it is because of wider community support while Heaps is mainly an engine for internal use made public, if I understand it correctly. So, I am unsure about its lifespan and future support.

About protecting the game. Is the pak format also used for HTML5? Do you know if it would be possible to add a small layer in the loader that deencrypt an encrypted pak, to at least protect the game data files a bit and make it unavailable to the pak unpackers out there?

Hi, I’ve been using Heaps for a while and was attracted to it for almost the same reasons as you.

As @datee said you should be able to make HTML5 and Steam releases quite easily but I remember some people having some hurdles along the way when it comes to the dlls to use for Steam. Seemed quite easy to deal with though in the end.

I believe you can use PAK files for HTML5. You can obfuscate your HTML5 code as it was said to discourage people from taking your code. Making your own loading logic is totally feasible.

I suggest you join the Haxe Discord and read the #heaps channel and the pins, it contains a lot of info that you would want to know as a newcomer. Main ones being that Heaps isn’t best suited for people who lacks minimal knowledge of how an engine works because of the lack of documentation and explanation of how Heaps work. You will usually get faster answers there too.

edit : Woops, people mentioned get notifications, I didn’t know.

2 Likes

Thank you @NeroGM . I will check out Discord, but I never used it before. Do you need an invite to join the Haxe forum? How can I get one? :slight_smile:

Here : Discord Official Channel

1 Like