Friday Devblog 51

Implementing Steam Workshop + Mac/Linux beta uploaded



Johann
As you know, over the last few weeks we've been breaking all links between the game and divegame.net. The main reasons for this are to solve all problems people were having with logging in and other server communication. What this means is that every feature requiring a web request to divegame.net has to be rewritten to use some kind of alternative resource. These features may need to retrieve or save some data, like what suit the player is wearing. Most of the features were like this, only needing the link to divegame.net to store or load some data. These features could be easily replaced by using the Steam Cloud to store the data. Steam Cloud doesn't complain if the player doesn't have an internet connection (it just saves locally, and 'syncs' with the cloud when it can).

Some of the features requiring divegame.net, however, needed a little more work. Some of these features are the following:

Synchronization of customization in multiplayer
The only thing that was sent to the other player directly was the user ID. Using these IDs, each player's customization was downloaded from divegame.net. More on how divegame.net was replaced for this feature in Jeroen's part below.

Community missions
The community mission feature is one of the few actually needing some kind of central place to store data. This is because potentially every player can create a community mission, so you can't just send it to other players like the customization in a multiplayer session.
We thought the best central place to store community missions was Steam Workshop. This Steam feature is a good fit for community missions, as it is designed for storing user generated content. What this means is that if World of Diving community missions work with Steam Workshop, you get a lot of features already implemented into Steam for free. These features include commenting and voting on items and using the Steam overlay to remove or edit items. Unfortunately in this case we already implemented these features, so they won't be very beneficial for us.

Early this week we also put up Mac and Linux versions for the World of Diving beta, so players on these platforms can also enjoy the latest (but potentially unstable) features. I'll copy the warning of last week so it won't be forgotten:

WARNING: For those entering the beta, after opting in, you shouldn't opt-out of it and play the live version. If you do this, everything should work (but this isn't tested), but all actions you then do on the live game will not be transferred when the update goes live or you re-join the beta. This is because the divegame.net user data is only transferred to your local machine (and the Steam cloud) once.


AI update



Trevor
Last week I have been working on more fish! We have managed to push a lot more performance out of Unity by both changing our way of thinking about the AI and working around some of the slow implementations of Unity. The major change that we have applied is that all AI is now calculated on other threads instead of the main Unity thread. A bonus perk we achieved by using this method is that we can keep the game on a high framerate, even if the AI calculations become too heavy. We are still discussing about what will happen when the update rate drops under 60hz. Possibilities we are exploring are the following: tuning down the AI complexity ( which is a very dangerous change -- one of the main AI calculations is the avoidance of objects. If we simplify these calculations we will go back to flying and penetrating fish ), making some fish move away from the vision of players and then dissapear, so we practically only have to simulate less AI, and the last one is to simply lower the update rate of the AI, which will make fish appear stuttery, but won't have weird behaviours.

Last week I gave you a bonus GIF with a lot of arrows "swimming" around. I will do a follow up on this in the coming weeks. Our new AI system provides us with a base for some major gains. More about this soon!


Continued unlinking of divegame.net



Jeroen
This week we have continued the implementation of local user data using the Steam cloud.

Previously, the customization of other players was retrieved from divegame.net, so to fix multiplayer and customization of other players, this needed to be synchronized efficiently over the network. So I've implemented this using the Photon network system we use.
Another issue that was still standing was daily missions and XP rewards from daily missions. This has been implemented now without the use of the divegame.net server, so players can once again level up their character. Stay tuned for next week for an update to the beta.


Previous blogs:

read more...

- Devblog 50 September 11
- Devblog 49 September 4
- Devblog 48 August 28
- Devblog 47 August 21
- Devblog 46 August 14
- Devblog 45 August 7
- Devblog 44 July 17
- Devblog 43 July 10
- Devblog 42 July 3
- Devblog 41 June 26
- Devblog 40 June 19
- Devblog 39 June 12
- Devblog 38 June 5
- Devblog 37 May 29
- Devblog 36 May 22
- Devblog 35 May 15
- Devblog 34 May 8
- Devblog 33 May 1
- Devblog 32 April 24
- Devblog 31 April 17
- Devblog 30 April 10
- Devblog 29 April 3
- Devblog 28 March 27
- Devblog 27 March 20
- Devblog 26: March 13
- Devblog 25: March 6
- Devblog 24: February 27
- Devblog 23: February 20
- Devblog 22: February 13
- Devblog 21: February 6
- Devblog 20: January 30
- Devblog 19: January 23
- Devblog 18: January 17
- Devblog 17: January 9
- Devblog 16: December 19
- Devblog 15: December 12
- Devblog 14: December 5
- Devblog 13: November 28
- Devblog 12: November 21
- Devblog 11: November 14
- Devblog 10: November 7
- Devblog 09: October 31
- Devblog 08: October 17
- Devblog 07: October 10
- Devblog 06: October 3
- Devblog 05: September 26
- Devblog 04: September 19
- Devblog 03: September 12
- Devblog 02: September 5
- Devblog 01: August 29


Comments

up
1 user has voted.

I like this update. Something I'd love to see implemented is the ability to create your own levels? might satisfy everyone while we all wait for procedural generation.

up
1 user has voted.
Jace's picture
Poseidon
Points: 486073

I remember that one of the advantages of moving to Unity 5 was the capability of getting more objects into the environment. Now with Trevor's performance improvements to the fish AI, the dream of a more dynamic level is coming about. Nice work guys!

up
2 users have voted.
Need for speed-boat
Points: 7698

Please, post this devblog on the WoD Steam News too.

up
3 users have voted.
Richard's picture
Poseidon
Points: 1141739

Good point, just did!
up
0 users have voted.

So, are you going to update to Unity 5.2 like Subnautica just did? Also, you really need to update the water surface and light grading by depth in the game like "Stranded Deep" did and "Subnautica" will be this week in Experimental for the eventual "H2.O" update. Proper lighting that changes by depth and realistic surface water with waves and foam are a must for a game like this.

up
0 users have voted.
Need for speed-boat
Points: 7698

In this pre-alpha trailer, you can see the surface water with very nice physics: https://www.youtube.com/watch?v=kHbzexZ7z5I . I can't believe this was almost 2 years ago....