NetworkProtocolNotes
From MountainfortWiki
Ghoulsblade (Talk | contribs) |
Ghoulsblade (Talk | contribs) |
||
Line 7: | Line 7: | ||
* 8x8x8 terrain chunk might be transferred as 512byte long utf8 text string, if blocktype is encoded as printable utf8 char | * 8x8x8 terrain chunk might be transferred as 512byte long utf8 text string, if blocktype is encoded as printable utf8 char | ||
- | |||
- | + | == map, show/hide/create/destroy, movement, server-sent content == | |
- | + | ||
- | + | ||
- | + | ||
- | == map, show/hide/create/destroy, movement == | + | |
* mapdata (update) : tile by tile (chunk) or single tile update | * mapdata (update) : tile by tile (chunk) or single tile update | ||
** each tile consists of 1 byte tiletype info and 1 byte parameter (4 bits) + lighting (4 bits) info | ** each tile consists of 1 byte tiletype info and 1 byte parameter (4 bits) + lighting (4 bits) info | ||
- | ** collision (solid/empty/liquid), texture is tiletype based | + | ** collision (solid/empty/liquid/stair-or-ramp), texture is tiletype based |
** special infos like direction or liquid fill level is handled via the extra parameter | ** special infos like direction or liquid fill level is handled via the extra parameter | ||
* player | * player | ||
Line 24: | Line 19: | ||
* 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 30: | Line 25: | ||
* sound/music effects | * sound/music effects | ||
* chat | * chat | ||
+ | * clientinteraction sends the current position, direction and the target tile position + face | ||
+ | * server sends update interval for looking (gestures for multiplayer) and targetting (default:0.1s) during tool-usage | ||
+ | * client sends targetting info : (A:starting point + direction AND B: target tile pos + side) while mouse is down (interval sent from server) | ||
+ | * client sends looking direction regularly (interval sent from server) | ||
+ | |||
+ | * types for sound/music | ||
+ | |||
+ | * tiles (box) types / terraintypes : texture url, name (tooltip) properties | ||
+ | |||
+ | * possibly animated or multi-part models : (probably obsolete by model type below) | ||
+ | ** monster/creature "models" (pixel art flat sprites first, later maybe simple modelling from big-pixel textures and rect-blocks?) | ||
+ | ** player skin ? | ||
+ | |||
+ | * model type : vertex+index array (as json or .js file) and texture | ||
+ | ** prefabs:block, double-culling-block(foliage), diamond, sphere, cylinder, ingot? (texcoords as param, in case atlas is used: neccessary for terrain) | ||
+ | ** can be used by : | ||
+ | *** "torch" terraintype items or similar (texture=atlas) (tree-round? foliage? mine-cart-tracks? ladders? stairs?) terrain-type-parameter -> different models? | ||
+ | *** items on ground ? | ||
+ | *** player wearable equipment (param at which bodypart the model is attached) | ||
+ | *** mobiles (ai-enemies, animals) | ||
+ | *** vehicles (boats, wagons, mining carts) | ||
+ | *** building parts | ||
+ | *** particles ? (turn to cam?) | ||
+ | |||
+ | * building type (1x1x1, 2x2x1,2x2x2, 3x3x3,3x3x2,3x3x1 ...) | ||
+ | ** tooltip | ||
+ | ** terraintypes (or model types) for parts | ||
+ | |||
+ | * image type ("sprite"?) | ||
+ | ** used by gui : texture name +uv start+ dimension(uv) + dimension on screen | ||
+ | ** interesting for particles ? (nah, atlas) | ||
+ | |||
+ | * 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?) | ||
+ | ** can contain text (including icons) | ||
+ | ** text input dialog (books, shields, player name) | ||
+ | ** inventory | ||
+ | ** 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 | ||
+ | |||
+ | == vehicles ? == | ||
+ | |||
+ | * df : wagons, minecraft : ships, uo : big ships ? | ||
== gui == | == gui == | ||
Line 38: | Line 76: | ||
* items crafting inside buildings (list of available items and required resources) | * items crafting inside buildings (list of available items and required resources) | ||
* other building functions (switches/levers,heal/sleep?) | * other building functions (switches/levers,heal/sleep?) | ||
+ | |||
+ | * generic multi-choice dialog : title text + entries (image + tooltip + text, (color, dimensions, multiple images for ressource list?)) | ||
+ | ** 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...) | ||
== player actions == | == player actions == | ||
Line 46: | Line 88: | ||
* activate object ? (switches) | * activate object ? (switches) | ||
* drop items (pickup automatic?) | * drop items (pickup automatic?) | ||
- | * construct building | + | * construct building (initiates server sent list of available buildingtypes and materials) |
* use building (starts crafting gui) | * use building (starts crafting gui) | ||