Development Update...
Posted: Fri Aug 11, 2017 05:36 UTC
Hey All
Sorry I haven't been around much, been having some RL issues to do with my health and other stuff, so I had to concentrate on those first.
Thank you to a few users that have emailed me asking if everything was ok, it was appreciated.
I have some answers to some of your questions which I will list later in this post.
To-do with my health...
I have a lung condition that affects 1 in ever 1,000 people to do with the air ways in the longs swelling up with mucus making it hard to breath.
Over the last several years I have been put on various medications in which some helped a little and a few did nothing, and then there was all the side affects to them which wasn't nice I tell you.
The last several months they finally diagnosed me with this conditions where I have about 90% of the symptoms, so its a very good chance its that, sadly there is no cure for that but only medication to slow or stop it getting worse and at the same time makes things bearable, which is all good news in my book.
Now BNT...
A lot have asked would it be the same as current BNT.
Now here is the issue, I would like to keep it the same as a browser based game, I really would, but like I have said before the way browsers work with HTML etc if its a Request and Response type of game, so for stuff to be sent to the client (in this case a browser) the client needs to do a request to be told something has happened etc.
This is why we only get notifications of an in game message when you do something in the game, you have basically done the request.
So we are very limited to what we can add and this was why I really wanted to move away from browser based usage and over to a desktop application.
But I was really thinking about this the other day while I was doing some code to-do with Octrees which will be used for Memory Data Storage to lower the Database usage etc.
Anyhow I was looking into the road map for the Game Engine that I am currently using and they are improving WebGL which runs in a browser, granted it was very slow on most browsers in the older released versions of the engine, but it seems that it is getting better.
So I thought I would do the game as I was before as a Desktop Application but also add in support for it to cross-platform compatible for WebGL as well ready for if I release the WebGL version later on when its a lot better.
You said you will be using a 3D Game Engine, so will it be a 3D or 2D game?
Well I did plan to have it as a 3D version with 3D Space Ships, Space Stations and players being able to fly about in the universe.
But I really need to be realistic here, this hopeful thinking on my part was just silly, but there is nothing saying this might not happen later down the line in the future.
No, basically it "should" look and play exactly how it does now but without all the browser exploits like multi-tabs etc. which "I know" some are still currently using.
The only difference should really be its being run in a Desktop Game Client instead of a browser, it will still be a point and click type of game along with some extra stuff like Server to Client Notification.
Extra features...
Server to Client Notification is as it says messages that the server sends to the game client which is used for new future features I want to add later on.
This is also going to be used for in-game mail / messages etc, this can be sent across servers which may or may not be run be us.
So Player A is on our game server playing and sees a friend Player B join a 3rd part server running this game, so Player A and Player B can send in-game mail / messages to and from each other.
There will also be a Friends List feature where friends can always see when they login or logout and also what game server they are playing on.
There is way more features that could be added later on.
What about being able to play the game on my browser?
Well like I have already said at the start of this post, I still would like to have the game to be able to be also played via the browser, but I don't think the browsers are there yet, granted there is WebGL and HTML5 but until all browser handles all aspects of those equally, stable and fast I will put that on the back burner and see how it goes over the next year or two.
So for now I am not saying wont be released as a browser game, but more towards, not at the moment.
When the desktop version is complete will there be server downloads available for us to setup and run.
Not at first, but eventually yes there will.
I just wanted to make sure everything was working right before I mad it available to the public.
Ok, so the server will be available later on, but what will I need to run it on my server.
Well I an planning for the Server to be released as compiled code for a Linux Server, MySQL (at first, others later on) will be needed for the database, PHP and Apache if I add an Armoury / Stats Page.
Apart from that, it should just be the matter of uploading the server files to the server, add cron to run it 5 mins after server start-up and that should be it.
Also the Game Server should be run as its own user and NOT root.
People that want to run their own server will need to create an account on our servers like normal players would and also request for a Server API Key which are unique per Server, so if you run 7 Game Servers you will need to request for 7 API Keys.
Also 1 or more ports will be required to be opened on your firewall for players to be able to connect to it.
Also its one Game Server per IP by default at the moment, but I have been looking into allowing it to use different ports, but that can be addressed later on.
What about creating accounts every time the game is reset? and how is this handled when 3rd part servers are allowed?
That is a very good question...
Game Servers 3rd party and our ones will not store any account information, they will only store game required information in their databases.
All user account information will be stored on our network / login servers etc.
All Game Servers including ours will all request a unique hash / UUID based off the users Account ID and the servers ID that they are playing on.
The connecting Client (already logged in on our network) connects up to a Game Server and tells it its Connection ID (random and changes every login) the Game Server then uses that ID along with its API Key, ServerID and the servers encrypted Password to our network and at our end we lookup the required users info to validate its all valid and then generate a UUID based from both the Clients Account ID (Int64) and ServerID (Int64) and send that back to the requesting Game Server.
The Game Server will now use that UUID to represent that User every time they return and play on that server.
Also all communication between the Clients and Servers and also the Game Server to our Network are all encrypted using RSA Key Pairs and also uses SSL/TLS Secure Connections a bit like how HTTPS works.
Well there is loads more, but these were the most asked questions.
Sorry I haven't been around much, been having some RL issues to do with my health and other stuff, so I had to concentrate on those first.
Thank you to a few users that have emailed me asking if everything was ok, it was appreciated.
I have some answers to some of your questions which I will list later in this post.
To-do with my health...
I have a lung condition that affects 1 in ever 1,000 people to do with the air ways in the longs swelling up with mucus making it hard to breath.
Over the last several years I have been put on various medications in which some helped a little and a few did nothing, and then there was all the side affects to them which wasn't nice I tell you.
The last several months they finally diagnosed me with this conditions where I have about 90% of the symptoms, so its a very good chance its that, sadly there is no cure for that but only medication to slow or stop it getting worse and at the same time makes things bearable, which is all good news in my book.
Now BNT...
A lot have asked would it be the same as current BNT.
Now here is the issue, I would like to keep it the same as a browser based game, I really would, but like I have said before the way browsers work with HTML etc if its a Request and Response type of game, so for stuff to be sent to the client (in this case a browser) the client needs to do a request to be told something has happened etc.
This is why we only get notifications of an in game message when you do something in the game, you have basically done the request.
So we are very limited to what we can add and this was why I really wanted to move away from browser based usage and over to a desktop application.
But I was really thinking about this the other day while I was doing some code to-do with Octrees which will be used for Memory Data Storage to lower the Database usage etc.
Anyhow I was looking into the road map for the Game Engine that I am currently using and they are improving WebGL which runs in a browser, granted it was very slow on most browsers in the older released versions of the engine, but it seems that it is getting better.
So I thought I would do the game as I was before as a Desktop Application but also add in support for it to cross-platform compatible for WebGL as well ready for if I release the WebGL version later on when its a lot better.
You said you will be using a 3D Game Engine, so will it be a 3D or 2D game?
Well I did plan to have it as a 3D version with 3D Space Ships, Space Stations and players being able to fly about in the universe.
But I really need to be realistic here, this hopeful thinking on my part was just silly, but there is nothing saying this might not happen later down the line in the future.
No, basically it "should" look and play exactly how it does now but without all the browser exploits like multi-tabs etc. which "I know" some are still currently using.
The only difference should really be its being run in a Desktop Game Client instead of a browser, it will still be a point and click type of game along with some extra stuff like Server to Client Notification.
Extra features...
Server to Client Notification is as it says messages that the server sends to the game client which is used for new future features I want to add later on.
This is also going to be used for in-game mail / messages etc, this can be sent across servers which may or may not be run be us.
So Player A is on our game server playing and sees a friend Player B join a 3rd part server running this game, so Player A and Player B can send in-game mail / messages to and from each other.
There will also be a Friends List feature where friends can always see when they login or logout and also what game server they are playing on.
There is way more features that could be added later on.
What about being able to play the game on my browser?
Well like I have already said at the start of this post, I still would like to have the game to be able to be also played via the browser, but I don't think the browsers are there yet, granted there is WebGL and HTML5 but until all browser handles all aspects of those equally, stable and fast I will put that on the back burner and see how it goes over the next year or two.
So for now I am not saying wont be released as a browser game, but more towards, not at the moment.
When the desktop version is complete will there be server downloads available for us to setup and run.
Not at first, but eventually yes there will.
I just wanted to make sure everything was working right before I mad it available to the public.
Ok, so the server will be available later on, but what will I need to run it on my server.
Well I an planning for the Server to be released as compiled code for a Linux Server, MySQL (at first, others later on) will be needed for the database, PHP and Apache if I add an Armoury / Stats Page.
Apart from that, it should just be the matter of uploading the server files to the server, add cron to run it 5 mins after server start-up and that should be it.
Also the Game Server should be run as its own user and NOT root.
People that want to run their own server will need to create an account on our servers like normal players would and also request for a Server API Key which are unique per Server, so if you run 7 Game Servers you will need to request for 7 API Keys.
Also 1 or more ports will be required to be opened on your firewall for players to be able to connect to it.
Also its one Game Server per IP by default at the moment, but I have been looking into allowing it to use different ports, but that can be addressed later on.
What about creating accounts every time the game is reset? and how is this handled when 3rd part servers are allowed?
That is a very good question...
Game Servers 3rd party and our ones will not store any account information, they will only store game required information in their databases.
All user account information will be stored on our network / login servers etc.
All Game Servers including ours will all request a unique hash / UUID based off the users Account ID and the servers ID that they are playing on.
The connecting Client (already logged in on our network) connects up to a Game Server and tells it its Connection ID (random and changes every login) the Game Server then uses that ID along with its API Key, ServerID and the servers encrypted Password to our network and at our end we lookup the required users info to validate its all valid and then generate a UUID based from both the Clients Account ID (Int64) and ServerID (Int64) and send that back to the requesting Game Server.
The Game Server will now use that UUID to represent that User every time they return and play on that server.
Also all communication between the Clients and Servers and also the Game Server to our Network are all encrypted using RSA Key Pairs and also uses SSL/TLS Secure Connections a bit like how HTTPS works.
Well there is loads more, but these were the most asked questions.