README

Last updated 3 months ago

Ramen is a 2D game engine written in standard Forth.

1.0 Documentation

Status:

2.0 is in development and it fixes and improves on a lot. I am working on a rewrite of my Zelda clone which runs on 2.0.

Setup (new)

This is the package repo, which depends on other packages. Grab the Distribution which includes all the dependencies at the correct versions.

Download SwiftForth

(GForth support is working on Linux, if anyone can help get it working on Windows please get in touch (post an issue or send me a message on Twitter.)

Features

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

https://www.youtube.com/playlist?list=PLO8m1cHe8erpbejS5yZVJAsQNI4Lmpo_Y

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 (OLD!!! will update when 2.0 releases)

  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.

Help

Links and Resources

Projects