NetworkProtocolNotes
From MountainfortWiki
Ghoulsblade (Talk | contribs) |
Ghoulsblade (Talk | contribs) (→idea : generic gui system for serverside scripting with thin client) |
||
Line 1: | Line 1: | ||
== general == | == general == | ||
+ | |||
+ | * [[NetworkProtocolSpec|protocol specification]] | ||
* connecting webgl+javascript in browser via html5 websocket (tcp) to lua/c++ server | * connecting webgl+javascript in browser via html5 websocket (tcp) to lua/c++ server | ||
Line 79: | Line 81: | ||
** idea : per entry list of image,text,image,text,.... can be used for ressource list (probably needs 2d image type with tex+uv start+dimension, see server-sent-content above) | ** idea : per entry list of image,text,image,text,.... can be used for ressource list (probably needs 2d image type with tex+uv start+dimension, see server-sent-content above) | ||
** usable by : building construction, crafting, multiplayer-voting and similar (kick, mapchange, save...) | ** usable by : building construction, crafting, multiplayer-voting and similar (kick, mapchange, save...) | ||
+ | |||
+ | === idea : generic gui system for serverside scripting with thin client === | ||
+ | |||
+ | * element = { x,y, w,h, img(url) / text / textentry / checkbox , returncode on click , tooltip on mouseover } | ||
+ | * thin client -> doesn't have to understand concepts like "choose from list", all is in server -> scriptable | ||
+ | * maybe for serverside options (sight range, map selection ...) | ||
+ | * server can send CloseDialog(id) and UpdateDialog(id,newdata) | ||
+ | <b>SCRAPPED</b>, problems : things like radar etc that should update every frame, too expensive via network | ||
== player actions == | == player actions == | ||
Line 110: | Line 120: | ||
* "chunk" is a group of 8x8x8 tiles | * "chunk" is a group of 8x8x8 tiles | ||
* the term "block" is avoided as it is ambigious and could be understood as 1x1x1 or 8x8x8 | * the term "block" is avoided as it is ambigious and could be understood as 1x1x1 or 8x8x8 | ||
- | |||
- | = | + | = gameplay concept = |
+ | |||
+ | * multiplayer, roughly 4 players, match lasts roughly 1 hour, but can be saved/loaded/continued later | ||
+ | * start with nothing, survive & build from scratch (no start items) | ||
+ | * build fortress and defend against sieges (after certain time, regular?) and individual enemies | ||
+ | * maybe dungeon-heart(movable item?) / king that needs to be defended to create motivation for defense rather than escape | ||
+ | * sandbox, play with water/magma simulation | ||
+ | |||
+ | = tasks/interest distribution? = | ||
- | hagish : | + | * hagish : water-simulation, pathfinding (multithreading)? c++ , ext lib input browser independent keydown |
- | ghoul : lua-scripted events, e.g. tree falling if lumberjacked, webgl client (but quick&dirty,lua>js), network? | + | * ghoul : lua-scripted events, e.g. tree falling if lumberjacked, webgl client (but quick&dirty,lua>js), network? |
- | = todo | + | = todo : planning = |
* gui system detailed net messages | * gui system detailed net messages | ||
- | |||
* server : multithreading data access (water sim + pathfinding mainly, double-buffer old=readonly to avoid locking) | * server : multithreading data access (water sim + pathfinding mainly, double-buffer old=readonly to avoid locking) | ||
+ | * physic resync / blocking / cheatprotect ? (later) | ||
+ | * player appearance / animation (later) |