Sep. 16th, 2011

ordinal: (Ordinal 8px sprite)
A quick few thoughts that I have been batting back and forward as I work on my HTML5/JS MMO-ish Roguelike client.

As a basic introduction or recap, the client obtains current map data and basic information via AJAX, and then lets the player move around looking at things without needing to talk to the server, until either

(a) the PC moves out of the current map region and so needs a new map;
(b) the PC hits a "hotspot", which is a square that requires a server update. The client isn't told _why_ the hotspot is hot;
(c) the player performs an action that needs a server update, such as using an object;
(d) or an idle time limit is reached of a few seconds, and every minute or so of idleness after that.

(I quite quickly abandoned the idea of light and vision masks - that means that every step the player makes means having to ask for an update, and on a phone, that is a bit catastrophic; it's even annoying on the desktop with broadband.)

Whenever the client syncs with the server, it sends a list of all of the moves the player has made. The server calculates the outcomes and sends back an entirely new game environment (a very small amount of data) - so it is practically impossible to cheat. If you send impossible moves, the server will ignore them and send back a game state on that basis, and anything involving random factors is calculated server-side.

Yes, it gets worse. )

On the other hand, there have been lots of diverting games in the past which had pretty limited NPC movement on the map. Some had none at all (e.g. The Bard's Tale just had random encounters and some ones fixed to map points).
ordinal: (Default)
bay leaves
An indigestible dried garnish, to be added to a stew or casserole to entertain diners by forcing them to find a way to remove the leaves from their mouths in a decorous manner. Do not affect the taste of a dish in any way.

December 2014

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 24th, 2017 07:08 am
Powered by Dreamwidth Studios