Game Engine: Amble Release 0.66.0 (Feedback please!)

Announcing: Amble Release 0.66.0

Amble is a set of crates comprising a game engine, DSL, demo game, and suite of tools for developing interactive fiction worlds -- 100% in Rust (except for a couple of Pest grammars and the *.amble DSL source files for the demo). Screenshots of early gameplay and a bit of the DSL (using the accompanying Zed language extension) are below.


Just a single user suggestion led to most of the improvements in this version, which adds support for multiple games/worlds in a chooser and a visibility system for items and scenery. I'd really appreciate more ideas or comments on the engine or the demo game itself (which is an absurdist romp with bunches of easter eggs...)

Take a look and try it out, if you don't mind!

Main Amble repo on GitHub

2 Likes

Thanks for your interest, Jonas -- but my project is a text-based game engine that runs in a terminal, so I don't think it would fit with your operating system project, except to run on top of a terminal and shell running within your OS!

Best,
David

Okay, great to hear from you. Indeed i am interested.

That is exactly my point, your game needs a Terminal. And the Awesome Part about it is, it actually just needs a Terminal.

Shell2 gives you the entry, the TRUE OS gives you the IO. The Game stays as is.
The idea was mainly to use the App - Approach that i had but actually for that, we don't really have a new thing achieved that we could both like.

Text based is of course a big lie. The entire console is a big lie on desktop. Let me explain:

For a single letter like B you need B as a Font (somehow the shape of B in a Format or you end up with no System) the B needs to get onto a Screen these days. B needs to be loaded, B needs to be Rasterized, B needs to be Meshed, B needs to be a GPU TextureID uploaded so you can draw B B B ,afterwards you need complex Layout to even have B in color. Okay that is by far not all there is to a simple B in your Shell right now. There is a lot more going on, just to have 1 Letter.

Pressing B on your Keyboard may be fast, but i sometimes forget millions of ops, to prepare for that.

So if you'd not want to do any of that, im completely Okay with that. But think of it from the Point of Possibility Space. My idea is not to Remove from your Game but to see TOGETHER: What is a thing about your Game, that if you had ANY API for text: Would give you features or stuff.

Immediate new Spaces to explore would be, go give your game a side Window, that is like a Map we render with SVG commands.

Another idea is to have my shell inside the UI, then look at the Font API and you will be able to do to text soon, what you tough maybe is completely unachievable.
You would like to have overlay API for transparent rotating Text; or perhaps even Shader solutions to make it performant, I would like to do that. Important top level things to look at right now, to not drift in terms of low tier ideas:

Do you need to "refresh" the entire page at certain times?
My best idea is actually that perhaps i do already some Multiplexing in the Shell Backend, dynamical: A single Shell can Swap out its Read Buffer in my OS. That must be to some degree an thing, your game needs?
Or something that would require a ton of work on my side only: the Font-Anywhere API?
That you could then use in a "quasi" shell that just pretends its still rows and lines with cells -> like our operating system shells do when we use actual UI sessions.
We could bust that!

Mate in my Shell is Raining Matrix. And you would Love that.