Git Product home page Git Product logo

orona's Introduction

Bolo

Bolo is a top-down game of tank warfare originally written by Stuart Cheshire for the BBC Micro and Apple Macintosh, and also notably rewritten for Windows and Linux by John Morrison.

Orona

Orona is another rewrite of Bolo, intended to be played in any modern browser. Orona is developed in CoffeeScript, and relies on some of the newer technologies made possible by HTML5.

The name comes from an uninhabited island situated in the central Pacific Ocean.

Playing Orona

Orona is alpha quality, but still very playable. Take a look at GitHub Pages to see a single player game in action, which should work on most modern browsers.

If you're seeing odd things in your browser, take a look at the browser compatibility wiki page, and feel free to extend it with your experiences. Issue reports are also welcome.

Running an Orona server

Currently, you need Node.js 0.6 and git to run Orona. To build and run:

git clone https://github.com/stephank/orona.git
cd orona
git submodule update --init
npm install
cake build
bin/bolo-server

You will need a small config file; bolo-server will tell you how to create one. Note that the IRC functionality is optional, but the only way to do match-making at the moment. If you don't want to connect to an IRC network, simply remove the irc section from the config file.

License

The source code of Orona is distributed with the GNU GPL version 2, as inherited from WinBolo. Much of the game logic was written with WinBolo as a reference, thus becoming a derived work of it. Though the GNU GPL version 2 is a fine license either way. You can find a copy of the license in the COPYING file.

Some files, or parts of files, are subject to other licenses, where indicated in the files themselves. A short overview of those parts follows.

All the graphic and sound files are from:

  • Bolo, © 1993 Stuart Cheshire.

For the browser client, Orona also bundles:

  • jQuery, © 2010 John Resig, licensed MIT and GPLv2.
  • Sizzle, © 2010 The Dojo Foundation, licensed MIT, BSD and GPL.
  • jQuery UI, © 2010 The jQuery UI Team, licensed MIT and GPLv2.
  • jQuery Cookie plugin, © 2006 Klaus Hartl, licensed MIT and GPLv2.
  • Components that are part of Villain.

orona's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

orona's Issues

Resources don't replenish

In Macintosh Bolo, trees regrow eventually and base resources (bullets, mines, shields) replenish slowly. In this clone, neither appears to happen. (I've only tried the single-player mode so far.)

`cake build` complains about missing jquery

$ cake build

/Users/sridharr/orona/Cakefile:35
        throw e;
        ^
Error: ENOENT, No such file or directory 'vendor/jquery-ui-1.8.8.zip'
    at Object.statSync (fs.js:366:18)
    at /Users/sridharr/orona/Cakefile:31:10
    at Object.action (/Users/sridharr/orona/Cakefile:129:18)
    at /Users/sridharr/.nvm/v0.4.0/lib/node/.npm/coffee-script/1.0.1/package/lib/cake.js:31:26
    at Object.action (/Users/sridharr/orona/Cakefile:191:5)
    at /Users/sridharr/.nvm/v0.4.0/lib/node/.npm/coffee-script/1.0.1/package/lib/cake.js:31:26
    at /Users/sridharr/.nvm/v0.4.0/lib/node/.npm/coffee-script/1.0.1/package/lib/cake.js:53:23
    at path.js:271:19

Firefox audio broken since 2f23d6f.

In Firefox 3.6 and 4 beta 6, audio no longer works since revision 2f23d6f.

Underlying cause of this seems to be Audio#canPlayType telling us Vorbis is unsupported (returns empty string) when invoked too early. SoundKit currently calls this on document loaded.

(Manual invocation from the console later during play returns 'probably', which is correct.)

Movement along non-cardinal directions is slighty off.

When moving along a direction one step away from a cardinal direction, the movement simulation is incorrect. These are the directions at 22.5°, 67.5°, 112.5°, etc.

This can be clearly reproduced when at a minimum velocity, by just tapping forward until movement starts, then turning to one of these directions. Movement appears 'rounded off' to the nearest cardinal direction.

The code to this is in src/tank.coffee. I tried to model it after WinBolo's movement code. Perhaps this is a floating point rounding thing?

Refactoring required

I had fun playing with the demo and taught about adding more elements but discovered that versions of dependencies are nearly deprecated (specially node version). It is important to refactor the code to update the code in order to work with latest stable versions of dependencies and enable community use and work on this project.

"engines: ": { "node": "0.4" }, "dependencies": { "coffee-script": "1", "villain": "=0.2.0", "faye-websocket": "0.3", "connect": "1.8", "irc-js": "0.2", "browserify": "1.9" },

Opera: “Linked script not loaded”

Opera refuses to load jQuery from CDN, with the vague error “Linked script not loaded”. Disabling content blocking in the site preferences did not help.

I'm not really an Opera user, and don't know much about it's security features. Perhaps someone can help shed some light on this one?

Display friendly browser-compatibility notice.

Mostly due to WebSockets, Orona only seems to run on recent Webkit and Gecko based browsers at the time of writing. Among browsers that are tested not to work are IE9 and Opera 10.61.

Before starting, Orona should do a couple of checks and display a notice if it can't go ahead. I think it should do roughly the following:

  • Run through a couple of checks based on functionality (no user agent sniffing!), such as Canvas2D support, WebSockets support, anything else?
  • Preferably check for WebSockets draft 76, because it's not set in stone yet.
  • The WebSockets check should be omitted on Github pages, because it only runs a local game. When the lobby is implemented, we should disable multiplayer and inform the user.
  • When any of these tests fail, inform the user it can't run, display a summary of test results, and link to browsers that are known to work. (Which browsers work? I myself test on Chrome 6 and Firefox 4.0b4.)

Bring back the TableMapView, and build an editor around it.

The initial commit had drawing code that built a large DOM table and used page scrolling for the map. This worked, but wasn't as smooth in a lot of browsers as canvas rendering. The code was removed in commit dedffaa.

This code should be brought back in a TableMapView class. I'd like to see it used in a new map editor web application. I don't mind if the first iteration of the editor doesn't really edit at all, but just allows you to explore a map with a TableMapView.

Find a way to use WebglRenderer.

There's already a very simple working WebGL renderer implementation in src/client/renderer/webgl.coffee, but it's currently unused. It was built and tested exclusively on Chromium 6.

Performance was mostly identical to the current default renderer, for me at least. I wonder if it's faster for anyone, and if it can be a sane default in certain scenarios.

Once there's a lobby or some sort of settings GUI, there could be a switch to enable it there.

Can't queue man actions

In Macintosh Bolo, while the man out doing something, I can click elsewhere on the map, which queues up another action for the man to do after he comes back. Only one action can be queued. In this clone, I can't queue any actions.

Install Instructions Fail, ubuntu 15.10, node v0.10.25, cs v1.10.0

Hey Stephan, I love Orona, so first thing: thanks!

I'd love to play multiplayer with my family soon, so I'm trying to get this installed. I can write JS and CoffeeScript passably, but I have no real knowledge of Node.

I follow your install instructions almost exactly on Ubuntu 15.10 using NodeJS as installed by Apt (which exceeds the minimum version specified for orona). The only difference is I need to symlink node to nodejs because Ubuntu doesn't use node as the name for nodejs by default.

Once all's said and done I try ./bin/bolo-server and get this:

/home/cathal/localapps/orona/node_modules/coffee-script/lib/coffee-script/coffee-script.js:213
          throw new Error("Use CoffeeScript.register() or require the coffee-s
                ^
Error: Use CoffeeScript.register() or require the coffee-script/register module to require .coffee.md files.
  at Object.base.(anonymous function) [as .coffee] (/home/cathal/localapps/orona/node_modules/coffee-script/lib/coffee-script/coffee-script.js:213:17)
  at Module.load (module.js:356:32)
  at Function.Module._load (module.js:312:12)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at Object.<anonymous> (/home/cathal/localapps/orona/bin/bolo-server:4:1)
  at Module._compile (module.js:456:26)
  at Object.Module._extensions..js (module.js:474:10)
  at Module.load (module.js:356:32)
  at Function.Module._load (module.js:312:12)
  at Function.Module.runMain (module.js:497:10)
  at startup (node.js:119:16)
  at node.js:902:3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.