Welcome to Retro FPS Studio, the game making tool for raycasting retro fun! It produces true 2.5D, oldschool goodness alike to the original DOOM or Hexen DOS games:
Note: this public, partial copy of RFS2 is sadly NOT free software and has restrictive terms, see the license for explanations. Hopefully, you still find it informative, and I apologize that it's not more liberal.
To get started, obtain Retro FPS Studio from the website.
To get help with RFS2, visit the community spaces with other creators!
There is a technical FAQ for some basics on how RFS2 Engine works.
RFS is written in C and Lua. The core renderer, physics, and resource handling are in C for speed, while Lua handles the higher level program UI.
Here are some interesting locations:
-
rfsc/
folder holds the core C engine-
rfsc/main.c
contains the program entrypoint. -
rfsc/scriptcore.c
sets up and launches the lua code. -
rfsc/roomcam.c
has the camera code, which includes perspective calculation, and calls to the 2.5D raycast renderer inrfsc/roomcamblit.c
. -
rfsc/room.h
holds the lowlevel map structure definitions of the rooms. -
rfsc/roomserialize.c
takes room data from Lua's so-called tables, or dumps it back to them, for serialization of levels.
-
-
rfslua/
folder contains the Lua UI, higher program logic, and gameplay code.rfslua/rfseditor/titlescreen.lua
sets up and handles the opening screen of RFS when you launch it.