Today has been an eventful day for development. I was able to fully complete the splash, loading, authentication, session, login, and registration systems as well as start the city view activity and add background music.
The splash activity simply shows the “Made with Unity” icon then fades to the logo for Amarok Studios. After the splash, it automatically redirects to an authentication activity which will look for a session key and user ID. If there is no client session, it will redirect to the login screen. If a client session is found, it will authenticate that session with the system and redirect to the city or login screen if the session is not valid.
Between each activity, there is an animated loading screen. This allows the next activity to load before it’s displayed so there aren’t GUI/lag issues. The loading screen features the background image with a forest and castle as well as both the Conquer Kings and Amarok Studios logo. Near the bottom, there is text stating what specifically is loading and a progress bar to keep the player updated on estimated load times.
The authentication systems allows the client to store a session key and validate it with the server to automatically login players. This prevents the player from having to login to the game each time it is opened.
The session system works with the before-mentioned systems. It uses a combination of generated session keys, expiration dates, and whatnot. Along with keeping users logged in, this system also limits the number of logins to one device. If a device change is detected, it will invalidate the old session and automatically generate a new one.
The login system is pretty straightforward. If a new session is needed, a player will simply enter their username and password and it will request authentication and a new session key from the server. As of now, the only way to login is to use your Username. In the future, email logins will also be possible.
The registration is the system that took the longest. Upon filling out the form, the system performs a series of data-validation methods to ensure data is correct and adheres to the data standards. It also checks different administration lists such as username or email blacklists, IP bans, checks the number of recent requests to prevent brute-force attacks, etc. After the data-validation is complete, the system sets up a users profile in the database, along with the initial city and related city and player settings and preferences.
The game features a song called Adventure by Alexander Nakarada. I am still working on collecting rights to different songs to allow for a variety of music to choose from. Of course, there will be an option to mute different sounds such as music or other game audio.
I have setup the camera system, basic plots, and basic terrain for the city. Of course, there is a lot more that will go into this, but the initial layout is now there.
The database is using a strong indexing system to make look-ups and entries very quick and efficient. The indexing system also allows for easy data-manipulation such as processing a username change request. The server also has advanced security systems in place to protect files and user-data. All stored user information is encrypted or hashed. Passwords are all one-way hashed which prevents any way to decrypt and view as plain text. In addition, emails are encrypted using a strong algorithm and keys that can only be accessed by the automated system.
What’s to Come
In the next round of development, I am hoping to add sound-effects to the menu (such as a player clicks on an input or button). In addition, I will setup the systems to retrieve basic player data and city information to display the initial city view. I will setup the basic player UI to display things like inventory, player information, resources, etc.
Everything is coming together well! I am still needing to figure out the situation with the graphics, but we will cross that bridge when we get there. I have included a short video of the menus and basic city view for you to preview. Of course, it’s not complete but it’s still something. I hope you like and hope it’ll get you excited!