209 Commits

Author SHA1 Message Date
Songtronix
a3fbea3ac4 fix: hot-anim feature 2020-06-24 14:35:52 +02:00
Marcel Märtens
f2f3cd2f28 switch to tracing stlye and enhance logs with usefull information
- Updated CHANGELOG
- reduce dependencies
- found out that we have alot of duplicate coding... alot...
2020-06-22 09:53:15 +02:00
Kevin Glasson
cfe09c2f55 Convert all other veloren crates to use tracing
- Completely removed both `log` and `pretty_env_logger` and replaced
with `tracing` and `tracing_subscriber` where necessary.

- Converted all `log::info!(...)` et al. statements to just use the
shorthand macro i.e. `info!`. This was mostly to make renaming easier.
2020-06-21 23:19:41 +08:00
Kevin Glasson
16cf7689a8 Convert voxygen to use tracing
There are several noteable changes in this commit that mean that logging
will behave differently to how it did previously.

- There are now no separate filter levels for terminal and file output.
This is a feature that is lacking in `tracing` but is set to be resolved
by https://github.com/tokio-rs/tracing/pull/508. At which point we MAY
include it.

- The default log level was previously `WARN` - it is now `INFO`.
2020-06-21 23:17:25 +08:00
Imbris
64421942c6 Windows is weird, cargo is weird..... (also tidy up a few things) 2020-06-19 00:48:19 -04:00
Imbris
a46789013c Hotreload animations using libloading 2020-06-19 00:48:19 -04:00
Marcel Märtens
cb03bc61d7 dependency reduction:
- authc no longer uses reqwest
 - image only supports PNG
 - replace routille with tiny_http
 - several other dependencies
 - cargo upgrade
 - following improvement was measured on R7 1700X:
   before:
    - cargo build: 3076.73s user / 4:45 total / 589 dependencies
    - cargo test: 6118.38s user / 7:30 total / 959 dependencies
   after:
    - cargo build: 2680.54s user / 4:05 total / 480 dependencies
    - cargo test: 5351.81s user / 7:04 total / 791 dependencies
 - added xMAC94x to CODEOWNERS for Cargo.toml, he will protect them from now on and hit people with evil looks ;)
2020-06-11 20:55:34 +02:00
Marcel Märtens
faea832165 switch from serde to manually for speed, remove async_serde
- removing async_serde as it seems to be not usefull
  the idea was because deserialising is slow parallising it could speed up.
  Whoever we need to keep the order of frames, (at least for controlframes) so serialising in threads would be quite complicated.
  Also serialisation is quite fast, about 1 Gbit/s such speed is enough for messaging, it's more important to serve parallel streams better.
  Thats why i am removing async serde coding for now
- frames are no longer serialized by serde, by byte by byte manually, increadible speed upgrade
- more metrics
- switch channel_creator into for_each_concurrent
- removing some pool.spwan_ok() as they dont allow me to use self
- reduce features needed
2020-06-09 01:23:42 +02:00
Marcel Märtens
701daef8f1 Examples, HUGE fixes, test, make it alot smother
- switch `listen` to async in oder to verify if the bind was successful
- Introduce the following examples
  - network speed
  - chat
  - fileshare
- add additional tests
- fix dropping stream before last messages can be handled bug, when dropping a stream, BParticipant will wait for prio to be empty before dropping the stream and sending the signal
- correct closing of stream and participant
- move tcp to protocols and create udp front and backend
- tracing and fixing a bug that is caused by not waiting for configuration after receiving a frame
- fix a bug in network-speed, but there is still a bug if trace=warn after 2.000.000 messages the server doesnt get that client has shut down and seems to lock somewhere. hard to reproduce

open tasks
[ ] verify UDP works correctly, especcially the connect!
[ ] implements UDP shutdown correctly, the one created in connect!
[ ] unify logging
[ ] fill metrics
[ ] fix dropping stream before last messages can be handled bug
[ ] add documentation
[ ] add benchmarks
[ ] remove async_serde???
[ ] add mpsc
2020-06-09 01:23:37 +02:00
Marcel Märtens
bf93011c50 COMPLETE REWRITE
- use async_std and implement a async serialisaition
- new participant, stream and drop on the participant
- sending and receiving on streams
2020-06-09 01:23:30 +02:00
Marcel Märtens
ed3161ed66 shutdown and udp/mpsc
- theorectically closing of streams and shutdown
- mpsc and udp preparations
- cleanup and build better tests
2020-06-09 01:23:26 +02:00
Marcel Märtens
a37d8adb5f fix workspaces and Cargo dependencies 2020-06-09 01:23:21 +02:00
Marcel Märtens
96de577cae Code/Dependency Cleanup 2020-06-09 01:23:19 +02:00
Marcel Märtens
690c8c22f1 Implement a async recv test 2020-06-09 01:23:12 +02:00
Marcel Märtens
713c3ce475 Add a speedtest program to benchmark networking 2020-06-09 01:23:01 +02:00
Marcel Märtens
fdccee45d4 Differ Metrics to make it easier to implement your own metric coding!
Implement my own metric coding in networking
2020-06-09 01:22:48 +02:00
Marcel Märtens
0777d70a0e Converting the API interface to Async and experimenting with a Channel implementation for TCP, UDP, MPSC, which will later be reverted
It should compile and tests run fine now.
If not, the 2nd last squashed commit message said it currently only send frames but not incomming messages, also recv would only handle frames. The last one said i added internal messages and a reverse path (prob for .recv)
2020-06-09 01:22:45 +02:00
Marcel Märtens
15edf6dbb4 Bring networking tests to green
- Seperate worker into own directory
 - implement correct handshakes
 - implement correct receiving
2020-06-09 01:22:42 +02:00
Marcel Märtens
7c39385477 Continue backend for networking and fill gaps, including:
- introduce tlid to allow
 - introduce channel trait
 - remove old experimental handshake
 - seperate mio_worker into multiple fn
 - implement stream in backend
2020-06-09 01:22:38 +02:00
Marcel Märtens
697e845468 first implementation of connect and tcp using a mio worker protocol and:
- introduce a loadtest, for tcp messages
 - cleanup api
 - added a unittest
 - prepared a handshake message, which will in next commits get removed again
 - experimental mio worker merges
 - using uuid for participant id
2020-06-09 01:22:35 +02:00
Marcel Märtens
833e5955dc initial implementation of a network api 2020-06-09 01:22:32 +02:00
Imbris
212368aa89 Fix panic with multibyte whitespace characters 2020-06-06 15:58:16 -04:00
S Handley
d0f03fcff4 Make the persistence system code more generic so that it handles all
data associated with a character, rather than individually as we were
planning to do with stats/inv/etc... This removes potential for DB locking when we deal with each individually, and we
should have plenty of room for additional writes within the transaction.
2020-06-01 21:34:52 +00:00
Joshua Yanovski
1c7f85dfb7 Make civsim and sites deterministic.
For anything in worldgen where you use a HashMap, *please* think
carefully about which hasher you are going to use!  This is
especially true if (for some reason) you are depending on hashmap
iteration order remaining stable for some aspect of worldgen.
2020-05-21 21:43:54 +02:00
Marcel Märtens
5e96162ad4 Change the version number to 0.6 2020-05-16 00:50:40 +02:00
S Handley
7a6c392fc3 - Load characters after login.
- Make the character screen load with an empty character list from the server, send event to the server for character creation with data, but not yet saving them to the DB.
- Working but messy character saving to DB
- Add the character_data to the client, rather than keep it in the GLobalState.
2020-05-09 15:41:25 +00:00
Joshua Barretto
8e1fa5b1a2 Downgraded minifb 2020-04-23 20:05:44 +01:00
Joshua Barretto
cfe3888ff3 Updated examples 2020-04-23 18:20:34 +01:00
Imbris
f02aa99b8e Fix security 2020-04-01 20:03:15 -04:00
Imbris
baf973a32a Merge branch 'master' into 'combat'
# Conflicts:
#   CHANGELOG.md
2020-04-01 20:42:27 +00:00
Imbris
29672a00e0 Point to newly released vek, add todo to reconsider empty item, remove uneeded ori slerp, remove agent from character behavior, add todos to combat sys, check if entities still exist before possessing & if possessed entity has a loadout move the active item into the second item space 2020-04-01 11:15:14 -04:00
Imbris
2a126fff83 Upgrade vek version so that it actually uses the patch 2020-03-30 19:44:51 -04:00
Mckol
e05083852f Updated Cargo.lock to fix vek not compiling 2020-03-30 15:45:22 +02:00
Imbris
94f44b0b32 Create Dir type for better enforcement of non NaN, normalized representations of directions 2020-03-27 22:02:07 -04:00
Capucho
b1409ee717 Fixed Some minor bugs on the password field 2020-03-25 12:51:43 +00:00
Capucho
9096d4c95b Fix the cursor lagging behind on password field 2020-03-24 21:41:59 +00:00
timokoesters
5960a807bf Add minimum prepare duration to fireball and bow 2020-03-24 14:42:31 +01:00
Pfauenauge90
4d5721c35f added const tweaker 2020-03-19 18:11:45 +01:00
Mckol
aec086a10d Added Controller support 2020-03-10 21:00:13 +00:00
Marcel Märtens
accfd5b9f8 regenerated Cargo.lock, requiering 7 less dependent crates and greatly reducing size of cargo.lock file 2020-03-09 11:49:57 +01:00
Acrimon
ea33a8e2b3 Rebased. 2020-03-08 23:02:15 +01:00
Imbris
b451baa1fc Hide password text 2020-03-08 23:00:34 +01:00
Imbris
88fdff77c4 Update auth 2020-03-08 22:59:22 +01:00
Imbris
1ccff31be5 Add uid to Player component
fix: world examples
2020-03-08 22:58:38 +01:00
Acrimon
20ac07374f Update auth to use new hashing scheme. 2020-03-08 22:56:34 +01:00
Acrimon
c6a159ff14 Update chat-cli to work properly.
Update reqwest to 0.10.0
2020-03-08 22:54:15 +01:00
Imbris
d066505bd3 Add warning prompt for untrusted auth servers, move some auth code into 2020-03-08 22:51:37 +01:00
Acrimon
db427a2c18 Server auth handling improvements. 2020-03-08 22:49:47 +01:00
Acrimon
f4689db333 Updated to latest and greatest auth version. 2020-03-08 22:46:40 +01:00
Songtronix
0997620381 :/ and reactivated the password field 2020-03-08 22:34:06 +01:00