Commit Graph

644 Commits

Author SHA1 Message Date
Sam
3d57db9485 Test fix for torvus 2021-02-23 14:38:58 -05:00
ccgauche
4b1c033f6e Added scopeguard to protect against unwind 2021-02-23 13:58:13 +01:00
ccgauche
267e7d8b4c Finalized Retrieve API 2021-02-22 23:59:41 +01:00
ccgauche
06aa7ab70c Retrieves added + New ECS memory layout for plugins 2021-02-22 23:59:32 +01:00
ccgauche
1597fcc79e Fixed the plugin compilation and added comments
TODO: Remove compilation errors on WASM side (while using common).
2021-02-22 23:59:25 +01:00
Marcel Märtens
3f5c64bec0 Client::new can now resolve DNS requests, better networking error messages 2021-02-22 17:35:19 +01:00
Marcel Märtens
514d5db038 Update Network Protocol
- now last digit version is compatible 0.6.0 will connect to 0.6.1
 - the TCP DATA Frames no longer contain START field, as it's not needed
 - the TCP OPENSTREAM Frames will now contain the BANDWIDTH field
 - MID is not Protocol internal

Update network
 - update API with Bandwidth

Update veloren
 - introduce better runtime and `async` things that are IO bound.
 - Remove `uvth` and instead use `tokio::runtime::Runtime::spawn_blocking`
 - remove futures_execute from client and server use tokio::runtime::Runtime instead
 - give threads a Name
2021-02-22 17:34:55 +01:00
Caelan
82c33d9ccb Backdate coreaudio-sys for OSX cross toolchain compatibility
See https://github.com/RustAudio/coreaudio-sys/issues/48
2021-02-19 15:46:36 -08:00
Marcel Märtens
03af9937cf Stabelize Network again:
- completly switch to Bytes, even in api. speed up TCP by fak 2
 - improve benchmarks
 - speed up mpsc metrics
 - gracefully handle shutdown by interpreting Ok(0) as tokio::tcpstream closed now.
 - fix hotloop in participants by adding `Some(n)` to fix endless handing.
 - fix closing bug by closing streams after `recv_mgr` is shutdown even if now shutdown is triggered locally.
 - fix prometheus
 - no longer throw when a `Stream` is dropped while participant still receives a msg for it.
 - fix the bandwith handling, TCP network send speed is up to 1.5GiB/s while recv is 150MiB/s
 - add documentation
 - tmp require rt-multi-threaded in client for tokio, to not fail cargo check

this is prob stable, i tested over 1 hour.
after that some optimisations in priomgr.
and impl. propper bandwith.
Speed is up to 2GB/s write and 150MB/s recv on a single core

sync add documentation
2021-02-17 19:37:48 +01:00
Marcel Märtens
ea8ab1ce7a Great improvements to the codebase:
- better logging in network
 - we now notify the send of what happened in recv in participant.
 - works with veloren master servers
 - works in singleplayer, using a actual mid.
 - add `mpsc` in whole stack incl tests
 - speed up internal read/write with `Bytes` crate
 - use `prometheus-hyper` for metrics
 - use a metrics cache
2021-02-17 16:15:00 +01:00
Marcel Märtens
9884019963 COMPLETE REDESIGN of network crate
- Implementing a async non-io protocol crate
    a) no tokio / no channels
    b) I/O is based on abstraction Sink/Drain
    c) different Protocols can have a different Drain Type
       This allow MPSC to send its content without splitting up messages at all!
       It allows UDP to have internal extra frames to care for security
       It allows better abstraction for tests
       Allows benchmarks on the mpsc variant
       Custom Handshakes to allow sth like Quic protocol easily
 - reduce the participant managers to 4: channel creations, send, recv and shutdown.
   keeping the `mut data` in one manager removes the need for all RwLocks.
   reducing complexity and parallel access problems
 - more strategic participant shutdown. first send. then wait for remote side to notice recv stop, then remote side will stop send, then local side can stop recv.
 - metrics are internally abstracted to fit protocol and network layer
 - in this commit network/protocol tests work and network tests work someway, veloren compiles but does not work
 - handshake compatible to async_std
2021-02-17 12:39:47 +01:00
Marcel Märtens
5aa1940ef8 get rid of async_std::channel
switch to `tokio` and `async_channel` crate.
I wanted to do tokio first, but it doesnt feature Sender::close(), thus i included async_channel
Got rid of `futures` and only need `futures_core` and `futures_util`.

Tokio does not support `Stream` and `StreamExt` so for now i need to use `tokio-stream`, i think this will go in `std` in the future

Created `b2b_close_stream_opened_sender_r` as the shutdown procedure does not need a copy of a Sender, it just need to stop it.

Various adjustments, e.g. for `select!` which now requieres a `&mut` for oneshots.

Future things to do:
 - Use some better signalling than oneshot<()> in some cases.
 - Use a Watch for the Prio propergation (impl. it ofc)
 - Use Bounded Channels in order to improve performance
 - adjust tests coding

bring tests to work
2021-02-17 12:38:53 +01:00
Marcel Märtens
1b77b6dc41 Initial switch to tokio for network, minimum working example. 2021-02-17 12:37:59 +01:00
Caelan
dda4931f46 Clean and update dependencies
* Remove tweak feature
 * Remove const-tweaker
 * Update tiny_http
 * Update bitvec to 0.21.0
 * Downgrade euc to avoid conflict with vek 0.12.0
 * Require exactly vek 0.12.0
 * Update all other dependencies automatically based on these changes
 * Update gilrs to latest at the request of Ada Lovegirls
 * Update meshing benchmarks to new criterion API
2021-02-17 01:27:06 -08:00
Joshua Barretto
4d19308612 Merge branch 'lboklin/quat-ori' into 'master'
Redefine Ori as a quaternion

See merge request veloren/veloren!1755
2021-02-16 22:39:11 +00:00
Lippy13
23d2a7ca10 Fix compile error under Windows 2021-02-10 03:38:01 +00:00
Ludvig Böklin
582ddfc3cd Ori: add tests, rename to_vec() => look_vec(); Dir: add methods, normalize on rot 2021-02-09 13:52:03 +01:00
Imbris
357cb26e05 Update native_dialog to 0.5.2 2021-02-07 00:48:57 -05:00
James Melkonian
1d8496ea21 Move agent system to server 2021-02-06 06:15:25 +00:00
jiminycrick
8b97199245 Update rand dependency 2021-01-26 20:35:08 -08:00
Imbris
adaea096d2 Update winit and iced 2021-01-23 01:09:33 -05:00
Acrimon
b464a1876e
update itertools for voxygen 2021-01-20 16:00:08 +01:00
Acrimon
9f16a946ee
update a few deps 2021-01-20 15:53:58 +01:00
Ben Wallis
aef2637288 Refactored loadout to have public functions for each slot instead of requiring callers to use the _INDEX consts 2021-01-08 19:12:09 +00:00
ccgauche
885c0b3b2c Update lock 2021-01-08 16:57:29 +01:00
Joshua Barretto
1604616768 Merge branch 'ccgauche/new-wasmer-backend' into 'master'
ccgauche/new wasmer backend

See merge request veloren/veloren!1644
2021-01-08 08:48:31 +00:00
ccgauche
06ffe61219 Added feature flag
changed field name to size
2021-01-08 08:48:30 +00:00
Joshua Barretto
a4b9230f03 fixed Cargo.lock conflict
Fixed `crossbeam-queue` being referenced  twice in the lockfile
2021-01-07 20:25:12 +00:00
jiminycrick
aceac9e205 Upgrade noise eliminating old rand dependency 2021-01-05 10:10:47 -08:00
Acrimon
e76474463a
update authc 2020-12-28 16:42:40 +01:00
Benoît du Garreau
989683d2d3 Improve world::Index 2020-12-17 12:08:04 +01:00
Benoît du Garreau
0cf164f33a Use assets_manager to load assets 2020-12-17 12:06:07 +01:00
Marcel Märtens
e8003a44dd update specs 2020-12-16 14:31:16 +01:00
Marcel Märtens
a1b50a86c4 update guillotiere 2020-12-16 10:56:00 +01:00
Marcel Märtens
e3307344ab get rid of some insecure dependencies 2020-12-16 10:42:36 +01:00
Marcel Märtens
107fd432f5 update further crates 2020-12-16 08:56:21 +01:00
Marcel Märtens
26918d10c9 update chrossbeam, tracy, prometheus (and reduce server deps to crossbeam-channel) 2020-12-16 00:51:07 +01:00
Joshua Barretto
f8c8e342e6 Moved common networking code to common/net, clippy fixes 2020-12-13 17:23:45 +00:00
Joshua Barretto
027842f832 Resolved plugin dependency cycle, allowing more interesting plugin API 2020-12-13 17:15:33 +00:00
Joshua Barretto
780f54ac90 Reorganised plugin crates 2020-12-13 17:15:32 +00:00
ccgauche
c95f57cafd Fixed comments
- Would be better to remove the iterator and just collect with a loop to avoid extra allocations
 - tructure
 - A HashSet is probably better
 - Usefull -> Useful
 - I'd have thought plugin-api-derive is a better name
2020-12-13 17:14:39 +00:00
ccgauche
ee7fb990c3 Added plugin system
Added a plugin system based on wasmer-runtime
 - Support Action (Print handled)
 - Support Events (PluginLoadEvent handled)
2020-12-13 17:14:37 +00:00
Joshua Barretto
12b29ea174 Began work on plugin API and plugin loading 2020-12-13 17:13:57 +00:00
Marcel Märtens
eba3532386 move tools and chat-cli in src/bin and examples 2020-12-12 02:12:00 +01:00
Marcel Märtens
534f083b08 get rid of insecure dependency completly 2020-12-11 16:13:57 +01:00
Ben Wallis
81a8ee0c19 Changed logging to use termcolor crate to fix ansi control codes showing when run under Windows Command Prompt 2020-12-06 14:49:13 +00:00
James Melkonian
71303fecfd Aura System and Campfire Health Regen 2020-12-04 22:24:56 +00:00
Marcel Märtens
e398cca53c move common_state into common_sys 2020-12-01 13:46:28 +01:00
Marcel Märtens
add7922653 Move Systems out of common into common_sys
This requires to move `State` into a own crate called `common_state` which depends on `common` and `common_sys`
2020-12-01 13:44:07 +01:00
Marcel Märtens
ca1601a980 Change the version number to 0.8 2020-11-28 11:25:58 +01:00
Joshua Barretto
22fb71905b Added rtsim entities moving when unloaded, better generation 2020-11-23 10:45:01 +00:00
Joshua Barretto
99a881f349 Added entity simulation to rtsim, reification, assimilation 2020-11-23 10:44:59 +00:00
jiminycrick
decb0e3e24 Hackily upgraded rodio and cpal to 0.13 2020-11-18 13:31:12 -08:00
Imbris
d5dd126724 Add tracy feature that randomly disappeared back into voxygen 2020-11-11 22:33:02 -05:00
Imbris
a97b188bea Make fps display and specification more precise 2020-11-11 21:47:22 -05:00
Imbris
d2166fed3d Make iced ui use scale from the settings 2020-11-11 03:02:22 -05:00
Imbris
469b048de9 Update iced 2020-11-11 03:02:22 -05:00
Imbris
c247263258 Update to the latest git iced 2020-11-11 03:02:22 -05:00
Imbris
3baac6aeba Update to latest iced git, rebase fixes 2020-11-11 03:02:22 -05:00
Imbris
e4bc035a62 Add support for TextInput widget, rename widgets module to widget, update to glyph_brush 0.7.0 2020-11-11 03:02:21 -05:00
Imbris
75adcb20e8 More buttons, FillText custom widget that adjusts text size based on available space, created button component thing (a reusable composition of widgets), fixed log to tracing rebase error 2020-11-11 03:02:21 -05:00
Imbris
bc0792a57a Rename localization/font types (e.g. VoxygenLocalization -> Localization) 2020-11-11 03:02:21 -05:00
Imbris
a7458c099c Implement text renderering with glyph_brush (lifetime error) 2020-11-11 03:02:20 -05:00
Imbris
bbbede68fc Initial setup to use iced 2020-11-11 03:02:20 -05:00
Marcel Märtens
72afd7af6c switch to spin_sleep 2020-11-10 22:39:10 +01:00
Marcel Märtens
e4e5c6e55b massivly switch clock algorithm.
- before we had a Clock that tried to average multiple ticks and predict the next sleep.
   This system is massivly bugged.
   a) We know exactly how long the busy time took, so we dont need to predict anything in the first place
   b) Preduction was totally unrealistic after a single lag spike
   c) When a very slow tick happens, we dont benefit from 10 fast ticks.
 - Instead we just try to keep the tick time exact what we expect.
   If we can't manage a constant tick time because we are to slow, the systems have to "catch" this via the `dt` anyway.
2020-11-10 18:31:42 +01:00
Marcel Märtens
40f5afc2b0 ci cleanup, dependency update 2020-11-06 14:34:42 +01:00
Imbris
64def3cde4 Allow interacting with nearby blocks without pointing at them, unify selection of block/entity interactors so that only one is select at once, rearrange pickup and mount range consts 2020-10-29 18:40:11 -04:00
Marcel Märtens
1b47913835 fix clippy after toolchain update 2020-10-26 22:30:51 +01:00
Marcel Märtens
153c6c3b13 Fixing Tarpaulin isn't easy.
So first off all we had to update the toolchain, i think everything in september is okay, but we got with this current version.
Then we had to update several dependencies, which broke:
 - need a specific fix of winit, i think we want to get rid of this with iced, hopefully, because its buggy as hell. update wayland client to 0.27
 - use a updated version of glutin which has wayland-client 0.27 and no longer the broke version 0.23
 - update conrod to use modern copypasta 0.7
 - use `packed_simd_2` instead of `packed_simd` as the owner of the create abandoned the project.
 - adjust all the coding to work with the newer glutin and winit version. that also includes fixing a macro in one of the dependencies that did some crazy conversion from 1 event type to another event type.
   It was called `convert_event`
 - make a `simd` feature which is default and introduce conditional compiling.
   AS I HAVE NO IDEA OF SIMD AND THE CODE. AND I DIDN'T INTRODUCE THE ERROR IN THE FIRST PLACE, WE PANIC FOR NON SIMD CASE FOR NOW. BUT IT WORKS FOR TESTS.
 - tarpaulin doesnt support no-default-features. so we have to `sed` them away. semms fair.
2020-10-26 17:04:20 +01:00
Imbris
2be87f6ea8 Fix crash with unicode characters 2020-10-24 16:03:53 -04:00
Marcel Märtens
55b59fbe07 various small fixes according to the MR 2020-10-12 11:25:20 +02:00
Imbris
b9b84d2890 Migrate singleplayer save folders to the new location if they have not already been generated 2020-10-10 20:25:32 -04:00
Imbris
308cca0dc9 Put server-cli specific settings in their own structure, serde_derive -> serde 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
Joshua Barretto
ee3781d168 Updated lockfile 2020-09-20 11:46:12 +01: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
Imbris
c3ae641fbb Merge branch 'imbris/tracy' into 'master'
Add more tracing instrumentation and tracy support

See merge request veloren/veloren!1359
2020-09-10 05:07:51 +00:00
Marcel Märtens
68168b0ae4 replace heavy msgbox with light native-dialog 2020-09-08 23:49:49 +02:00
Raiyan Sayeed
906da2f0c7 added option for borderless fullscreen in setting -> graphics menu 2020-09-07 05:12:15 +00:00
Imbris
0683a40741 Use finish_continuous_frame directly 2020-09-06 22:28:14 -04:00
Imbris
4f68a6df27 Update tracy crates, reduce overhead of timing, add more misc instrumentation 2020-09-06 22:28:14 -04:00
Imbris
d95e539495 Intial setup of tracy 2020-09-06 22:28:14 -04:00
Joshua Barretto
282291c9dc Updated changelog 2020-09-04 11:49:48 +01:00
Joshua Barretto
2a64a75a0f Made boulders avoid rivers 2020-09-04 11:41:56 +01:00
Capucho
6e24ff31ee Fix all the problems with the tui 2020-09-03 09:04:42 +02:00
Capucho
332cb20df1 Added flags to toggle the tui 2020-09-01 23:03:38 +02:00
Capucho
a2d70e6ff6 Escape ansi sequences 2020-09-01 23:03:31 +02:00
Capucho
c399afa7c5 Made the server cli great 2020-09-01 23:03:29 +02:00
Songtronix
5f350b2bea Merge branch 'songtronix/fix-assets-finding' into 'master'
fix: locate assets in hopefully all cases

Closes #727 and #745

See merge request veloren/veloren!1347
2020-08-31 18:23:54 +00:00
Monty Marz
a6abda391f orcs adjustment and inline_tweak crate
Adjust female orc headsize

add inline_tweak crate to voxygen and anim

format cargo.toml alphabetically
2020-08-31 15:26:46 +00:00
Songtronix
11730f2136 change(common): remove find_folder 2020-08-31 16:43:16 +02:00
Joshua Yanovski
8be3648a4d Move sprite data to a config file. 2020-08-28 09:23:43 +02:00
Marcel Märtens
8c883c200d Switch veloren_network over to use the official example layout.
adjusted those examples to run again
created a CI TEST to always `check` examples
fixed fmt in examples so that pipeline gets green
2020-08-26 10:07:22 +02:00
Marcel Märtens
144f88f811 Propper Compression support of network.
- Compression is no longer enabled always but can now be enabled per Stream.
   If a Stream is Compression enabled it will compress and decompress all msg (except for `raw` access) before handling them internally.
   You need to handle compression yourself for `raw` fn.
 - added a new feature to the network crate to enable or disable the compression
 - switched to `lz-fear` instead of `lz4-compression`
 - use `bitflags` to represent the `Promises` struct
2020-08-25 23:55:27 +02:00
Joshua Yanovski
2dfd3b13d1 (See sharp/lod-history) LOD, shadows, greedy meshing, new lighting, perf
---

Pretty much a Veloren fork at this point.  Here's a high level overview of the changes (will be added to CHANGELOG just before merge).

At a high level this MR incorporates roughly two groups of changes.

The first group consists of new game features: more flexible map sizes, level of detail terrain, shadow maps, and a new lighting
engine.  This is "feature work" that (mostly)  only adds new things to Veloren, and mostly shouldn't affect old stuff.

The second big group of changes are those addressing the fallout from all the new features.  These include performance fixes of
various sorts: the addition of multiple graphics options and optimization of the cheap ones to avoid work, switching all voxel
models to use some variant of greedy meshing, switching over much of our CPU-side vector math to exploit SIMD instructions
(coinciding with a fork of `vek`), and a rewrite of how the UI handles text rendering (coinciding with updates to our fork
of `conrod`).  Making Veloren's hardcoded colors appear correct under the new lighting engine also required considerably
changes (TODO: Fill in this section when it's complete).

The second category of changes often heavily touches code owned by other people, including frequently modified code "owned" by a
handful of people, so I recommend that this code be reviewed particularly carefully.

---

At a high level (each will be described in more detail below):
- The world map has been refactored.
  - The world size is no longer hardcoded (@zesterer).
  - The map generation code was made generic to allow using it outside of the `world` crate (@zesterer).
  - On world creation, we now compute *horizon maps* (@zesterer).
  - The way we pass the world from the server to the client has been updated (@xMAC94x).
  - Artifacts related to image rotation were fixed (@imbris).
  - Multiflow rivers were enabled (@zesterer).
  - In the process of making changes related to the world map, various incidental fixes and optimizations were required.
- The new *level of detail* feature was added (@zesterer wrote part of this and has checked out the rest).
  - A new LOD terrain rendering step was added to the pipeline.
  - The LOD terrain quality was made configurable via a graphics setting.
  - Horizon maps were used to cast shadows from LOD chunks on both LOD and non-LOD terrain.
  - A "voxelization" effect was incorporated into rendered LOD terrain to make it blend better into the world.
  - In the process of making changes related to LOD, various incidental fixes and optimizations were required.
- Veloren's lighting has been completely overhauled (@zesterer has already checked most of this out).
  - A semi-accurate index of refraction was assigned to our materials.
  - A new, more realistic, physically based approach to lighting was used using the *Ashikhmin Shirley* BRDF.
  - We emulate *atmospheric scattering* using equations designed for measuring solar panel light exposure.
  - We attempt to compute *realistic light attenuation* in water using its real material properties.
  - In the process of making changes related to LOD, various incidental fixes and optimizations were required.
- Point and directional lights now cast realistic shadows, using *shadow mapping.* (@imbris, @zesterer, @Treeco, @YuriMomo)
  - Point light shadow maps were added to the rendering pipeline, using geometry shaders and *seamless cube maps*.
  - Directional light shadows were added to the rendering pipeline, using LISPSM together with disabling *depth clamping*.
  - "Shadow-only" chunks and NPCs were added to prevent shadows from models behind you from disappearing.
  - In the process of making changes related to shadow maps, various incidental fixes and optimizations were required.

The addition of shadow maps, LOD terrain, and the new lighting all led to significant performance degradation, on top of other
changes happening in master.  Therefore, a large number of performance improvements were also needed:

- The graphics options were made much more flexible and configurable, and shaders were optimize.
  - New options were provided for how to render lights and shadows  (@Pfauenauge, @zesterer).
  - Graphic setting storage and configuration were overhauled to make adding new features easier (@Pfauenauge, @imbris).
  - Shaders were rewritten to utilize GLSL's preprocessor to avoid overhead (@zesterer, @YuriMomo).
  - In the process of making changes related to providing additional rendering options, various incidental fixes and optimizations were required.
- Voxel model creation was switched to use *greedy meshing.*
  - A new voxel meshing method, greedy meshing, was added (@imbris).
  - Uses of the older meshing methods were migrated to use greedy meshing (@imbris, @jshipsey, @Pfauenauge).
  - New restrictions were added to terrain, figure, and sprites to future proof them for further optimizations (@jshipsey, @Pfauenauge, @zesterer).
  - Most positions are now relative to either chunk or player position for better precision (@imbris, @zesterer, @scottc).
  - In the process of making changes related to greedy meshing, various incidental fixes and optimizations were required.
- Animation and terrain math were switched to use SIMD where possible.
  - Fixes were made to vek to make its SIMD feature usable for us (@zesterer, @imbris).
  - The interface and types used in bone animation were changed in various ways (@jshipsey, @Snowram, @Pfauenauge).
  - Redundant code generation for body animation is now partly taken care of by a macro (@jshipsey, @Snowram, @Pfauenauge).
  - Animation code was modified to to use vek's SIMD representation where possible (@jshipsey, @Snowram, @Pfauenauge).
  - Terrain meshing code and shadow map math were also modified to use vek's SIMD representation (@imbris).
  - SIMD instruction generation was enabled (@YuriMomo, @jshipsey, @Snowram, @imbris, @Angelonfira, @xMAC94x).
  - In the process of making changes related to greedy meshing, various incidental fixes and optimizations were required.
- The way we cache glyphs was completely refactored, fixed, and optimized.
  - Our fork of `conrod` was optimized in various ways (@imbris).
  - Our fork of `conrod` now exposes whether a widget was updated during the current frame (@imbris).
  - Our use of the glyph cache was rewritten for correctness (@imbris).
  - A *text cache* was introduced that lets us skip remeshing glyphs that have not changed (@imbris).
  - Various changes were made to reduce pressure on the glyph cache, with more planned (@imbris, @Pfauenauge).
  - In the process of making changes related to the glyph cache, various incidental fixes and optimizations were required.
- Colors were changed to keep Veloren's look consistent with master.
  - Some older tree models were brought back (@Pfauenauge).
  - TODO(@Sharp): All hardcoded colors were extracted and made hotloadable.
  - TODO(@Treeco, @Pfauenauge, @imbris, @jshipsey): Hardcoded colors were fixed to conform to Veloren's style.
  - TODO(@Treeco, @Pfauenauge, @imbris, @jshipsey): Color models were fixed to conform to Veloren's style.

A detailed description of the involved changes follows.

---

- The world size is no longer hardcoded.  All functions dependent on world size now take a `WorldSizeLg`, which holds the base 2 logarithm of each actual world dimension and is guaranteed to maintain certain properties (outlined in `common/src/terrain/map.rs`).  Additionally, many utility functions that utilize the world size were moved into `common` as well (mostly `common/src/terrain/mod.rs`).  Finally, the world map format was updated in order to store its size explicitly, with a migration path from the old format that should work whenever the old formatted map was a square (practically always).  See `world/src/sim/mod.rs` for these changes.
- The map generation code was made generic to allow using it outside of the `world` crate.  The parts of the map generating code that do not need to query the world were moved over to `common/src/terrain/map.rs`, allowing them to be used from the client without creating a dependency on `world`.  The rest of it was turned into helper functions in `world/src/sim/map.rs`, which can be passed as closures to the generic map generation code to complete its construction.  This also means that colors are now passed in separately to the map generation function.  See <https://veloren.net/devblog-78/> for more details.
- On world creation, we now compute *horizon maps*.  See the function in `world/src/sim/util.rs`.

  Given a height map and a plane intersecting that height map, our horizon maps allow us to encode enough information to reconstruct shadows for each point on the height map using only the *horizon angle* (the angle at which the sun starts to become visible).  As Veloren's sun only covers one plane, this is sufficient for encoding sun shadows for LOD terrain, by encoding two angles per chunk (one for each 90 degrees the sun covers).  We can also use this for the moon, if we want, since the moon follows the same path.  Additionally, we store the *height* of the furthest occluder, to try to make the shadows volumetric; so this means 4 bytes in total for each chunk.

  Support for horizon maps has been merged into the map functionality in common as well.
- The way we pass the world from the server to the client has been updated.  Rather than passing the prerendered map, we instead pass three maps with values for each chunk; one with the color information, a second with altitude information, and a third with horizon map information.  We then reconstruct the map on the client, together with some additional information we send from the server (like the sea level and maximum height).  See `common/src/msg/server.rs` for a detailed description of the format of `WorldMapMsg`, and `server/src/libr.rs` and `client/src/lib.rs` for details of the map construction and parsing.
- Artifacts related to image rotation were fixed.  See the commit message for commit SHA `cf74d55f2e3d2ae7d25fd68d5c73b01a6afde86e` for a detailed explanation.  This involved changes to shaders, the addition of a new type of graphic (also reflected in the graphic cache) that allows specifying a border color (which automatically makes the associated texture immutable), and some related fixes.  I reproduce the first two paragraphs of the MR description as well:

 ```
 Fix map image artifacts and remove unneeded allocations.

 Specifically, we address three concerns (the image stretching during
 rotation, artifacts around the image due to clamping to the nearest
 border color when the image is drawn to a larger space than the image
 itself takes up, and potential artifacts around a rotated image which
 accidentally ended up in an atlas and didn't have enough extra space to
 guarantee the rotation would work).
 ```
- Multiflow rivers were enabled.
  This does not really need to be part of this MR, and would be easy to revert, but since it seemed to provide a nice improvement it's currently packaged with it.
  We already computed multiple outflows from each chunk for erosion purposes long before this MR.
  However, we never modified river rendering to be able to handle this case (just a single downhill river flow is complex enough!) so this was not exposed when deciding which chunks were rivers.
  Now that
- In the process of making changes related to the world map, various incidental fixes and optimizations were required.  Some examples of fixes include making sure terrain is never lowered to below sea level (to make the shadow maps report correct values), fixing map altitudes and colors to understand things like cliffs and "block level" coloring (that doesn'te xist on the column level), and fixing a crashbug when rendering images for the UI where source pixels are strongly rectangular.  Some examples of related performance fixes include avoiding allocating a fresh vector for all the maps (i.e. copying it over to change the format from `[u32; n]` to `DynamicImage` and then copying again to convert to `RgbaImage`), and instead using the `gfx::memory::slice` function to accomplish the same thing.  These sorts of changes are spread all arond the code.

This includes the additon of a new scene, `voxygen/src/scene/lod.rs`, a new pipeline `voxygen/src/render/pipeline/lod_terrain.rs`, and new shaders `assets/vxygen/shaders/lod-terrain-vert.glsl` and `assets/vxygen/shaders/lod-terrain-frag.glsl`, as well as associated changes to the renderer in `voxygen/src/render/renderer.rs`.

The main idea behind our initial approach to LOD was to take the world data we now get from the server (altitude, color, and horizon mapping).

  - Some previously computed values were turned into shader uniforms for better prediction on weak processors. (@zesterer)
  - Calls to power or trig functions were removed or replaced with multiplications, where possible.
  - After some deliberation
  - To properly handle sprite "waving" for nearby sprites,

We explicitly designed the greedy meshing system with figures and sprites in mind.
In both cases, we want to be able to *efficiently* pack many different models into the same texture, especially in cases where we know
we will either not be removing any of the grouped-together from the models from the texture, or will remove all of them at once (so
they can be packed into some specific subtexture).
For sprites, since we know every model in advance and never intend to deallocate them, we currently pack them all as efficiently as
possible into one giant tetxure atlas.  However, in the future we might opt to pack them slightly less efficiently in exchange for
shrinking the sprite vertex size.
For figures, we pack all the textures for each *model* into the same atlas.
is a global texture atlas used for every sprite, and for figures which is why we have the ability to mesh multiple
models to the same texture area (using the simple texture atlas allocator) without requiring intermediate vector allocations.
This is accomplished by delaying the time when we actually write the color and light data to the texture until *after* all the
model vertices have been meshed; then, we can just allocate the whole color/light array at once, making the atlas we use an
exact fit.  In computer science-y terms, we accomplish this delay by, after we perform the initial greedy meshing (without
texture information), not continuing to create the texture data, but instead constructing a *continuation*--that is, a function
that, when called, will execute the rest of the computation.  We push this continuation (which in Rust terms is a `FnOnce` closure
that takes the `ColLightsInfo` that it is supposed to write to as context) onto a

onto a vector

resizing.  To allow for suspended writes to texture data, Rust pointed out to me that the continuation that would eventually write the color and light data to the texture atlas (the one that is shared by all models sharing the same greedy mesher) would have to *own* whatever data it mshed.  Because we often generate the model data to mesh as a temporary in `voxygen/src/load.rs`, the

  - Matrix multiplications in the shader were reduced for figure data (@zesterer).
  - Vertex "waves" for fluid data were removed.
  - Terrain "bending" near edges was removed.
  - Scaling was fixed to make sure empty space was not introduced in a space previously occupied by a block.  It was also changed to take ownership of its voxel data,
    rather than sharing it, to let it be used with meshing.
  - Rust's nightly version was bumped in order to use the `array_map` function, which lets us reuse more code between the simple map and `FigureModelCache`.

- PositionedGlyph::standalone.

---

I tried to cite sources in many cases[^realtime],[^lloyd],[^lispsm],[^pbrt],[^greedy],[^tjunctions]
where I needed features from elsewhere but I am particularly grateful for the following resources,
esepcially where they have accompanying source code.  I linked all of them that are accessible to the public (those that are not were
obtained through legal means).

[^realtime]: Eisemann, Elmar, Michael Schwarz, Ulf Assarsson, Michael Wimmer. Real-Time Shadows. A K Peters/CRC Press (T&F), 20160419.
[^lloyd]: Lloyd,B. 2007. [Logarithmic perspective shadow maps](http://gamma.cs.unc.edu/papers/documents/dissertations/lloyd07.pdf). PhD thesis, University of North Carolina.
[^lispsm]: Wimmer, M., Scherzer, D., and Purgathofer, W. 2004. [Light space perspective shadow maps](http://gamma.cs.unc.edu/papers/documents/dissertations/lloyd07.pdf). In Proceedings of Eurographics Symposium on Rendering 2004, pp. 143– 152.

[^pbrt]: Pharr, Matt, et al. [http://gamma.cs.unc.edu/papers/documents/dissertations/lloyd07.pdf](Physically Based Rendering: From Theory to Implementation). Third edition, Morgan Kaufmann Publishers/Elsevier, 2017.
[^greedy]: mikolalysenko. “Meshing in a Minecraft Game.” 0 FPS, 30 June 2012, <https://0fps.net/2012/06/30/meshing-in-a-minecraft-game/>.
[^tjunctions]: blackflux. “Meshing in Voxel Engines – Part 1.” Blackflux.Com, 23 Feb. 2014, <https://blackflux.wordpress.com/2014/02/23/meshing-in-voxel-engines-part-1/>.

I am also especially grateful to Khronos, Wikiepdia, and stackoverflow for answering many of my specific questions while writing the MR.

---

Squashed commit of the following:

commit 300505e730
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 18:46:25 2020 +0200

    Fixing cargo doc and typo in CHANGELOG.

commit ec0aeb18e8
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 15:38:50 2020 +0200

    Hopefully final commit for the LOD branch.

commit 5e8ea0b1ea
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 10:14:26 2020 +0200

    Falling back to power as stopgap.

commit e44a1cbf46
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 09:25:41 2020 +0200

    Address imbris feedback.

    Temporarily disables shiny water, lowers max VD.

    These restrictions will be lifted soon after merging.

commit 561e25778a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 08:31:13 2020 +0200

    Tweaking shaders a bit.

commit 7d19259078
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 07:59:43 2020 +0200

    Fix view example as well.

commit 051cd4934e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 07:29:06 2020 +0200

    Fix meshing benchmark.

commit c95e07db3b
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 05:46:22 2020 +0200

    Address MR feedback, fix scene clouds.

commit 1bfb816cab
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 04:39:36 2020 +0200

    Incorporating Pfau's figure color changes.

    New eyes and new humanoid colors.

commit 3f9b89a3ac
Merge: e2f5162e4 62c53963a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 04:29:41 2020 +0200

    Merge remote-tracking branch 'origin/sharp/small-fixes' into sharp/small-fixes

commit e2f5162e4f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 20 04:28:38 2020 +0200

    World colors are all hotloadable.

    They live in assets/world/style/colors.ron.

    Only a small handful of hardcoed colors remain in World; they are either
    part of the map, or difficult to disentangle from the rest of the
    computation.  Comments are made where appropriate.

commit 62c53963ab
Author: Marcel Märtens <marcel.cochem@googlemail.com>
Date:   Wed Aug 19 15:59:00 2020 +0200

    replace pretty_env_logger with tracing

commit 5b1625f99d
Merge: d71003acd 4942b5b39
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 19 05:15:56 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit d71003acda
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 19 05:14:34 2020 +0200

    Hotloading colors, part 1: colors in common.

    Currently, this just entails humanoid colors.  There are only three
    colors not handled; the light emitter colors in
    common/src/comp/inventory/item/tool.rs.  These don't seem important
    enough to me to warrant making hotloadable, at least not right now, but
    if it's needed later we can always add them to the file.

commit 63b5e0e553
Merge: c32b337a4 6d2c4b9c1
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Aug 17 13:05:37 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit c32b337a46
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Aug 17 05:52:04 2020 +0200

    Fixing LOD grid, for real.

commit a166ae0360
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Aug 17 05:28:05 2020 +0200

    Addressing imbris's initial feedback.

    Fixes two minor bugs: explosion particles were no longer spawning
    randomly, and LOD grids were not perfectly even.

commit 4cbad004f4
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Aug 16 19:27:58 2020 +0200

    Bumping nightly per request.

commit 548680276a
Merge: acc098604 8f8b20c91
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Aug 16 19:26:06 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit acc0986040
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Aug 15 22:28:32 2020 +0200

    Lower resolution due to lying drivers.

commit d3b878de2a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Aug 15 22:15:38 2020 +0200

    Fix issues msh encountered with Intel 4600.

commit 10245e0c1b
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Aug 15 21:15:02 2020 +0200

    Merge more models into one mesh than we did previously.

commit 3155c31e66
Merge: 7204cc8a7 3c199280e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 13 22:35:22 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 7204cc8a7a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 13 22:34:43 2020 +0200

    Fix not yet done NPC animations.

    This forces them all to be the idle animation if not specified.

    This fixes issues where you'd have giant NPCs in water.

commit bc83360f2a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 13 19:36:37 2020 +0200

    Try to fix some bugs:

    - Z fighting with LOD terrain and water.
    - Audio SFX not playing.

commit 1fd104aa60
Merge: 862df3c99 7c2c392a3
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 13 12:02:31 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 862df3c997
Merge: 0a4218ed9 75c1d4401
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 13 05:52:56 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 0a4218ed9d
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 12 22:27:14 2020 +0200

    Fix particle depth.

commit f51dfdeb44
Merge: c6251a956 5e6dc0471
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 12 20:19:04 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit c6251a956a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 12 20:15:46 2020 +0200

    Cache figures more intelligently.

    Cache figures for longer, and don't cache character states for the
    player except where they actually affect the rendered model.

commit 0ed801d540
Merge: c11b9bdf0 eea64f78f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 12 16:32:24 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit c11b9bdf0a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Aug 12 11:47:15 2020 +0200

    Remove unneeded Clippy annotation.

commit 16aa9ef40a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Aug 8 00:53:02 2020 +0200

    Fix hotloading and Clippy.

commit 3dc973e0be
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 23:50:27 2020 +0200

    Major speedups with SIMD.

commit fba64a7d93
Merge: 76429d00e d1e10b178
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 13:23:19 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 76429d00ee
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 13:23:10 2020 +0200

    Add clippy.toml.

commit c79f512f84
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 11:55:20 2020 +0200

    Fix all clippy issues, clean up Rust code.

commit 6f90e010b3
Merge: 77a8c7c26 5929cfa5c
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 06:47:30 2020 +0200

    Merge remote-tracking branch 'origin/sharp/small-fixes' into sharp/small-fixes

commit 77a8c7c267
Merge: b44e44232 44febaabd
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Aug 7 06:47:10 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 5929cfa5c7
Author: jshipsey <jshipsey18@gmail.com>
Date:   Thu Aug 6 20:47:27 2020 -0400

    fixed in-hand arrow bug

commit b44e442325
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Aug 6 13:40:35 2020 +0200

    Miscellaneous performance improvements.

commit be37acf287
Merge: 125d7fc6c c11876547
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Aug 3 05:49:27 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit 125d7fc6c4
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Aug 3 04:55:31 2020 +0200

    Abstract over simd vs. repr_c vectors.

    Also some minor improvements to Event size.

commit d4d4956e92
Merge: 5f3b7294a aced5f979
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Aug 2 20:56:54 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit 5f3b7294af
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Aug 2 20:43:52 2020 +0200

    Fix formatting issues I missed before.

commit a428a3ebba
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Aug 2 20:41:51 2020 +0200

    Fix clippy warnings, part 1.

    There aer still a bunch of type too complex and
    function takes too many arguments warnings that I'll fix later
    (or ignore, since in the one case I did fix a function takes too
    many arguments warning I think it made the code *less* readable).

commit ba54307540
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Jul 30 13:22:42 2020 +0200

    Fix light animations so they are removed when the light turns off.

commit 7e0f4bcbf0
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 29 21:10:20 2020 +0200

    Fix crash in edge case for pixel art.

commit 56da06f7a3
Merge: cf74d55f2 9f53a4a19
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 29 18:56:52 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit cf74d55f2e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 29 18:29:52 2020 +0200

    Fix map image artifacts and remove unneeded allocations.

    Specifically, we address three concerns (the image stretching during
    rotation, artifacts around the image due to clamping to the nearest
    border color when the image is drawn to a larger space than the image
    itself takes up, and potential artifacts around a rotated image which
    accidentally ended up in an atlas and didn't have enough extra space to
    guarantee the rotation would work).

    The first concern was addressed by fixing the dimensions of the map
    images drawn from the UI (so that we always use a square source
    rectangle, rather than a rectangular one according to the dimensions of
    the map).  We also fixed the way rotation was done in the fragment
    shader for north-facing sources to make it properly handle aspect ratio
    (this was already done for north-facing targets).  Together, these fix
    rendering issues peculiar to rectangular maps.

    The second and third concerns were jointly addressed by adding an
    optional border color to every 2D image drawn by the UI.  This turns
    out not to waste extra space even though we hold a full f32 color
    (to avoid an extra dependency on gfx's PackedColor), since voxel
    images already take up more space than Optiion<[f32; 4]> requires.
    This is then implemented automatically using the "border color"
    wrapping method in the attached sampler.

    Since this is implemented in graphics hardware, it only works (at
    least naively) if the actual image bounds match the texture bounds.
    Therefore, we altered the way the graphics cache stores images
    with a border color to guarantee that they are always in their own
    texture, whose size exactly matches their extent.  Since the easiest
    currently exposed way to set a border color is to do so for an
    immutable texture, we went a bit further and added a new "immutable"
    texture storage type used for these cases; currently, it is always
    and automatically used only when there is a specified border color,
    but in theory there's no reason we couldn't provide immutable-only
    images that use the default wrapping mdoe (though clamp to border
    is admittedly not a great default).

    To fix the maps case specifically, we set the border color to a
    translucent version of the ocean border color.  This may need
    tweaking going forward, which shouldn't be hard.

    As part of this process, we had to modify graphics replacement to
    make sure immutable images are *removed* when invalidated, rather
    than just having a validity flag unset (this is normally done by
    the UI to try to reuse allocations in place if images are updated
    in benign ways, since the texture atlases used for Ui do not
    support deallocation; currently this is only used for item images,
    so there should be no overlap with immutable image replacement,
    so this was purely precautionary).

    Since we were already touching the relevant code, we also updated
    the image dependency to a newer version that provides more ways
    to avoid allocations, and made a few other changes that should
    hopefully eliminate redundant most of the intermediate buffer
    allocations we were performing for what should be zero-cost
    conversions.  This may slightly improve performance in some
    cases.

commit ad18ce9399
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 28 13:21:09 2020 +0200

    Fix continent scale hack.

commit 36b1cb074f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 28 12:11:40 2020 +0200

    Enable loading different sized maps without a recompile.

    We may want to tweak the effects of the continent_scale_hack.

commit 13b6d4d534
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 28 10:55:48 2020 +0200

    Removing WORLD_SIZE, part 1.

    Erased almost every instance of WORLD_SIZE and replaced it with a local
    power of two, map_size_lg (which respects certain invariants; see
    common/src/terrain/map.rs for more details about MapSizeLg).  This also
    means we can avoid a dependency on the world crate from client, as
    desired.

    Now that the rest of the code is not expecting a fixed WORLD_SIZE, the
    next step is to arrange for maps to store their world size, and to use
    that world size as a basis prior to loading the map (as well, probably,
    as prior to configuring some of the noise functions).

commit 30b1d2c642
Merge: 7d56ba31b 1377b369f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Jul 27 13:16:58 2020 +0200

    Merge remote-tracking branch 'origin/sharp/small-fixes' into sharp/small-fixes

commit 7d56ba31b4
Merge: 2101113b4 598f14b25
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Jul 27 13:16:27 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit 1377b369f6
Author: Monty Marz <m.marzouq@gmx.de>
Date:   Sun Jul 19 23:25:38 2020 +0200

    more saturated pumpkins

commit ae8d50527f
Author: Monty Marz <m.marzouq@gmx.de>
Date:   Sat Jul 18 20:29:56 2020 +0200

    acacia models

commit 2101113b46
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 18 18:55:25 2020 +0200

    Higher detail LOD.

commit add2cfae04
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Jul 16 01:57:39 2020 +0200

    Revert some irrelevant stuff.

commit 2e2ab3dc1e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 15 13:30:49 2020 +0200

    Fixing various things about shadows.

    * Correcting optimal LISPSM parameter.
    * Figure shadows are cast when they're not visible.
    * Chunk shadows stay cast until you look away.
    * Seamless cubemaps for point lights.
    * Etc.

commit 6c31e6b562
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Jul 12 19:50:26 2020 +0200

    Fix shadow creation.

commit 6332cbe006
Merge: be438657c 930e0028b
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Jul 12 18:47:00 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit be438657c3
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Jul 12 18:28:08 2020 +0200

    Tweaks to shadows.

    Added shadow map resolution configuration, added seamless cubemaps,
    documented all existing rendering options, and fixed a few Clippy
    errors.

commit 23b4058906
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 8 10:11:19 2020 +0200

    Fix moon, use nonlinear noise for terrain.

    Note that the latter has a bit of performance cost.

commit 7fbe5cbfbb
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 8 02:23:02 2020 +0200

    Address lies about max texture size.

commit bcfc62b5e1
Merge: 75e3626a7 18a08e8fe
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 8 02:22:08 2020 +0200

    Merge remote-tracking branch 'origin/sharp/small-fixes' into sharp/small-fixes

commit 75e3626a78
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Jul 8 02:21:52 2020 +0200

    OpenGL 3.3 minimum.

commit 18a08e8fe2
Author: Monty Marz <m.marzouq@gmx.de>
Date:   Tue Jul 7 23:57:52 2020 +0200

    settings localization

commit 90c5d1ca36
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 7 21:11:48 2020 +0200

    Lower near distance.

commit 0e66f02b25
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 7 20:09:01 2020 +0200

    All sprites sway in the wind now.

commit db1401a691
Merge: 69e508d8c e8b4b29d7
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 7 19:34:17 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 69e508d8c9
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Jul 7 18:41:37 2020 +0200

    Make it easy to switch to SIMD for math.

commit ffe0f5928c
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 21:21:12 2020 +0200

    Fix some issues with underwater rendering.

commit bfda6da42f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 19:17:59 2020 +0200

    Fix some minor display issues.

commit 0ed752e087
Merge: ccc6a06a8 518edcb85
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 18:14:21 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit ccc6a06a8d
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 18:04:34 2020 +0200

    Some minor changes.

commit 4e02024670
Merge: 50a64d927 e05c9267a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 16:17:40 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit 50a64d927e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Jul 4 13:07:03 2020 +0200

    Fix far plane.

commit 7dd06da34c
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Jul 2 22:25:35 2020 +0200

    Add shadows.glsl.

commit 618a18c998
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Jul 2 22:10:22 2020 +0200

    Adding shadows, greedy meshing, and more.

commit eaea83fe6a
Merge: 267018495 2f89b863e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu May 21 22:47:07 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 2670184954
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu May 21 21:20:01 2020 +0200

    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.

commit f8376fd5dc
Merge: 654f7e049 cdee191dd
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu May 21 17:53:57 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 654f7e0492
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed May 20 21:22:30 2020 +0200

    Correct backface culling.

commit 560501df05
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue May 19 17:22:06 2020 +0200

    Greedy messhing for shadows.

commit a4d87e1875
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun May 17 05:59:00 2020 +0200

    Shadow maps work for lantern.

commit 243d0837b8
Merge: 04382dc28 71dd520cd
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri May 15 14:53:13 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 04382dc286
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri May 15 14:22:17 2020 +0200

    WIP: better graphics config, better LOD, shadow maps.

commit 22ddbad3eb
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat May 2 18:54:09 2020 +0200

    Minor shader fixes.

commit 746a10e8d0
Merge: 0f4a0e763 40ab94673
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat May 2 04:02:09 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 0f4a0e763d
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri May 1 23:03:24 2020 +0200

    Switch back to pop-in terrain.

commit dd74fa7e4a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri May 1 22:58:55 2020 +0200

    LOD shading closer to voxel shading.

commit ef67bd58ba
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Apr 28 20:49:03 2020 +0200

    Experimental underwater lighting.

commit 2c5ad9d076
Merge: 748279835 303967a6f
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 22:35:24 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 7482798354
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 21:59:55 2020 +0200

    Replace discard in figure-frag.

commit d83b4ae69b
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 18:45:57 2020 +0200

    Fix sprite lighting, HDR from focus_pos.

commit 0594238004
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 18:14:10 2020 +0200

    Proper HDR from point lights.

commit 48c93d2b41
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 14:01:43 2020 +0200

    Brighter ambiance, darker LOD shadows.

commit e0452e895c
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 13:13:23 2020 +0200

    More proper HDR.

commit 4c6da3ed16
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 27 00:13:10 2020 +0200

    Trying LOD noise.

commit 682a3d74c8
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Apr 26 23:11:08 2020 +0200

    Fix LOD heights in towns.

commit cc39e5734e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sun Apr 26 21:01:23 2020 +0200

    More LOD fixes.

commit 8116b21c2e
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 23:54:43 2020 +0200

    I like this coloring.

commit bc2560ea90
Merge: 14effdd5d e690efe71
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 23:48:33 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit 14effdd5db
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 22:24:35 2020 +0200

    Re-saturate.

commit 48a643955d
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 22:23:57 2020 +0200

    Various fixes.

commit f7b497a0c2
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 03:22:49 2020 +0200

    Render figures again.

commit 44e4aad48d
Merge: e6f0a5a98 9ec319a18
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 25 02:01:04 2020 +0200

    Merge remote-tracking branch 'origin/master' into sharp/small-fixes

commit e6f0a5a981
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Apr 24 16:12:20 2020 +0200

    Add atmospheric scattering.

commit f2953087f6
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 23 00:01:20 2020 +0200

    Fix shadowing for specular reflections.

commit ddd4a67a97
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Wed Apr 22 22:56:12 2020 +0200

    HDR fixes.

commit 1015e60dee
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Tue Apr 21 18:25:19 2020 +0200

    More lighting changes.

commit 80c264abd1
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Mon Apr 13 00:29:59 2020 +0200

    Lighting experiments.

commit 8414987e58
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 9 02:38:40 2020 +0200

    WIP -- lighting changes and soft shadows.

commit 9cd2b3fb0d
Merge: c7ea687eb 8b149ad11
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 4 02:33:29 2020 +0200

    Merge branch 'sharp/new-lighting' into sharp/small-fixes

commit c7ea687ebb
Merge: 476441531 22f3319b4
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 4 02:33:02 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes

commit 8b149ad11a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Sat Apr 4 02:32:39 2020 +0200

    Trying out a new lighting model.

commit b0ac9f36f7
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Apr 3 07:56:11 2020 +0200

    Use bicubic interpolation for terrain.

commit f6fc9307a1
Merge: 33140a295 22f3319b4
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Apr 3 05:01:41 2020 +0200

    Merge remote-tracking branch 'origin/master' into zesterer/lod

commit 4764415312
Merge: ed2d0111d 13388ee6a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Apr 3 04:54:48 2020 +0200

    Merge branch 'sharp/map-colors' into sharp/small-fixes

commit 13388ee6a4
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 20:30:08 2020 +0200

    Various fixes (to coloring and to soft shadows).

commit fbd084a94a
Merge: 5a089863b 4fdf6896a
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 18:50:38 2020 +0200

    Merge branch 'master' of gitlab.com:veloren/veloren into sharp/map-colors

commit ed2d0111d9
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 06:49:27 2020 +0200

    Combining colors and LOD.

commit 88342640c6
Merge: 33140a295 5a089863b
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 04:49:20 2020 +0200

    Merge branch 'sharp/map-colors' into sharp/small-fixes

commit 33140a2951
Merge: 4c65a5aed f34d4b379
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 04:36:21 2020 +0200

    Merge remote-tracking branch 'origin/master' into zesterer/lod

commit 5a089863be
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 03:17:49 2020 +0200

    Making maps brighter.

    This is probably not the right way to do it, but oh well!

commit 32b2c99109
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Thu Apr 2 02:46:36 2020 +0200

    Horizon mapping and "layered" map generation.

    Horizon mapping is a method of shadow mapping specific to height maps.
    It can handle any angle between 0 and 90 degrees from the ground, as
    long as know the horizontal direction in advance, by remembering only a
    single angle (the "horizon angle" of the shadow map).  More is explained
    in common/src/msg/server.rs.  We also remember the approximate height of
    the largest occluder, to try to be able to generate soft shadows and
    create a vertical position where the shadows can't go higher.

    Additionally, map generation has been reworked.  Instead of computing
    everything from explicit samples, we pass in sampling functions that
    return exactly what the map generator needs.  This allows us to cleanly
    separate the way we sample things like altitudes and colors from the map
    generation process.  We exploit this to generate maps *partially* on the
    server (with colors and rivers, but not shading).  We can then send the
    partially completed map to the client, which can combine it with shadow
    information to generate the final map.  This is useful for two reasons:
    first, it makes sure the client can apply shadow information by itself,
    and second, it lets us pass the unshaded map for use with level of
    detail functionality.

    For similar reasons, river generation is split
    out into its own layer, but for now we opt to still generate rivers on
    the server (since the river wire format is more complicated to compress
    and may require some extra work to make sure we have enough precision to
    draw rivers well enough for LoD).

    Finally, the mostly ad-hoc lighting we were performing has been (mostly)
    replaced with explicit Phong reflection shading (including specular
    highlights).  Regularizing this seems useful and helps clarify the
    "meaning" of the various light intensities, and helps us keep a more
    physically plausible basis.  However, its interaction with soft shadows
    is still imperfect, and it's not yet clear to me what we need to do to
    turn this into something useful for LoD.

commit f8926a5737
Merge: a1aee931e 875ae6ced
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Mar 13 13:32:42 2020 +0100

    Merge remote-tracking branch 'origin/master' into sharp/map-colors

commit 4c65a5aed3
Author: Treeco <5021038-Treeco@users.noreply.gitlab.com>
Date:   Mon Feb 24 16:48:05 2020 +0000

    Made LOD setting slider exponential

commit 2fa7b2d20d
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Feb 24 17:49:53 2020 +0000

    Added mist to LoD

commit aab059a450
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Feb 24 15:14:06 2020 +0000

    Added LoD slider

commit 779c36b538
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Feb 24 12:54:55 2020 +0000

    Reduced cost of vertex pushing

commit 9fea150473
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Feb 24 12:38:53 2020 +0000

    Fixed maths, improved LoD resolution

commit 5481df38fe
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Feb 24 11:22:50 2020 +0000

    Dynamically relocate LoD vertices to enhance details

commit a3e36a50ab
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Sun Feb 23 18:13:51 2020 +0000

    Simpler terrain spiral rendering

commit 255f450ae9
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Sun Feb 23 16:53:17 2020 +0000

    Better LoD precision

commit 3d027aebe8
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Sun Feb 23 16:04:03 2020 +0000

    Better falloff

commit be775c9484
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Sun Feb 23 15:30:45 2020 +0000

    Applied good ideas from experimental branch

commit 58587b6854
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 16:15:13 2020 +0000

    Minor fixes to LoD merging

commit 7b42aebd70
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 15:04:44 2020 +0000

    Capped LoD dragging

commit 8aafc559f8
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 14:54:37 2020 +0000

    Better blending between LoD and terrain border

commit edd3455d51
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 14:40:19 2020 +0000

    Fixed LoD z depth, added sea level offset

commit b9b0674462
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 14:27:43 2020 +0000

    Better LoD smoothing

commit a1aee931e7
Author: Joshua Yanovski <pythonesque@gmail.com>
Date:   Fri Feb 21 14:52:17 2020 +0100

    Adding shadows.

commit 2400786c13
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Feb 21 13:48:40 2020 +0000

    Use world map as LoD source

commit dbf650f504
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Mon Jan 20 00:48:14 2020 +0000

    Better clouds at distance

commit 5e6f81b86c
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Sun Jan 19 23:59:02 2020 +0000

    sync

commit 745e7540dd
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Nov 22 12:40:48 2019 +0000

    Improved cloud falloff mist, faster noise sampling

commit f6a200d0cb
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Fri Nov 22 10:09:00 2019 +0000

    Improved long-range depth precision, removed unnecessary LoD polygons

commit 63d1b2bb22
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Thu Nov 21 20:57:46 2019 +0000

    Working LoD shader

commit f13d98ee3e
Author: Joshua Barretto <joshua.s.barretto@gmail.com>
Date:   Thu Nov 21 11:03:40 2019 +0000

    LoD first attempt (stack overflow issue)
2020-08-20 20:34:59 +02:00
Marcel Märtens
ed68bff135 Change the version number to 0.7 2020-08-15 11:53:59 +02:00
Joshua Barretto
6c3c941a49 Fixed client API 2020-08-12 21:15:52 +01:00
Joshua Barretto
1f4cec773b Added make_block command 2020-08-12 21:15:52 +01:00
IBotDEU
6b707a1ab7 implemented ability to select bit depth and refresh rate and implemented seperate setting for fullscreen resolution 2020-08-09 20:30:22 +00:00
Imbris
01ad81322d Merge branch 'yusdacra/treeculler-update' into 'master'
change treeculler crate from git to published version

See merge request veloren/veloren!1269
2020-08-09 17:21:15 +00:00
Imbris
390d289d35 Add timeout's to group invites, and configurable limit to group size
Fix a few group bugs, enable invite timeout and group limits in ui
2020-08-08 01:16:35 +02:00
Monty Marz
1eb671e1a6 Update CHANGELOG.md, german locale 2020-08-08 01:15:58 +02:00
Imbris
10c3d01466 Add basic group functionality (no voxygen wiring yet) 2020-08-08 01:09:01 +02:00
Yusuf Bera Ertan
af72c46c02
change treeculler crate from git to published version 2020-08-07 01:53:49 +03:00
Silentium2318
a59438e3e4 Dis some distance and attack arc tweaking 2020-08-06 09:39:09 -05:00
Silentium2318
b0f55b3f79 Weapon balancing 2020-08-06 09:38:22 -05:00
Samuel Keiffer
f930f52df5 Allows for weapons to have different stats. Seperates healing staff out from staffs into its own weapon type: sceptre. Splits bow weapon type into shortbow and longbow. 2020-08-01 20:08:30 +00:00
Marcel Märtens
7f97baca70 switch to auth that doesn't use agent 2020-07-31 01:05:01 +02:00
Marcel Märtens
0d5e61c4b6 update auth to newest version 2020-07-29 19:28:22 +02:00
Marcel Märtens
96cde882ef update auth to the newest version and remove useless dep 2020-07-29 00:05:23 +02:00
Imbris
c8133ded43 Fix issue where client_init was not set to None after it finished, use tweaked version of winit to avoid macos link failure in the CI, small comment fixes 2020-07-17 21:26:21 -04:00
Imbris
953773e1d3 Temporarily remove voxygen character_renderer example until we move to a more actively maintained rendering backend 2020-07-17 21:26:21 -04:00
Imbris
ede0cbdfd3 Get misc conrod fixes onto winit-20 branch, add diagnostic printlns 2020-07-17 21:26:21 -04:00
Imbris
7ab4f71b83 Windows cpal conflict fix not released yet so we need to use the git version 2020-07-17 21:26:20 -04:00
Imbris
29c877cff3 Winit 0.22 released 2020-07-17 21:26:16 -04:00
Imbris
7dfb24d4a5 Clean comments, fix mistake, change dep source now that compatible version is available on crates.io 2020-07-17 21:24:28 -04:00
Imbris
70eba0c30a Update changelog 2020-07-17 21:24:28 -04:00
Imbris
21a1382850 Update to winit 0.21.0 2020-07-17 21:24:28 -04:00
Imbris
d1b635efa4 Rearrange PlayState system to work without loop control 2020-07-17 21:24:28 -04:00
Imbris
515dbc30a7 Switch to updated gfx_window_glutin 2020-07-17 21:24:28 -04:00
Joshua Barretto
807a27328c Updated to winit 20 2020-07-17 21:24:27 -04:00
Samuel Keiffer
6cce09be85 Added protection stat to admin armor hidden in debug folder. Removed blue cultist armor set from drop table as it is an admin set. 2020-07-18 00:05:28 +00:00
Songtronix
5b57072064 fix: use correct specs(-idvs) versions
related to torvus
2020-07-09 19:46:30 +02:00
Marcel Märtens
85a3f8637d fix specs 2020-07-07 14:28:00 +02:00
Marcel Märtens
6ddd09b7b6 specs back to master 2020-07-07 12:55:06 +02:00
Marcel
b85a4493ea revert dispatch 2020-07-07 11:19:38 +02:00
Marcel Märtens
c212de00c2 updated dependencies and fixed stuff
- replace serde_derive by feature of serde
   incl. source code modifications to compile
 - reduce futures-timer to "2.0" to be same as async_std
 - update notify
 - removed mio, bincode and lz4 compress in common as networking is now in own crate
   btw there is a better lz4 compress crate, which is newer than 2017
 - update prometheus to 0.9
 - can't update uvth yet due to usues
 - hashbrown to 7.2 to only need a single version
 - libsqlite3 update
 - image didn't change as there is a problem with `image 0.23`
 - switch old directories with newer directories-next
 - no num upgrade as we still depend on num 0.2 anyways
 - rodio and cpal upgrade
 - const-tewaker update
 - dispatch (untested) update
 - git2 update
 - iterations update
2020-07-07 09:43:49 +02:00
Imbris
8d39f27458 Upgrade hashbrown 2020-07-06 03:15:06 -04:00
Imbris
c2d6d00b00 point to github specs to access PairedStorage type, fix Loadout sync spam 2020-07-06 01:56:02 -04:00
Marcel Märtens
3a6319f2f6 compress everything 2020-07-05 20:14:47 +02:00
Marcel Märtens
f9895a7800 crossbeam-channel and log spam
- swap out std::mpsc with crossbeam-channel in networking crate
 - remove log spam by only logging when populating a new cache entry and not on every get
2020-07-03 22:35:29 +02:00
Marcel Märtens
77c90b2c7c doing a simple 1:1 swap out network coding
this is the part which prob has less Merge conflics and is easy to rebase
the next commit will have prob alot of merge conflics
followed by a fmt commit
2020-07-03 13:11:31 +02:00
Kevin Glasson
bb5d91edca Use find folder to locate debug dir 2020-06-30 18:54:42 +08:00
Songtronix
750b9e198d fix: hot-anim feature 2020-06-24 14:35:52 +02:00
Marcel Märtens
9485b45e70 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
589254e4ab 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
af3af6c169 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
124ed52554 Windows is weird, cargo is weird..... (also tidy up a few things) 2020-06-19 00:48:19 -04:00
Imbris
d00e88b804 Hotreload animations using libloading 2020-06-19 00:48:19 -04:00
Marcel Märtens
0e59ee901e 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
661060808d 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
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
Forest
12bdefd146 Updated cargo.lock 2019-10-03 17:20:16 -04:00
Acrimon
03bf74f414 Updated toolchain version and a bunch of deps. 2019-10-03 17:19:22 -04:00
Songtronix
bced3cb638 feat(voxygen): add logo for windows executable 2019-10-02 16:57:08 +02:00
Imbris
f182733074 Small cache experiments 2019-09-22 22:19:07 -04:00
Acrimon
5487c8b7bc Update lockfile. 2019-09-17 16:12:26 +02:00
Acrimon
1dfbe40731 Made the worldgen noise generators seed from the RNG and got rid of zerocopy. 2019-09-17 16:05:08 +02:00
Joshua Barretto
3f2e22f039 Exponential interpolation for linear damping
With an additional approximation to allow for the same size jumps given different framerates.
2019-09-09 19:11:40 +00:00
Marcel Märtens
49b08b55c7 switch from hyper http to rouille for http server 2019-09-09 10:07:25 +02:00
Marcel Märtens
b05e51152f update version, revert from static prometheus back to normal because static doesnt supprot registries, and implement most of the metrics except for entity count 2019-09-09 09:54:30 +02:00
Marcel Märtens
8d3fb40419 first implementation of prometheus in veloren for git hash, tick times, chunks loaded, player online, entity count and light count 2019-09-09 09:48:44 +02:00
Forest
000efebfd1 Updated cargo lock 2019-09-08 11:28:56 -04:00
haslersn
d322384bec common: Add benchmark for Chonk 2019-09-06 15:44:36 +02:00
Louis Pearson
0fe5b66dce Use latest version of Rodio instead of custom branch 2019-09-05 03:04:53 -06:00
Monty Marz
f53904b534 More sprites, ui fixes, lianas 2019-09-01 19:04:03 +00:00
timokoesters
269d179243
Remove vek patch, it's on crates.io now 2019-08-26 17:26:16 +02:00
timokoesters
c4879307af
Update to github vek repo 2019-08-26 13:12:45 +02:00
timokoesters
a715a84ea7
Implement unstoppable rolling 2019-08-26 13:12:42 +02:00
Acrimon
cb4374160c Removed unsafe. 2019-08-19 00:55:04 +02:00
Imbris
5054f1e87d remove palette dependency 2019-08-16 00:01:20 -04:00
Imbris
be0e0e52a8 Improve colors 2019-08-15 23:59:09 -04:00
Imbris
cb25c45dec Move shaders, start asset reloading system 2019-08-15 23:56:12 -04:00
Acrimon
42e065d425 [Common] Switch mutexes and channels. 2019-08-16 00:19:54 +02:00
Acrimon
593deb828b [Server] Switched mpsc for crossbeam::channel. 2019-08-16 00:10:46 +02:00
Acrimon
fda47fc322 [Voxygen] Switch mutexes to parking_lot and channels to crossbeam. 2019-08-16 00:07:09 +02:00
Acrimon
b4a46f3e6e Finished switch to hashbrown. 2019-08-11 22:38:28 +02:00
Acrimon
ed4909670d Use hashbrown instead of fxhashmap in world. 2019-08-11 22:10:36 +02:00
Acrimon
22f318833c Migrate client to hashbrown. 2019-08-11 21:54:20 +02:00
Acrimon
0bbef0d851 Use hashbrown in voxygen instead of a billion different shitty maps. 2019-08-11 21:52:23 +02:00
Acrimon
4f2d99f809 Switch to hashbrown in server. 2019-08-11 21:48:02 +02:00
Piotr Korgól
d3f2ca69a4 Change the version number to 0.3 2019-08-04 13:53:59 +02:00
Marcel Märtens
e4a9721588 fixed #211 - host specs-idvs on gitlab.com 2019-08-02 10:16:55 +02:00
Dominik Broński
f644b6ab89 Revert "Merge branch 'imbris/upgrade_specs' into 'master'"
This reverts merge request !375
2019-08-01 23:32:33 +00:00
Imbris
5f56657f6c Upgrade specs to 0.15 2019-08-01 18:09:13 -04:00
Acrimon
3f85f35084 Fix lockfile. 2019-07-31 11:45:23 +02:00
Acrimon
9fbf710cc9 Swapped some rarely use storages. 2019-07-31 11:41:29 +02:00
Acrimon
c2f8dbc2d7 Updated specs-idvs. 2019-07-31 11:41:29 +02:00
Acrimon
005a1b6640 Update specs-idvs 2019-07-31 11:41:29 +02:00
Acrimon
c75925c5a3 Updated specs-idvs 2019-07-31 11:41:29 +02:00
Acrimon
579651c862 Update lockfile. 2019-07-31 11:41:29 +02:00
Acrimon
a5b19935a2 Use named generator in worldgen. 2019-07-30 16:10:59 +02:00
Acrimon
ee49ebe807 Update rand, log and scan_fmt 2019-07-29 13:42:26 +00:00
timokoesters
5aa864ee58
Update most dependencies 2019-07-28 22:47:23 +02:00
Piotr Korgól
5c84508015 Get EXP for killing NPCs and Players, properly show EXP bar 2019-07-26 20:51:40 +02:00
Acrimon
deb6c6adef Some other stuff I missed to commit. (Hooked into server-cli) 2019-07-24 02:20:35 +02:00
Jessie Mancer
4893ab5c2a fix spawn command placement to be random to improve AI responsivity and not spawn directly on player 2019-07-21 18:22:13 +00:00
Songtronix
bfa6a2e2a2 add configurable TimeOfDay 2019-07-17 18:32:02 +02:00
Songtronix
1213d9844b add customizable port and worldseed 2019-07-17 18:32:00 +02:00
Acrimon
b11bc46e09 Update uvth in lockfile. 2019-07-15 22:11:18 +02:00
Acrimon
20ac81a986 Fixed some misses. 2019-07-12 20:51:22 +02:00
Acrimon
69537f7dd9 Switched threadpool impl for veloren/server. 2019-07-12 18:30:15 +02:00
Songtronix
07754b0a79 fmt 2019-07-07 16:16:07 +02:00
Songtronix
8220564fa6 Fix rebasing issues 2019-07-07 16:16:07 +02:00
Songtronix
2338084af0 Add Linux support 2019-07-07 16:16:06 +02:00
Joshua Barretto
51ad1f1995 Improved remeshing performance 2019-07-06 20:00:17 +01:00
timokoesters
215693137b
Implement chat command key 2019-07-05 18:21:11 +02:00
Sheldon Knuth
6d624e96a6 fix the missing set_playing(true) in AudioPlayer::load() to prevent infinity thread loop & adopt std::sync::{Mutex, Condvar} for accurate thread blocking. 2019-07-03 17:23:24 +00:00
Sheldon Knuth
c3671590e9 Loading no-audio mode from the game start without rodio crate initialisation completely 2019-07-02 18:35:40 +00:00
Sheldon Knuth
c699801d78 Revamping the audio system for Voxygen from #163 2019-07-02 04:10:55 +00:00
Songtronix
80f7a22182 upgrade dependencies 2019-06-29 17:25:58 +02:00
Joshua Barretto
9fed2c1534 Merged stumps, adjusted scale code 2019-06-13 11:59:05 +01:00
Cody
14ac5babd4 Removes most unused imports; changes some unused variables to underscores or provides a leading underscore; removes some unnecessary variables and mutable declarations; and performs other miscellaneous warning fixes. 2019-06-06 14:48:41 +00:00
Joshua Barretto
8da46b48ac Added frustum culling for chunks 2019-06-06 10:04:37 +01:00
Joshua Barretto
9da2d82197 Added proper VD fog 2019-06-05 20:52:51 +01:00
Joshua Barretto
92f2d36b0c Optimised sub-terrain chonk storage, fixed hash chunk bug, altered terrain base 2019-06-05 20:52:51 +01:00
Louis Pearson
3723649d39 Update cpal 2019-06-05 13:17:19 -04:00
Ahmed Ihsan Tawfeeq
eb80459872 Added randomized NPC names veloren/veloren#133 2019-06-04 01:10:59 -04:00
Louis Pearson
70b503868e Add fix for headphone and invalid device params 2019-05-31 14:24:33 -06:00
Louis Pearson
64d38e687b Move to latest version of cpal 2019-05-31 13:19:32 -06:00
Louis Pearson
e647be3e57 Update cpal again
Former-commit-id: b5810766a8f37095401f05d5fb787b9e478f0bd2
2019-05-28 15:01:10 -06:00
Louis Pearson
10b21ff380 Recreate Cargo.lock from master Cargo.lock
Former-commit-id: e26cfbede0634e1a771257ecd22e05afbce7a85e
2019-05-28 15:01:10 -06:00
Louis Pearson
4502def070 Fix game crashing when trying to start audio
Former-commit-id: fa24d352f3d8721406fbeda9785689d681d42d27
2019-05-28 15:01:10 -06:00
timokoesters
cda253c3cf Make Failed to tick go back to the main screen and move to ron
Former-commit-id: 14d4ab3cb9d964805a2f275b932e93cef9b72d38
2019-05-26 12:58:43 +02:00
Joshua Barretto
c8ba5d9f89 Basic pine tree spawning
Former-commit-id: e58374724f6c9cb4a54ae96abd3420b02207fd30
2019-05-25 05:51:45 +01:00
Joshua Barretto
4d73f38e6d Refactored worldgen sampling, added cache layer
Former-commit-id: 3ad5277ed0c871d6678a42629145cb722d4c76c5
2019-05-25 05:51:45 +01:00
Joshua Barretto
857315a27d Added basic structure generation
Former-commit-id: 88a6bf2e18ac4f8f9b560797c8aac82ca318afb0
2019-05-25 05:51:45 +01:00
jshipsey
e84d19b5c8 fmt
Former-commit-id: d4c800b8c2e7667bb635de23c0f334bddd4b7a0d
2019-05-24 19:01:10 -04:00
Joshua Barretto
feece604be Restarted worldgen
Former-commit-id: e1526ec5f865904f11ab6a1507ecdc1a52acb28d
2019-05-21 22:51:41 +01:00
Louis Pearson
b0f26633d3 Remove lewton, fix filename issue
Former-commit-id: 067f3bfe8ea4f20741107689bf55b01d7580b983
2019-05-18 14:26:16 -06:00
Louis Pearson
22286c24e6 Play random music whenever a track ends
To support this, a global_state.maintain() method was added that calls
audio.maintain().


Former-commit-id: e5d20719291ee17096070dfcacec760e45937f7a
2019-05-18 13:53:57 -06:00
Joshua Barretto
db4be8e492 Updated sphynx
Former-commit-id: f81484571bda8c5e15ea2b6c0e8b9b6892b094a3
2019-05-17 00:05:46 +01:00
Imbris
3b5fec6630 add backtrace to panic hook
Former-commit-id: 3f66b4b72347a734779c1611814be88df4f8397b
2019-05-14 03:41:27 -04:00
Imbris
ca60b86f53 add ImageSlider widget
Former-commit-id: 218eb14090365f9ea3c6fb956fcdb989d51aaea2
2019-05-13 13:09:38 -04:00
robojumper
ee9f54bacd Move u_globals to shared included file
Former-commit-id: b6122177ce98cd52bc032e2d8414671d3bcb9b5c
2019-05-12 11:23:21 +02:00
Joshua Barretto
871767ada0 Made single-player server start on random unused port
Former-commit-id: 95ec85b9be58d0fd348144c398004a69676eb6cd
2019-05-09 18:57:47 +01:00
Joshua Barretto
3cd48ba468 Added lz4 compression to networking
Former-commit-id: 7910c933f110d595da70552716b6e8f0eb7544a1
2019-05-09 18:57:47 +01:00
Joshua Barretto
33e93ef25f Added basic byte XOR checksum
Former-commit-id: 2e8c23ce51038fd7442cc489d9cb45838f3378c3
2019-05-09 18:57:47 +01:00
Imbris
81c5a070c5 move conrod font out of common
Former-commit-id: 1e7cbce00eddff6c765326671d04d9494639773e
2019-05-07 02:25:26 -04:00
timokoesters
f695973bb2 Make fonts work, Remove style
Former-commit-id: 53d158aff30d8c53b86deb62f7079ba06b5119ce
2019-05-07 01:08:27 -04:00
Imbris
1d5020634d revamp asset system with a global singleton cache
Former-commit-id: edfc83397ed897fcec37589261c2cfae42d6ec32
2019-05-07 00:44:44 -04:00
Imbris
f0b0b83cc8 Store thread pool in State, Remove unnecessary dep
Former-commit-id: cbce09915267f264801c174817b97ed3528715fd
2019-05-01 14:10:43 -04:00
Louis Pearson
b0ebbd5631 Use the directory defined by the OS to store configuration files
Former-commit-id: 7735a27f088a8bd543bf812f1299500844140d4f
2019-04-25 10:24:00 -06:00
Joshua Barretto
03051248b9 Added user-friendly error output for Voxygen
Former-commit-id: 55952f32019e826863849f07a71695de3e0c4c3c
2019-04-25 13:08:46 +01:00
timokoesters
799046f5f0 Update Cargo.lock
Former-commit-id: 1d8a788d67c6e55056f58bc55bf9de6d993b68e8
2019-04-22 17:25:34 +02:00
Imbris
1143c58e37 add graphic cache clearing on resize
Former-commit-id: 49b3a52036171fd8b66d9fae73bebb15fbf83a0b
2019-04-19 21:35:12 -04:00
Imbris
2e69526069 initial setup for .vox rendering
Former-commit-id: bc3d2432c41d9dc3e1f57e569f3aecb9be3fe79a
2019-04-19 15:00:13 -04:00
Louis Pearson
7ec6e09332 Add basic singleplayer support
Former-commit-id: 929b05faca5d2b95a96349dfc17a62b3165289a1
2019-04-17 07:41:34 -06:00
Joshua Barretto
2c650f9cff Added basic agent AI
Former-commit-id: bb17edc8f2027c0c63c6a3ef0fc80c7a68c9aa05
2019-04-17 01:39:39 +01:00
Joshua Barretto
d4368e2891 Merge branch 'master' into 'master'
add chat commands

See merge request veloren/veloren!33

Former-commit-id: dbef1677b800ae3eaecdeba4fda12973654c9149
2019-04-16 21:16:07 +00:00
Sebastian Venter
031e4b36d6 add chat commands, rustfmt
Former-commit-id: 64941127598b53c64fe2e0e7c167f0ce3f358060
2019-04-16 18:08:47 +01:00
Louis Pearson
9592eb67c5 Add default keybindings
Former-commit-id: c8886a2eb3326ba62e31ef84b93a29ee59f378b3
2019-04-16 08:57:31 -06:00
Joshua Barretto
728ba8cf41 Added cargo lock, updated sphynx
Former-commit-id: b223be3ea12c820dc2e3fc13720b83a51fa1f647
2019-04-14 17:39:32 +01:00