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 19: | Line 21: | ||
* items (on ground and in backpack/inventory. pickup?) | * items (on ground and in backpack/inventory. pickup?) | ||
* buildings (look like multiple blocks but might be highlighted/tooltipped in client somehow) | * buildings (look like multiple blocks but might be highlighted/tooltipped in client somehow) | ||
- | |||
* particle effects? | * particle effects? | ||
** area effects like rain/snow? | ** area effects like rain/snow? | ||
Line 59: | Line 60: | ||
* icon type = image id + tooltip (e.g. for generic multi-choice dialog)... or negative typeid as value makes this unneccessary? | * icon type = image id + tooltip (e.g. for generic multi-choice dialog)... or negative typeid as value makes this unneccessary? | ||
- | * dialogs (should be moved to gui section below?) | + | * dialogs (should be moved to gui section below? later) |
** can contain text (including icons) | ** can contain text (including icons) | ||
- | ** text input dialog (books, | + | ** text input dialog (writing books, signs, player name) |
- | ** inventory | + | ** inventory (quickbar?) |
- | ** crafting : list of thinks one can produce (with tooltip and costs, marked red or something like this if you dont have enought ressources) in | + | ** crafting : list of thinks one can produce (with tooltip and costs, marked red or something like this if you dont have enought ressources) in your backpack |
== vehicles ? == | == vehicles ? == | ||
Line 80: | 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 111: | 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 : 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? | ||
+ | |||
+ | = todo : planning = | ||
+ | |||
+ | * gui system detailed net messages | ||
+ | * server : multithreading data access (water sim + pathfinding mainly, double-buffer old=readonly to avoid locking) | ||
+ | * physic resync / blocking / cheatprotect ? (later) | ||
+ | * player appearance / animation (later) |