170 likes | 186 Views
Practice Java and NetBeans skills by coding Battletech game rules and components, with GUI and object-oriented design.
E N D
Battletech • Goal • To recreate the table top game environment in Java • Practice and develop my skill set with both Java and NetBeans • Why • This is a game I have always enjoyed • To see put my knowledge to the test
Data • All components in the battlemech were built as separate objects. • Game rules are coded into the objects where necessary. • Game engine actions are based on the current game phase. • Game play is with two six-sided dice, and this is represented with a random generator.
Data • Record keeping is accomplished within the instantiated objects. • This abstracts the game record sheet into a different form, minimizing the level of player overhead for details such as, heat level, movement and firing modifiers. • Access is through get and set methods.
Accomplishments • As of today, I have a rough GUI that will display data about a given battlemech. • I have implemented a canvas that draws the hex game board, and one battlemech. • The parts that build up a battlemech have all been built, and have appropriate accessor methods. • At this point I consider this an Alpha implementation of the program.
Current System Design Mouse Events Game Window UI Update Player's Battlemech Dice Roll Generator Mech Body Game Phase Engine Mech Components
Challenges • In getting to this point, I had determined that I wanted to implement all the pieces and parts of the game as objects. • This allowed me to define a few generic objects that I could extend into the remaining parts. • By building generic parts, I could define the methods for all the parts, and hopefully minimize the type checking later.
Part Definition • Part object extends into • Engine, Gyro, Cockpit, Arm and Leg Actuators, Heat Sinks, and Weapons • Weapons object extends into • Lasers (Large, Medium, Small) • Missiles (Long Range and Short Range) • Ballistics (Autocannons and Machine guns)
Battlemech • The MechBody object itself is made up of more objects. I have an inner structure object that maintains overall access to all the parts objects. • The MechBody is also where we maintain armor and heat levels. • In essence I am recreating the physical record as a collection of objects.
Conclusions • I feel like I am going the right direction to represent the game as a computer program. • I neglected to keep track of my time, so I can't give an accurate count of the hours spent. • For the program to be useable, I need to make progress on the game engine. Up to this point I have been more focused on the battlemech itself, setting up the objects and their methods. • I had some personal challenges that ate up time that I needed to dedicate to this project.
Conclusions • I have found that my knowledge with the GUI construction is very limited, and this has been an excellent project to push that knowledge forward. • This is a project that I plan on working with for quite a while, and now I have a reasonable start on it.