Getting Started
Welcome to Rawframe — a game creation platform where you build complete games in Places, publish them on your own servers, or export them as standalone titles. Built from scratch in C++20.
Install Rawframe
- Head to the Download page and grab the latest release for your platform (Windows, Linux, or macOS). Rawframe is free to download and play.
- Extract the archive to a folder of your choice.
- Run
rawframe_clientto launch the client.
That's it — no installer needed. The engine ships as a portable binary with all dependencies bundled.
System Requirements
| Component | Minimum | Recommended |
|---|---|---|
| OS | Windows 10 / Ubuntu 20.04 / macOS 12 | Windows 11 / Ubuntu 22.04 / macOS 14 |
| CPU | Dual-core 2.0 GHz | Quad-core 3.0 GHz |
| RAM | 4 GB | 8 GB |
| GPU | Vulkan 1.1 / Metal / DX11 | Vulkan 1.3 / Metal 3 |
| Storage | 500 MB | 1 GB |
Rawframe also supports Android (GLES 3.0+) and iOS (Metal, A12+).
Join a Server
Every Rawframe game runs on a community-hosted server — pick one and jump in.
- Launch
rawframe_client. - The server browser shows LAN servers automatically. Internet servers appear via the master server list.
- Click a server to connect, or use the console:
connect 1.2.3.4:27015.
You can also connect directly from the command line:
./rawframe_client -connect 192.168.1.100:27015
Create Your First Game
A Rawframe game lives in a Place — a self-contained project of Luau scripts, content, and configuration. Let's create a simple "Hello World" game.
Step 1: Create the project folder
hello_world/
place.json
scripts/
shared/
init.lua
Step 2: Write the manifest
Create hello_world/place.json:
{
"name": "hello_world",
"version": "1.0.0",
"description": "My first Rawframe game",
"author": "YourName",
"assets": [],
"scripts": {
"server": [],
"client": [],
"shared": ["scripts/shared/init.lua"]
}
}
Step 3: Write a script
Create hello_world/scripts/shared/init.lua:
rawframe.log("Hello from my first game!")
-- Spawn a cube and make it orbit
local cube = entity.create("HelloCube")
entity.set_position(cube, 0, 5, 0)
entity.set_mesh(cube, "cube")
local time = 0
hook.Add("Think", "hello_orbit", function(dt)
time = time + dt
local x = math.cos(time) * 5
local z = math.sin(time) * 5
entity.set_position(cube, x, 5, z)
end)
Step 4: Run it
Launch the server with your game, then connect with the client:
./rawframe_server -game hello_world
./rawframe_client
You should see "Hello from my first game!" in the console log, and a cube orbiting in 3D space.
Using the scaffold tool
For convenience, Rawframe ships with a project scaffold tool:
bash tools/create_game.sh my_awesome_game "Your Name"
This creates the full directory structure, a pre-filled place.json, and starter scripts. You can also create and manage Places visually in Rawframe Studio.
Next Steps
- Read the Creating Games guide for the full development workflow.
- Browse the API Playground for all 583+ Lua functions.
- Set up a Dedicated Server to host your game.
- Grab models, scripts, and sounds from the Asset Store.
- Explore Rawframe Studio for visual world building.