Commit Graph

204 Commits

Author SHA1 Message Date
Joshua Barretto
c168ff2f9b Added rtsim saving, chunk resources, chunk resource depletion 2023-04-09 19:25:51 +01:00
Joshua Barretto
0cafafdaa7 Began integrating rtsim2 into server 2023-04-09 19:25:51 +01:00
Joshua Barretto
63a949b95c Removed spawn town and safe spawn settings 2023-04-01 17:51:05 +01:00
Isse
c34e5ad4ed Small fixes 2023-03-29 23:11:59 +00:00
Marcel Märtens
dad73ba2a3 fix clamp clippy errors 2022-11-28 14:26:27 +01:00
Marcel Märtens
0ab7a2543e fix clippy errors 2022-11-28 14:08:11 +01:00
Avi Weinstock
c62bc0dd0d Allow pets to be traded with. 2022-09-30 14:51:49 -04:00
Joshua Yanovski
2c15d0af56 Reduce overhead of messaging systems. 2022-09-14 21:04:53 -07:00
Joshua Yanovski
986d104faa Update Rust toolchain. 2022-09-08 15:43:53 -07:00
Imbris
334937568e Add an entity view distance setting that allows limiting the distance
entities are synced from and displayed in.

NOTE: Syncing entities work at the granularity regions which are
multi-chunk squares but the display of entities in voxygen is limited in
a circle with the radiues of the supplied distance.

Additional details and changes:
* Added `ViewDistances` struct in `common` that contains separate
  terrain and entity view distances (the entity view distance will be
  clamped by the terrain view distance in uses of this).
* View distance requests from the client to the server now use this
  type.
* When requesting the character or spectate state the client now passes
  its desired view distances. This is exposed as a new parameter on
  `Client::request_character`/`Client::request_spectate`. And the client
  no longer needs to send a view distance request after entering these
  states. This also allows us to avoid needing to initialize `Presence`
  with a default view distance value on the server.
* Removed `DerefFlaggedStorage` from `Presence` and `RegionSubscription` since the
  change tracking isn't used for these components.
* Add sliders in voxygen graphics and network tabs for this new setting.
  Show the clamped value as well as the selected value next to the
  slider.
* Rename existing "Entities View Distance" slider (which AFAIK controls
  the distance at which different LOD levels apply to figures) to
  "Entities Detail Distance" so we can use the former name for this new
  slider.
2022-08-25 23:24:43 -04:00
Imbris
c36d6e873f Fix issue with the region subscription system not updating on view
distance changes (until the player crossed a chunk boundary and
triggered the normal update).

This introduces a `ViewDistance` struct that provides an abstraction
around limiting the rate the view distance can be cycled up and down.
This helps avoid unnecessary sending, deleting, and then resending of
synced things like entities (the client will still delete its terrain
locally and re-request it though).

The second part of this fix is storing the last view distance in the
`RegionSubscription` struct and then updating region subscriptions if
this doesn't match the current view distance in the `Presence`
component.
2022-08-25 23:24:43 -04:00
IsseW
87821d5c1d force update counter 2022-08-09 19:22:09 +02:00
Joshua Barretto
b555381677 Added server gameplay settings, ability to toggle explosion burns off 2022-06-14 14:24:08 +01:00
N A
c09f070241 Change animal species to have only one inventory slot 2022-05-29 23:53:00 +00:00
Marcel Märtens
1b76874342 renamings and using unstable sort according to a code review 2022-05-11 21:50:41 +02:00
Marcel Märtens
637e63fbe2 switch from a Component to a Ressource with an Eventbus
Set CHUNK_SITE to 10 which results in a mean of 13ms per Slowjob. Its good if it stays under 30ms so it has less influence on ticks.
Some performance values measured with a AMD Ryzen 1700X:
 - voxygen and server and swarm (25 clients, 10 vd) on one machine.
 - total runtime was 240s
 - CHUNK_GENERATOR total time is 486s with a mean of 40ms
 - CHUNK_SERIALIZER total time is 18.19s with a mean of 13ms, so in total its a order of magnitude lower
   Trancy confirms this, the Serialize backlog is usually handled within 1-2 ticks.
 - terrain::sys total time 1.2s, mean 188us
 - msg::terrain::sys total time 812ms, mean 125us
 - terrain::sync total time 12ms, mean 1,85us
 - chunk_serialize::sys total time 69ms, mean 10us
 - chunk_send::sys total time 50ms, mean 7us

so all in all total time for serializsation is 20.33 of which 89% are spend outside of the ECS
2022-05-11 21:04:17 +02:00
Marcel Märtens
9b53693783 switch to a system where chunk_serialize will start a SlowJow that is then consumed by chunk_send 2022-05-11 20:22:21 +02:00
Marcel Märtens
6c756c2440 first implementation of defering serialisation 2022-05-11 20:22:19 +02:00
Marcel Märtens
697673bcca update toolchain to nightly-2022-04-25 2022-05-03 15:22:28 +02:00
Sam
4991f7ecea Gnarlign site tweaks and chieftain buff 2022-02-11 01:23:09 -05:00
Avi Weinstock
f3f08936d8 Decrease too-many-arguments-threshold and type-complexity-threshold. 2022-01-30 20:16:21 +01:00
Avi Weinstock
5f8957d8ef Globally allow the clippy lints {new_without_default, many_single_char_names, identity_op, type_complexity, too_many_arguments}. 2022-01-30 20:16:20 +01:00
juliancoffee
ed593cd0cb Adress review №2 2022-01-28 00:02:34 +02:00
juliancoffee
e004fba9da Adress review 2022-01-28 00:02:34 +02:00
juliancoffee
4a4f2f8d8f Loadout Update: Managed Rng
Rewrite EntityInfo api to take Rng from caller.
2022-01-28 00:02:34 +02:00
juliancoffee
d5b927602a Loadout Udpate: NpcData part
Actually implement creating npc with new EntitytInfo by chaning
CreateNpc.loadout to CreateNpc.inventory and cleaning code in
NpcData::from_entity_info.
2022-01-28 00:02:34 +02:00
Sam
9b6c76bd3b Removed health scaling that bypasses the skill system. 2022-01-15 11:58:28 -05:00
Joshua Barretto
e3203080ed Added Calendar for temporal events based on the real-world calendar 2021-12-20 18:03:52 +00:00
holychowders
b40d94dd53 Re-allow and improve fleeing. 2021-12-07 20:18:03 -06:00
Jonathan Berglin
596307c9b7 Remove unused clippy suppressions 2021-12-05 17:59:02 +00:00
Marcel Märtens
ef40ebe0c8 update toolchain to nightly-2021-11-24 2021-11-24 10:09:22 +01:00
juliancoffee
1dc53dad3a Make test-server compile again 2021-10-29 23:49:37 +03:00
Imbris
8987389e8a Submit chunk requests to the generator within the terrain system right before receiving new chunks, so that duplicate work is not done for chunks that just finished but were not yet added to the terrain. 2021-10-08 16:17:31 -04:00
Joshua Barretto
6d33e0d183 Prevented double-spawning of chunks 2021-10-08 12:20:46 +01:00
Joshua Barretto
8dc8aeace5 Added minimum server-side chunk loading 2021-10-07 14:23:55 +01:00
juliancoffee
7291d32209 Make ItemDrop component with Item again 2021-09-27 20:36:18 +03:00
Sam
27823ce8fa Rtsim now uses entity configs. 2021-09-27 15:09:22 +03:00
Sam
09dd9b4813 Changed ItemDrop to use LootSpec 2021-09-27 15:09:22 +03:00
juliancoffee
f810af4eec Rename EntityInfo level field to health_scaling 2021-09-17 20:12:42 +03:00
Ben Wallis
9e35f5ec33 Explosions no longer change block colours within the radius of a safe zone. Doubled the radius of the safe zone in the /home town. 2021-08-20 09:00:55 +01:00
juliancoffee
09e8ee2b3f Remove giants 2021-08-16 18:15:01 +03:00
juliancoffee
5941d6731c Refactor supplement evaluation to use NpcData 2021-08-16 17:27:59 +03:00
Joshua Barretto
c2498d81c7 Added feature flag for terrain persistence 2021-08-12 10:48:00 +01:00
Joshua Barretto
738e59965f Added experimental terrain persistence 2021-08-12 10:26:20 +01:00
Joshua Barretto
45f94b0bce Better Agent API 2021-08-02 13:08:39 +01:00
Joshua Barretto
422e1c30f4 Added menacing, made agent code less hacky 2021-07-31 20:33:28 +01:00
Marcel
680492cea6 Merge branch 'juliancoffee/entity_refactor' into 'master'
Improve terms of EntityConfig and LoadoutBuilder

See merge request veloren/veloren!2688
2021-07-28 23:19:04 +00:00
Ben Wallis
01ca6911a9 * Pets are now saved on logout and spawned with the player on login
* Pets now teleport to their owner when they are too far away from them
* Limited the animals that can be tamed to `QuadrupedLow` and `QuadrupedSmall` to prevent players taming overly powerful creatures before the pet feature is further developed
* Added `Pet` component used to store pet information about an entity - currently only used to store the pet's database ID
* Added `pet` database table which stores a pet's `body_id` and `name`, alongside the `character_id` that it belongs to
* Replaced `HomeChunk` component with more flexible `Anchor` component which supports anchoring entities to other entities as well as chunks.
2021-07-28 22:36:41 +00:00
juliancoffee
14ac9a8b4e Improve terms of EntityConfig and LoadoutBuilder
* rename LoadoutBuilder::new to LoadoutBuilder::empty
* remove LoadoutBuilder::default as Default makes no sense here
* move comments from template.ron to EntityConfig struct
* add FIXME comments to split EntityConfig into EntityBase and
EntityExtension
2021-07-28 19:19:10 +03:00
Avi Weinstock
5dd56b724c Rename find_space_opt to try_find_space. 2021-07-24 13:09:10 -04:00