/* User beware. I don't know javascript. I read mozillas /
/ reintroduction to javascript, being somewhat familiar with /
/ actionscript 3, god knows how it ended up working. This code /
/ is run by tears, wishes and luck. */
Any serious (read: MMO) application of this would be continuously reporting position regardless, so it wouldn't that big of a step to validate them server-side and prevent such hijinks.
This is great. I would love to see a fully functioning old-school RPG created in HTML5 that I don't have to download/purchase CD, can just play in any browser, on my desktop/laptop/iPhone/iPad, with save games instantly available.
It does have a flood filter, your thing just spams so it gets in the post every chance. I can only make the flood count longer. That's the problem with javascript, kinda hard to prevent people from screwing around and editing it in-place.
I'm not 100% sure how WebSockets work, but I assume it's going through your server and then sent to everyone else? Could you not do a rate limit of 5 per 30 seconds, or require at least one comment in between yours? Not sure what the best approach would be best.
> That's the problem with javascript, kinda hard to prevent people from screwing around and editing it in-place.
Not if you use a module pattern with private methods.
But the real problem you should be addressing, and one which applies to any internet app, is people directly sending data to the server. Whether it's initiated by JS or flash or anything is not relevant - sure it's sometimes easier to hack about with JS apps, but if you fix people being about to open telnet and spoof the raw data, then you fix all those holes at the server, and that leaves you free to entirely change the way your code works in the future, instead of having to re-code misguided security fixes.
Just kick of the flooders. Btw you could try node.js, then run the same game code on the server too, so there will be no cheating in the game when finished.
Should be fairly straightforward. Simply 'save' the last time this user has posted a message. Then the next time they attempt to post a message check if the alloted time has passed and process accordingly.
I see you are using dict, so just add a record with that info and you should be set.
I do do that. "LastMessage" var of the tuple in the dict. It's not enough if they make multiple windows all spamming in a loop. Some of the messages get through
The main character sprite was ripped directly from Chrono Trigger[1], a SNES game. A lot of gamers I know consider it to be one of the best RPGs ever made.
The tiles are very familiar but I can't for the life of me remember which commercial game they are from. They're used a lot in indie games. A lot of sprites from the SNES era are. :)
Great work ! Do you plan to expand it to a full MMORPG ?
There are some great opportunities in HTML5 browser-based games, considering the ease to port to mobile devices.
Interesting options for this form of overhead graphics.
I was catching up on an old post and I came across your HN comment:
"Choice isn't (necessarily) beauty. It's one more engineering tradeoff among others, with its own upsides and its own downsides. Giving up choice in favor of the benefits gained from doing so can be pragmatic, rational, and lead to more beautiful results.
I guess I'm just saying: don't fetishize choice. Assign it a value like the one parameter among hundreds which it actually is."
from http://news.ycombinator.com/item?id=1108018
I've been working on my own MMORPG using Erlang (http://developingthedream.blogspot.com/) but I'm waiting for the dust to settle in the HTML5/Flash/Capuccino/etc field to choose the editor/game engine to use for the web frontend.
/* User beware. I don't know javascript. I read mozillas / / reintroduction to javascript, being somewhat familiar with / / actionscript 3, god knows how it ended up working. This code / / is run by tears, wishes and luck. */