All Projects → indiv0 → Colonize

indiv0 / Colonize

Licence: gpl-3.0
A Dwarf Fortress/Rimworld-like game written in Rust

Programming Languages

rust
11053 projects

Labels

Projects that are alternatives of or similar to Colonize

Epicsurvivalgameseries
Third-person Survival Game for Unreal Engine 4 (Sample Project)
Stars: ✭ 2,389 (+1205.46%)
Mutual labels:  game
Ballistica
The BombSquad Game Engine
Stars: ✭ 180 (-1.64%)
Mutual labels:  game
Expo Phaser
Build awesome 2D games with Phaser.js and Expo
Stars: ✭ 182 (-0.55%)
Mutual labels:  game
Gridgarden
A game for learning CSS grid layout 🥕
Stars: ✭ 2,331 (+1173.77%)
Mutual labels:  game
Awesome Discord
🕹 A curated list of awesome things on Discord.
Stars: ✭ 180 (-1.64%)
Mutual labels:  game
Loco Answers
Open Source Android App for answers in TRIVIA GAMES
Stars: ✭ 180 (-1.64%)
Mutual labels:  game
Poco Sdk
Stars: ✭ 176 (-3.83%)
Mutual labels:  game
Snake Game
Terminal-based Snake game
Stars: ✭ 183 (+0%)
Mutual labels:  game
Winter
2020上半年超长寒假呆家学习了半年C语言(大一下)的时候写的一些小游戏/小程序,那时候觉得用C从零开始模拟一些东西挺有趣,就没有参考其他教程或者游戏,通过自己思考用基础语法写出了这些写代码,规范性只能说是相当于我大一的标准,欢迎分享,学习和交流
Stars: ✭ 181 (-1.09%)
Mutual labels:  game
Fluttergames
Flutter app for purchasing and renting games.
Stars: ✭ 182 (-0.55%)
Mutual labels:  game
Behaviac
behaviac is a framework of the game AI development, and it also can be used as a rapid game prototype design tool. behaviac supports the behavior tree, finite state machine and hierarchical task network(BT, FSM, HTN)
Stars: ✭ 2,294 (+1153.55%)
Mutual labels:  game
Htframework
Unity HTFramework, a rapid development framework of client to the unity.
Stars: ✭ 179 (-2.19%)
Mutual labels:  game
Fun
操作系统,数据结构,网络,python,go,web
Stars: ✭ 181 (-1.09%)
Mutual labels:  game
2048
Famous 2048 Game in Flutter
Stars: ✭ 178 (-2.73%)
Mutual labels:  game
Tilt Game Android
Stars: ✭ 182 (-0.55%)
Mutual labels:  game
Civone
An open source implementation of Sid Meier's Civilization.
Stars: ✭ 176 (-3.83%)
Mutual labels:  game
Salien Script Js
👽 A easy to install, run and update Node.js script for the Steam salien mini-game.
Stars: ✭ 181 (-1.09%)
Mutual labels:  game
Steamsummerminigame
Steam Summer Sale 2015 - Auto-play Optimizer w/ Auto-Click
Stars: ✭ 184 (+0.55%)
Mutual labels:  game
Haxegon
A haxe programming library for beginners. Powered by OpenFL and Starling.
Stars: ✭ 182 (-0.55%)
Mutual labels:  game
Devil Glitches
My entry for the js13k 2016 game jam
Stars: ✭ 181 (-1.09%)
Mutual labels:  game

colonize

A Dwarf Fortress/Rimworld-like game written in Rust.

Live Demo (v0.7.0; Controls) https://colonize.rs/0.7.0/
license

See the changelog for what's new in the most recent release.

colonize-screenshot Colonize v0.3.0 terrain. Source: Carter Anderson

Table of Contents

About

I've always wanted to create a game like Dwarf Fortress or Rimworld. A game with emergent complexity, engrossing simulation, and the potential for fun that comes from that.

This is my attempt to build that game.

My view on what exactly this game should be like is unclear, and at the moment it's mostly a technical experiment and personal exploration of game development.

The best way I can summarize my current vision is that this game should provide a real-time simulation of a world in which individual entities (like dwarves in Dwarf Fortress) perform actions to satisfy goals set by the player (e.g. "build a house", "harvest some wood", "mine some stone"). The gameplay will focus on getting a player to build a fort/base and protect it from threats. These threats may be the elements, monsters, or various catastrophes. For now, the game is intended to be single-player only.

Currently, the game only generates some basic 3D voxel terrain from fractal brownian motion. My next step is probably to add some basic AI entities ("dwarves") and have them walk around the map and harvest some resources.

Controls

The controls are a bit wonky right now, and they vary depending on whether you're playing the game in the browser (WASM) or on your machine (native).

Currently, the controls are focused on moving around the map and regenerating the terrain with new parameters.

  • Movement: W/A/S/D/Q/E
  • Moving a Dwarf: Select them with the mouse first, then use Z/X/C/V/B/N
  • Orientation: Arrow Keys or Numpad Arrows (WASM); Mouse (Native)
  • Terrain:
    • Y-Offset (+/- 1): U/H
    • Frequency (+/- 0.001): I/J
    • Lacunarity (+/- 0.1): O/K
    • Persistence (+/- 0.1): P/L
  • Slicing: -/= to increase/decrease the Y-Level
  • Misc:
    • Spawn 10 more dwarves: T

Compiling & Running From Source

Prerequisites

Enable Fast Compiles (Optional)

For fast iterative compiles, follow the instructions in the Bevy book on how to setup fast compiles.

Compiling

Build & run:

cargo run --release

Compiling for WASM

Setup:

rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli

Build & run:

cargo build --release --target wasm32-unknown-unknown --no-default-features --features wasm
wasm-bindgen --out-dir target --target web target/wasm32-unknown-unknown/release/colonize.wasm
# Build the CSS (which uses TailwindCSS)
yarn install
make styles

Serve project dir to browser. i.e.

make serve

Contributing

Contributions are always welcome! If you have an idea for something to add (code, documentation, tests, examples, etc.) fell free to give it a shot.

Please read CONTRIBUTING.md before you start contributing.

License

Portions of the code come from MIT-licenced projects. Where possible, the original copyright notices and licenses are included as headers in those files. All modifications to these works are licensed under the GPLv3 terms below.

Colonize is distributed under the terms of the GPLv3 license or later.

Copyright (C) 2016-2021 Nikita Pekin and colonize contributors

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

See LICENSE for details.

Credits

This project is possible due to the excellent work of many developers. Check out the some of the giants whose shoulders we stand on:

The list of contributors to this project can be found at CONTRIBUTORS.md.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].