Introduction:
Dear supporters, colleagues, and friends,
First, I would like to thank you for your support over the years with my self-studies. I have been very fortunate to have such kind and caring readers interested in my work. Posting here just reminds me of the enthusiasm we both have shared for software development since the birth of my first project, Project Kibou, which brings us to the topic at hand.
If you're new to this community, let me introduce you to the newly refined idea: Kibou is a non-profit, self-study intended for demonstrations in interprocess communications at Saddleback Community College. The goal of the project is to create an expandable massive multiplayer online account, web, and game server. It achieves this by abstracting classes in base libraries, and then building upon that infrastructure through inheritance in the server projects, thereby increasing the modularity of each component of the project and creating a highly scalable server design.
A main objective for Project Kibou is to securely connect players to the game server and maintain a stable connection throughout their gameplay. Kibou uses IO completion ports along with threaded worker queues to ensure server reliability and efficiency. Red-black trees, skip lists, and other data structures are used to process network data and collections quickly and keep the response time of the server low. To protect player connections, the server implements algorithms such as the Carlisle Adams Stafford Tavares Cipher, Diffie-Hellman Key Exchange, and other private algorithms used for secure transfers between the servers and the client. These systems are safeguarded with brute-force attack prevention algorithms on the socket acceptance level (prior to connections being accepted by the server controlled by socket level callbacks). All clients that match the attack behavior are terminated and added to a temporary connection block list, keeping player passwords and server transfers secure.
Another objective of Project Kibou is to efficiently manage player and server data. Frequently accessed data, such as character information, is stored in a MySQL database and accessed using pooled connections. Static server resources only accessed upon server initialization, such as map access data, are stored as binary files on the host. Dynamic server resources, such as non-playable character dialogs, are stored as scripts and interpreted by the server’s scripting engine.
The final objective of Project Kibou is community. As a whole, the project operates as a private game service aimed at emulating a game world for player interactions. With permission from TQ Digital Entertainment and NetDragon Websoft, the project has rights to modify the Conquer Online game client binaries and game resources, used to connect to the account and game servers in the project. This agreement is only valid under terms of academic use. More information about the game storyline will come at a later date.
Alright, so a few months ago, I had to experience the passing of my grandmother (my only guardian), and though I didn't believe it would be relevant to my work, it was definitely affected. The very little enthusiasm I had remaining in C# has dispersed. C# is no longer a challenge or creative outlet for me, and I have no interest in continuing programming in C# as a self-study. I am exhausted after years of constant programming in the language, and I feel it is time I move on to bigger and greater things. The purpose of this project was met - I now have access to local internships and scholarships; therefore, my C# attempt at Project Kibou was closed.
Now, you might be asking "what's next". I can't say what yet, but magnificent events are falling into place, and it's time that I continue my work on a project that will utilize my new skill set. After talking with certain recruiters of my dream job, it has been decided that my best course of action is to peruse my interests: work on a project I'm passionate with that involves the type of work expected from me, in C++. After the past few months, I have learned more than I have learned in the past year and a half. I have drastically improved my skill set, and improved my server design by high magnitudes. So, in dedication to my grandmother and the efforts we put into my future as a computer scientist, and after spending months finalizing a new server architecture that is miles ahead of my current work, Project Kibou will continue. A public server will be created for beta testing, but will not be planned until Fall 2014. I am a full time student and part time tutor, so development might be slow at times; but please understand that new development news is always coming soon. Thank you so much for your patience and support.
Kind Regards,
Spirited
Development Log:
Dear supporters, colleagues, and friends,
First, I would like to thank you for your support over the years with my self-studies. I have been very fortunate to have such kind and caring readers interested in my work. Posting here just reminds me of the enthusiasm we both have shared for software development since the birth of my first project, Project Kibou, which brings us to the topic at hand.
If you're new to this community, let me introduce you to the newly refined idea: Kibou is a non-profit, self-study intended for demonstrations in interprocess communications at Saddleback Community College. The goal of the project is to create an expandable massive multiplayer online account, web, and game server. It achieves this by abstracting classes in base libraries, and then building upon that infrastructure through inheritance in the server projects, thereby increasing the modularity of each component of the project and creating a highly scalable server design.
A main objective for Project Kibou is to securely connect players to the game server and maintain a stable connection throughout their gameplay. Kibou uses IO completion ports along with threaded worker queues to ensure server reliability and efficiency. Red-black trees, skip lists, and other data structures are used to process network data and collections quickly and keep the response time of the server low. To protect player connections, the server implements algorithms such as the Carlisle Adams Stafford Tavares Cipher, Diffie-Hellman Key Exchange, and other private algorithms used for secure transfers between the servers and the client. These systems are safeguarded with brute-force attack prevention algorithms on the socket acceptance level (prior to connections being accepted by the server controlled by socket level callbacks). All clients that match the attack behavior are terminated and added to a temporary connection block list, keeping player passwords and server transfers secure.
Another objective of Project Kibou is to efficiently manage player and server data. Frequently accessed data, such as character information, is stored in a MySQL database and accessed using pooled connections. Static server resources only accessed upon server initialization, such as map access data, are stored as binary files on the host. Dynamic server resources, such as non-playable character dialogs, are stored as scripts and interpreted by the server’s scripting engine.
The final objective of Project Kibou is community. As a whole, the project operates as a private game service aimed at emulating a game world for player interactions. With permission from TQ Digital Entertainment and NetDragon Websoft, the project has rights to modify the Conquer Online game client binaries and game resources, used to connect to the account and game servers in the project. This agreement is only valid under terms of academic use. More information about the game storyline will come at a later date.
Alright, so a few months ago, I had to experience the passing of my grandmother (my only guardian), and though I didn't believe it would be relevant to my work, it was definitely affected. The very little enthusiasm I had remaining in C# has dispersed. C# is no longer a challenge or creative outlet for me, and I have no interest in continuing programming in C# as a self-study. I am exhausted after years of constant programming in the language, and I feel it is time I move on to bigger and greater things. The purpose of this project was met - I now have access to local internships and scholarships; therefore, my C# attempt at Project Kibou was closed.
Now, you might be asking "what's next". I can't say what yet, but magnificent events are falling into place, and it's time that I continue my work on a project that will utilize my new skill set. After talking with certain recruiters of my dream job, it has been decided that my best course of action is to peruse my interests: work on a project I'm passionate with that involves the type of work expected from me, in C++. After the past few months, I have learned more than I have learned in the past year and a half. I have drastically improved my skill set, and improved my server design by high magnitudes. So, in dedication to my grandmother and the efforts we put into my future as a computer scientist, and after spending months finalizing a new server architecture that is miles ahead of my current work, Project Kibou will continue. A public server will be created for beta testing, but will not be planned until Fall 2014. I am a full time student and part time tutor, so development might be slow at times; but please understand that new development news is always coming soon. Thank you so much for your patience and support.
Kind Regards,
Spirited
Development Log: