Ramen is a 2D game engine written in standard Forth.
- Built with Allegro 5, using AllegroForthKit.
- Tiled map support (partial)
- Sprite animation
- Multiple display list support
- Interactive commandline console
- ColorForth-inspired, minimalist code emphasizing flat data design.
- Fast rectangle collision detection
- Roundrobin multitasking
- Graphics primitives such as line, rectangle, ellipse, blit, text, etc.
- Publish facility
- Z-sorted rendering
- Basic sound support
- Data structure extensions - 2D arrays, stacks, node trees
See Ramen in Action
Want to watch some videos? Here's footage of examples from Ramen's predecessor. They're being updated to work on Ramen.
Also check out The Lady, a commercial game I wrote in Forth to prove it can be done. Large chunks of this game's engine live on in Ramen.
- Download SwiftForth. After installing add the bin folder to your path.
- Download or clone ramenExamples
- (If you download a release directly into your project, rename the folder to just
- Copy and rename
afkit/allegro5.cfg_to the project root, removing the underscores. Edit them if needed.
- Optionally get Komodo Edit and loading the project file - just hit F5 and the IDE should start.
- Otherwise load up SwiftForth, navigate to the project directory with
include session.f- the IDE should start.
- You can
ldany of these:
- Hit Tab to toggle between IDE and the running demo. Only
rectlandhas any controls.
- For a more advanced example check out LinkGoesForth. Note the IDE is active by default. The game won't receive input until you toggle out of it.
Links and Resources
- Forth: The Hacker's Language on HACKADAY
- Programming Forth by Stephen Pelc
- Forth Programming 21st Century on Facebook - The current active and growing forum on the web for modern desktop Forth programming (as opposed to on embedded or classic computers.)
- Allegro 5.2.3 Documentation
- Allegro.cc forum - A very helpful and fairly active community. And gladly, language-agnostic.
- The DPANS94 Forth Standard