Awesome Open Source
Awesome Open Source


Idris + Ur/Web development of a perfect information, fair, deterministic turn based strategy game, built with dependent types!


Elemental Magicks is a card battle game and the first game to be entirely skill based :

In no case could a player benefit from playing a move which is sub-optimal in the mini-max sense.

The only exceptions are cases where the player is factoring in both future errors they expect themselves to make, and future errors they expect from the opponent.

It is thus more pure as a strategy game even than chess, and much more than other games of its genre.

An equivalently pure game to Elemental Magicks would be a version of chess where draws and ties are impossible (each game ends, and a game ending results in a player winning), and the players play two rounds (one with white, and one with black). Unfortunately chess is not designed to admit this modification without destroying much of the strategy.

Our Goal

Having successfully prototyped this game in Java (about 100,000 line development), we seek to build a beautiful, concise, and robust version using the best programming languages currently available. That means development in Ur/Web and Idris.

List of Contributors

This list will continue to evolve as people help us. It also currently does not include the large number of artists who are helping.

Please send me a message if you want to be added to our team (i.e. need write access).

Game Design : Raleigh Foster

Programming : Rob Sap, Raleigh Foster, Matt Almenshad, Andy Hampton

Our GitHub Page

We're the programming languages club from the University of Oregon.

We have weekly meetings where we discuss design patterns and type systems.

We also work on group projects, designed to give us experience in powerful languages, and provide examples of powerful languages in action.

This card game is our first group project.

Tasks to Work On

You can view the currently outstanding tasks via the above link.

Anything with the label "Help wanted" is up for grabs. Please let me know you want the task and I'll assign it to you.

Anything with the "High Priority" label is currently blocking other tasks. These are the highest value tasks to solve.

Anything with the "Hard" or "Easy" label is respectively hard or easy, but don't let that scare or fool you. Hard tasks can be quite doable, and easy tasks can be challenging, but typically have more limited scope.

Our Facebook Page

Recent Group Messages and Updates

Our Events Page

Installing Ubuntu on Virtual Box

Due to Ur/Web not working on Mac and Windows, we are using Ubuntu to work with it. If you don't have Ubuntu on your computer, you can use Virtual box. We set up a guide on installing Virtual box and Ubuntu.

Installing Idris

on Mac: brew update
brew install idris

OR View the link for addition install options

Installing Ur/Web

Ur/Web currently does not work well on Mac (due to an issue with the MLTON compiler). Ur/Web runs best with Ubuntu (which also works well with Idris).

To install Ur/Web, visit and follow the steps in the reference manual.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Game (18,706
Idris (578
Card Game (551
Strategy (392
Strategy Game (199