Proto commits in MovingBlocks/Terasology

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:f44cc33
Author:Michael Pollind
Committer:GitHub

perf: upgrade to use proto3 (#4872)

The documentation is generated from this commit.

Commit:e6909b4
Author:Michael Pollind

perf: split packet into indvidual netMessages

Commit:eaa787a
Author:Michael Pollind

chore: remove packed default enabled in proto3

Commit:90ab8a8
Author:Michael Pollind

perf: upgrade with proto3 and reworked network packets

Commit:8b1c617
Author:Adrijaned
Committer:Adrijaned

Removed mentions of biomes from network-things

Commit:14182cf
Author:4denthusiast

Remove liquid data Remove liquid data from chunks, and the classes for its encoding.

Commit:1290be9
Author:4denthusiast

Add custom per-block data fields Allow mods to register additional 4, 8 or 16 bit data fields to be stored for each block along with the blodk IDs, biome data &ct. If data-fields of the same size are registered for disjoint sets of blocks, they may be made aliases of the same field, to save space.

Commit:37d6553
Author:Inei1

change ServerInfoMessage to send an error message instead of blacklist/whitelist

Commit:90dc492
Author:Inei1

basic implementation of server blacklist

Commit:fe63049
Author:Vizaxo
Committer:Tobias Nett

Convert alwaysRelevant to EntityScope, and update entity creation Remove the alwaysRelevant property, instead getting the information about entity relevance from the entity's scope. Also update the entity creation methods, moving all of the creation (including creating with a given id) into the EntityBuilder, to keep it all in one place. And update associated tests.

Commit:7c2ec1c
Author:Vizaxo
Committer:Vizaxo

Allow serialization of entity scope (sector or global) Allow information about what scope an entity is in (either sector-scope or global) to be serialized and saved when the world is saved. No information about which sector the entity is in is stored; that is worked out by the SectorManager when the entity is loaded.

Commit:42c7b0c
Author:Siarhei Shalyhaila
Committer:ar0ne

Add amount of players online to JoinServer screen

Commit:9041ee7
Author:Gianluca Nitti

Added MOTD to server configuration and message. Like suggested in #2855

Commit:fc68301
Author:Rasmus Praestholm

Remove a few more author tags.

Commit:873428b
Author:Martin Steiger

Communicate camera reflection height to remote clients

Commit:e70523c
Author:Florian Köberle
Committer:Florian Köberle

Don't maintain and restore external references. This code simplification is possible, as ids do no longer get reused.

Commit:ecb870f
Author:Florian Köberle
Committer:Florian Köberle

Change the entity id type from int to long. This allows us to drop in future the free list and meta data tables.

Commit:0138397
Author:Florian Köberle
Committer:Florian Köberle

Don't reuse entity ids. Reasoning: - The entity ids are now of type long and should thus not reoccur. - It allows for further simplifications. -> It is no longer necessary to manage external references. As they where mainly needed to check if the refrences of a restored entity are still valid and thus have not been reused yet.

Commit:8345615
Author:Sebastian Hartte
Committer:Sebastian Hartte

Plant systems now use the biome temperature/humidity for deciding whether to grow (change to LocalParameters), due to the high performance impact of perlin noise. Added biome id mapping synchronisation to the network protocol. Refactored several interfaces to remove access to world generation in non-authoritative mode and removed the RemoteWorldGenerator since it's no longer needed.

Commit:0633627
Author:Sebastian Hartte
Committer:Sebastian Hartte

Added a per-block concept of biome that is stored within the chunk data. Added an UpdateBiome concept to send biome updates (just like block updates) to network clients after the whole chunk has been transferred. Introduced a BiomeRegistry and Biome interface in the engine module and reworked the ChunkTessellator to use humidity/temperature associated with the block's biome. Future work: Directly specify foliage color in the biome and use that for coloring leaves.

Commit:803dd97
Author:Immortius

Switched to Run Length Encoded representation of the world when serialized.

Commit:7391d49
Author:Martin Steiger

Replicate player color over the network

Commit:993312b
Author:Rasmus Praestholm

Restructure: Move src and libs into new engine dir

Commit:099a111
Author:Immortius

Lighting information no longer stored on chunk save, and is instead regenerated on load. This prevents potential errors from light changes on the edge of the loaded world.

Commit:93646d3
Author:Immortius

Implemented module downloading from server during connect. Reworked load progress monitoring a little. Added logging of Java version during startup. Tweaked error handling when loading a world.

Commit:6be63cc
Author:Immortius

Some netcode restructuring in preparation for module downloading from server.

Commit:fa8d974
Author:Immortius

Modules versions are now stored in saved games and sent in the network handshake.

Commit:6928f77
Author:Immortius

Finished moving over to the new ChunkStore from the old Chunk protobuf class.

Commit:32ad163
Author:Immortius

Moved owner off of NetworkComponent and made it more central to entities. Added alwaysRelevant field for entities that should not be stored in chunk/player stores.

Commit:e736ced
Author:Immortius

Implemented core entity storage in chunk stores. Added setBlockRetainComponent functionality to force a block to be retained Some refactoring around the Storage Manager.

Commit:3125317
Author:Immortius

Continuing on developing the new StorageManager, starting to add support for saving to disk and restoring.

Commit:f0c21fb
Author:Immortius
Committer:MarcinSc

Game time is now persisted Bit of refactoring of the save game format in preparation for multiple world support. Removed some old classes that were unused.

Commit:d50d602
Author:Immortius
Committer:MarcinSc

Prefab inheritence should work properly. Prefabs now support a "removeComponents" list property of components to remove from their parent. Prefab loading is now handled much more by the asset system. Fixed cleanup of memory when returning to the main menu, including a number of memory leaks. Fixed a dubious location where multiple threads were changing an unsynchronized set.

Commit:39f812c
Author:Immortius

Game time is now persisted Bit of refactoring of the save game format in preparation for multiple world support. Removed some old classes that were unused.

Commit:a3ef3f8
Author:Immortius

Prefab inheritence should work properly. Prefabs now support a "removeComponents" list property of components to remove from their parent. Prefab loading is now handled much more by the asset system. Fixed cleanup of memory when returning to the main menu, including a number of memory leaks. Fixed a dubious location where multiple threads were changing an unsynchronized set.

Commit:8f4484d
Author:Immortius

Bug fixes: * Fixed initial replication of block ids to include family ids (to allow the client to know what freeform families have been registered) * Fixed an issue with network ids not being set correctly when starting to host. * Network Ids are now removed when the server is shut down. * Fixed an issue with blocks entities not being restored correctly when received client-side due to their prefab not being applied. * Functionality: * Added debugTarget command that prints the entity information of the current target to console.

Commit:0536937
Author:Immortius

Added some initial support for persisting players when they leave the game and restoring them on return. Added fix for handling of null audio manager (sounds load through the current manager). Further developed TerasologyTestEnvironment (for unit testing in an ingame-like setup) Some refactoring of packages

Commit:4b37fe1
Author:Immortius

Implemented the second half of the authentication process - authenticating with a previously provided certificate. Added timestamps to the handshake messages.

Commit:807de6a
Author:Immortius

Updated protobuf and netty. Partially implemented client identity and authentication. A server certificate is generated for the user on first run of Terasology. When a client joins a server for the first time, they are provided an identity for use on that server. Disabled compression temporarily (need to work out a bug causing some data to be lost)

Commit:a35c3e4
Author:Manuel Brotz

Chunks are now saved to disk using protobuf only. No java object serialization any more! Note: Old worlds can still be loaded and are converted into the new storage format. + added additional decode() method to interface ProtobufHandler<T, M> * updated file Chunks.proto to reflect latest changes in chunk storage * updated class WorldRenderer to support the new storage format * extended interface ChunkStore with new methods saveToFile(File) and loadFromFile(File) * lots of changes to class ChunkStoreProtobuf to implement the new storage format + added support for threads monitoring to class ChunkStoreProtobuf + added subclass ProtobufHandler to class ChunkStoreProtobuf

Commit:71ea88b
Author:Manuel Brotz

Extended Chunks.proto to support lists of compressed and uncompressed chunks.

Commit:7c0e428
Author:Manuel Brotz

Refactored chunk state representation into its own class. + added class ChunkState - removed subtype Chunk.State * changed class Chunk to use the new class ChunkState * changed some other classes to use the new class ChunkState * changed protobuf implementation to simplify encoding/decoding of chunk states - removed default constructor for class Chunk - removed implementation of interface Externalizable for class Chunk Note: From now on, java object serialization for chunks is no longer supported!

Commit:ce7e634
Author:Immortius

Added support for replicating block registration. Cleaned imports.

Commit:52f18b1
Author:Immortius

Completed move of configuration over to the new (JSON) system.

Commit:27cf8c5
Author:Immortius

Added support for clients specifying their view distance (only on connection, cannot be changed in game yet).

Commit:635e5be
Author:Immortius

Completed switch from old to new config system. Changed config load process to apply a delta over the default config, so missing values are restored.

Commit:90288bf
Author:Immortius

Backported audio system improvements from multiplayer fork. Volume controls and null audio system now supported.

Commit:0e14291
Author:Immortius

Finished integration of sound and music volume with config and gui.

Commit:bf11a3a
Author:Benjamin Glatzel

Adds various new rendering related features and tweaks. - Adds real refractive surfaces (third render pass for solid chunks - yey). - Renames various shader parameters and adds many new properties - Removes faked refractive water surface and adds a new config option to enable water refraction - Tweaks shading of ocean waves on "Insane" - Some more things I forgot...

Commit:0ab9212
Author:Benjamin Glatzel
Committer:Benjamin Glatzel

Tweaks various rendering related things and adds a new custom (less repetitive) ocean/water simulation/animation algorithm. - Adds that the normals for the offset water vertices get calculated using multisampling and differentiating - Separates grass animation from water animation (water animation is only available via the "Insane" and "Epic" graphics quality settings from now on) - Adds various properties to control the water simulation - Adds support for different quality settings for the water simulation (octaves used for the wave generation can he varied)

Commit:67a1a0a
Author:Benjamin Glatzel

Adds various rendering related additions, fixes and tweaks. Also adds TeraEd to be a part of the Terasology distribution by default. - Tweaks sky shader and adds inscattering (colored haze/fog) effect to the terrain - Adds first version of light shafts (currently disabled) - Increases water vertex animation complexity a bit - Replaces water normal map - Adds various new properties to be used in combination with TeraEd - Cleans up various other things

Commit:65cf7c9
Author:Benjamin Glatzel
Committer:Benjamin Glatzel

Tweaks some rendering related things, adjusts the color of the skysphere and extends some TeraEd related things engine and editor wise. - Adjusts skysphere color to fit the new style - Reduces bloom render target size - Adjusts outline shader properties - Enables outline shader in all display quality configurations by default

Commit:e0df4f2
Author:Benjamin Glatzel

Cleans up various rendering related things and adds a new (toony) outline shader to the "Insane" video quality setting.

Commit:935a06e
Author:Immortius

Set event fields to replicated by default, with a NoReplicate annotation to prevent them being sent Added a skipInstigator option to Broadcast events, to send them to everyone except the instigator (useful where the event is simulated client-side) Fixed issues with sending events to blocks. Moved look pitch and yaw to CharacterComponent and added pitch to input. This means that they don't need to be sent with events. Simplified AttackRequestEvent. Network enabled block damage. Added a prefab for block particles.

Commit:35feefa
Author:Benjamin Glatzel

Adds various rendering related fixes, tweaks and new features. - Adds support for film grain as a post-processing effect in combination with the "Insane" video quality setting - Improves SSAO and enables it with the "Insane" video quality setting - Adjusts HDR settings - Fixes that the exposure was falsely calculated when the luminance equalled zero

Commit:d3f603d
Author:Benjamin Glatzel

Removes the option to disable post-processing effects from the config since it is not officially supported any more (and might be deactivated because of settings ported over from a previous version).

Commit:2ef3bd3
Author:Benjamin Glatzel

Adds SSAO support and various other rendering related fixes and tweaks. SSAO can be enabled by pressing F9 - official support via the menu is disabled until the system works correctly in combination with transparent objects and surfaces. - Tweaks various HDR related settings to make the game more colorful - Fixes bloom - Incorporates the in #429 mentioned changes to the chunk shader - (Hopefully) fixes #428

Commit:abf274f
Author:Benjamin Glatzel

Adds new "insane" graphics quality mode and - as a first "insane" feature - camera motion blur. Also increase the default FOV from 80 to 90 degrees.

Commit:a6017f3
Author:Benjamin Glatzel

Adjusts some default config settings, overhauls the graphics quality settings and tweaks some shaders. Fixes flickering light. Completely removes the ugly settings and the option to disable the post-processing effects. Instead adds various new features which get disabled according to the current setting (bloom, automatic eye adaption, vignette, ...). Also sets the default FOV to 80 degrees.

Commit:20d1566
Author:Immortius

Added time synchronization with the server Added support for batched network messages

Commit:b093d2e
Author:Immortius

Merge branch 'develop' of git@github.com:MovingBlocks/Terasology.git into multiplayer Conflicts: mods/core/assets/prefabs/player.prefab src/main/java/org/terasology/asset/sources/AbstractSource.java src/main/java/org/terasology/componentSystem/rendering/FirstPersonRenderer.java src/main/java/org/terasology/config/Config.java src/main/java/org/terasology/entitySystem/pojo/PojoEntityManager.java src/main/java/org/terasology/game/types/FreeStyleType.java src/main/java/org/terasology/logic/commands/Commands.java src/main/java/org/terasology/logic/players/LocalPlayer.java src/main/java/org/terasology/logic/players/LocalPlayerSystem.java src/main/java/org/terasology/rendering/gui/widgets/UIItemContainer.java src/main/java/org/terasology/rendering/gui/windows/UIScreenItems.java src/main/java/org/terasology/rendering/logic/MeshRenderer.java src/main/java/org/terasology/rendering/world/WorldRenderer.java src/main/java/org/terasology/world/chunks/Chunk.java src/main/java/org/terasology/world/chunks/localChunkProvider/LocalChunkProvider.java

Commit:27bfda9
Author:Immortius

Added an improved format for entity data (PackedEntity). Some general tweaks and fixes to the metadata system.

Commit:1479c1e
Author:Immortius

Some optimisation to network messages - replaced use of strings for component/event and field names with ids.

Commit:0938a31
Author:Immortius

Implemented basic network support for UseItem and Attack Added some support around block entity replication Restricted client events to only be propagated when sent to owned entities

Commit:d130b80
Author:Manuel Brotz
Committer:Manuel Brotz

Added protobuf support for the Chunk class. Switched to protobuf to store new worlds. + added Chunks class which is responsible for mod extensions of chunk data and supports encoding and decoding of chunks into protobuf messages + added interface ProtobufHandler<T, M> to implement encoders and decoders for protobuf messages + added static class ProtobufHandler to Chunk class + added ChunkStoreProtobuf which uses protobuf internally to store chunks * internally renamed the liquid data into extra data * added checks to AdvancedConfig to make sure it does not throw if some settings can't be found * updated Chunks.proto to support mod extensions of chunk data * updated WorldRenderer to use ChunkStoreProtobuf instead of ChunkStoreGZip

Commit:e3764e1
Author:Manuel Brotz
Committer:Manuel Brotz

* changed required fields to optional in protobuf messages for chunks and tera arrays

Commit:b63f249
Author:Manuel Brotz
Committer:Manuel Brotz

+ added position and state to protobuf message Chunk

Commit:1882286
Author:Manuel Brotz
Committer:Manuel Brotz

+ implemented registry for tera array factories and serialization handlers + implemented TeraArray.encode(TeraArray) which encodes the supplied tera array into a protobuf message + implemented TeraArray.decode(ChunksProtobuf.TeraArray) which decodes the supplied protobuf message into a tera array * added a type identifier to the protobuf message for future use in mod supplied tera array implementations

Commit:0a0f69c
Author:Manuel Brotz
Committer:Manuel Brotz

+ implemented serialization handlers using ByteBuffers for every tera array + implemented benchmarks for different ways of serializing tera arrays + added Chunks.proto describing simple messages for chunks and tera arrays - removed stream based serialization handlers due to massive performance problems

Commit:2ab585f
Author:Immortius

Numerous fixes to event and entity replication. Removed inital chat code and replaced with an event based system. Added a client info prefab, for player information replicated to all players. Fixed dumpEntities command to dump all entities even if they are not set to be persisted. Added a "local" client indicator to ClientComponent. Fixed initialisation order on client so that prefabs are registered before received entities are processed. Removed irrelevent scoping from message manager.

Commit:03cb91c
Author:Immortius

Initial implementation of event replication.

Commit:b9d8d33
Author:Immortius

Initial implementation of entity replication (initial, update and removal) Overhauled Component Metadata handling and began adding support for event metadata (to support event replication)

Commit:e36e9a7
Author:Immortius

Added a touch of extra debugging to block changed messages. Started adding the backbone for entity replication

Commit:dffef95
Author:Immortius

Server changes to blocks are replicated to clients.

Commit:7e47c52
Author:Immortius

Initial multiplayer work: - Connection handshake - Activated modules server is using - Using block mapping server is using - Relevant chunk replication - Testing code for sending messages Currently all single player games are servers, and join game connects to localhost

Commit:2c1ae49
Author:Immortius

Added support for Sets in components, and explicit support for Region3i. Removed some unused protobuf definitions.

Commit:0b89a34
Author:Immortius

Integrated InputConfig with UIMenuConfigControls.

Commit:5022fd4
Author:Immortius

Implemented "persisted" flag for perfabs/entities. Can be used to set whether an entity should be persisted between sessions. Fixed facing of prefabs spawned with the spawnPrefab command.

Commit:f3a9a04
Author:Marcel L

Integrated chunk_generator.json into WorldManifest.json

Commit:a7344aa
Author:Marcel L

Added chunk generator selection to create world screen.

Commit:6e8165d
Author:Marcel L

Updated settings menu.

Commit:9a831d3
Author:Rasmus Praestholm

Fix up default bindings for moving forward and left, swap the mouse buttons, regenerate config so it'll matter - and fix more AssetManager moves

Commit:03954aa
Author:Overdhose

Initial options modification, changing water option requires restart

Commit:be1741d
Author:Benjamin Glatzel

Optimizes post processing.

Commit:4fed20b
Author:Benjamin Glatzel

* Fixes some parts of the duplicated shader code and stores the global shader include files in a central place - this should at least elimnate the shader compilation errors * Fixes wrong app data directory using OS X - this was a horribly wrong place ;) * Fixes copyright header in all source files (ouch!)

Commit:d121430
Author:Immortius

Merge branch 'develop' into multiplayer Conflicts: src/main/java/org/terasology/componentSystem/action/BookshelfHandler.java src/main/java/org/terasology/componentSystem/action/ExplosionAction.java src/main/java/org/terasology/componentSystem/action/SpawnPrefabAction.java src/main/java/org/terasology/componentSystem/action/TunnelAction.java src/main/java/org/terasology/componentSystem/block/BlockEntitySystem.java src/main/java/org/terasology/componentSystem/common/StatusAffectorSystem.java src/main/java/org/terasology/componentSystem/controllers/LocalPlayerSystem.java src/main/java/org/terasology/componentSystem/controllers/MinionSystem.java src/main/java/org/terasology/componentSystem/controllers/SimpleAISystem.java src/main/java/org/terasology/componentSystem/controllers/SimpleMinionAISystem.java src/main/java/org/terasology/componentSystem/items/InventorySystem.java src/main/java/org/terasology/componentSystem/items/ItemSystem.java src/main/java/org/terasology/componentSystem/rendering/BlockDamageRenderer.java src/main/java/org/terasology/componentSystem/rendering/FirstPersonRenderer.java src/main/java/org/terasology/componentSystem/rendering/MeshRenderer.java src/main/java/org/terasology/entityFactory/BlockItemFactory.java src/main/java/org/terasology/entityFactory/GelatinousCubeFactory.java src/main/java/org/terasology/entityFactory/PlayerFactory.java src/main/java/org/terasology/events/ActivateEvent.java src/main/java/org/terasology/game/modes/StateSinglePlayer.java src/main/java/org/terasology/logic/manager/AudioManager.java src/main/java/org/terasology/logic/manager/GroovyHelpManager.java src/main/java/org/terasology/logic/manager/GroovyManager.java src/main/java/org/terasology/logic/simulators/Simulator.java src/main/java/org/terasology/logic/world/Chunk.java src/main/java/org/terasology/logic/world/LocalWorldProvider.java src/main/java/org/terasology/logic/world/WorldUtil.java src/main/java/org/terasology/logic/world/chunkStore/ChunkStoreFileSystem.java src/main/java/org/terasology/model/structures/BlockCollection.java src/main/java/org/terasology/persistence/PersistableObject.java src/main/java/org/terasology/rendering/physics/BulletPhysicsRenderer.java src/main/java/org/terasology/rendering/shader/ShaderParametersPost.java src/main/java/org/terasology/rendering/world/ChunkUpdateManager.java src/main/java/org/terasology/rendering/world/Skysphere.java src/main/java/org/terasology/rendering/world/WorldRenderer.java src/test/java/org/terasology/game/logic/world/ChunkTest.java

Commit:6375541
Author:Benjamin Glatzel

* Changes the tinting of grass blocks by desaturating the textures * Drastically increases the resolution of the clouds and adjusts the noise function accordingly * Adds the functionality to hide the HUD to the 'H' key * Adds new background images for the menu and loading screen * Adds new image path to the README * Adds consolelog.json to .gitignore file and removes it from the repository

Commit:6a302a7
Author:Austin Richards

Rebased to MovingBlocks develop branch.

Commit:4eed267
Author:Immortius

Refactoring World/Chunks in preparation for remote world support. Changed chunks to be identified by their positions only, not by the hashes of their positions (due to collision concerns) Started to remove some dependencies on LocalWorldProvider

Commit:ae00717
Author:Immortius

Basic network test

Commit:3505a64
Author:Immortius

Fixed build file handling of resources Some work towards loading mods and adding them to the asset manager

Commit:2f70446
Author:Immortius

Changed items and gelatinous cubes to use prefabs. Changed fov setting to correctly be horizontal fov rather then vertical

Commit:f99f0db
Author:Immortius

Initial wave of project restructure * Adopted maven-style directory structure * Moved performance tests into their own sourceSet (run with perfTest task) * Split resources and groovy into separate source paths * Changed compatibility level to 1.6 * Changed output to use the target folder * Excluded some folders from the IDEA project to keep things neat * Run is now executed on the produced jar to solve classpath issues, pending improved resource resolution

Commit:6a4094a
Author:Immortius

Initial wave of project restructure * Adopted maven-style directory structure * Moved performance tests into their own sourceSet (run with perfTest task) * Split resources and groovy into separate source paths * Changed compatibility level to 1.6 * Changed output to use the target folder * Excluded some folders from the IDEA project to keep things neat * Run is now executed on the produced jar to solve classpath issues, pending improved resource resolution

Commit:f119f4e
Author:Immortius

Firmed up JSON serialization and added support for deserialization. Some small changes to EntityData protobuf

Commit:4c40fd6
Author:Immortius

Added support for storing ComponentType via indexes. More Refactoring of EntiyPersister

Commit:acc52f9
Author:Immortius

Completed implementation of storing only the elements of entities that differ from their origin prefabs.

Commit:e78598f
Author:Immortius

Started integrating prefabs into the entity system proper. The prefab used to create an entity is retained, and prefabs are stored and restored as part of the entity save.

Commit:b5a0f78
Author:Immortius

- Implemented entity ref invalidation, so when an entity is destroyed all references are broken and the id can be safely reused - Removed no longer needed Item onDestroy event handler - Fixed lighting of first person hand mesh - Persist freed ids list - Fixed saving entities if world directory doesn't exist yet

Commit:2ebda40
Author:Immortius

Started adding serialization support to the entity system