• Stars
    star
    135
  • Rank 260,111 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 5 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Baba Is You simulator using C++ with some reinforcement learning

baba-is-auto

License Windows Ubuntu macOS

codecov Codacy Badge CodeFactor

Quality Gate Status Lines of Code Maintainability Rating Reliability Rating Security Rating

baba-is-auto is Baba Is You simulator using C++ with some reinforcement learning. The code is built on C++17 and can be compiled with commonly available compilers such as g++, clang++, or Microsoft Visual Studio. baba-is-auto currently supports macOS (10.14 or later), Ubuntu (18.04 or later), Windows (Visual Studio 2017 or later), and Windows Subsystem for Linux (WSL). Other untested platforms that support C++17 also should be able to build baba-is-auto.

What is "Baba Is You"?

Baba Is You is an award-winning puzzle game where you can change the rules by which you play. In every level, the rules themselves are present as blocks you can interact with; by manipulating them, you can change how the level works and cause surprising, unexpected interactions! With some simple block-pushing you can turn yourself into a rock, turn patches of grass into dangerously hot obstacles, and even change the goal you need to reach to something entirely different.

Key Features

  • C++17 based Baba Is You library
  • Various RL environments based on OpenAI Gym
  • GUI simulator using pygame
  • C++ and Python API

Environments

  • Action Space

    • UP
    • DOWN
    • LEFT
    • RIGHT
  • Reward

    • Failed : -100 points
    • Solved : +200 points
    • Each action : -0.5 points

baba-babaisyou-v0

Algorithms

baba-outofreach-v0

baba-volcano-v0

Quick Start

You will need CMake to build the code. If you're using Windows, you need Visual Studio 2017 in addition to CMake.

First, clone the code:

git clone https://github.com/utilForever/baba-is-auto.git --recursive
cd baba-is-auto

C++ API

For macOS or Linux or Windows Subsystem for Linux (WSL):

mkdir build
cd build
cmake ..
make

For Windows:

mkdir build
cd build
cmake .. -G"Visual Studio 15 2017 Win64"
MSBuild baba-is-auto.sln /p:Configuration=Release

Python API

Build and install the package by running

pip install -U .

Docker

docker pull utilforever/baba-is-auto:latest

Documentation

TBA

How To Contribute

Contributions are always welcome, either reporting issues/bugs or forking the repository and then issuing pull requests when you have completed some additional coding that you feel will be beneficial to the main project. If you are interested in contributing in a more dedicated capacity, then please contact me.

Contact

You can contact me via e-mail (utilForever at gmail.com). I am always happy to answer questions or help with any issues you might have, and please be sure to share any additional work or your creations with me, I love seeing what other people are making.

Acknowledgement

I would like to thank Arvi "Hempuli" Teikari for allowing me to develop this project.

License

The class is licensed under the MIT License:

Copyright ยฉ 2020-2023 Chris Ohk.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Baba Is You was created by Arvi "Hempuli" Teikari, a Finnish game developer known for other titles such as Environmental Station Alpha and Stumblehill.

More Repositories

1

game-developer-roadmap

Roadmap to becoming a game developer in 2022
Rust
4,644
star
2

awesome-cafe

โ˜• ๋ชจ๊ฐ์ฝ”ํ•˜๊ธฐ ์ข‹์€ ๊ตญ๋‚ด ์นดํŽ˜ ๋ฆฌ์ŠคํŠธ
1,099
star
3

RosettaStone

Hearthstone simulator using C++ with some reinforcement learning
C++
642
star
4

2023-MatKor-Rust-Interpreter

2023๋…„ ๊ณ ๋ ค๋Œ€ํ•™๊ต MatKor ์Šคํ„ฐ๋”” - Rust ๊ธฐ์ดˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ + ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋งŒ๋“ค๊ธฐ
Rust
339
star
5

modern-cpp-tutorial

A curated list of Modern C++ articles, examples, tutorials, frameworks, libraries, and shiny things.
C++
320
star
6

rl-paper-study

Reinforcement Learning paper review study
202
star
7

2022-Korea-Rust-Backend

2022๋…„ ๊ณ ๋ ค๋Œ€ํ•™๊ต Google Developer Student Clubs ์Šคํ„ฐ๋”” - Rust ๊ธฐ์ดˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ + Backend ๊ฐœ๋ฐœ
Rust
151
star
8

2022-Make-Interpreter-Rust

2022๋…„ ์˜จ๋ผ์ธ ์Šคํ„ฐ๋”” - Rust๋กœ ๋งŒ๋“œ๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ
Rust
141
star
9

Cubby-v1

Voxel-based game client (based on AlwayGeeky's Vox)
C++
110
star
10

modern-cpp-next

Modern C++ Next: Comprehensive Guide for C++20
Shell
107
star
11

CubbyFlow-v1

Voxel-based fluid simulation engine for computer games
C++
88
star
12

cpp-developer-roadmap

Roadmap to becoming a C++ developer in 2020
76
star
13

2023-UNIST-Rust-Minecraft

2023๋…„ UNIST HeXA ์Šคํ„ฐ๋”” - Rust ๊ธฐ์ดˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ + ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ ๋งŒ๋“ค๊ธฐ
Rust
75
star
14

CubbyCalc

Simple Console Calculator using C++
C++
69
star
15

2021-KAIST-Include-AlphaGoZero

2021๋…„ KAIST ๋™์•„๋ฆฌ Include ์Šคํ„ฐ๋”” - AlphaGo์™€ AlphaGo Zero๋ฅผ ํ™œ์šฉํ•œ ์ธ๊ณต์ง€๋Šฅ ๋ฐ”๋‘‘
Python
66
star
16

awesome-restaurant

๐Ÿด ๊ตญ๋‚ด ๋ ˆ์Šคํ† ๋ž‘ ๋ง›์ง‘ ๋ฆฌ์ŠคํŠธ
63
star
17

2022-INFCON-Rust-CrossPlatform

INFCON 2022 - Rust ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐœํ‘œ ์ž๋ฃŒ ๋ฐ ์˜ˆ์ œ ์ฝ”๋“œ
Rust
58
star
18

BOJ

About Baekjoon Online Judge problem solving by Rust
Rust
53
star
19

Runeterra

Legends of Runeterra simulator using C++ with some reinforcement learning
C++
49
star
20

2022-CppKorea-DataStructure

2022๋…„ C++ Korea ์—ฌ๋ฆ„ ์Šคํ„ฐ๋”” - C++ ์ž๋ฃŒ๊ตฌ์กฐ
C++
49
star
21

CubbyTower

Simple tower defense game using C++ with Entity Component System (ECS)
C++
48
star
22

2019-OSS-Summer-RLBasic

2019๋…„ OSS ๊ฐœ๋ฐœ์ž ํฌ๋Ÿผ ์—ฌ๋ฆ„ ์บ ํ”„ - ๊ฐ•ํ™”ํ•™์Šต ๊ธฐ์ดˆ ๊ด€๋ จ ์˜ˆ์ œ ์ฝ”๋“œ
Python
45
star
23

SnowSimulation

Snow simulation based on Disney's "The material point method for Snow Simulation" paper using Qt and CUDA
C++
39
star
24

PolyMapGenerator

Polygonal map generator for games. Generates island maps with a focus on mountains, rivers, coastlines.
C++
37
star
25

2022-Make-Compiler-Rust

2022๋…„ ์˜จ๋ผ์ธ ์Šคํ„ฐ๋”” - Rust๋กœ ๋งŒ๋“œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ
35
star
26

DirectX

Visual Studio 2015 version of Frank D. Luna's book "Introduction to 3D Game Programming using DirectX 11"
C++
35
star
27

2023-SNU-Rust-CrossPlatform

2023๋…„ ์„œ์šธ๋Œ€ํ•™๊ต ์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€ ํŠน๊ฐ• - Rust ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐœํ‘œ ์ž๋ฃŒ ๋ฐ ์˜ˆ์ œ ์ฝ”๋“œ
Rust
33
star
28

rust-oss-template

Rust Open Source Software Template
Rust
33
star
29

2024-Konkuk-Rust-Roguelike

2024๋…„ ๊ฑด๊ตญ๋Œ€ํ•™๊ต Google Developer Student Clubs + EDGE ์Šคํ„ฐ๋”” - Rust ๊ธฐ์ดˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ + ๋กœ๊ทธ๋ผ์ดํฌ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ
Rust
33
star
30

PokeMaster

Pokรฉmon battle simulator using Rust with some reinforcement learning
Rust
32
star
31

SimpleRPG-Text

Text-based Simple RPG using C++
C++
32
star
32

OpenGLTutorial

OpenGL Study with Examples and Homeworks
C
31
star
33

CubbyDNN

Deep learning framework using C++17 in a single header file
C++
30
star
34

2021-HYU-HAI-RLBootCamp

2021๋…„ ํ•œ์–‘๋Œ€ํ•™๊ต ๋™์•„๋ฆฌ HAI ์Šคํ„ฐ๋”” - ๊ฐ•ํ™”ํ•™์Šต ๋ถ€ํŠธ ์บ ํ”„
Python
30
star
35

PBRStudy

Physically Based Rendering, 2nd Edition Study
29
star
36

2024-SNU-Rust-Application

2024๋…„ ์„œ์šธ๋Œ€ํ•™๊ต SCSC + WaffleStudio ์Šคํ„ฐ๋”” - Rust ๊ธฐ์ดˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ + ํฌ๋กœ์Šคํ”Œ๋žซํผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
29
star
37

polarlight

A Machine Learning Framework for High Performance written in Rust
Rust
28
star
38

ProceduralContentGeneration

Sample code repository for 'Procedural Content Generation for C++ Game Development'
C++
27
star
39

RTRStudy

Real-time rendering, 4th edition study
27
star
40

GPU-Pathtracer

GPU Pathtracer from scratch using C++ and CUDA
26
star
41

RosettaStone-GUI

GUI program of RosettaStone
C++
24
star
42

CGStudy

Computer Graphics study from scratch to Neural Rendering
24
star
43

ProgrammingPractice

Programming Practice Examples
C++
24
star
44

2021-CoMu-ECS-Development

๊ฒŒ์ž„์ด๋ž‘ ๋ฌด๊ด€ํ•ฉ๋‹ˆ๋‹ค๋งŒ ๋ฐ‹์—… - ECS ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ ๋ฐœํ‘œ ์ž๋ฃŒ ๋ฐ ์˜ˆ์ œ ์ฝ”๋“œ
C++
23
star
45

utilForever

My Github Profile
23
star
46

CubbyCity

Analyze the causes of urban engineering problems such as gentrification
C++
23
star
47

rust-wasm-ts-template

A template of Rust + WebAssembly with TypeScript (๐Ÿฆ€ + ๐Ÿ•ธ๏ธ = ๐Ÿ’–)
JavaScript
23
star
48

Diablopp

Modern C++ version of Diablo - magic behind the 1996 computer game
21
star
49

2021-JBSH-Summer-RLBasic

2021๋…„ ์ „๋ถ๊ณผํ•™๊ณ ๋“ฑํ•™๊ต ์—ฌ๋ฆ„ ํŠน๊ฐ• - ๊ฐ•ํ™”ํ•™์Šต ๊ธฐ์ดˆ
Python
21
star
50

2023-MatKor-Rust-Compiler

2023๋…„ ๊ณ ๋ ค๋Œ€ํ•™๊ต MatKor ์Šคํ„ฐ๋”” - Rust๋กœ ์ปดํŒŒ์ผ๋Ÿฌ ๋งŒ๋“ค๊ธฐ
20
star
51

zero-to-production

The code of Zero To Production In Rust for exercise
Rust
20
star
52

introduction-to-rust

The book "Introduction to Rust" for beginners
20
star
53

DiscoveringTheModernCpp

<๋ชจ๋˜ C++ ์ž…๋ฌธ> ์˜ˆ์ œ ์ €์žฅ์†Œ
C++
19
star
54

onboarding-for-beginners

A step-by-step onboarding plans and related materials for beginners
19
star
55

Civilizationpp

Civilization simulator using C++ with some reinforcement learning
C++
19
star
56

conquer-the-spire

Slay the Spire simulator using C++ with some reinforcement learning
CMake
19
star
57

2020-OSS-Winter-AlphaZero

2020๋…„ OSS ๊ฐœ๋ฐœ์ž ํฌ๋Ÿผ ๊ฒจ์šธ ์บ ํ”„ - AlphaZero ์ธ๊ณต์ง€๋Šฅ ์˜ค๋ชฉ ๊ด€๋ จ ์˜ˆ์ œ ์ฝ”๋“œ
Jupyter Notebook
18
star
58

hiking-for-developers

โ›ฐ๏ธ ๊ฐœ๋ฐœ์ž๋“ค์˜ ๊ฑด๊ฐ• ์ฆ์ง„์„ ์œ„ํ•œ ๋“ฑ์‚ฐ ๊ด€๋ จ ์ •๋ณด ๋ชจ์Œ ๐Ÿฅพ
18
star
59

2022-KW-RLEnv

2022๋…„ ๊ด‘์šด๋Œ€ํ•™๊ต ์ปดํ“จํ„ฐ์ •๋ณด๊ณตํ•™๋ถ€ ํŠน๊ฐ• - ๊ฐ•ํ™”ํ•™์Šต ํ™˜๊ฒฝ ๊ฐœ๋ฐœ
Python
18
star
60

2022-SWMaestro-Rust-Basic

2022๋…„ ์†Œํ”„ํŠธ์›จ์–ด ๋งˆ์—์ŠคํŠธ๋กœ ํŠน๊ฐ• - Rust ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ
Rust
18
star
61

2022-KW-ECS-Development

2022๋…„ ๊ด‘์šด๋Œ€ํ•™๊ต ์ปดํ“จํ„ฐ์ •๋ณด๊ณตํ•™๋ถ€ ํŠน๊ฐ• - ECS ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ
C++
18
star
62

rust-for-cpp

A tutorial and example of Rust for C++ programmers
17
star
63

CppIdioms

A curated list of Modern C++ idioms
C++
17
star
64

AlphaGo-tutorial

AlphaGo and AlphaGo Zero step-by-step tutorial using TensorFlow and PyTorch
16
star
65

InfinityMetro

Mini Metro simulator using C++ with some reinforcement learning
Rust
16
star
66

algorithm-rs

Common data structures and algorithms for competitive programming in Rust
Rust
16
star
67

CubbyEngine

Entity Component System (ECS) based game engine for Creative Coding using C++20/23
16
star
68

Corailed

Unrailed! simulator using C++ with some reinforcement learning and Unrailed! AI using Python with OpenCV
Python
16
star
69

rust-wasm-game-of-life

A simple Rust and WebAssembly example implementing the Game of Life
Rust
15
star
70

minesweeper-rs

A simple minesweeper game using Rust and windows-rs
Rust
15
star
71

ray-tracing-the-rest-of-your-life-cpp

C++ implementation of Peter Shirley's "Ray Tracing: The Rest of Your Life"
C++
15
star
72

CubbyMenu

A header only Modern C++ library to easily create simple menus for programs
CMake
15
star
73

HellSolver

Helltaker simulator using C++ with some reinforcement learning
C++
14
star
74

styler

A header only Modern C++ library for styling output text in Terminal based on rang
C++
14
star
75

CppLinq

LINQ implementation for Modern C++
C++
14
star
76

phys

2D/3D physics engine for games written in Rust
Rust
14
star
77

Presentations

My various presentations to conferences, user groups and so on.
13
star
78

problem-solving-roadmap

Roadmap to solving a problem using data structures/algorithms in 2022
13
star
79

recommend-books

My recommended computer programming book list
13
star
80

cpp-oss-template

C++ Open Source Software Template
CMake
13
star
81

CubbyEnums

A special way to convert string<->enum in C++ using X Macro technique and template specialization
C++
13
star
82

YahtzeeMaster

Yahtzee simulator using C++ with some reinforcement learning
C++
12
star
83

minecraft-rs

A reimplementation of Minecraft written in Rust
Rust
12
star
84

ml-developer-roadmap

Roadmap to becoming a ML/DL/RL developer in 2020
12
star
85

2021-AIFrenz-RLEnv

AIํ”„๋ Œ์ฆˆ ์ œ72ํšŒ ์„ธ๋ฏธ๋‚˜ - ๊ฐ•ํ™”ํ•™์Šต ํ™˜๊ฒฝ ๊ฐœ๋ฐœ ๋ฐœํ‘œ ์ž๋ฃŒ ๋ฐ ์˜ˆ์ œ ์ฝ”๋“œ
Python
12
star
86

CubbyRocket

A simple rocket simulation engine from water rocket to satellite
CMake
12
star
87

ray-tracing-in-one-weekend-cpp

C++ implementation of Peter Shirley's "Ray Tracing in One Weekend"
C++
12
star
88

marvel-snap

Marvel Snap simulator using Rust with some reinforcement learning
Rust
12
star
89

Shop

C++ Practice Example by making Shop in Game stage by stage
C++
12
star
90

battlegrounds-rs

Hearthstone:Battlegrounds simulator using Rust with some reinforcement learning
Rust
11
star
91

nerf-rs

Rust implementation of NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis and its extension to follow-up research projects
Rust
11
star
92

AlphaTFT

Teamfight Tactics simulator using C++ with some reinforcement learning
CMake
11
star
93

Starlight

A Programming Language for Games: performance, data-oriented, and so on.
11
star
94

Sunshine

Cross-platform rendering engine that supports DirectX 11/12, OpenGL and Vulkan
CMake
10
star
95

Dolphin

Dolphin Engine โ€“ Multi-platform 2D and 3D game engine
10
star
96

owning-ref-rs

A library for creating references that carry their owner with them
Rust
10
star
97

utilforever.github.io

Blog repository - utilForever's Programming Life!
CSS
10
star
98

game-developer-interview-question

A list of helpful game developer related questions you can use to interview potential candidates.
10
star
99

2024-MatKor-Rust-Blog

2024๋…„ ๊ณ ๋ ค๋Œ€ํ•™๊ต MatKor ์Šคํ„ฐ๋”” - Rust ๊ธฐ์ดˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ + ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค๊ธฐ
Rust
10
star
100

2021-JBSH-MakeANN

์ „๋ถ๊ณผํ•™๊ณ ๋“ฑํ•™๊ต ํŠน๊ฐ• - Python์œผ๋กœ ์ธ๊ณต ์‹ ๊ฒฝ๋ง ๋งŒ๋“ค๊ธฐ ๋ฐœํ‘œ ์ž๋ฃŒ ๋ฐ ์˜ˆ์ œ ์ฝ”๋“œ
Python
9
star