okay, just about done with my session here… this is what i’ve got thus far. Beware of a ton of comments as i haven’t programmed in a decade and am learning all of these things at once: cli, linux, vim, haxe, and ‘cause i tend to get stuck in programming design choice dilemmas . This is why i much prefer to leave this stuff to the experts… Choices are so hard for me.
For anyone that stumbles upon this in the future, my notes on the structure of the main classes in Heaps are in to-heaps.txt. With so many public functions, and no way to tell which ones are meant to be used internally (maybe @dox hide
…) and which ones are meant to be edited, it’s quite the beast to tackle.
As one could tell by this thread, it took about a week to get a general understanding of things… Much much thanks to @AlienBuchner for his/her/etc. (? lol, etc. might be offensive… sry) communication, and even @zagortenej, who’s post now as i re-read, i now much better understand, particularly, where Heaps lies in the spectrum of game engines and io frameworks.
I ended up with just two classes: a global class HP (ancestor of FP/HXP in Flash/HaxePunk), and PunkApp, simply needed to initialize that global class. Nothing—no actual data—was added, save a Console when in debug; It’s just a bunch of pointers/references (i think?). The rest is kinda a “base”/“bare-bones” /“skeleton” code, all optional, so that again, nothing is actually added to Heaps.
I personally found nicholas’s ld40 as the best example of ~”how-to-use Heaps to make a game”. Just from a quick glance, I think jefvel’s gamebase looks like something that i would make, closest to my own style. TerryCavanagh’s terryheaps has a primitive beauty to it . And I think if I had just started with deepnight’s gamebase, i wouldn’t have had to gone through all ‘uh this mess. Thanks again to @AlienBuchner for mentioning these. (ld40 and deepnight’s gamebase are actually in the docs, only jefvel’s isn’t…)
I think those “gamebases” were the thing that i felt was missing: the missing foundation. With them, you can jump in and make stuff, day 1. Without them, welllll, it’s been an interesting week of reading and re-reading code??.. That’s what i believe constrains the accessibility of Heaps, compared to say… Punk ‘n Flixel. That was the missing link, in my eyes at least… From Punk, i think only two classes are missing: entity and world(?). Punk’s world is now Layers, which is optional to implement yourself (simple games might not need it), and entity, which is… well, completely optional(!!). (ld40 and both gamebases all use layers and create their own entity class)
From the maker of Heaps point of view, i can see it being optional; The main class is App, not Game. You can make any sort of i/o new media art, “creative” app, digital toy, whatever cool thing with it (dreams of making apps with an awesome game engine )… but is there really no way to come to a consensus and provide a modular, optional entity framework?
I think I get it…: simple games don’t need one at all, and more complex ones need more complex frameworks… But surely there’s some common middle-ground here we can all agree on? We don’t all need to re-invent this wheel… We don’t all need our own game-base… do we?
Anyway, that’s how i felt after about a week… Now that the hard part’s over, I feel pretty rad . I’ll soon have my own super bare-minimalistic… tool-box: whether it’s just “barebones” code, “helper classes”, static extensions, or an outright “framework”, whatever. And, with each thing I make, hopefully i’ll just get better at making that particular layer, precisely tailored to it’s own needs, without the excesses that come from general one-for-all frameworks (evil eye to Unity…), and without the shackles ‘n constraints of them too.
…I think the true source of the problem is me: I’m a lazy person; I don’t want to do the work. When Fez ‘n MonoGame were out, I thought, yeahhhhh!!! C# and code-based game-making!! yeahhhh!—And then I quickly realized noooooo!!, it doesn’t come with anything!?!? Whaaaat!? You had to like actually draw triangles / vertices in OpenGL just to do something like lineTo (maybe slightly exaggerated, lol)… Compared to that this little game layer, is A okay. …maybe even liberating! …the Haxe world seems full of liberations like this. <3 The punk is strong in this one… <3<3