Week 12
In week 12, we completed the reconnection function so players are able to rejoin even if they disconnect automatically. Besides, we polish the game a little to make the user interaction more fluent. Furthermore, we conducted 2 more playtests virtually.
Project Progress
On the Priority tasks, we:
- fix all bugs mentioned in previous playtests
- Complete the reconnect function
On the Tech side, we:
- Add a function that every player can solve puzzles require a specific skill to solve if the required occupation player is not in the game (disconnected).
- Add the reconnect and rejoin function before character selection phase
- Add the reconnect and rejoin function during investigation and discussion phase
- Add the function to prevent auto disconnect when the web is put in background for android
- Add decoder puzzle in Mansion
- Add sound manager that handles all sounds in the game
- Add the animation when players enter the game
- Add the video for successful accusation
- Fix the bug that players in the room won’t be able to get new rooms in their room list menu
- Fix the bug in the puzzle that cannot be transferred
- Fix the bug that players investigate the same interest point with same clue selection can get the same clue by deactivating the interest point when there’s already some players investigating
- Fix the bug that the animation can’t be played when players join through phone
- Fix the bug that rejoined players see the freeze map
- Fix the bug that rejoined players cannot transfer and receive puzzles
- Fix the bug that rejoined players can collect duplicate clues and puzzles
- Update the new clue and puzzle effect
- Update the UI for character bried in intro
- Update the loading menu
Start Menu Animations
IOS Disconnect Problem
One priority task we completed for this week is the reconnect function. To go deeper to this function, as mentioned in week 11’s blog, we tried all 3 options to solve this problem.
- For option 1, we figured out PhotonNetwork.KeepAliveInBackground are able to keep the connection between the server and android phone, but unable to solve this problem for IOS. This is because IOS use Webki core and shut down the whole web (including Photon) if it goes to background. In other words, Photon is unable to keep connection in such situation. So we tried to solve this problem through the web development method. We tried utilizing javascript (language for website) in C# (Unity) to send bags every 2 seconds to the website to keep connection instead of using Photon. However, this meet some problems during building it to webgl, so we tried another way instead.
- We combined the option 2 and option 3 to design a reconnect function for our game. At first, when detecting the application pause (before the disconnect), the server saves player information in the master host. After reconnecting, instead of sending the reconnecting player to current scene, we send the player to selection scene and let him/her to select character first. This solves the problem that players can only be granted player controller during selection scene. After selecting character, the reconnecting player will then be granted the saved information in the master. Besides, we avoided the rearranging photon view by using RPC.AllBufferedViaServer to make sure every entered player will get update for interest points on the map.
On the Art Side, we:
- Have updated tutorial pages inside the game to teach players how to interact with the game.
- Complete the new detective board layout for discussion phase
- Have 1 map for our game done
Tutorial Pages
Detective Board Art & Map Art
Virtual Playtests
April.11th. 2023 Playtest
In the the first playtest, we have 4 playtesters in age range 20 – 30 + 2 teammembers.
April.15th. 2023 Playtest
For our second playtest, we invited back our previous playtesters in April.6th, because they want to complete the whole game. Therefore, we have 6 playtesters in age range 25 – 50.