After having added the ability to add and delete users from the game system, I turned my attention toward implementing the sign in feature so that users added to the system would be able to sign in whenever they played the game. Yesterday I worked on designing the sign in GUI and I ended up deciding to have the user enter his or her username and password to sign in. I scrapped the idea of saving the users gender information as it felt a little irrelevant and I instead opted to have them create a username and password upon signing up for the game. Today I finished the sign in GUI and I added functionality to it. I tested it after signing up myself and it seemed to work fine. The system requested my user info to log in and I provided the info. Afterwards my sign in status changed to signed in. I plan to continue working on it later and optimizing it a little more.
Yesterday I resumed my work and picked up where I left off last week. I continued my attempt to implement an add user function to be able to add multiple user profiles to the game. Luckily, we had done something very similar in my object oriented programming class two semesters ago. I went back and looked at my old code and projects from that semester to refresh my mind on how to add this function and I immediately got a few ideas. After a few hours of tinkering with the code, I was able to successfully implement the add user function, thanks to old code from previous projects of course. I did run into many bugs before getting it to work, the most prominent of which was the fact that every time a user was added, all other users currently in the system were added a second time as well. This error took me a good hour to locate and fix, but even so, I tested the add user function continuously and it seems to work fine. Having added this feature, it was not too difficult to add a remove user one also. It was basically the same thing as adding a user.
To be more specific on how the code works, basically, I created a class called openFile that handles the opening of the data file and the scanning of the data. It collects the data of all users and stores each user along with their data in an array list of type gameUser. Inside this openFile class, there are also methods for adding a user and deleting a user from the array list. There’s much more to the code itself but these are the very basics of how it works.
These last two days I have been working on implementing a user based profile system. After getting the sound working properly, I thought about what exactly I wanted to work on next and I eventually decided upon working on the user profile system. My idea was to have every user of the game create a profile if they desire. This profile would store the most essential information about the user including name, gender, age, etc. Ultimately, the profile would store information about the user in regards to how they play the bubble game. It would store their average length of game session, fastest bubble pops per second, overall average number of misses, and other useful data. I am currently working on the ability to add a user profile to the game. If I can get this to work, then the game will have the ability to add multiple users. I plan on storing the user info in a file on my computer for the time being. Later, it can be uploaded to a server or saved somewhere else. I will continue working on this throughout the day and write about my progress later today.
My main objective coming in today was to have the bubble size implementation working properly and to possibly add sound to the game play. Thankfully I was able to meet both of these goals after about 4 hours of working on it. I did run into a few problems regarding the bubble popping action of the game. I noticed the issue only after I attempted to play the game with larger sized bubbles. What was happening was that even if the player clicked in a spot noticeably far from a bubble, the bubble would still be popped for some reason. I then went back to the regular sized bubbles to see if the problem still existed and unfortunately it did, though not as apparent as when playing with larger sized bubbles. To fix this, I basically went to the code that handles the bubble popping and narrowed down the accepted field for a bubble pop. Doing this made it so that the bubbles would strictly pop only if the user clicked on the narrowed down bubble field. Moreover, I also attempted to implement sound into the game, particularly when a bubble was popped. I did a bit of research online and discovered an easy way to do this. I implemented the method into the code and thankfully it worked rather well. I had of course tried other methods shown online prior to finding a working one so the process involved a bit of trial and error. So far, the game officially has sound implemented into it.
What I worked on today involved the creation of the balloon size selection GUI and the implementation of the feature itself. For the most part I was able to complete the design for the GUI implement it into the code. So far it seems to be working very well and it looks pretty good in terms of appearance. I was able to re-use the code for my Line Position GUI and build onto it. I also got a hold of Scott and had him take a look at a few of the changes that I had made. He was able to enlighten me more on how exactly the game is supposed to work. It appears that there are two modes in which to play the game that I was not initially aware of. The second of which is being able to use the space bar to pop the bubbles. Since the target line was originally intended to be used only with the space bar, me and Scott had to adjust the space bar action listener code to be able to find the location of the target line, something that I had not originally done. After making those slight modifications, the space bar could then be used to pop the bubbles as soon as they hit the target line, no matter what position the user chose for the target line. Scott was also able to show me how to change the sizes of the generated balloons, something that will be useful in my future implementation of custom balloon sizes. Overall it was a very productive day.
Today was my first day back at the lab after labor day weekend and I am happy to say that I have made much progress over the last 4 days. I was able to finish designing the GUI for the target line position selection. More importantly, I was also able to implement this new feature into the game. As of earlier today, the option to customize the target line position is now a new addition. It took all of labor day weekend to get it to work but it is now fully operational from what I can tell. I will continue to test it out to see if I can find any bugs, and I will most likely contact Scott and have him take a look at the addition to see what he thinks. I am now preparing to go to the next addition to the game that I had planned, which involves the customization of the bubble’s size. I have already started to lay out a GUI design for the option to change balloon sizes. I will continue my work either later today or tomorrow.
Since I forgot to write a blog entry yesterday, I have decided to include what I did for that day in this post. Yesterday I began re-designing the background selection dialog box for the game. I decided to eliminate the path name’s from the JList and replace them with more conventional background names. I also decided to give a small preview of each background in the bottom pane of the box. Overall it looks much better. Today I finished a few things concerning the Background selection GUI and began working on designing the GUI for the line position selection addition that I am planning to implement. My plan is to have the option to change the position of the horizontal target line, but to do this I will need to create a GUI for this option. Right now I am designing this GUI and I will begin implementation soon enough.
Today I came into the lab at around 11:00 a.m and finished at around 4:00 p.m. I was able to resolve several computer issues that I was having all week regarding the inability to download needed files. I did a system restore and was able to solve these issues. Afterwards, I worked on getting the code to run on Eclipse. It took a while but I was ultimately able to get it running. I added a few more backgrounds just for testing purposes and played around with the code a little. I’m thinking about re-designing the background menu dialog box but I am not sure how I am going to do it yet. I plan to continue working on the code tomorrow.
After the first day of work here at the Heracleia Lab, I have managed to set up my coding environment as well as obtain information regarding the specifics of the game that I will be working on, including the language that I will be using, which is Java. I have also obtained the code for the bubble popping game and have ran and tested it on my own computer. I have not yet decided whether to use the NetBeans or Eclipse IDE, but I have downloaded both. I will soon begin taking a look at the code itself.