The Program so Far
We started writing the Hexix program in the early fall of 2017. Since then, Hexix has made considerable progress towards being ready for release. Development of the program started with a simple console user interface so that we could focus development on the underlying systems to make sure they are top quality. We’ve written a full game engine, menu systems, and complete multiplayer code! We have developed all of these systems in Java. Here are the currently available features:
Play a game on one computer
This allows two or more people to sit around one computer and play a game of Hexix!
Play a game against an AI opponent
This provides the option to play even when you don’t have another person to play with or if you are looking for an extra challenge. AI difficulty is selectable for varying skill levels. The AI uses a brute force minimax algorithm to recursively calculate moves to a depth determined by the difficulty selection.
Connect to a game server
This option allows you to connect to any game server. Your client will download the board, sync the ruleset and set up your local game to match the game on the server! This allows you to play online against people anywhere in the world. A TCP connection is used for reliable transfer of data.
Host your own game server
Want to host a private server to allow you to play against friends online? This option allows you to do just that!
Create custom game boards
This feature is still in a rather primitive state, but if you want to dive into creating your own custom board files, the program will load them right in when it starts up. You can then play and even host a server with your custom board.
Configure a custom game
This is where you go to create crazy game setups that aren’t included in the options above. Imagine you want to create a six player game where two players are in the room, two are controlled by the AI and two are connecting in over the internet. This option guides you through a setup wizard that allows you to create exactly that kind of unconventional setup! Here is a screenshot of that scenario before the game is launched:
Now you may notice that the above screenshot doesn’t look very pretty, and that leads right into the next section.
Goals Before Release
The main focus of development before release is the graphics engine and sound engine. These two go hand in hand to bring a polished experience to the user. As mentioned above, a simple console display was implemented first to focus development on the core systems. Now that those systems are near their final form we are shifting focus to the graphics and final presentation of the game! We’ve designed the underlying system so that the graphics and sound engines will be easy to plug in with minimal hassle. We are using JavaFX for the graphics engine and a few standard Java libraries for the foundation of the sound engine. Here are features planned before release:
Graphics Settings
This feature will be included to give players a fair amount of customizability when it comes to how the game looks. Two main components to these settings will be a light theme and dark theme for the application.
Game Saving and Resuming
This will allow players to save a game in the middle of play and resume at a later point. This will include resuming a online multiplayer game so that games are less of a time commitment if you only have a few minutes to play!
0 comments