Wednesday, April 20, 2011

Final Thoughts

   Can't believe the semester's almost over already, and that we've been working with Fortune Hunter for awhile now. We're doing our poster presentation tomorrow, and the giant printed copy looks good. Putting it together will make our progress with the final presentation go a little smoother. I also clicked through our wiki to make sure all the formatting looks good and matches since the final pdf export of it is due tomorrow.
   Overall, I think this has been a good class this semester. The workload was definitely manageable since we were able to conform it to our schedules, and the work itself was pretty enjoyable, since we chose the project ourselves. My team members were very easy to get along with. Most of the time we did our our things with FH, but we were able to make it all come together, and to help each other out in different aspects of FH and its setup.
   I learned a lot about git and subversion, even though I gained more experience with git because that's where the actual project is hosted. I would like to learn more about subversion and how to utilize it more efficiently in my own work. I also learned more about Python in general, and about Pygame, Netbeans, and the Sugar OS. I will definitely be using Netbeans in future projects (already have in my other class) because it makes things so much easier to deal with, coding-wise. Pygame looks like it has a lot of potential for graphics within Python, so that could be useful in the future. And as for the Sugar OS, I think their message in general and their involvement in the OLPC campaign are very inviting aspects for contributors.
   To be honest, though, I don't know about further contributions for Fortune Hunter itself, but I think our team did our best to make sure any other contributors to the project will have an easier time getting into it. But Jon and his team were SO helpful, and I hope any other projects I work with in the future have that same kind of support. I think this was a great first-time experience in really getting involved in a "real," outside project, and our team's interactions with the main developers and amongst ourselves were very beneficial in learning how to work in that kind of environment.

Tuesday, April 19, 2011

Poster & Other Updates

    I finished up all my commits and fixes last week, so all I needed to do this week was gather up the materials I wanted to include in our poster for Thursday. (http://spinner.cofc.edu/~physics/poster_11/abstracts.html Ooh there we are, number 14!) It definitely looks like a lot of posters are going to be there, so this will be interesting to check out everyone else's projects too.
    Our poster's looking pretty good, Brittany put all of our stuff together and I helped her shave off some words to make it more presentable. Can't wait to see it blown up.
    Otherwise, there's not much to update in terms of FH progress. Staci and Ryan are still getting their graphics and code ready for a commit, and Brittany's working on the never-ending documentation. I'm going to go over our wiki to make sure everything's organized and updated. We need to start working on our final presentation, which shouldn't be too hard since most of our stuff has been summarized in the poster, and we can use that as a starting point.

    Less than a week left of classes!

Thursday, April 14, 2011

Success!

Yesterday was a very successful day, after 5+ straight hours of coding. Some issues that were addressed are listed below.

Dungeon 3 Stuck Bug:
I finally changed the Dungeon 3 Stuck bug in the ticket tracker to 'wontfix' and made it a task related to the reimplementation of the puzzle doors instead, after last week's efforts to address it.
Text Overflow in Navigator:
I also added a task to the ticket tracker concerning the overflowing text in the Navigator. Again, last week's efforts yielded little success in that area with the discovery of pygame's text formatting limitations. Since I don't know how exactly the original developers want to deal with this, I figured it's better to just bring it to their attention on the tracker for now.
SVN commit Oops:
I edited some code and submitted it to our svn repos, and continued to work on my next task, when I realized the code was actually messed up. It's okay though, because I fixed it right away and re-commited the working code along with a "just kidding" addition in the comment to indicate the new revision works this time. I really wasn't kidding when I warned my group that I was the one mostly likely to break the code (and somehow overwrite the working editions). I'm still not entirely sure about svn usage, as far as reverting back to old revision and the merging of files, and I will look into that later. But the proper code was finally submitted.

On to good news...

Minor Typo:
I fixed the minor "forunute" misspelling in the MafhActivity.py file. No big deal. Fixed in both svn and official git repos. I used this as my tester commit since I discovered my key messed up for the git repos. I had to create a new one, following the same instructions in a previous blog entry, and then I had no problems using the instructions posted on our wiki's Getting Code page.
Messages in Navigator:
First I fixed the Heal messages, to say whether or not you actually healed after the magic heal command. That wasn't so bad. But it led to all sorts of other problems, and fixed some others at the same time. No more random '0's or blank messages leaving the player confused.
Battle Timer:
Turns out the battle timer doesn't actually work. It kind of still doesn't, but at least the game does more appropriate things now when the player is past their time limit. This relates to the messages, since I added some code that creates a "Time's up!" message. If the battle timer has reached its limit, the graphic will remain on the screen and the player will still be at the current puzzle or numerical input as before (nothing changes here). However, ANY action at this point will take them back to the previous menu, and show the "Time's up!" message, whether they enter a correct value or select the correct puzzle piece. While this may not be the best solution, since the ideal one would be to remove the timer graphic when time is up and return to the menu then with the message, this is a good starting point and worth committing. So I did. Especially after spending so much time on it.

Now what...
I updated the wiki Timeline to show my changes, and both the git and svn repos have all my committed fixes. As far as direct contribution to the Fortune Hunter project for the semester, I think I've basically completed my part. Our wiki page still needs some better modifications and organization to reflect our updates, so that's what I'll be working on for the next week, along with getting the other team members on board with their own commits.

Brittany submitted our poster abstract and started working on our poster presentation due next Thursday. Doing that alongside the final Prezi presentation should make both projects easier. Everyone in our group is mostly finished with their assigned tasks. Good thing too, since our last class is next week!

Tuesday, April 12, 2011

Long week...

    I'm very much aware I missed a blog posting on Thursday. However, I've made a lot of progress with FH since last Tuesday. I was working on the formatting issues on our handheld device graphic, but discovered that those files are in the FortuneEngine folder which we aren't supposed to be working on in regard to Fortune Hunter as it's a different project entirely. I also discovered through some research that PyGame which is used in FH doesn't like line breaks so much. So what we thought would be a simple fix for the text running off the graphics during battles is actually out of the realm of our project as of now. The BattleMenu.py file has code for both a display and a "second display" which is actually for the number input during a critical attack. I tried creating a third display for a second line following the first display, however with the way graphics are set up, I do not think this is a possible/good solution. There is no way to change the font size of the text of the display object once it is drawn/added to the scene, unless we edited code dealing with pygame itself (different project). So I may just file the text runoff as a bug and let the original developers decide how to deal with this issue. However, I was able to at least adjust the font sizes in the Menu, making the text on the buttons themselves bigger and easier on fourth grade eyes.
    I also figured out how to fix the strange messages that popped up when using the Heal magic attack. It would leave the old message up, and sometimes would display a '0', such as when re-selecting a previously selected puzzle piece. This is initially set in the code as default. I fixed the code in BattleEngine.py starting at line 312 to show what happens when the player successfully completes the puzzle ("Healed!") or has failed to perform the Heal ("Failed to heal").
    But then I ran into bigger issues. The first (minor) issue is that the documentation needs to show that the max heal is 40 somewhere. A major issue however is that when the timer runs out on puzzles (any, not just Heal, including the critical attack multiplication problems), nothing happens! As far as I can tell, the player can still successfully complete the puzzle and be awarded healing points or deal the appropriate damage. Pretty sure that wasn't intended considering a timer exists in the first place. This needs to be addressed promptly, since it's a major aspect of the game. I'll look into the code to see if it's a do-able fix considering the time we have left, which isn't much. Every issue we run into in this game seems to only lead to more issues, but we are still making progress because we can build better documentation through our experiences thankfully.
    One easy fix to boost our morale is that there is a typo in the MafhActivity.py file (used to run the program itself). How we managed to miss this all along, I will never know, especially since it pops up in the Terminal window every time I run the game (am I the only one on my team running from a terminal for debugging issues?).
    I also realized that instead of waiting to submit everything to the git project all at once like our original plan, we should be doing it as we go along, so it'll be easier to leave the right comments, and in case if we need to roll back, everything will be in place. I will discuss this with my team members in class today. We also need to get started on the Poster abstract due Friday, and its presentation next week. Yikes.

Sunday, April 3, 2011

Dungeon Stuck Bug

Some progress was made regarding the other bug.

The first room is the second line from the bottom in MAFH2/assets/map/al[#].txt file. I figured this out because in the 3rd dungeon, this is the only line with two non-unlocked doors and an entrance door, and in the 1st dungeon, this line has an unlocked door and an entrance door. I modified the second to last line in the code for the 1st dungeon, al1.txt, from NuSe00000000000000000 to NpSe00000000000000000 to check the "puzzle" flag's behavior and to do further testing.
(In the old version, a startPuzzle() method is defined in MAFH.activity/pippy_app.py, line 1708. The method is called in MAFH.activity/pippy_app.py, line 1573.)

I tried to incorporate the appropriate files and code into the new MAFH2 version. I copied all the asset files associated with puzzles and environment. I modified the MAFH2/Dungeon.py to include the variables and paths for puzzle stuff, and found the comment in line 145, #TODO: START PUZZLE. Nice. I added some code from pippy_app.py in there, but couldn't get the actual puzzle to run. I looked for where the puzzles run when you select magic attacks in the menu, but I don't think they've gotten that far yet.

At least we've discovered this is not a bug after all, even though to an outside tester, it would definitely seem that way. Setting the flags to unlocked lets you continue in the game (for testing), but some of the higher levels do not have enemies yet.

This task is not something I think we'd be able to accomplish within the short time we have left, but I will update the bug tracker to indicate that it is not a bug after all, with a link to the Reimplement Puzzle Doors task.

Wednesday, March 30, 2011

Fortune Hunter Update Again

    While running the game in class last time, we came up with a lot of stuff that needs improvement. The list of all the things we're working on right can be found on our wiki's Timeline page. While we don't have specific dates, we are all very well aware of how much time is left in the semester. Some tasks are bound to be harder than others, and will require more time than others, but this won't be realized until we're actually working on them.
    I also updated the wiki to include some testing tips. I had to force the resolution on my external monitor to a larger one (which I know the 22-inch TV can support), and found some relevant xrandr stuff from googling. i added detailed instructions for my other team members. Using the scale function, we can at least see the entire game on our laptop monitors, even if it's less than ideal clarity.
    I played the game a few times (the right way) and realized the progression of the dungeons. I was worried because the feedback from Jon and our actual experience with the game seemed to indicate that most of the first version's features hadn't yet been implemented in our second one. Jon sent us over to Justin Lewis, who claims to have done most of the code for the second version and would be able to answer our questions. Jon also mentioned that the dungeons are noticeably different when going from one to another, because the scenery/theme changes. Yea, that never happens in the second version and we couldn't play the first version well enough to find out. But I did discover that you actually do progress through the dungeons in the second version, the only indicators being that "the door slams behind you!" and an "INVALID FLAG" error in the console. Sounds great. However, upon arrival in the 3rd dungeon, I really was stuck, and couldn't move through any of the doors. I know where the dungeon room files are located, and now that I can get to that part in the game, I can test to make sure I fix the right line.
    I also found a way to deal excessive damage to the enemies during an attack, so we can progress easily through the game for testing purposes (such as to get to the third dungeon).
    They seem to be in the process of implementing all these old features into the new game, but at a slower pace. They also seem to be willing to take whatever help they can get, and that's what we're here for.

Tuesday, March 29, 2011

POSSCON

   We left for POSSCON bright and early Friday morning. Actually it wasn't even bright yet. We got fancy, scan-able IDs with our information loaded into them. The intro speaker said the day was going to be a lot more laid-back and low-paced than the previous days (which I'd missed).
   The first workshop I went to was the Great OpenOffice.org Challenge, even though nobody submitted Microsoft documents as requested (I'm not a Microsoft user). David Both explained his history in open source and his experiences with OpenOffice(.org). It was all very interesting information but as one guy mentioned, he was "preaching to the choir." Most people attending POSSCON already have an interest in open source so telling us the wonders of this open source office suite wasn't anything new, at least not for me. However, people started discussing open source software's use in business and in churches, and the workshop definitely veered off course from OpenOffice related stuff.
   After the workshop, we were released for a long lunch break before the next workshop. Some classmates who'd attended the 3D printing workshop were telling us about it. Later, as I was wondering through the conference hall, I noticed the 3D printing machine was still running in one of the lecture rooms, so I ventured on down to check it out. The android figure was just finishing up, and the presenters Neil Underwood (from RepRap) and Jim McCracken were getting ready to pack up the machine. I told Neil I'd missed the 3D printing workshop so he started telling me all about the machine in front of us and the other machine he works with, the self-replicating 3D printer, explaining the effects on costs when the printer can print itself. It is a very interesting concept and I think it could easily be taken further into other aspects of technology. Both Jim and Neil pointed out a few things on the machine when I asked about them such as the connections (since the circuit board was mounted in the open). John "maddog" Hall had wandered in to the room too since he was waiting on his little android guy to finish printing.
   Maddog presented the second workshop I attended, on the history of Linux. His first slide asked if Jesus would have attended POSSCON, and he thought yes, he would have been an advocate of open source. His presentation was pretty interesting, especially learning about the transition from open source to closed source and now back to open source, and why things have gone certain ways. I think it's important to understand that history when considering the future of open source software. Near the end of his presentation, he gave some examples of some very young guys who'd entered the computer science world with the help of open source and have been very successful with it; however, I was wondering where the women were? It's almost as if our society steers young girls away from technology, which is going to have very detrimental effects in the technological-oriented future if we keep this up. It would have been nice to ask Maddog about this, but it was hard to approach some presenters when others were swarming them or when they were in the middle of eating during lunch. Either way though, some of these problems are very evident and need to be addressed, which can start with people like us as students.
   Overall I think it was a pretty good conference, I'm just disappointed that I wasn't able to attend the earlier two days (what's up with conferences in the middle of the week anyway?). I most likely won't be able to attend next year either since I won't be in this area, but I think the northeast is going to have even more to offer, so that's something I'll look into.