Scifi FPS made with Raylib
  • Odin 93.2%
  • Python 6.5%
  • Shell 0.3%
Akseli Lahtinen 7a9f73d1cd
Fix the weapon sprite scaling
Still not perfect but its much better
2025-05-17 03:23:43 +03:00
.github change funding for github 2022-08-07 17:32:06 +03:00
assets Use string comparison for selecting entities 2024-10-03 01:47:51 +03:00
other_assets move files 2023-05-14 00:04:05 +03:00
src Fix the weapon sprite scaling 2025-05-17 03:23:43 +03:00
tiled_map_template Use string comparison for selecting entities 2024-10-03 01:47:51 +03:00
.gitignore Fix Hud drawing 2024-02-04 02:46:29 +02:00
.kateproject.build Update kateproject.build 2024-07-24 03:26:13 +03:00
build.sh Improve build script 2025-03-21 22:34:00 +01:00
CONTRIBUTORS.md add weapon sprites, license and update contributions 2023-02-04 03:42:40 +02:00
LICENSE Update 'LICENSE' 2022-07-30 00:00:29 +02:00
odinfmt.json Format all the things 2024-08-22 01:16:48 +03:00
ols.json update ols 2024-09-29 03:37:49 +03:00
README.md Update readme 2024-11-03 16:42:20 +02:00
run.sh Add build and run separate scripts 2024-09-24 17:31:20 +03:00
screenshot.png update screenshot 2023-02-05 22:38:06 +02:00

aksdev-blog mastodon itchio ko-fi Liberapay patrons

Artificial Rage - a Scifi FPS

Screenshot of Artificial Rage

A simple FPS project (Wolfenstein 3D clone), made with Raylib and Odin programming language.

This project was originally a way for me to learn programming C, but it got rather tiresome to work with C.. So I moved the whole thing to Odin instead!

The Odin code is still somewhat messy since I basically "transpiled" all the C code to Odin. It will be cleaned over time. Hopefully.

Here's a blog post I wrote about the ordeal: https://akselmo.dev/posts/moving-from-c-to-odin/

I also hope that one day this game will be fun to play, and I want people to tinker with the source code, create mods, maps etc..

I also want this project to be a starting point for those who want to make their own simple FPS, or to be used as a learning tool.

Contributing

Currently not looking for contributions for code, but any other creative assets such as art is welcome!

If you find glaring bugs or issues in the code, I welcome issues and critique so I can fix them!

How to compile for different platforms

First, get the dependencies that Raylib uses: https://github.com/raysan5/raylib/wiki/Working-on-GNU-Linux

The game should run on anywhere where Raylib compiles.

Using Odin to build

Since this project uses Odin, it's rather simple to build and run.

The Odin version I am using is usually latest git master, but when there's a stable versions in Fedora packages, I will likely stick with those.

# For building
odin build ./src -collection:src=src -debug -out:./build/ArtificialRage

# For building and running
odin run ./src -collection:src=src -debug -out:./build/ArtificialRage

# There's also corresponding ./build.sh and ./run.sh files for the above commands

Make sure to run the game in same folder where assets folder is. These assets are needed for level textures and so on.

Debugging

You can use LLDB to debug. I use LLDB DAP with Kate and it works really well for this, but any debugger (visual or CLI) that uses LLDB should work.

TODO:

Check this project for TODO list: https://codeberg.org/akselmo/artificial-rage/projects/1358

Old C code

The old C codebase can be found from this commit: e93149492545cbc93971c07cc9e7a976ca5ff35e.