Last updated 2 months ago

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.

Getting Started

  1. Download SwiftForth. After installing add the bin folder to your path.

  2. Download or clone ramenExamples

  3. (If you download a release directly into your project, rename the folder to just ramen).

  4. Copy and rename afkit/kitconfig.f_ and afkit/allegro5.cfg_ to the project root, removing the underscores. Edit them if needed.

  5. Optionally get Komodo Edit and loading the project file - just hit F5 and the IDE should start.

  6. Otherwise load up SwiftForth, navigate to the project directory with cd and include session.f - the IDE should start.

  7. You can ld any of these: depth flies rectland island stickerknight

  8. Hit Tab to toggle between IDE and the running demo. Only rectland has any controls.

  9. 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