Add some sprites
Fix typo causing bad lookups after id 10
Add some sprites
Beans is a flow based programming language built on the uxn virtual machine.
Beans' goal is to be a modular, explicit language that inspires play. Programs written in beans that are extremely decomposable, as the modules (called beans) are entirely independent from each other.
To install beans, first make sure uxn is installed, and it's in the path install uxn here
To assemble the main building blocks into bin/
:
make
This assembles beanc.rom
and uxnbean.rom
, that are used
to compile and run beans. Optionally
use make save
to copy them ~/roms/`.
Compile etc/hello.bpod
uxncli bin/beanc.rom etc/hello.bpod out.can
Run it
uxncli bin/uxnbean.rom out.can
To simplify the compilation/run steps, make provides some shortcuts to run
examples in the etc
folder.
make bin/snake.can runemu
This compiles etc/snake.bpod
to bin/snake.can
, then copies it to out.can.
Then runemu
triggers uxnemu ~/roms/uxnbean.rom out.can
.
Similarly runcli
will run the can without a window.
make bin/hello.can runcli
Note: make won't detect changes to nested dependencies now. To force a rebuild, either
pass the -B
flag, or include clean
in the make command.
For quick usage in the future in other directories, you can copy uxnbean.rom
and beanc.rom
to ~/roms
, or use make save
, then alias them in your .bashrc
/.zshrc
:
alias beanc='uxncli ~/roms/beanc.rom'
alias beancli='uxncli ~/roms/uxnbean.rom'
alias beanemu='uxnemu ~/roms/uxnbean.rom'
Now it's a bit easier to compile and run beans:
beanc etc/hello.bpod out.can
beancli out.can
Now you're ready to write some beans!
See the Overview Guide to get started working with the language.
See the Opcodes Reference for specifics on writing functions.
To understand the inner workings, src/rombuilder.tal
is a pretty short read,
this plus src/minimal-platform.tal
is what's used to run precompiled roms
(without the JIT compilation device).
My initial project to prove out this concept was written in javascript here: visual-cell-lang
For a walk-through of the initial ideas, checkout: Beans Genesis (May 2023)
Comparison with other frameworks: Evolution of Beans (July 2023).
Since then I've rewritten beans more formally and efficiently, without a built in visual interface. But the main concepts remain, and I hope to have a visual interface soon!