Game Client
UnKnown
In the studio downtime, I did some playing and research on Game Clients and different ways that this can be obtained. Two issues I've seen with create this in Unity is not that it's impossible or even hard, is Updating the game, and people idling in the game and possibly slowing down the servers on them idling and chatting.
I did a lot of experimenting, and came up with what I believe to be a decent solution. I am opening this thread to discuss my findings and open discussions for everyone else for input.
My research has led me to the following. Unity is capable of parsing command line arguments being passed to it. So what does this mean? This means that we can start up a Unity Application and pass it an argument, and start a specific game with specific rules, maps, players, etc.
Since we can do this, we can create a desktop application, separate from the game itself, to handle a lot of the stuff we are trying to cram into the game that isn't related to game play. We can also have a separate server dedicated to just handling the client itself. This application itself can handle user authentication, real time chat, notifications, a store for users to purchase items, leader boards, matchmaking... The possibilities are endless.
In this application, once the user has successfully completed all pre-match tasks, we can have the application start the unity application up with an argument with a unique game id. The game can then connect to the game server and download all applicable game data. It can download the maps, players, and rules to the Unity instance and everyone can load in and complete the game, all using that id.
Onto the more technical details. I accomplished this task using Node.JS myself. I have a Koa.js api server that handles log in and real time chat with sockets. I also have a desktop application using HTML and JavaScript wrapped in Electron for the client side. This is of course far from complete but I accomplished the basics. (User Authentication, chat, starting a unity game with a unique UUID.v4). This would be just as easy to complete in C# using WPF or Winforms and using an ASP.NET backend.
Now for discussion purposes, I want to hear everyone's ideas.
Do we think that using such an application for a client is a good idea or not? Do we think this would save us some troubles in the long run? Do we think this will be a more scale-able option in the long run?
Being that our developers are C# and the website is created using C#, Should this application be built using C# for desktop and server side? Is opening the scope on an app like this to use HTML and JS a good idea?
- Anthony Michelizzi
- 0