• Stars
    star
    135
  • Rank 269,297 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 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,187
star
3

RosettaStone

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

2023-MatKor-Rust-Interpreter

2023λ…„ κ³ λ €λŒ€ν•™κ΅ MatKor μŠ€ν„°λ”” - Rust 기초 ν”„λ‘œκ·Έλž˜λ° + 인터프리터 λ§Œλ“€κΈ°
Rust
344
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
153
star
8

2022-Make-Interpreter-Rust

2022λ…„ 온라인 μŠ€ν„°λ”” - Rust둜 λ§Œλ“œλŠ” 인터프리터
Rust
138
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

2023-UNIST-Rust-Minecraft

2023λ…„ UNIST HeXA μŠ€ν„°λ”” - Rust 기초 ν”„λ‘œκ·Έλž˜λ° + λ§ˆμΈν¬λž˜ν”„νŠΈ λ§Œλ“€κΈ°
Rust
95
star
12

CubbyFlow-v1

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

cpp-developer-roadmap

Roadmap to becoming a C++ developer in 2020
76
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

BOJ

About Baekjoon Online Judge problem solving by Rust
Rust
59
star
18

2022-INFCON-Rust-CrossPlatform

INFCON 2022 - Rust 크둜슀 ν”Œλž«νΌ ν”„λ‘œκ·Έλž˜λ° λ°œν‘œ 자료 및 예제 μ½”λ“œ
Rust
56
star
19

Runeterra

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

CubbyTower

Simple tower defense game using C++ with Entity Component System (ECS)
C++
47
star
21

2022-CppKorea-DataStructure

2022λ…„ C++ Korea 여름 μŠ€ν„°λ”” - C++ 자료ꡬ쑰
C++
47
star
22

2019-OSS-Summer-RLBasic

2019λ…„ OSS 개발자 포럼 여름 μΊ ν”„ - κ°•ν™”ν•™μŠ΅ 기초 κ΄€λ ¨ 예제 μ½”λ“œ
Python
45
star
23

2024-Hyundai-NGV-Rust

2024 Softeer Tech Meetup - RustλŠ” μ™œ μ£Όλͺ© λ°›κ³  μžˆλŠ”κ°€ + Rust μ£Όμš” κΈ°λŠ₯ μ†Œκ°œ
Rust
41
star
24

2024-HSPACE-Rust-LinuxKernel

2024λ…„ HSPACE νŠΉκ°• - Rust 기초 ν”„λ‘œκ·Έλž˜λ° + λ¦¬λˆ…μŠ€ 컀널 ν”„λ‘œκ·Έλž˜λ°
Rust
40
star
25

SnowSimulation

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

2024-Konkuk-Rust-Roguelike

2024λ…„ κ±΄κ΅­λŒ€ν•™κ΅ Google Developer Student Clubs + EDGE μŠ€ν„°λ”” - Rust 기초 ν”„λ‘œκ·Έλž˜λ° + 둜그라이크 κ²Œμž„ 개발
Rust
39
star
27

2024-SNU-Rust-Application

2024λ…„ μ„œμšΈλŒ€ν•™κ΅ SCSC + WaffleStudio μŠ€ν„°λ”” - Rust 기초 ν”„λ‘œκ·Έλž˜λ° + ν¬λ‘œμŠ€ν”Œλž«νΌ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발
Rust
38
star
28

PolyMapGenerator

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

DirectX

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

2024-DEVCON-Rust-Safety

DEVCON 2024 - RustλŠ” μ–΄λ–»κ²Œ μ•ˆμ „ν•œ ν”„λ‘œκ·Έλž˜λ°μ„ μ΄λ€„λ‚΄λŠ”κ°€ λ°œν‘œ 자료 및 예제 μ½”λ“œ
Rust
34
star
31

2022-Make-Compiler-Rust

2022λ…„ 온라인 μŠ€ν„°λ”” - Rust둜 λ§Œλ“œλŠ” 컴파일러
33
star
32

rust-oss-template

Rust Open Source Software Template
Rust
33
star
33

2023-SNU-Rust-CrossPlatform

2023λ…„ μ„œμšΈλŒ€ν•™κ΅ 컴퓨터곡학뢀 νŠΉκ°• - Rust 크둜슀 ν”Œλž«νΌ ν”„λ‘œκ·Έλž˜λ° λ°œν‘œ 자료 및 예제 μ½”λ“œ
Rust
32
star
34

SimpleRPG-Text

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

PokeMaster

PokΓ©mon battle simulator using Rust with some reinforcement learning
Rust
31
star
36

OpenGLTutorial

OpenGL Study with Examples and Homeworks
C
31
star
37

CubbyDNN

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

2021-HYU-HAI-RLBootCamp

2021λ…„ ν•œμ–‘λŒ€ν•™κ΅ 동아리 HAI μŠ€ν„°λ”” - κ°•ν™”ν•™μŠ΅ λΆ€νŠΈ μΊ ν”„
Python
30
star
39

PBRStudy

Physically Based Rendering, 2nd Edition Study
29
star
40

polarlight

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

ProceduralContentGeneration

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

RTRStudy

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

GPU-Pathtracer

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

RosettaStone-GUI

GUI program of RosettaStone
C++
24
star
45

ProgrammingPractice

Programming Practice Examples
C++
24
star
46

CGStudy

Computer Graphics study from scratch to Neural Rendering
23
star
47

utilForever

My Github Profile
23
star
48

2021-CoMu-ECS-Development

κ²Œμž„μ΄λž‘ λ¬΄κ΄€ν•©λ‹ˆλ‹€λ§Œ λ°‹μ—… - ECS 기반 κ²Œμž„ 개발 λ°œν‘œ 자료 및 예제 μ½”λ“œ
C++
23
star
49

CubbyCity

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

rust-wasm-ts-template

A template of Rust + WebAssembly with TypeScript (πŸ¦€ + πŸ•ΈοΈ = πŸ’–)
JavaScript
23
star
51

2023-MatKor-Rust-Compiler

2023λ…„ κ³ λ €λŒ€ν•™κ΅ MatKor μŠ€ν„°λ”” - Rust둜 컴파일러 λ§Œλ“€κΈ°
22
star
52

zero-to-production

The code of Zero To Production In Rust for exercise
Rust
21
star
53

2021-JBSH-Summer-RLBasic

2021λ…„ 전뢁과학고등학ꡐ 여름 νŠΉκ°• - κ°•ν™”ν•™μŠ΅ 기초
Python
21
star
54

Diablopp

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

conquer-the-spire

Slay the Spire simulator using C++ with some reinforcement learning
CMake
21
star
56

introduction-to-rust

The book "Introduction to Rust" for beginners
21
star
57

DiscoveringTheModernCpp

<λͺ¨λ˜ C++ μž…λ¬Έ> 예제 μ €μž₯μ†Œ
C++
19
star
58

2020-OSS-Winter-AlphaZero

2020λ…„ OSS 개발자 포럼 겨울 μΊ ν”„ - AlphaZero 인곡지λŠ₯ 였λͺ© κ΄€λ ¨ 예제 μ½”λ“œ
Jupyter Notebook
19
star
59

Civilizationpp

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

onboarding-for-beginners

A step-by-step onboarding plans and related materials for beginners
18
star
61

hiking-for-developers

⛰️ κ°œλ°œμžλ“€μ˜ 건강 증진을 μœ„ν•œ λ“±μ‚° κ΄€λ ¨ 정보 λͺ¨μŒ πŸ₯Ύ
18
star
62

2022-KW-RLEnv

2022λ…„ κ΄‘μš΄λŒ€ν•™κ΅ 컴퓨터정보곡학뢀 νŠΉκ°• - κ°•ν™”ν•™μŠ΅ ν™˜κ²½ 개발
Python
18
star
63

2022-SWMaestro-Rust-Basic

2022λ…„ μ†Œν”„νŠΈμ›¨μ–΄ λ§ˆμ—μŠ€νŠΈλ‘œ νŠΉκ°• - Rust ν”„λ‘œκ·Έλž˜λ° 기초
Rust
18
star
64

2022-KW-ECS-Development

2022λ…„ κ΄‘μš΄λŒ€ν•™κ΅ 컴퓨터정보곡학뢀 νŠΉκ°• - ECS 기반 κ²Œμž„ 개발
C++
18
star
65

CppIdioms

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

rust-for-cpp

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

Corailed

Unrailed! simulator using C++ with some reinforcement learning and Unrailed! AI using Python with OpenCV
Python
17
star
68

AlphaGo-tutorial

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

InfinityMetro

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

algorithm-rs

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

CubbyEngine

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

rust-wasm-game-of-life

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

minesweeper-rs

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

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

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

CubbyMenu

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

2024-MatKor-Rust-Blog

2024λ…„ κ³ λ €λŒ€ν•™κ΅ MatKor μŠ€ν„°λ”” - Rust 기초 ν”„λ‘œκ·Έλž˜λ° + λΈ”λ‘œκ·Έ λ§Œλ“€κΈ°
Rust
15
star
77

HellSolver

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

styler

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

CppLinq

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

Presentations

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

cpp-oss-template

C++ Open Source Software Template
CMake
13
star
82

CubbyEnums

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

marvel-snap

Marvel Snap simulator using Rust with some reinforcement learning
Rust
13
star
84

phys

2D/3D physics engine for games written in Rust
Rust
13
star
85

problem-solving-roadmap

Roadmap to solving a problem using data structures/algorithms in 2022
12
star
86

recommend-books

My recommended computer programming book list
12
star
87

YahtzeeMaster

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

minecraft-rs

A reimplementation of Minecraft written in Rust
Rust
12
star
89

ml-developer-roadmap

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

2021-AIFrenz-RLEnv

AIν”„λ Œμ¦ˆ 제72회 μ„Έλ―Έλ‚˜ - κ°•ν™”ν•™μŠ΅ ν™˜κ²½ 개발 λ°œν‘œ 자료 및 예제 μ½”λ“œ
Python
12
star
91

ray-tracing-in-one-weekend-cpp

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

CubbyRocket

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

Shop

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

AlphaTFT

Teamfight Tactics simulator using C++ with some reinforcement learning
CMake
12
star
95

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
96

Starlight

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

battlegrounds-rs

Hearthstone:Battlegrounds simulator using Rust with some reinforcement learning
Rust
10
star
98

Dolphin

Dolphin Engine – Multi-platform 2D and 3D game engine
10
star
99

game-developer-interview-question

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

owning-ref-rs

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