Took a global pandemic for me to get an opportunity to develop this aspect of AFM. Update 1.3.55 serves as the launch of the public beta testing of the multiplayer component. The reason it’s described as beta in this launch is because I need data to evaluate the performance of the multiplay code as well as how well the server handles the increased load. This beta can take a few different directions as described later in this post. This post is different than the usual changelogs and is divided into separate sections.
The actual update will be received in game on May 27th.
Edit: Due to the migration of devices from the old api to the new api, lobby times are insanely long. I expect this migration to take a couple of days for the lobby times to decrease.
- A new public dashboard has been deployed and can be found at http://dev.raziel619.com/afm/
- At first, that dashboard was developed only for administrators (only me that is) but then I thought why hide such lovely graphs and alas, it is now public. The Network Disruptions tab of that dashboard shows how terribly the server is performing.
- The entire web api for AFM has been rewritten from scratch, as such, the leaderboard will be reset. Due to the previously implemented google play login, transition to this new api should be seamless.
- Small visual upgrades across the board mostly to icons that were static. Added an indicator when there is a new post. Fixed the banner ads to be distinctive from playing area.
- “News” is now changed to “Hub” to provide more player resources
- A new “Forums” areas has been added to this website to gather bug reports and feature requests
Multiplayer Beta Testing
As mentioned before, it’s described as beta testing because I need more data on its performance. The points below describe the gameplay flow of this component.
- Entering “Online PvP” brings you firstly to the lobby area. The lobby area simply waits for 4 players to connect then starts a game
- Once in game, each player will have 45 seconds on their turn to play a card. If a card is not played in that time while the app is open, the app will play a card in the player’s stead. If the app is not open on the client device and sufficient time has passed, the server will play a card in the player’s stead.
- This design allows gameplay to be unhindered both during a player leaving and network disruptions.
- Instances where a player disconnects too many times, the game will end
- Instances where a client device has not detected a response from the server after a sufficient amount of time has passed, the game will end
As mentioned in the changelog, the forums area is designated for bug reports and feature requests.
The biggest hindrance to this multiplay launch is the server that the web api currently sits on. During development tests, there were many instances of the server timing out leaving request unfulfilled. Client side code can detect and respond but this quality of service is extremely poor. Due to the uncertainty of web server reliability, this release only contains the bare minimum expected from a multiplayer release. Communication features between players are planned but that can only happen when the multiplay code achieves satisfactory performance.
No Major Release In June
For the month of June, I expect to only be hot patching the multiplayer (unless the performance is so poor that I need to disable it altogether). However I intend to develop other products to diversify my portfolio a bit. The month of july should produce a major release to all fours mobile.