Skip to content

Development

scscgit edited this page Jul 5, 2020 · 5 revisions

TODO:

  • Guideline for the project structure
  • Guideline for creating Prefabs and how to document their usage
  • Guideline for providing public inspector-editable interfaces
  • Guideline for code style

Intentions

Research and compare multiplayer gameplay solutions

  • Our priority is the option to customize and edit server-sided logic (using open-source framework) while being able to scale (using any cloud provider) without any limit or additional costs.
  • Our current choice is the Mirror framework, which is a continuation of UNet.
  • Here are some Reddit comments regarding hosting authoritative server.
  • Hosting Mirror on multiple servers may require running separate instances and manually handling forwarding to their IPs at the level of matchmaking, which has no official support and is just a workaround developers need to do.
  • Epic Online Services (docs) can also be considered as an alternative, and we need to research the feasibility of upgrade by comparing the differences, as it also supports Unity and provides unlimited free hosting with no catch (saving us the troubles we'll have with Mirror hosting).

Research and compare backend persistence and account management solutions, along with options of their scalable deployment

  • SQLite was being researched, but there were some ORM limitations and library stability issues, plus this may not easily scale in the future.
  • Google SSO options were being researched, but there could be issues with libraries to support cross-platform usage, e.g. both Windows and Android.
  • Spring Boot or ASP.NET Core will be probably chosen, hosted as a separate server, Dockerized, etc.
  • Need to consider SQL vs NoSQL; options like PostgreSQL are probably possible to scale (cluster), but some Active Directory may be more suitable for accounts.

Clone this wiki locally