Commit Graph

432 Commits

Author SHA1 Message Date
Joshua Barretto
99a881f349 Added entity simulation to rtsim, reification, assimilation 2020-11-23 10:44:59 +00:00
Joshua Barretto
808d1873bd Began implementing rtsim 2020-11-23 10:37:59 +00:00
Joshua Barretto
3ee4245652 Added test poles, minor improvements 2020-11-23 10:37:59 +00:00
Odd-Harald Lillestø Myhren
56e37a4846 Fix bug that caused campfires and other stuff to duplicate 2020-11-22 21:03:06 +00:00
Snowram
a939eac30d Refines spawn values, add gradients to debug_column 2020-11-21 14:33:35 +01:00
Snowram
febe79e602 Added remaining creature spawns 2020-11-21 14:33:33 +01:00
Joshua Barretto
2ae51de7f0 Added more creature spawns 2020-11-21 14:33:32 +01:00
Joshua Barretto
bb6ca9fcba Don't despawn entities so eagerly 2020-11-21 14:33:31 +01:00
Imbris
891e81cf58 Merge branch 'imbris/save-selected-char' into 'master'
Save the selected character, deselect character when deleting, auto select newly created character

See merge request veloren/veloren!1516
2020-11-15 01:40:44 +00:00
Imbris
4f2512f126 Save the selected character, deselect character when deleting, auto select newly created character 2020-11-14 19:17:42 -05:00
Imbris
2072929a5a Send ability map from the server to the client on connection instead of loading from the assets 2020-11-14 16:07:07 -05:00
Sam
e2fe2fd532 Speed and power on weapons are now able to modify abilities after they are loaded from ron files. 2020-11-12 21:24:36 -06:00
Imbris
37e4ea4669 Remove ability map from top level functions 2020-11-12 21:24:35 -06:00
Sam
9b4fa4e961 Started moving loading of ability manifest to an ecs variable. 2020-11-12 21:24:34 -06:00
Joshua Barretto
9b233708e2 Turned tree generation into a post-processing layer, ripped out old tree generator for performance wins 2020-11-09 10:20:22 +00:00
Marcel Märtens
a7123c6e14 put cache in ECS to get rid of allocations 2020-11-04 14:19:28 +01:00
Marcel Märtens
ce3173ecdf add metrics for physics sys and implement concurrent physics 2020-11-04 11:53:13 +01:00
Marcel Märtens
3d9c3e481e Undo one Componenet per Stream and instead use Client.
In order to keep the performance we made it Internal Mutability and use a `Mutex` per Stream, till `Stream.send` is no longer `&mut self`.
The old solution didn't rely on this, but needed multiple Components instead which zest didn't liked
2020-11-03 08:56:08 +01:00
Marcel Märtens
00456c8373 extract a Presence Component, which is server only and has state of Player and Client. Presence is only valid for Clients that are in game 2020-11-03 08:56:02 +01:00
Marcel Märtens
084b60d7ec Fix an error that a failed initialization of a client lead to a Kill of the gameserver. Instead we just log a msg now. 2020-11-03 08:55:56 +01:00
Marcel Märtens
e9be36c993 replace the single message system with 5 message systems. one per stream to handle less ECS systems PER msg system.
As the MAIN message system was already on 25 of the max of 26 possible Ressources
2020-11-03 08:55:42 +01:00
Marcel Märtens
dd966dd00e remote all streams from Client and put it directly in the ecs system.
This commit does not run compile as the message sys now would requiere 30 imput parameters which is over the max of 26 :/
2020-11-03 08:55:35 +01:00
Sam
a7e3e55a12 Transitioned damage and healing from u32/i32s to enums. 2020-10-28 18:15:25 -05:00
Marcel Märtens
2a7378b4ae pack together InGame, CharacterScreen and General variant in a single enum, as requested by zesterer.
His reason to reqeust that is, that there might not be a perfect disctinction in the future.
Now we need to send ServerGeneral over streams and do additional checking at various places to verify that not the wrong variant is send.
2020-10-12 11:27:21 +02:00
Marcel Märtens
ff374eab59 create a ServerMsg and ClientMsg enum and verify the state when in debug mode to benefit from the transition 2020-10-11 22:59:53 +02:00
Marcel Märtens
e8452fafc6 fix naming, replace NotInGame with CharacterScreen 2020-10-11 22:55:38 +02:00
Marcel Märtens
8b40f81ee2 No longer block the main thread for client connections, new clients will be handled by server without waiting.
- Instread we have a dedicated thread that will async wait for new participants to connect and then notify the main thread
- registry no longer sends a view distance with it.
- remove ClientMsg::Command again as it's unused
2020-10-11 22:55:02 +02:00
Marcel Märtens
017e004309 Rename enums to allow a super enum in the future, but i am not yet sure if we want to introduce this yet
```
//This is a helper structure, containing all possible data send over
pub enum ClientMsg {
    Initial(ClientType),
    General(ClientGeneralMsg),
    InGame(ClientInGameMsg),
    NotInGame(ClientNotInGameMsg),
    Register(ClientRegisterMsg),
    Ping(PingMsg)
}
```
2020-10-11 22:49:25 +02:00
Marcel Märtens
b1db5ef488 Redo Network Frontend.
Rather than having a single Stream to handle ALL data, seperate into multiple streams:
 - Ping Stream, for seperate PINGS
 - Register Stream, only used till the client is registered, then no longer used!
 - General Stream, used for msg that can occur always
 - NotInGame Stream, used for everything NOT ingame, e.g. Character Screen
 - InGame Stream, used for all GAME data, players, terrain, entities, etc...

This version does compile, and gets the client registered (with auth too) but doesnt get to the char screen yet.

This fixes also the ignoring messages problem we had, as we are not sending data to the register stream!
This fixes also the problem that the server had to sleep for the Stream Creation, as the Server is now creating the streams and client has to sleep.
2020-10-11 22:49:14 +02:00
Imbris
fa45edb541 Fix clippy, minor fmt, add TODO comments 2020-10-10 03:01:30 -04:00
Imbris
39f78e9116 Remove saves dir env var and setting from server settings and just always use saves as the dir name 2020-10-10 02:15:54 -04:00
Imbris
71251ca6a6 Change admins from Vec<String> into Hashset<Uuid>, add commands to server-cli-bin for adding and removing admins 2020-10-10 02:10:32 -04:00
Imbris
ca2bf937e6 Apply saves dir override when loading settings, change whitelist to a HashSet, let admins login even if they are not on the whitelist to reflect the comments in login code 2020-10-10 02:10:32 -04:00
Imbris
83fb26c4f9 Group editable server settings into one struct that is stored in the ecs, don't expose DataDir, use Uuid in the whitelist instead of usernames, replace Banlist record tuple with new type with named fields, remove commented code 2020-10-10 02:10:32 -04:00
Imbris
fb2cf1a292 Fix clippy warnings 2020-10-10 02:10:32 -04:00
Imbris
7c14a3f4a4 New userdata folder that holds voxygen settings and logs and server saves and settings, split up server settings file into parts that are persisted back to their files and parts that are read-only, misc fixes 2020-10-10 02:10:32 -04:00
Ben Wallis
51459c0733 Implemented graceful shutdown on SIGUSR1 signal. Added shutdown <seconds> TUI command. Added abortshutdown TUI command. Fixed a bug in TUI that caused a panic on quit in basic mode on windows. 2020-10-04 21:24:45 +01:00
Forest Anderson
25ab132d73 Merge branch 'xvar/add-clone-on-ref-ptr-clippy-lint' into 'master'
Added #![deny(clippy::clone_on_ref_ptr)] to all crates and fixed resulting lint errors

See merge request veloren/veloren!1411
2020-09-28 19:32:03 +00:00
Joshua Yanovski
b9528da8f6 Improve chunk space consumption by a lot.
3x - 5x depending on terrain.  We can do a lot better but this is a good
start.

Also, added chunk group count to metrics.  This correlates with memory
usage specifically by chunk voxel data in a much more direct way than
chonk or chunk count do, so this should provide extra useful information
(especially for our average overhead per chonk / chunk).
2020-09-28 13:35:49 +02:00
Ben Wallis
b3dd8e8a02 Added #![deny(clippy::clone_on_ref_ptr)] to all crates and fixed resulting lint errors 2020-09-27 17:25:33 +01:00
Marcel Märtens
8eec46424f switching veloren naming scheme, to either one of the following:
`stable-0.7.0 (<hash>-<datetime>)` for release versions.
And
`nightly-<date> (<hash>)` for nightly and master versions

Reason is, many players only give information that they are running `0.x.0` but are not giving us the information which day, or commit they are running. So we should make master builds less confusing.
2020-09-22 11:47:18 +02:00
Ben Wallis
712f2e9c97 * Moved migrations to beginning of server initialisation
* Added migrations for entity ID changes to existing tables
2020-09-17 23:02:14 +00:00
Marcel Märtens
cb6fa52eae fix client stats, difference client/player 2020-09-17 00:19:48 +02:00
Marcel Märtens
3c58b64689 add detailed information on state tick timings 2020-09-16 18:24:18 +02:00
Marcel Märtens
184d405f10 Better Metrics for Server
- Player online is now seperated into players connected and disconnected and is event driven
 - Metrics for ChunkGeneration: this is the server side for tracking actuall generation
 - Metrics for Chunk Network Requests
2020-09-16 18:14:04 +02:00
Joshua Yanovski
19485b6a00 Add a DisconnectReason enum. 2020-09-14 08:16:09 +02:00
Marcel Märtens
961b8a4d7c Implement the Player Timeout as config 2020-09-06 23:34:57 +02:00
Joshua Barretto
b87bbaff0b Merge branch 'xMAC94x/hotfix_increase_timeout' into 'master'
tmp increase TIMEOUT from 20s to 40s.

See merge request veloren/veloren!1352
2020-09-06 17:54:59 +00:00
Joshua Barretto
2a64a75a0f Made boulders avoid rivers 2020-09-04 11:41:56 +01:00
Marcel Märtens
3ee7bb5a98 tmp increase TIMEOUT from 20s to 40s.
This will not solve the StreamClose, but make it less annoying for some.
2020-09-01 23:16:11 +02:00