An open API service indexing awesome lists of open source software.

https://github.com/howardabrams/veep

An online game where you control robots on distant planets... but you control them by programming in CoffeeScript
https://github.com/howardabrams/veep

Last synced: 2 months ago
JSON representation

An online game where you control robots on distant planets... but you control them by programming in CoffeeScript

Awesome Lists containing this project

README

          

#+TITLE: Virtual Exoplanet Exploration Program
#+AUTHOR: Howard Abrams
#+EMAIL: howard.abrams@gmail.com
#+DATE: [2013-07-09 Tue]
#+TAGS: kids coffee javascript

This game is solved by entering the right commands into a wheeled
rover to accomplish missions for exploring virtual worlds. That's
right, the players learn to program while playing the game.

At least, that is the idea.

* Playing the Game

If you are interested in playing the game, this site is built and
running at [[http://www.geeklet.org/veep][geeklet.org/veep]].

* Building

I highly doubt that you'll be able to build this project... you see,
I'm really into /literate programming/, and this files are built
using [[http://www.orgmode.org][org-mode]] for Emacs. Each file either published as an HTML file
(in the =site= directory), or /tangled/ as a CoffeeScript file (into
=site/scripts=).

However, the =build.el= file can be used within Emacs to build all
of the files, and the =build.sh= script can be used to call Emacs
to do this work.

Yeah, highly specialized, I know, but it sure if sweet once you
drank this kool-aid.

* Running

Once the files have been built, you can have any web server point to
the =site= directory, or you can use [[http://www.node.org][NodeJS]] to start up a simple web
server:

#+BEGIN_SRC sh
npm install
node app.js
#+END_SRC

* Contributing

While the game is odd to build, the =.org= files are just text
files, so forking and updating is an option.

Feel free to play the game and send me feedback.

* General Thoughts

Each mission will be clearly explained, but still allow the player
to /experiment/ and try out ideas.

To keep each screen terse, but still provide enough information
(some of which may include forgotten math), we'll have pop-up dialog
boxes with supplementary material.

* Programming Notes

Each /mission/ has a *console* where robot instructions can be
entered and evaluated. The results of the mission are displayed in a
tabbed section to the right of the console.

The [[http://www.coffeescript.org][CoffeeScript]] code entered has access to an =rv= library of
functions. To keep the code the player has to enter simple, the
library stores the 'state' of the robotic rover, and calling
=rv.dock()= summarizes the mission.

The =console.log()= function is also overloaded, so it can be
displayed in a tab.