Thank you. We need to envision a way for both the external events, and the
program, to add objects to environments.
We could conceptualize "environments" as the labels, so that they are
synonymous.
Here is where we could use the "PUSH" concept: pushing would target any
arbitrary destination, it just also could happen to use the same string-id as
the room label, so that when the engine jumps to any label, it loads up the
current items in environment with the similarny named id!
I think that would be logical, even though some programmer could bristle about
it, but it is HIGHLY semantical and understandable to both humans and I
believe Gemma --- it/they/we don't need to memorize strange path-names, just
one common identifier to both a JMP-able destination, and for
retrieving/pushing/pulling any data from it?
I think this could work really well. What do you think?
We also need to conceptualize "inventory" -- and if we generalize/abstract the
inventory ALSO as just an arbitrary "name" that doubles an an address/id, one
could just as a concept: pull gold from environment, and push it into
inventory? Or -- even more abbretivated and optimized -- pulling ALWAYS
defaults to inventory, if not otherwise defined?
One could: pull gold (into inventory from environment, defaults: to inventory,
from environment), pull gold from bag, pull gold from environment into bag,
pull gold from bag into environment
I think this could be not only a real saver to Gemma's context, but also as a
basis for any general programming, not only games, in a way that Gemma or any
other light weight model, or human, can easily understand?
Combined with the fact, that the VM could, and should, save the state of the
program along with all the objects in any of the "environments" ("inventory"
doubles as an environment -- from gold's point of view, the default
"environment" is that programs/player's inventory, if we ever -- and we could
and should -- develop a generic interaction_repl that can be instantiated by
setting the "current player/user" to any object -- but let's not get ahead of
ourselves -- however when we get all the basic stuff done, that could turn out
to be a trivial implementation)
Anyhow, back to testing:
==[ Terminal ]==
--- FSO Compiler Pipeline ---
[1] Reading source intent from game_idea.txt...
[2] Compiling via local cluster...
[3] Artifact saved to game_idea.md. Booting VM...
========================================
You are on a beach. To the north is a jungle, to the east is a cave.
>B
[ENV EVENT]: A stray wooden boat washes up onto the beach, carried by the
tide.
look boat
[SYSTEM] You look the boat...
> The external environment responds: It is covered in barnacles and smells of
salt. It belongs to the Ocean Service, not the VM!
> north
You are in a dense jungle. To the south is the beach, to the west is a temple.
> west
You are in an ancient temple. To the east is the jungle.
> east
You are in a dense jungle. To the south is the beach, to the west is a temple.
> beach
I do not understand.
You are in a dense jungle. To the south is the beach, to the west is a temple.
> south
You are on a beach. To the north is a jungle, to the east is a cave.
> east
You are in a dark cave. To the west is a passage.
>B
==[ /Terminal ]==