
MMO Asteroids - catilac
http://seb.ly/demos/MMOsteroids.html
======
joshes
Could this be an April Fools gag?

I wish I had screencapped it, but at one point I found myself in the middle of
the screen, watching four swarm-like quadrants of fellow ships (top-left, top-
right, bottom-left and bottom-right) all moving in relative unison. Anytime a
swarm started to get close to me, I would inch away for a few seconds before
the swarm turned back. I was able to stay in this middle, peaceful area for an
extremely long time before random stray fire eventually finished me off.

~~~
unimpressive
A quick removal of your network cable proves it a hoax.

I almost want to learn JS and Node to build a real one. Just to spite the OP.

~~~
stcredzero
I do want to build a real one. However, I was going to build in command lag as
part of the game. Weapons would be player "aimed," but they would be beam
weapons that would activate if there were a weapons "lock" and if the ship
were pointed in the right direction. There would also be missiles and area
effect weapons. The point is to design a game based on dodging and positional
tactics.

~~~
unimpressive
> _The point is to design a game based on dodging and positional tactics._

Sounds familiar...

<http://en.wikipedia.org/wiki/Spacewar>!

PS: If you could do the awesome phosphor glow of the oscilloscope that the PDP
used for a display; It'd make your game even more awesome.

~~~
stcredzero
_Sounds familiar...(Spacewar)_

I'm old enough to have played the Arcade Cabinet version of this game as a
kid. Not exactly what I'm talking about, but perhaps an inspiration.

 _PS: If you could do the awesome phosphor glow of the oscilloscope that the
PDP used for a display; It'd make your game even more awesome._

I'll keep that in mind.

~~~
unimpressive
> _I'm old enough to have played the Arcade Cabinet version of this game as a
> kid. Not exactly what I'm talking about, but perhaps an inspiration._

I knew it wasn't exactly what you were talking about, but the general concept
is similar. I like to think of it as an improved iteration.

> _I'll keep that in mind._

If you're not sure what it looks like:

<http://www.youtube.com/watch?v=7bzWnaH-0sg>

Though for the sake of modern players eyes, pretend that the flickering never
happened. (;

(More footage showing a full round:
<http://www.youtube.com/watch?v=MvGzAvNLcew>)

EDIT: Considering what you've said in other comments. Maybe the best way to
implement this would be a skin that players can buy as an upgrade?

------
jbellis
Too bad it's fake. I wouldn't mind an xpilot revival at all.

<http://en.wikipedia.org/wiki/XPilot>

~~~
randall
Or subspace! <http://en.wikipedia.org/wiki/SubSpace_(video_game)>

~~~
tansey
Subspace is exactly what I had in mind when I saw the OP. It even has a bot
API, though unfortunately no one has made a fully-playable one yet.

~~~
p0nce
May I plug my own game here? It's not multiplayer but still favor intense dog-
fighting with AI.

<http://gamesfrommars.fr/vibrant>

A multiplayer mode is the most requested feature, but I don't know if it's
worth it.

------
ORioN63
There's no way, that's all just other players. TWO times a screenful of
players, started to gank me.

Maybe I'm just a sore loser ahaha. Great game, anyway.

~~~
lnanek
Yeah, I saw an entire screen of players turn toward me once before as well and
turn away immediately later. Hopefully players end up in the same world with
just a lot of computer opponents as well...

------
mikeknoop
Apply the CounterStrike model of short 3 minute rounds and you'd have yourself
an actual game here.

------
seb_ly
I'm so sorry everyone, I didn't think for a minute that anyone would be even
remotely convinced. It was of course an April fool - here's my full confession
: <http://seb.ly/2012/04/gotcha-fake-mmo-asteroids-april-fool/>

I hope you see the funny side :)

------
h2s
Anyone else only realise this was fake when they eventually opened the Network
tab in developer tools to find out how it worked? After that, I double-
realised when I noticed that none of the other ships ever idled while everyone
else attempted to figure it out simultaneously.

------
lnanek
Hmm, favorite strategy: zoom ahead full speed with a spammed bullet stream in
front of you. After wrapping around enough times your bullet stream (and
probably you) are going to nail someone. As you get better you can adjust your
course a little to hit more, or hunt down people after that who are critically
damaged by the bullet stream. :)

Fun, all in all, and an awesome tech demo. For finished games, there's already
<http://www.getcontinuum.com/> which is basically the game with rules and
rounds and teams and whatnot. Although that is thick client.

~~~
stcredzero
Thanks for posting this. I am at work on an Asteroids-movement style MMO
mashup with Elite. There will be "weapons lock" but there will be aiming and
positioning as well, so dodging will be key.

Players will be able to design their own ships, which will have performance
determined by their shape, and placement of components within. (So, the more
wedge-shaped your ship is, the more armor value it has for shots from the
front, but the slower it can turn because its structure is less robust. Also,
the longer your laser-tube is, the better range it has, etc.) This will happen
in a procedurally generated universe containing in excess of 2^128 worlds.

I'm doing this as a study in emergence in games. I want to implement an MMO
where mindless "keyboard macro" grinding is totally absent. Wherever possible,
we will replace a boring grinding mechanic with something akin to optimizing
or micromanaging in an RTS or 4X. What's more, the optimizing/managing
mechanics will actually be emergent themselves, building on the ability to
write scripts for almost everything in game. (These will run on the server, so
the user can license their scripts to other players for in-game money.)

~~~
MrJagil
Factions!

~~~
stcredzero
Any owner of a Warp Gate installation will constitute a faction. Players will
earn micropayments for use of their jump gate. The "Winning" faction will be
the one controlling the most jump gates. Jump gates will require considerable
exotic resources to maintain. Falling behind in jump gate maintenance will
cause ownership to revert to the Precursor maintenance bots.

------
JakeSc
As others have pointed out, this game is a bit of a prank. For example, the
"CONNECTIONS" value is randomly generated:

    
    
      numPlayers+=randomInteger(1,5)
    

Though there is indeed some WebSocket communication between your browser and
the server. Here's what most of these communiqés look like:

    
    
      {"type": "leave", "id": 133334510518} 
    
    

I wonder why the author even uses WebSockets at all, or what these "leave"
packets are meant for.

------
jasonkester
I actually did this with Joust, something like ten years ago, using java
sockets for the communications and dhtml for presentation.

The multiplayer version is long gone, but you can still get try out the
original dhtml head-to-head version (provided you have IE3+ or Netscape
Navigator handy):

<http://www.jasonkester.com/joust/>

Might have to spend a weekend cramming it full of Node.js and replacing the
1998 DOM referencing syntax with something a bit more modern...

Edit: Holy yikes, it actually works in the latest Chrome and Firefox. No idea
how... <http://www.jasonkester.com/joust/>

------
ecito
Here's his blog page for this:

<http://seb.ly/2012/04/node-js-experiment-mmo-asteroids/>

Looks like his next iteration will be real multiplayer. That will be awesome

------
drunkpotato
Hah! Great fun. I've found the strategy for long-term survival is simply to
stay in the spawning point, spin, and fire as many rounds as possible. I
suspect this is because the damage you take for hitting another ship's shields
is set high enough that the probability of taking bullet damage is roughly
constant whether moving or staying in place, while the probability of taking
damage while moving is much higher than that of taking damage while staying in
place.

Anyone with a more careful attitude towards quantitative analysis than I care
to verify?

~~~
raquo
If these were humans, a standing-still ship would attract more aggression as
an easy target, but bots don't seem to care about that, so it should be good
option for maximizing kills/deaths. However, it takes a long time to kill
anyone without active movement – hunting down near-dead ships is the best way
to get best kills/minute. (and by hunting down i mean crashing into them of
course, as well as point-blank fire).

------
schubert
function boom() { for (var a = 0; a < 100; a++) { for (var d = 0; d <
ships.length; d++) { var e = ships[d]; if (e != player) { if (e != undefined)
{ e.hit(); } } } } setTimeout("boom()", 2000); } function restoreHealth() {
console.log("restoring health"); player.energy = 200;
setTimeout("restoreHealth()", 100); }

setTimeout("restoreHealth()", 100); setTimeout("boom()", 2000);

------
jabo
A friend and I have been working on an MMO game called Pixza:
<http://pixza.com/lite>

Unlike MMO Asteroids, we don't fake the multi-player element. (Try pulling the
network cable :) ) But with that comes the problem of bootstrapping the game
to get a critical mass, since the game is boring with a few players. Building
an AI engine for the game seems very complicated because it's a strategy game.

------
ck2
Some good April 1st jokes become real eventually though.

------
rekul
I'm thinking of building a simple game like this(but not with shooting stuff)
using node on the server side since it's the cool thing to do now. But idk how
many players a server could sustain or if the browser client might slow down
when rendering many players on the screen.

Anybody want to help? Should just take about a week to build something
playable i think.

------
deliciouscoffee
If an mmo version of asteroids sounds interesting then you should try out
Continuum (<http://www.getcontinuum.com/>) It was released commercially in
1997 and subsequently abandoned by its developer. The community took over the
client/server and it has evolved into a pretty complex game.

------
specialist
Sorry for the noob question:

How does one prevent cheating/hacking with a client-side runtime? Is there a
crucial dividing line of functionality between server- and client-side
functions? Say perhaps fog of war and client's only get the position updates
of visible enemies?

If there are best practices / conventional wisdom, pointers (links) would be
appreciated. Thanks!

------
cpeterso
This reminds me of the (real) game _Realm of the Mad God_ , a "run 'n' gun"
MMORPG with 8-bit style graphics built in Flash:

<http://www.edery.org/2011/06/realm-of-the-mad-god/>

Now that I think about it, the game is basically a _Gauntlet_ MMORPG! :)

------
GabeN
For a real old school MMO you should all try Jet Set Willy Online, it involves
a small client download rather than being browser based but it faithfully
captures the original feel of the game. <http://jsw.ovine.net/>

------
cr4zy
Check chrome://net-internals/#events and include actual bytes under "capture".
The data being sent through seb.ly is not enough to for the game:

    
    
        .#{"type":"leave","id":1333318871470}
    

It does look like he's updating the players coming in and out though.

------
jamesmoss
If you hadn't guessed already, the author confirmed this was a fake this
morning: <http://seb.ly/2012/04/gotcha-fake-mmo-asteroids-april-fool/>

------
jmilloy
My GF couldn't get over that I was spending my Sunday evening blasting away at
1900 other "nerdy hackernews-ers", until I realized from the coordinated
attacks it couldn't be real. Still a ton of fun.

------
gillianseed
Lol yes this is lots of fun, however I seem to continously pickup some stalker
hellbent on destroying me in particular and chasing me all across the
universe. Well, atleast it makes me feel special :)

------
neave
April Fools! <http://seb.ly/2012/04/gotcha-fake-mmo-asteroids-april-fool/>

------
senjutsuka
Damn it! I commented on it earlier noticing some irregularities in the way the
players moved... I just realized this was an april fools joke!

------
bricestacey
This reminds me of Netrek. <http://en.wikipedia.org/wiki/Netrek>

------
jaimefjorge
Fun fact: if you're in chrome, enter ctrl+shift+j. When javascript console
enters you can play with it.

Try entering player.energy = 100000 :)

~~~
jabo
This was one the of things that I worked on to avoid, when building Pixza
(pixza.com) a HTML4/5+JS+Erlang MMO game. I wrote a script to obfuscate all
the JS object and member names to random strings before deploying the code.

~~~
jaimefjorge
Very interesting. I guess this is always a risk when writing javascript. good
mitigation though.

------
zaptheimpaler
Aghh can't believe this is fake...

Does anyone know whether this is actually feasible to make using Node.JS (or
any other technology?)

------
decad
Very similar to <http://rawkets.com/> by Rob Hawkes from the UK.

------
emehrkay
This is insane! I was surrounded by at least 8 players all shooting at me.
Really funny though.

------
joshontheweb
I love it but I think it would be more fun with teams.

------
judegomila
This is great. An MMO pong would be fun...

~~~
cpeterso
SIGGRAPH 1991 and 2006 featured demos of the ~3000 member audience playing
Pong. Each half of the room controlled their paddle by holding up colored
wands to vote up or down. I think the 2006 show also had the audience pilot a
flight simulator. It was amazing at how quickly the audience got really good
at the games!

Here are some photos. I saw a video somewhere, but I can't find it now.

<http://stage.itp.nyu.edu/history/timeline/cinematrix.html>

[http://www.4colorrebellion.com/archives/2006/08/03/siggraph-...](http://www.4colorrebellion.com/archives/2006/08/03/siggraph-2006-massively-
multiplayer-coop-pong/)

------
FrancescoRizzi
This is madness, but I love you for it :)

------
judegomila
Add a tweet / FB share button :>

------
hcarvalhoalves
Node.js is the real APFJ.

------
fictorial
I really loathe April 1.

------
excerionsforte
Fun, but crowded.

------
quangv
oh this isn't real?

------
mkramlich
I once saw pretty much all 20 enemy ships nearest me suddenly turn towards me
in near unison. Those were bots, not real people. I like the idea of the game.
I feel a little disappointed that he appears to have lied about it actually
being MMO.

I'll grant him one "get out of jail free card": perhaps it can be MMO, but if
not enough human players are playing at any time he fills the world with bots.
That's about the nicest guess I can make.

------
tkahn6
As others have said, this is fake but I give it one day until someone does a
'Show HN' with a real version.

------
drstrangevibes
xpilot.....nuff said

------
reason
Add me, guys. My username is 'reason'. I'm up over in the top left corner.

