Live data from Hacker News

Heaps: A free, open-source and cross-platform game engine

heaps.io

71–80 of 103 posts

Re: Heaps: A free, open-source and cross-platform game engine

#71

Earlier quoted context omitted.

What is missing in HTML5? You have WASM and websockets and the WebGL canvas built into every browser now, that seems to replicate just about everything Flash was known for doing? And just to clarify, I mean actually using the same old Flash development tools (apparently it's called Adobe Animate now?) Or is the issue that the export-to-HTML5 functionality in those tools is just not fully done yet?

>What is missing in HTML5? - Audio (while in some respect capable) is a nightmare, the interface is unstable and breaks about once a year in my experience. - You can't do pixel-perfect rendering (People keep promising that you can - the last time I checked was a few months ago - the DOM rendering architecture is deeply wretched when it comes to pixel-access). - No nice pipeline for integrating vector animations/art i…

I'm not sure if I agree with all of this. People forget flash kinda sucked. One of the most significant ways in which flash sucked was the performance. Imo, the most famous flash game of all time is Binding of Isaac, which basically couldn't achieve a respectable, consistent frame rate even on the most powerful rigs. It's native rewrite, Rebirth, never had performance issues.

>You can't do pixel-perfect rendering

Sure you can, with canvas, and if you want to have absolutely perfect control, there's WebGL (and nice stuff like PixiJS)

>No nice pipeline for integrating vector animations/art into games

You can render SVG sprites into bitmaps, and use them in WebGL or canvas, as you mentioned, you needed to do this too in flash as well if you wanted decent performance.

>easy to make fancy + good-looking interactive UIs

If I remember correctly, most fancy game UIs were built with some framework, like flixel, which used low-level drawing primitives and built-up the UI from scratch. Alternatively you could use the full power of HTML+Js frameworks to build arbitrarily complex UIs and overlay them on your game scene.

>many of the html runtimes for new engines (Unity for instance) feel waay heavier/more sluggish in the browser

True, but they are meant to be, and meant for bigger games than flash/html5+js is. But for modern engines, HTML5 export sucks, there's no doubt about that. But that's a failure of execution, not technology. I remember Epic citadel a decade ago, which ran by compiling C++ to js with emscripten, and it worked pretty well:

https://www.youtube.com/watch?v=BV32Cs_CMqo

Also, there' a few Electron based indie games, most notably CrossCode, which is a fun, and technically pretty well executed game, and by the devs' own admission, it's built on pretty ancient tech.

Re: Heaps: A free, open-source and cross-platform game engine

#72
post #21

what happened to just using Vulcan

When I learned about Vulkan the program I wrote using the raw Vulkan API drawing a triangle was 900 lines of C++. There is no such thing as "just" using Vulkan, working at that level is a major commitment and a total waste of time for nearly all game developers. Especially since major targets are using DirectX 12 or Metal instead. Yeah, you could use Vulkan on them, but it would be weird to want to use a low-level API and not go for the platform native one.

Re: Heaps: A free, open-source and cross-platform game engine

#73
post #68
post #15

Can someone explain or link to a resource on how you would get this into a android apk? I see it is mostly demonstrated as HTML5.

There are two possible approaches to this: a) packaging html5 version in to android App. There are plenty of frameworks for this. Probably the performance will not be the best. b) hashlink -> in theory possible, a couple of people have done it, but in practice the issue for documenting the process has been opened for years. Approximate structure for the hashlink approach would be: compile hashlink and required multim…

Ok thankyou for that. Html5 seems to be path of least resistance. The demo's seem to perform quite well on the Web.

Re: Heaps: A free, open-source and cross-platform game engine

#74

If you are new to the Haxe or game development world I would advise against Heaps as the documentation is pretty bare bones. Haxeflixel [0] is one that is prominently recommended for good reason. Heaps is still great regardless and I have used it for a few private projects. [0] https://haxeflixel.com/

As a longtime Haxe gamedev: - Heaps is powerful and used by two of biggest and most successful Haxe gamedev companies (Shiro Games, Motion Twin, and I guess the Dead Cells spinoff company is a third now) - HaxeFlixel is friendly and well-documented and used by some smaller but still successful gamedev companies, and is much more popular in the indie and game jam scene (also HaxeFlixel is 2D-only, Heaps is 2D and 3D)…

+1 for Kha. I have been getting crazy good performance with the WebGL target. I also much prefer its immediate mode API, as apposed to Heaps’s display list (or scene graph). I was also able to build out a full editor with this fantastic library https://github.com/armory3d/zui

Re: Heaps: A free, open-source and cross-platform game engine

#75

Earlier quoted context omitted.

I don't have anything to add, just that I'd really like to know how it stacks up against Godot. I plan on learning Godot soon, curious if I should choose something else instead.

Godot is the safest and best choice for most 2d games and simple 3d games. You absolutely should keep learning it. What makes Godot really good for beginners can a bit of friction for experienced developers: Especially with GDScript it feels like old-school Python with only one obvious way to do things, which is great but also means it is very opinionated. Node-based OO inheritance is the main abstraction. You don't…

I’d really like to go all in on Godot, but the path to release on consoles is very vague. I really wish it had first class support for consoles.

Re: Heaps: A free, open-source and cross-platform game engine

#76

I first discovered Haxe nearly a decade ago when seeking alternatives to Microsoft XNA. It was extremely influential in my learning programming. Lots of half-finished games and projects. Haxe is dear to my heart, but I haven’t touched it in a while. A couple of opinions: - Haxe is held back by not being self-hosted [0]. - TypeScript is the ideal syntax for Haxe. 0: https://github.com/HaxeFoundation/haxe/issues/6843

> - Haxe is held back by not being self-hosted [0].

Why is that a problem for Haxe adoption?

Re: Heaps: A free, open-source and cross-platform game engine

#78

Earlier quoted context omitted.

What is missing in HTML5? You have WASM and websockets and the WebGL canvas built into every browser now, that seems to replicate just about everything Flash was known for doing? And just to clarify, I mean actually using the same old Flash development tools (apparently it's called Adobe Animate now?) Or is the issue that the export-to-HTML5 functionality in those tools is just not fully done yet?

>What is missing in HTML5? - Audio (while in some respect capable) is a nightmare, the interface is unstable and breaks about once a year in my experience. - You can't do pixel-perfect rendering (People keep promising that you can - the last time I checked was a few months ago - the DOM rendering architecture is deeply wretched when it comes to pixel-access). - No nice pipeline for integrating vector animations/art i…

>Audio (while in some respect capable) is a nightmare, the interface is unstable and breaks about once a year in my experience.

I don't know if I understand, something like flash would probably do its own mixing and only use AudioBufferSourceNode. That seems to be what Emscripten uses and I haven't heard about any major breakages there.

>You can't do pixel-perfect rendering (People keep promising that you can - the last time I checked was a few months ago - the DOM rendering architecture is deeply wretched when it comes to pixel-access).

You can though, with WebGL. The point is you avoid the DOM just like what the Flash VM did.

>and Adobe Animate allows for HTML5 animation export nowadays, but that's somewhat short of a full interactive app pipeline.

This is what I'm asking though. How is it different? It seems the pipeline is completely the same except instead of exporting to SWF you export to HTML5.

> And often they don't perform so well as the flash runtime.

I'm actually asking why can't you still use a port of the flash runtime that's done in WASM. I think you misunderstand my question. If the compatibility was there you could also get Scaleform to work with no changes.

Re: Heaps: A free, open-source and cross-platform game engine

#79
post #2

I've written a couple side project games in Heaps and I'm a big fan. If you're familiar with Pixi.js, Heaps and it's language, Haxe, will feel very similar. Haxe is a pretty cool language, it's similar to TypeScript but compiles to native binaries for almost all major game consoles. Heaps was apparently the framework behind Dead Cells if that says anything about the level of polish you can accomplish with this set of…

And all Shiro games: Northgard, Darksburg, upcoming Wartales and Dune games. Not sure about Evoland but I wouldn't be surprised.

iirc evoland 2 was made with Heaps, and evoland 1 with what then became heaps.

Re: Heaps: A free, open-source and cross-platform game engine

#80

Earlier quoted context omitted.

Godot is the safest and best choice for most 2d games and simple 3d games. You absolutely should keep learning it. What makes Godot really good for beginners can a bit of friction for experienced developers: Especially with GDScript it feels like old-school Python with only one obvious way to do things, which is great but also means it is very opinionated. Node-based OO inheritance is the main abstraction. You don't…

I’d really like to go all in on Godot, but the path to release on consoles is very vague. I really wish it had first class support for consoles.

Godot will never have first class support for consoles. That is because of the console manufactures that only offer proprietary SDKs and require you to sigh NDAs.

The strategy would be to target PC first and if successful use that money to fund console ports, as there are third party companies that offer that.

If you really care about consoles, you should just use Unity/Unreal. Though even then you will need a license and it is up to the manufacturer whether they approve your game.

Post reply on HN