findmyway / VanillaWorld.jl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VanillaWorld

Build Status

  • EMERGENCE is when simple mechanics interact to create complex situations.
  • Leveraging emergence means crafting mechanics that don’t just add together, but MULTIPLY into a rich universe of possibility.
  • ELEGANCE happens when mechanics interact in complex, non-obvious ways.

-- Designing Games

This project is our attempt to build a research platform for exploring how to create a self-evolving system. More specifically, we are interested in the following three game systems:

  • ❤️ Survival
  • 🔨 Craft
  • 🗡️ Combat

Motivation

  • Most existing environments are pretty SLOW.
  • The number of agents in most existing environments is limited.
  • Most existing environments contain only one game mechanic. Instead, we want to explore different mechanics and study when and how EMERGENCE appears with the latest RL algorithms.

Key Features

  • GPU Native

    • The environments are written in pure Julia code. By utilizing KernelAbstractions.jl, the environments can be executed on many different devices (on both CPU and GPU). The best efficiency is achieved when policy and environment are executed on the same accelerator.
    • With the help of DLPack, the internal observation of environments can be shared across different Deep Learning platforms. Extensive examples are provided to help users understand how to use these environments in different Reinforcement Learning packages.
  • Massive Agents

    • Several builtin environments demonstrate that millions of agents can be executed simultaneously on modern accelerators.
  • Visualization

    • A grid-based interactive GUI is provided by default for each environment. Recording wrappers are also provided to help analysis and debug policies.
  • Composability

    • Thanks to multiple dispatch provided by Julia. We can easily create new environments by reusing existing components as much as possible.

Resources

Talks:

Related Environments

  • Crafter

    • Single agent
    • Though it contains survival, craft and combat systems, it mainly focuses on the craft part.
  • NeuralMMO

    • The latest version has many game mechanics we want, however, it runs pretty slow and it is not that easy to extend.
  • Gym-MiniGrid

    • Grid based, close to our design but many environments provided focus on exploration only.
    • Number of agents are limited.
  • Lux

    • A specific large scale multi agent environment focusing on cooperation and competition.
  • gymnax & brax

    • Implemented in JAX, native GPU/TPU support.

Acknowledgement

About

License:MIT License


Languages

Language:Julia 100.0%