12 ms·
Heaps: A free, open-source and cross-platform game engine
- woldenron 4y agoHow hard it would be to target FreeBSD?
- nullfish 4y agoI'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 tools.
- mftb 4y agoAt first glance it looks pretty nice. I wonder why it hasn't gotten more attention? Or did I just miss it?
- postalrat 4y agoI think it's a victim of godot's popularity.
- rahil627 4y ago
- Hemospectrum 4y agoThe whole Haxe ecosystem flies under most people's radar, partly because it evolved from what was once the Flash ecosystem. It never really qualified for the kind of "NEW SHINY THING" announcement that creates hype elsewhere. A lot of people who have written loads of games are peripherally aware of it but have never actually gotten hands-on with it.
- Buttons840 4y agoI've said before, I about fell out of my chair the first time I looked at the games created with Heaps: Dead Cells and a few other top tier indie games I had been looking at. Still haven't gotten around to learning Haxe though, hopefully soon.
- ergo14 4y agoI really love what Nicolas is doing. But it kinda feels like whole Haxe ecosystem driving force is this one guy.
- tkp 4y agoThe feeling is understandable and it could be worrying, but since some years Nicolas seems to be focusing on Shiro games and game dev tooling (heaps, hide). The compiler is developed by the Haxe Foundation and the ecosystem by the community which is not that big but has quite a few talents.
- setr 4y agoLooking through the documentation, it’s a bit lackluster. So I always got the feeling that the primary users of the engine were the engine developers themselves
- orthoxerox 4y agoThat's exactly my thoughts. They had an internal engine they could open source, so they did it. Probably to simplify the management of intellectual property rights between several companies. Making it a popular choice for indie devs has never been the goal.
- rahil627 4y ago
- msk-lywenn 4y agoAnd all Shiro games: Northgard, Darksburg, upcoming Wartales and Dune games. Not sure about Evoland but I wouldn't be surprised.
- toastercat 4y agoYep, Evoland too! Shiro Games was founded by the creator of Haxe (Nicolas Cannasse). Smart guy.
- k_ 4y agoiirc evoland 2 was made with Heaps, and evoland 1 with what then became heaps.
- afrodc_ 4y agoI had no idea Dead Cells was made in this. That game is incredibly sharp. Need to play around with this as it seems relatively simple.
- stryan 4y agoHaxe (the language Heaps uses) was initially written by Nicolas Cannasse, who worked at Motion Twin for a while; not sure if he was part of the team that did Dead Cells. So it's not a big surprise. Still, that's a big +1 for Heaps/Haxe then Dead Cells runs fantastically. EDIT: Ah, looking into it more Nicolas also founded Shiro Games who made Evoland, Northgard, etc. So it might just be following him around (not to disparage it, still looks great).
- imachine1980_ 4y agois really cool, is 3d under the hood, then they make a 2d pixel render over. article of gamasutra about the gaming pipeline of dead cells https://www.gamedeveloper.com/production/art-design-deep-dive-using-a-3d-pipeline-for-2d-animation-in-i-dead-cells-i- https://www.gamedeveloper.com/production/art-design-deep-div...
- Forgeties79 4y agoThat was an absolutely fantastic read. Thank you for that!
- noduerme 4y agoPixi.js has been a lifesaver for generating interactive art/data pieces since the death of AS3, which used to be my main bag. I remember messing around with HaXe ten years ago or so, the main problem being most of the fl. graphics APIs were not ported at that time and the idea of rewriting my own GUIs and game engines built on those didn't make much sense. I'm not sure it does now, either. If this had a 1:1 naming system, e.g. Sprite and Graphics and Stage, I'd be all in. But so much of my 2D game code was based on extending Starling atlases, etc. and now that's all dead. I'd be afraid to invest the time needed to port it to a relatively exotic and not so well known framework... which still requires a well maintained VM to run.
- tkp 4y agoHeaps has it's own API, but other Haxe frameworks[1][2] reimplement the flash API. Some tools[3][4] help to convert AS3 source code to Haxe, and the typing and compiler are helpful to identify issues. So depending on the size and dependencies, conversion can be easy once you get past the main language differences. [1] https://www.openfl.org/ https://www.openfl.org/ [2] https://github.com/haxenme/NME https://github.com/haxenme/NME [3] https://github.com/HaxeFoundation/as3hx https://github.com/HaxeFoundation/as3hx [4] https://github.com/innogames/ax3 https://github.com/innogames/ax3
- klodolph 4y agoYou can remember that there was a vibrant community of Flash game developers before the demise of Flash (EOL December 2020, the date of its “demise” is debatable). There’s not really a replacement for Flash and the community kind of fragmented. That said, my impression is that a big chunk of talent from the Flash community went to work on HaXe. These are people who make games and want tools to make game development easier—as opposed to people who get excited about engines, architectural patterns, and programming languages. Just as a general impression, based on people I’ve recognized working with HaXe.
- koonsolo 4y agoI ported my https://rpgplayground.com https://rpgplayground.com from AS3 to Haxe. It was the most sane technology to replace Flash, because it came with some platform independent benefits (as opposed to coding straight in JavaScript) Not using Heaps but https://github.com/Kode/Kha https://github.com/Kode/Kha. And I think you are indeed correct in your assumption, since I know plenty of others who made that switch.
- throwaway82652 4y agoI don't understand why the Flash runtime is needed or why it matters that it went through a "demise". I was under the impression that you could just export Flash to HTML5 and javascript now? I'm not a flash developer so you'll have to forgive me if this is a dumb question.
- nine_k 4y ago(1) The rumors about HTML5 are not exactly true. (2) There are good open-source Flash runtimes. (3) The selling points of Flash were the no-installation experience and really good development tools. Both aspects are somehow lacking today, so the momentum is gone. Maybe someone will produce a great and accessible tool to create comparable HTML5 experiences, and that thing will become popular. But not yet.
- throwaway82652 4y ago
- cpeterso 4y agoWhat are some advantages of Heaps over Godot or Unity? Neither Godot nor Unity are mentioned on Heaps' website, though there are some mentions in Heaps' community forums.
- redundantly 4y agoI 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.
- irskep 4y agoI've half-learned both. My impression is that Godot is more like a framework (but more so) with prescribed ways of doing things, with lots of custom languages and formats, and Heaps is more like a library you use in a codebase that belongs to you a bit more. From an ability-to-ship-games perspective, starting out, I'd go with Godot. Putting together a game's architecture from scratch with a library like Heaps sounds like a fun project, but to just get a game out the door without fussing around, Godot makes things easier without major downsides. Godot has so many custom things because those things work. That said, I'm just a dabbler, so I'm sure other people will chime in as well. I'm also sure that if you invest time in learning Godot or Heaps, it will pay off well, because they are both mature projects that people have used to ship commercial games.
- cpeterso 4y agoThis blog post on the Haxe website about Shiro Games’ technology stack shows House many other tools and libraries they needed to build their commercial games. On their architectural diagram, Heaps is just one of a dozen boxes. https://haxe.org/blog/shirogames-stack/ https://haxe.org/blog/shirogames-stack/
- chii 4y ago> how it stacks up against Godot. Godot is better if you intend to also learn the editor (and potentially the godot language gscript?). You'd probably get something out the door quicker with godot too. Heaps is a programming framework/library for making games, not a game editor. You'd also need to be pretty familiar with haxe to use it, unlike godot (where you can get away with not learning gscript for simple things). if you're a beginner game developer, i'd actually start with godot. Once you got one game made with it, you can then explore other options and learn new things.
- deleted 4y ago[deleted]
- farmin 4y agoCan 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.
- Karliss 4y agoThere 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 multimedia libs for Android, haxe->hashlink C -> Android SO, create a basic android Java activity which loads all the native code so libs. Consider the knowledge required for porting (not compiling existing port) Doom or some openGL c++ game (with custom engine) to android. This will be similar experience. On one hand actual work may be somewhat less since some people have done it and code is mostly there, on other hand you will have to deal with half a dozen different projects and their build systems and glue them together. You can find a couple of example projects from people who have gone through this struggle, but they will likely not work out of the box due to version changing and not being common combination so the requirement of knowledge or good code reading and learning skills remains.
- farmin 4y agoOk thankyou for that. Html5 seems to be path of least resistance. The demo's seem to perform quite well on the Web.
- baddash 4y agois there some news/development recently regarding Heaps? or is this just a general awareness post?
- hyuuu 4y agoI really wish Haxe would just take off in the application development world, it had so much potential to be what Typescript has become with the benefit of transpiling to different languages. We theoretically could have had 1 single programming language for a full application with JS front end, Django server, C++ workers, the best of all worlds.
- chii 4y ago> so much potential to be what Typescript has become the problem really is that typescript was designed to be backwards compatible with javascript - aka, valid js is valid typescript. This is a pretty big constraint. Haxe could never do this imho. It's got it's own design philosophy. I personally like haxe more, but typescript does have the advantage of the above feature, and a more robust typesystem as a result. The distinguishing feature of haxe is the macro system - which lets you generate code at compile time. It's almost as powerful as LISP, but in a familiar syntax.
- haxiomic 4y agoI use both haxe and typescript extensively. I yearn for what haxe could do to the js world! For example, I’m currently building a website in typescript and next.js. Next.js introduces extra tooling that generates code based on filepaths and things. It’s all very clever and complex, but this sort of thing is trivial in haxe - you just mark code to run at compile time and no extra tooling is needed. When writing haxe web projects, there’s so much less cruft: - only one system to import modules (import X) - one call to haxe.exe to compile and one output file - no strange js implicit typing (and no === operator) and so on
- xyst 4y agowhat happened to just using Vulcan
- Narishma 4y agoIf you mean Vulkan, there are a lot of platforms where it's not available.
- kryptiskt 4y agoWhen 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.
- nazgulsenpai 4y agoThe idea of world generation being this easy in a game engine is cool. I can't wait to play around with it! Thanks for sharing this. https://heaps.io/samples/world.html https://heaps.io/samples/world.html Edit: spelling
- __ryan__ 4y agoI 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 https://github.com/HaxeFoundation/haxe/issues/6843
- xolve 4y ago> - Haxe is held back by not being self-hosted [0]. Why is that a problem for Haxe adoption?
- logo4poop 4y agoIf 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/ https://haxeflixel.com/
- larsiusprime 4y agoAs 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) - There's other noteworthy engines, Kha for instance. Also proletariat (Spellbreak) uses an Unreal engine integration with Haxe.
- JoeyJoJoJr 4y ago+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 https://github.com/armory3d/zui
- leoncvlt 4y agoFor those who might be interested, I wrote an introductory book to HaxeFlixel at https://discover-haxeflixel.com/ https://discover-haxeflixel.com/ which was "blessed" by the devs (we gave away tons of copies during an HaxeFlixel IndieGoGo, plus there's a link to the book in the official docs as well)
- deleted 4y ago[deleted]
- remram 4y agoAre all the games featured on the frontpage (as screenshots) actually built with Heaps?
- larsiusprime 4y agoYes and yes.
- remram 4y agoImpressive. For everyone else, those are Darksburg, Dead Cells, Northgard, Evoland.
- foxbee 4y agothis impressed me too. Might be an indication to put these in front of every use as they access the page - that's my design two cents for the day
- thejeswi-nk 4y agoEw, no not every page.
- foxbee 4y agoevery user*
- wetpaws 4y agoThe loading times and performance in the browser are absolutely mindblowing
- bfelbo 4y agoAny idea what makes Heaps / Haxe generate HTML5 games that are faster to load?
- tsujp 4y agoUnder the title "2D and 3D accelerated graphics" on the linked website it shows gameplay for Darksburg (top-left) and Northgard (both on the middle row). I've played both of these games for a decent amount of time (~150 hours between both) and can attest to how fun I found them. Darksburg suffers from lack of content but as functional games (no bugs etc) it was a pleasant experience. So it appears Shiro Games use it!
- elvennn 4y agoOne of Shiro Games founder (Nicolas Cannasse) is the creator of the Haxe language and Heaps engine !
- foxbee 4y agoThis sounds awesome. And credit to the team for creating such a nice platform. The 3d api looks real nice, and simple!
- larsrc 4y agoHow hard can it be to pick a name that doesn't clash with a common data structure?
- dalmo3 4y agoHeaps.
- deleted 4y ago[deleted]
- virtualritz 4y agoI love "Dead Cells". I clocked about 500hs on it since I bought it in 2018. It's a masterpiece. It is built with Haxe. But on the 2014 MBP with Intel Iris graphics that I travel with it doesn't always run smooth. It may stutter in certain biomes and just plan hang for a few seconds sometimes (GC?). For me, growing up as a teenager, learning assembly after C, so I can do 2D graphics on my VGA card, this is unacceptable for a pixel graphics game coming out today (even with the shader-based the effects it sports). And I am certain this game would run smooth as f... on my laptop if it was written in something like Rust or Zig. I understand that these were no really choices available when R&D on the game started and that C++ may likely have been out of the question too because of the burden on the devs that comes with than language. I.e. Haxe was likey a good idea given the constraints of the studio at the time. But today, IMHO something like Rust+Bevy is a better choice for a game like this.
- rahil627 4y ago
- squarefoot 4y agoJust found two minor bugs in the "world" sample. 1: it doesn't detect the LMB release outside of the frame, although it keeps changing the visuals if I pressed it within the frame. If I release it outside of the frame, it will need a further press-release cycle to free the mouse pointer. It might be intentional but could be annoying sometimes. 2: the snow fall appears linked to the terrain position in a strange way: hard to describe in my non native English; if you move the terrain around while looking at the snow flakes you get it.
- ThinkBeat 4y agoI had not heard much about HaXe before. Given my current experiments in OCaml it was interesting to learn its importance its development. I am curious how large the community is? Nicolas Cannasse having created (and still creating) HaXe (Which would seem like more of a workload in itself) He then goes on to write a 2D/3D game engine? Both achievements seem huge on their own. Not knowing the history, he seems to be an incredibly productive person?
- rahil627 4y agolol, it's not just one person, tho he is kinda OP. The engines are actually simple, minimal. It's the actual games that get complex, not the engines. Haxe the language has a few core people dedicated to the language and compiler (Haxe foundation), and then there are open-source contributors beyond that. Just check the github for haxe foundation.
- northstar702 4y agowhat do we define as a game engine vs a graphic engine?