This jam is now over. It ran from 2021-12-01 12:00:00 to 2022-01-01 12:00:00. View results

Rogue Like Engine Jam

The RLE Jam is a relaxed game jam focused around learning how to write a game & engine from scratch. You will be spending the month at your own pace making a rogue-like with a community of newcomers and experienced people. The rules are very minimal, so this jam is approachable to all skill levels. The extra points are there to make your life easier, to give you ideas and to help you not overcomplicate things.

If you find making a game and engine very daunting, don't be scared! It is going to be hard, but we have a list of resources & guides to help on your journey. This jam is not about you 100% finishing full game that you can release, it is about you learning a new set of skills and completing a prototype that you can build on in the future.

Join the discord server for any questions or to speak with others in the community before and while you jam!

As the host of this jam, I will also be doing my own jam entry. My developments will be streamed live on Twitch and you'll also be able to find the source code of my entry updated live on Github.

On January 2nd 4pm GMT, there will be a stream where I will play your jam submissions live!

Rules

  • Your game must use these design elements from the game Rogue:

    • Permadeath
    • Procedural generation & randomness
  • You must start your game after 1st December 12pm and submit an entry by 1st January 12pm in your time zone.

    • It is okay to practice and research before the jam starts.
  • You must submit a Windows, Linux or Web executable

  • You must make or use your own custom engine. Platform abstractions are okay to use.

    • No Unity, no Unreal, no Godot etc. (These are engines)
    • Raylib is okay, SDL2 is okay etc. (These are platform abstractions)
  • It is okay to use libraries and reuse code, just don't copy and paste a whole game and tweak it...

Extra Points

The extra points are there to make your life easier, to give you ideas and to help you not overcomplicate things. They do not contribute to any final score.

  • +1 point if you use the C programming language

    • +1 point for -Werror -Wfloat-conversion -Wpedantic
    • +1 point for -std=c99
    • +1 point for reaching 2000 lines of code in a single file.
  • +1 point if you use any of the following:

    • Raylib (Highly Recommended for folks new to C)
    • SDL2 (Recommended for people wanting to do more engine building)
    • OpenGL (Recommended for people wanting to do even more engine building)
    • Vulkan (Only the insane would use this for a jam... like heroseh)
  • +1 point for each of these elements from the game Rogue that you use in your game:

    • Grid based world (the player doesn't have to be fixed to a grid)
    • Ascii bitmap graphics, limited to 256 glyphs
    • Turn-based gameplay
    • Has dungeons (a series of connected rooms)
    • Visible player/ally stats (attack, defense etc)
  • +1 point for open sourcing your game

  • +1 point for streaming your development 3 times on twitch

  • +1 point for posting about your game on the Discord server or Twitter using #rlejam

Jamming to Learn C?

Awesome! Learning C for the first time can be very daunting at first, so we are going to give you some resources to get started.

I recommend watching this video series to help you understand C and how to get setup. It is very relevant and easy to follow. Video: Introduction to C by Travis Vroman

After I recommend checking out the Raylib website. Raylib has a real easy to use platform & graphics abstraction. Click on the 'examples' page and click on a few of the most basic 2D examples a spend a couple of minutes understanding them. Later on you can use this place to get snippets of code for your game.

Now you see how easy to use and powerful Raylib is, head over to the 'wiki' page and read the 'Working on Windows' or 'Working on GNU Linux' section to get setup on your system.

Jamming to Learn OpenGL?

Awesome! Since this is not your first go at C I recommend using a library like SDL2 to handle all the platform abstraction for you.

A good place to start is this template here Gist: SDL2 + OpenGL 3.2 Template. Once you get it compiling, it will open a window and render two triangles. It'll be good to read over the code here and try to understand as much as you can. Using the latest versions of OpenGL is fine nowadays, hardware support is everywhere. Knowing the latest OpenGL will help you understand Vulkan a little easier, when the time comes.

After you have got the template working and taken a look at the code. Now's your time to understand what is going on. Your next stop is at LearnOpenGL and follow the 'Getting Started' page. This is a fantastic resource and teaches you all the theory and the OpenGL API that you need to know. Follow the tutorials and test out what you read with the template to build your understanding.

OpenGL is very big, so when you feel like you have developed enough understanding to render what you need. Maybe you just need to know how to render some bitmap images in 2D. Then get working on your prototype and you always come back to the tutorials when you need to know more.

Jamming to Learn Vulkan?

Beware this is a very advanced route, I only recommend taking this route if you really understand OpenGL very well and have built a 3D prototype before. Vulkan is extremely manual and you are either spending a lot of your time manually changing things or building systems to automate the these manual tasks. Vulkan can be thought more as a graphics card API than a graphics API. You have far more control over the graphics card than OpenGL.

If you choose this route, for this jam I recommend you keep your graphics retro and fixed allocate your memory for a single bitmap image and the maximum size for your vertex, index, and uniform buffers.

There are some good Vulkan tutorials, the problem is all of them are in C++ and use vulkan.hpp :( So if you are using the C API, try and translate the C++ back to C when reading these.

Blog: Summary of Vulkan in 30 minutes

Blog: Really good tutorial but in C++

Procedural Generation Links

Video: Procedural Map Generation Techniques by Herbert Wolverson

Video: Theory of Perlin Noise by Holistic3d

Video: Stateless RNG by Andrew Clifton

Notes: Stateless RNG by Andrew Clifton

Video: Noise-based RNG by Squirrel Eiserloh

Video: Tile Map Generation Using Wave Function Collapse by Brian Bucklew

Wiki: List of algorithms

Submissions(2)

All submissions
·
Windows (2)

No submissions match your filter

Turn-Based Rougelike with 30 randomly generated levels
Strategy
An open-world adventure roguelike about traversing an endless number of randomly generated levels
Action