NetworkProtocolNotes

From MountainfortWiki

Jump to: navigation, search
(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)
-
Q : würde ich glaube ich erst mal nicht unbedingt machen, da man ja via klick auf ein tile (egal welches) mit der werkbank interagieren kann A:werkbank suckt= :P nen workshop ist auch nur ne große werbank
 
* 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, shields, player name)
+
** 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 ou
+
** 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)

Latest revision as of 19:22, 30 April 2011

Personal tools