Get your head around how ferris is meant to be used to make games, with some worked examples.
You can get packaged examples on itch here.
The official repository for these examples is here.
Some more focussed "feature" demos are being prepared alongside a more integrated mini-game.
The feature demos should help understand specific ferris features without all the noise of a full game; the game should help understand how features can be combined.
We can reevaluate if this split still makes sense once they're all actually finished!
- sprites and animation
- z sorted animated ferris wheel and firework particle spam
- physics
- a little character running around bouncy ball physics hell
- tbd, but some kind of infinite procgen platformer is probable
- or zelda-like?
Overusing behaviours
Behaviours are one of the big "wins" of ferris over more traditional ecs - you don't need to create a whole new system for some throwaway one-off behaviour, and you can localise the logic along with the entity itself.
It's almost too easy to do this.
A downside is that you can overdo this and sort of forget that systems exist, even when they might be a better fit :) This is done as a deliberate example for the particle entity - the "transform" component should really be in its own system. Thankfully, migrating from a behaviour to a "proper" component is not much work when you need to. Just be mindful of this. A good middle ground is creating classes for behaviours you find yourself reusing.
No Audio, Yet
It's coming, but you can also get a really long way by just loading a few sound effects and playing them from the start upon something happening, and sticking some looping music in the background. I just haven't had time to source proper sound for the demos yet - or to pull a few handy sound utility things out of arco :)
No ui layout stuff
Ferris doesn't currently provide this, normally some kind of UI system will be created per-game. There are a lot of opinionated UI frameworks out there for you to integrate.
It's something we might explore in future!
Tilemap just does rendering
The provided tilemap system just renders a layer of the provided tilemap; it doesn't do collisions or anything else fancy.
This isn't an inherent limitation of ferris, just a limitation of the tilemap system written for this demo.
Just keyboard input in the demo
Keyboard is simplest to understand, and just supporting keyboard means minimal complexity setting up hooks etc.
I'm working through a more unified input solution for ferris at the moment as part of the development of Arco.
Game Wont Run, something about lib.batteries
or lib.ferris
Sounds like the libraries are missing, because they are included as submodules rather than as direct copies, so that they can be easily updated in future. If you're using git, clone the repository recursively, or initialise the submodules. Your search engine should be able to help with this.
If you're not using git, but you downloaded the zip from github - github doesn't package up the libraries when it's making that zip! You can unzip the .love file from itch instead, it has the libraries included.