Commit Graph

251 Commits

Author SHA1 Message Date
Marcel Märtens
2ee18b1fd8 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
595f1502b3 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
499a895922 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
8f65168506 fix workspaces and Cargo dependencies 2020-06-09 01:23:21 +02:00
Marcel Märtens
9354952a7f Code/Dependency Cleanup 2020-06-09 01:23:19 +02:00
Marcel Märtens
74143e13d3 Implement a async recv test 2020-06-09 01:23:12 +02:00
Marcel Märtens
a6f1e3f176 Add a speedtest program to benchmark networking 2020-06-09 01:23:01 +02:00
Marcel Märtens
88f6b36a4e 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
f3251c0879 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
5c5b33bd2a 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
3d8ddcb4b3 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
52078f2251 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
a01afd0c86 initial implementation of a network api 2020-06-09 01:22:32 +02:00
Imbris
efe071d998 Fix panic with multibyte whitespace characters 2020-06-06 15:58:16 -04:00
S Handley
b1d191301a 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
34427373ef 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
ec03c4518a Change the version number to 0.6 2020-05-16 00:50:40 +02:00
S Handley
5a13b54cbf - 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
8c1fb3255c Downgraded minifb 2020-04-23 20:05:44 +01:00
Joshua Barretto
0a892e488a Updated examples 2020-04-23 18:20:34 +01:00
Imbris
5ed77b5054 Fix security 2020-04-01 20:03:15 -04:00
Imbris
97148cb6bb Merge branch 'master' into 'combat'
# Conflicts:
#   CHANGELOG.md
2020-04-01 20:42:27 +00:00
Imbris
a73d010f7b 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
b3791a2b4e Upgrade vek version so that it actually uses the patch 2020-03-30 19:44:51 -04:00
Mckol
aa59e8715d Updated Cargo.lock to fix vek not compiling 2020-03-30 15:45:22 +02:00
Imbris
ba3fa16c33 Create Dir type for better enforcement of non NaN, normalized representations of directions 2020-03-27 22:02:07 -04:00
Capucho
7048163153 Fixed Some minor bugs on the password field 2020-03-25 12:51:43 +00:00
Capucho
7851a407b1 Fix the cursor lagging behind on password field 2020-03-24 21:41:59 +00:00
timokoesters
ea2500e7ab Add minimum prepare duration to fireball and bow 2020-03-24 14:42:31 +01:00
Pfauenauge90
466b80e8a8 added const tweaker 2020-03-19 18:11:45 +01:00
Mckol
8838682f0b Added Controller support 2020-03-10 21:00:13 +00:00
Marcel Märtens
1cbd07d5e5 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
bc39b78173 Rebased. 2020-03-08 23:02:15 +01:00
Imbris
8d7c454029 Hide password text 2020-03-08 23:00:34 +01:00
Imbris
0022f8464d Update auth 2020-03-08 22:59:22 +01:00
Imbris
a04c1b1d1d Add uid to Player component
fix: world examples
2020-03-08 22:58:38 +01:00
Acrimon
08b4cc5fc3 Update auth to use new hashing scheme. 2020-03-08 22:56:34 +01:00
Acrimon
7db0ff0b8c Update chat-cli to work properly.
Update reqwest to 0.10.0
2020-03-08 22:54:15 +01:00
Imbris
8ef1251dc2 Add warning prompt for untrusted auth servers, move some auth code into 2020-03-08 22:51:37 +01:00
Acrimon
403deecc6d Server auth handling improvements. 2020-03-08 22:49:47 +01:00
Acrimon
584dcddba9 Updated to latest and greatest auth version. 2020-03-08 22:46:40 +01:00
Songtronix
50b845d1c3 :/ and reactivated the password field 2020-03-08 22:34:06 +01:00
Imbris
4a0c474be1 Remove Client dependency from Scene types and audio managers, add an
example for using voxygen as a library to renderer images of characters
2020-03-05 23:12:51 -05:00
Rémy PHELIPOT
98c37d0b28 [i18n] Configurable fonts
- Add font configuration in internationalization files
- Scale font size using a configurable ratio
- Add a script to identify translation item statuses using Git metadata
- Execute the i18n script in a new gitlab-ci step (delayed)
- Clone haxrcorp_4089_cyrillic_altgr font (haxrcorp_4089_cyrillic_altgr_extended)
  to add some additional latin characters (mainly for French)
2020-02-16 16:02:38 +01:00
S Handley
b739623579 Split the audio channels into SFX and music channels. This makes the
Music Channel for exploration music a basic Sink without spatial audio
functionality, which is not required.
2020-02-15 21:30:44 +00:00
Marcel Märtens
e960c2233b Change the version number to 0.5 2020-01-31 17:26:45 +01:00
Joshua Barretto
d87fc37aa2 Fixed watch compilation issue 2020-01-27 23:59:59 +00:00
Joshua Barretto
2d9aa21eef Added test world, friendly NPC pathfinding 2020-01-26 12:52:07 +00:00
Joshua Yanovski
53474a215a Resolving spurious Cargo.lock differences. 2020-01-23 18:18:46 +01:00
Joshua Yanovski
133ba29293 Fixing Cargo.lock after rebase. 2020-01-23 18:18:17 +01:00
Joshua Yanovski
ba043b91a2 Screenshots with F4 in the map, that will have the full resolution of
the displayed map (hopefully).
2020-01-23 18:18:16 +01:00
Joshua Yanovski
1d6d0ea03d Fix all warnings. 2020-01-23 18:18:16 +01:00
Joshua Yanovski
7f2573c561 Updating Cargo.lock. 2020-01-23 18:18:14 +01:00
Joshua Yanovski
1358f1dffa Changes to worldgen, adding more sedmient etc. 2020-01-23 18:18:14 +01:00
Joshua Yanovski
ebe0d14eab Send client 3D rendered map.
Also shares configurable rendering between map generator and server.
2020-01-23 18:18:14 +01:00
Joshua Yanovski
16c24e86b3 Updating Cargo.lock for sanity. 2020-01-23 18:18:13 +01:00
Joshua Yanovski
597bb3c526 Adding many new types of geomorphic laws:
- soil production (currently disabled).
- debris flow erosion (combined with regular stream power law).
- flow computation using multiple receivers.
- filling strategy during drainage network calculations.

Also tweaks a variety of other aspects of erosion.
2020-01-23 18:18:12 +01:00
Joshua Yanovski
825ba1b4f4 WIP fixes: more pleasing uplift generation.
Uses the exponential distribution now.
2020-01-23 18:18:07 +01:00
Rémy PHELIPOT
a6f9f533a5 Localization system for Voxygen
- Added a localization system in voxygen
- Support English and French languages
- Added a configuration option in the interface settings to change
  the language
2020-01-20 21:07:25 +01:00
Joshua Barretto
2c42aaf5f5 Added client-side character saving 2020-01-20 13:37:29 +00:00
Imbris
5666f18ded Add terrain meshing benchmark 2020-01-19 16:02:12 -05:00
Acrimon
71bd7f15ee
Even better conversion impl. 2020-01-13 20:54:56 +01:00
Songtronix
70eb2eed33 remove: discord rich presence 2020-01-10 17:01:50 +01:00
Monty Marz
851d7858e6 Scrolling Combat Text (SCT) 2020-01-10 00:33:38 +00:00
Yusuf Bera Ertan
24013f1a32 Use treeculler crate 2020-01-07 19:40:06 +03:00
Yusuf Bera Ertan
0b67dad4a5 Fix figure visible value not updating 2020-01-07 18:46:37 +03:00
Yusuf Bera Ertan
31d18b3381 Use temporal coherence for figure frustum culling, don't process figures if they are not in view frustum 2020-01-07 18:46:22 +03:00
Yusuf Bera Ertan
c19c222a90 Use temporal coherence for chunk frustum culling 2020-01-07 18:46:09 +03:00
Yusuf Bera Ertan
e32153e980 Improve frustum culling by using AABBs, add related debug information 2020-01-07 18:44:33 +03:00
Pierce Brooks
43febb5bf3 fix #426: Use new dispatch dependency to ensure proper thread routing of msgbox NSAlert calls ( correct MR workflow ) 2020-01-07 05:45:43 +00:00
Imbris
5813f626d1 cleanup 2019-12-20 22:48:14 -05:00
Imbris
8f7323f41b Stop syncing health change timer updates 2019-12-20 22:48:14 -05:00
Imbris
d341073a44 Upgrade to specs 0.15.1 2019-12-20 22:48:14 -05:00
Imbris
71cce03f29 Move sync code into common submodule 2019-12-20 22:37:12 -05:00
Imbris
609e0f23bf Stop global syncing of entity creation 2019-12-20 22:37:12 -05:00
Songtronix
fa93e35861 upgrade(dep): msgbox
Fix: FreeBSD compilation
2019-11-24 08:49:14 +01:00
Songtronix
2f93dd2c38 adjust logging level 2019-11-22 19:12:58 +01:00
Songtronix
7abf2a0fb9 change(log): switch to fern 2019-11-22 19:12:58 +01:00
soruh
6dfa146484 Mitgated RUSTSEC-2019-0014 by updating noise and
disabling its default features, specifically `image`,
which had the vulnerability.
2019-11-05 11:14:39 +00:00
Acrimon
21ceb6994b Updated lockfile. 2019-10-30 23:25:18 +01:00
timokoesters
20248a4818
feat: store items as RON files
When a new item is created, a ron file will be used as a template
2019-10-24 23:47:26 +02:00
Imbris
2fad65c749 Merge branch 'imbris/graphic-cache' into 'master'
Rework GraphicCache to use multiple texture atlases if necessary and put large images in their own textures.

See merge request veloren/veloren!609
2019-10-24 05:27:09 +00:00
Imbris
2703c8afe1 Move serverside client to a component and communications into server ecs systems 2019-10-23 23:50:06 -04:00
Imbris
b09bddda79 Make clients subscribed to nearby regions and only send physics updates from those regions. 2019-10-23 22:43:02 -04:00
Imbris
24d1f6d970 Add initial region system implementation 2019-10-23 22:39:42 -04:00
Imbris
8bb54976eb Rework GraphicCache to use multiple texture atlases and put large images in their own textures. 2019-10-19 21:28:30 -04:00
Shane Handley
eb65e4411f WIP (testing) Update conrod_core
This is a `cargo update -p conrod_core` to bring in updates to
`veloren/conrod/conrod_core` to add support for copy and paste.

Ref: veloren/conrod!2

Fixes #171
2019-10-19 15:12:37 +09:00
Joshua Yanovski
8ae2692b6e Allow canceling chunk generation.
Currently we only do this when no players are in range of the chunk.  We
also send the first client who posted the chunk a message indicating
that it's canceled, the hope being that this will be a performance win
in single player mode since you don't have to wait three seconds to
realize that the server won't generate the chunk for you.

We now check an atomic flag for every column sample in a chunk.  We
could probably do this less frequently, but since it's a relaxed load it
has essentially no performance impact on Intel architectures.
2019-10-16 11:39:41 +00:00
Marcel Märtens
30c9fcc911 Fix bug that metrics took a random port always introduced in !584
also removed the duplicate port from the server creation process, using the server settings struct now
2019-10-11 14:19:55 +02:00
Wu Yu Wei
4b80f88085 Bind random port for ServerMetrics 2019-10-11 09:06:34 +00:00
KyoZM
1998ed2fdd load structures from ron files / transfer static structure lists to ron files 2019-10-10 20:53:13 -03:00
Marcel Märtens
20c520a044 Change the version number to 0.4 2019-10-10 15:48:01 +02:00
Wu Yu Wei
75df4600bd Switch portpicker dependemcy to git
A pull request to fix has been created on original repository. But
since 0.4 is coming out pretty soon, let's swithc to this fork
temporary.
2019-10-07 15:35:20 +00:00
Brian Lewis
86619d4192 Fix crashing due to error in Alsa.
This uses a more recent version of cpal (a dependency of rodio hence the
rodio change) which seems to have fixed a crash due to
'device not available: "Invalid argument"' coming from Alsa.

The change in cpal also made some functions now return `Result` instead
of a bare type which I dealt with by using `expect` to minimize how far
these changes fan out into the code but maybe this isn't ideal.

Fixing https://gitlab.com/veloren/veloren/issues/280 - Crash with ALSA
2019-10-06 11:24:42 +02:00
Forest Anderson
b13f9f37f7 Revert "Merge branch 'angelonfira/change-memory-allocator-to-jemalloc' into 'master'"
This reverts merge request !547
2019-10-06 01:31:47 +00:00
Forest Anderson
e1bab6afe0 Added jemalloc for Linux systems 2019-10-05 17:57:29 -04:00
Forest Anderson
9ef98ce1a5 Remove heaptrack 2019-10-05 17:57:29 -04:00
Songtronix
43cae5ea64 Fix discord rich presence 2019-10-05 15:35:59 +00:00
Wu Yu Wei
193ff105e2 Update client-side password hashing to argon2 2019-10-05 13:12:20 +00:00
Mckol
9aba318df2 Hash the passwords client-side 2019-10-04 16:44:31 +00:00