Tips for using Heaps?


Hey, I love the framework and I am excited to use but it somewhat confuses me. I am trying to figure out how things work there but it took me too much time. I was reading the API and Docs but it leads me too many questions—like 30 or something—and I think it is not documented well. Are there any ‘keywords’, advice, tips, reminders (or whatever :smiley: ) can you guys give? I really appreciate your help.


Specify what exactly you expect from the framework.
But generally, my tips would be:

  1. Don’t fret looking into framework source code, it’s designed pretty well and understanding what goes where isn’t a big problem if you actually open source code and look into them.
  2. Heaps is a lot more 3D (s3d.*) focused than 2D (s2d.*), if you are looking to do 2D game, you can and will encount limitations and underdevelopments of the engine in 2D department (2D camera would the biggest offender). From what I see - it’s more built for UI rather than making fully-fledged 2D games on.
  3. Due to reason above - consider using s3d for your 2D games btw.
  4. Heaps is reasonably low-level and does not go with a lot of built-in features, be prepared to write your own bicycles.
  5. If you have a question that isn’t stupidly easy to solve by just looking at source code of framework for 5-10 minutes, be sure to check out Heaps channel in Haxe discord server.
  6. It’s open-source, found a bug - make an issue. It may take a while to fix or it may be an easy fix, you’ll never know.
  7. God help you, if you’ll try to write you own shaders on HXSL, it’s even less documented. Look at existing shaders in h3d.shader.

Well, common sense tips, really.


How limited is the 2D camera and why we should use s3d.* instead?
I’d also like to know how the Heaps community deal with other limitations, what do you guys use for physics? Tween animation? UI widgets (buttons, combo boxes, layouts)? Does Heaps support Tiled tile maps? Texture atlas from Texture Packer?


Does Heaps support Tiled tile maps? Texture atlas from Texture Packer?

Yes, and yes. See


2D camera

Because it’s a crippled wrapper object that just moves itself. While s3d camera IS a camera. To make proper 2D camera there have to be made a lot of rework in RenderingContext of s2d.


Really depends on the task. Just scour for physics libraries (Nape, Box2D, Bullet, etc) or make your own by using something like differ.


There’s a lot of tweening libraries and it’s not hard to get them running on Heaps. (good old Actuate, TweenX/TweenXCore, etc)

UI widgets

HaxeUI as well as recently announced domkit. There are some widgets present in stock, and I have some more in my heeps library (h2d.ui.*). Layouts = h2d.Flow.

Tiled maps

Yes and no. Support that is from stock Heaps is shit (and I will repeat it again - outdated shit, and since Cannasse reluctant to just add optional binding to my format-tiled library to get full support, it is available via heeps.
Also there is no classes to actually render the layers.Update: Now there are, but very basic.

Texture atlas

Not entirely sure. There IS support for .atlas extension out of the box, but I’m not sure what generates it.


in addition of the examples from and the full game samples there, i found this repo of examples particulary useful : It shows what you can do and how and it’s more effective than trying to figure things out by looking at the source.code.


Thanks for the tips. ;D