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.
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.
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
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.
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.
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.
brew install idris
OR View the link for addition install options
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 http://www.impredicative.com/ur/ and follow the steps in the reference manual.