7-day Roguelike, 2021 (Success)

Overview

SecBot - 7 Day Roguelike Challenge (2021)

Play in your Browser. Chrome, Firefox or similar recommended. It's also published on itch.io.

A tutorial series will follow soon.

What is a 7DRL?

The 7-Day Roguelike Challenge is one of my favorite game jams. The challenge is to make a roguelike (or "roguelite" if you feel like using a more relaxed definition) in a week. It's actually a little flexible, but you have seven days to make something playable. You can start with an existing engine, re-use existing code, or start from scratch. Use whatever language you like. Finishing a game is much harder than making part of one, so it's a great discipline to work on - and it feels great to release something, even if its not likely to be the next big hit.

What is SecBot?

I've been reading the Murderbot Diaries series of books by Martha Wells. Great young-adult space opera (it's been a while since I was a young adult, but still a great category). I really liked the security bot, part man, part machine. So I used the basic concept to structure the game.

The idea behind SecBot is that an outpost has ceased communications, so the morally dubious Bracket Corporation dispatch a security bot to find out what happened. Upon arrival, it becomes clear that things aren't going well for the colony - so the player rushes around collecting colonists and shepherding them back to the spaceship. I tried to bake some narrative/flavor into the game, and create a fun game you can enjoy over a coffee-break.

How do I run this thing?

Either launch the browser version or download either the .exe file or the Linux binary. They are statically linked (written in Rust) and include everything you should need to run the game.

Alternatively, you can clone this repo and run the game with cargo run or cargo run --release.

Updates

It isn't really in the spirit of a 7DRL to update it after the final release. I'll make a separate branch for any post-release changes (including cleanup for the accompanying tutorial posts). I'm hoping that the source and tutorial are useful to you.

Design Constraints

In addition to the "must be created in 7 days" rule from the jam, I chose to adopt a few more constraints for this project:

  • The project must work in WASM/Web Assembly and run well in a browser.
  • That implies a single-threaded constraint (WASM threads work strangely), so the project doesn't use any concurrency.
  • Since I'm single-threaded, there wasn't a lot of point in using Legion's scheduler. It's biggest benefit is that it relatively effortlessly adds concurrency to your game. The cost is that you wind up writing a fair amount of boilerplate (admittedly, the boilerplate is shrinking in each release) - and are stuck with a relatively rigid setup. So I ditched the scheduler completely and used a "functions, functions everywhere" approach.
  • I tried to limit myself to techniques that can be gleaned from Hands-On Rust, my book about learning Rust and Rust Game Development. This constraint exists so that I can refer to the book when I present the game as a tutorial.
You might also like...
POC for a Roguelike UI/Window Manager

Minimal POC for a Roguelike UI Manager This repo is a proof of concept for a roguelike UI and a generally expandable template for a rogue/df-like. Use

Just a little game I made in a day to try out the WASM-4 fantasy console.

Dodgeball This is just a little game I made in a day to try out the WASM-4 fantasy console. Play it here. The palette is SODA-CAP by Cappuchi. License

a day-planner/calendar app based on egui
a day-planner/calendar app based on egui

Malakal Malakal is a day planner application. I crafted it because I was not able to find a comfortable calendar application for Linux. I myself have

Trying to solve Advent of Code 2022 in 25 different languages (1 day = 1 language)

Advent of Code 2022: 15/25 langs I’ll try to solve this Advent of Code using different language for each day. Any programs needed to run the code will

Advent of Code, different language each day

I forgor 💀 Advent Of Code 2022 Using a different language each Day!! (For obvious reason some solutions might be absolute shitcode, since I'm learnin

Adapt the screen's color spectrum according to the hour of the day in order to improve your sleep

circadianlight What It Is Circadian Light is a program, currently only working on Linux with X, that controls the color spectrum of your screen accord

Bongo Copy Cat wants to be involved in everything you do but instead just imitates you hitting your keyboard all day. After all it's just a cat.
Bongo Copy Cat wants to be involved in everything you do but instead just imitates you hitting your keyboard all day. After all it's just a cat.

Bongo Copy Cat Introduction Bongo Copy Cat wants to be involved in everything you do but instead just imitates you hitting your keyboard all day. Afte

Convert a unix timestamp (seconds) to a struct {year, month, day, hour, minute, second, weekday}.

uts2ts uts2ts is a simple function that does only one thing: It converts a unix timestamp to something slightly more useful. ;-) So why then? Well, it

A simple cli tool for generating quotes in your terminal from Kanye west. Start the day out strong.
A simple cli tool for generating quotes in your terminal from Kanye west. Start the day out strong.

Kanyey A simple cli tool for generating quotes in your terminal from Kanye West. Install Just do cargo install kanyey and be blessed. Bonus: throw it

Training material for the KDAB training day 2023

Rust & Qt workshop This workbook contains the material for a Rust & Qt workshop held by Ferrous Systems, developed and held together with KDAB. It is

Programming language just for fun, will kill LUA some day.

Loom Programming language just for fun, will kill LUA some day. Currently development of this language is algorithm driven. I'm trying to implement va

A very elaborate embedded Valentine's day gift
A very elaborate embedded Valentine's day gift

Morse Gadget An overly-complicated Valentine's day gift (worth it). PCB design and code have been entirely done by me. SPECS: Custom hand-held pcb des

2021 牛气冲天

2021 Rust 牛气冲天 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

2021 春季黑客松

Demo Day 演示队伍注意事项 每一队伍演示时间为 6 分钟,然后会有 2 分钟评委们提问及点评。评委们根据以下维度打分: 产品完成度 技术难题 商业价值 创新性 用户体验 演示时讲个好故事,所以尽量演示: 项目源起,背后的市场应用,现在做到什么程度,未来半年到一年有什么发展计划。 在黑客松期间

Voice over the BitcoinSV protocol (made for CoinGeek 2021)

The BitcoinPhone Voice over the Bitcoin protocol. Setup Instructions for Mac Install rust https://www.rust-lang.org/tools/install Install homebrew htt

Raytracer tutorial for PPCA 2021, written in Rust.
Raytracer tutorial for PPCA 2021, written in Rust.

Pseudo Photograph Company of ACM 工科和ACM的朋友们都已结课!看看这些了不起的艺术品: 工科 ACM ACM伪摄影公司,简称PPCA,于2021年成立 😉 这个项目的主要工作是使用Rust语言实现一个光线追踪渲染器。以这个形式,你能通过学习一门新的(而且漂亮的)语

Sombervale, a Rusty Jam 2021 game
Sombervale, a Rusty Jam 2021 game

Sombervale Made in 7 days for Rusty Jam 2021. About It is dark and spooky in Sombervale park. There are shadow creatures all around you. Run away with

Checks your files for existence of Unicode BIDI characters which can be misused for supply chain attacks. See CVE-2021-42574

BIDI Character Detector This tool checks your files for existence of Unicode BIDI characters which can be misused for supply chain attacks to mitigate

A game for the game jam
A game for the game jam "1-Button Jam 2021"

One click ninja A game for the game jam "1-Button Jam 2021" written in Rust with the Bevy engine. A rhythm game, where you play a soldier that can def

Releases(1.0.0)
Owner
Herbert "TheBracket"
Developer of RLTK and Nox Futura open source projects, and consultant on Rust, C++, TypeScript, C#, Java, Mikrotik and anything else you want to hand my way!
Herbert
tkn-watch - watch a PipelineRuns on its way to success or failures

tkn-watch - watch a PipelineRuns on its way to success or failures tkn-watch is a simple extension to the tkn command line tool that watches a Pipelin

Chmouel Boudjnah 11 Dec 15, 2022
☃️ Learning Rust with AoC 2021 🎄https://adventofcode.com/2021/

?? Andrei's 2021 Advent of Code ?? Learning Goals Rust basics (vectors, arrays, math, etc.) Rust basic CLI Rust linear algebra and ndarrays (e.g., htt

Andrei Bârsan 1 Feb 2, 2022
A roguelike game in Rust

A fantasy deathcrawl in Rust Work in progress. To run, with Rust compiler and Cargo package manager installed: cargo run --release When building on W

Risto Saarelma 347 Nov 21, 2022
ASCII terminal hexagonal map roguelike written in Rust

rhex Contributors welcome! Rhex is looking for contributors. See Contributing page for details. Introduction Simple ASCII terminal hexagonal map rogue

Dawid Ciężarkiewicz 137 Dec 2, 2022
Rust bindings for libtcod 1.6.3 (the Doryen library/roguelike toolkit)

Warning: Not Maintained This project is no longer actively developed or maintained. Please accept our apologies. Open pull requests may still get merg

Tomas Sedovic 226 Nov 17, 2022
A multiplayer web based roguelike built on Rust and WebRTC

Gorgon A multiplayer web-based roguelike build on Rust and WebRTC. License This project is licensed under either of Apache License, Version 2.0, (LICE

RICHΛRD ΛNΛYΛ 2 Sep 19, 2022
darkforest is a console and web-based Roguelike written in Rust and WebAssembly.

darkforest darkforest is a console and web-based Roguelike written in Rust and WebAssembly. Key Features TBA Quick Start TBA How To Contribute Contrib

Chris Ohk 5 Oct 5, 2021
Downdelving is an experimental roguelike written in Rust.

Downdelving Downdelving is an experimental roguelike written in Rust. It's built upon the base supplied by Bracket's Rust Roguelike Tutorial. It's a r

Nathan Douglas 1 Nov 6, 2021
The Roguelike Toolkit (RLTK), implemented for Rust.

The Roguelike Toolkit (RLTK), implemented for Rust.

Amethyst Foundation 1.1k Jan 6, 2023
Roguelike Game in Rust using macroquad.rs

Roguelike Game in Rust using macroquad.rs Introduction Welcome to our roguelike game developed in Rust! This project aims to provide an engaging gamin

Andrea Pollini 11 Aug 1, 2023