Seeing that midterms evaluations lay so near things have started to get exciting again! This week saw the transition from private alpha testing to actual player testing, a good deal of C++ reading, and the start of planning for the second half of the term. I have to say my spirits were starting to wane, alpha testing was getting very dull and dreary. I wasn’t quite sure if I was testing wrong, if the stage of testing was nearing an end, or if I was just running out of ideas.
A brief letter to Tyler (my mentor - have to say it :P) and a break to finish reading the last 2/3rds of Effective C++ revitalized my spirits while I awaited Tyler’s reply. Tyler informed me I was most likely ready to start having other players test the game and my feelings weren’t unusual. Soon after I recruited my wife to help me playtest. Once I got Jackie (my wife) rolling, and introduced to Thousand Parsec in general, things started going really well. Playing with someone else almost instantly illuminated quite a few more glaring bugs and errors I didn’t notice before. The two games we played helped me fix up some message formatting, improve the accuracy of Attack moves (particularly conquering planets,) gain more information on my “view” bugs and finally, revealed a SUPER BUG I’m calling “Phantom Ownership.” Jackie also helped me to notice parts of my documentation that could be less ambiguous, and other areas that need work. She also noted the disappointing lack a connectivity map, something I need to work on next half-term.
As for how I’m actually FEELING about GSoC this week… better, much better. Testing was/is pretty hard; I found myself getting bored of playing Risk and running out of things to test for (as well as becoming “blind” to errors I should have noticed.) My time spent reading Effective C++ was excellent, and I’d like to continue reading bits and pieces of various C++/programming books as I keep working on my project. The benefit have been noticeable, and I should be able to improve my coding in the rest of GSoC, as well as fixing/revising older code. I’m excited that next week marks the start of mid-term evaluations; I feel as if I underestimated myself when I initially scoped out my project. As a result I’m a bit ahead of schedule: I have a fairly stable game, needing only a few more features to be complete. The focus of the second half of my term will be on XML map import, increased clarity in the visual presentation, and improving documentation.
Now for the week:
Monday:
-
Read the middle ~1/3 of Effective C++. Monday was a shorter day due to a family visit.
-
A bit of testing. No new bugs discovered, documented more on “view” bugs in bugs.txt. commit.
Tuesday:
-
Family visit + Canada day.
Wednesday:
-
Finished Effective C++. Otherwise a very slow day (spoke with Tyler about testing, post.)
Thursday:
-
Did a lot of research and thinking about XML and Map import. See post.
Friday:
- Did play testing with wife:
-
Fixed bug where player created extra units when conquering a planet. commit.
-
Fixed formatting issue for origin player on Move order. commit.
-
Fixed logical error where player could receive better odds by attacking as a “last stand”. commit.
-
Added more info on Bug. 1 - “View” bug -> Will be putting together Mailing list post to ask for help.
-
Discovered “Phantom Ownership”: A player retains the ability to issue orders on a planet after it has been captured. Also asking for help with this on the ML.
Next Week:
Seeing as next week marks the beginning of midterm evaluations it seems appropriate to start work on XML map importing. After an excellent comment from Boris Kolpackov I have good insight into what parser I will be using, and as such can develop an XML Schema for the map specifications and evaluate the suitability of CodeSynthesis’ XSD. I will also continue testing with my wife, and anyone who cares to give me their time to playtest with! In addition I will enhance Getting_Started documentation to be more clear and unambiguous.
Mithro | 05-Jul-08 at 11:59 pm | Permalink
It is pretty normally to hate testing! I myself find it boring and very hard to do. You might want to look into things like unit tests which are “write once, run all the time”, but with tpserver-cpp not already having a good framework it might be hard to do. It is great to see that you are playing it with other people, I definitely want to have a game against you! I’m working on trying to solve the “no line display” but there are multiple things which need to be done first.
I still think an AI is a good thing to try an attempt (even if it is quite stupid). It will make it much easier for players to actually get into the game as they will have someone to play against when they are still starting out. I think you could probably throw together one in a week using something like tpsai-py as a basis (or maybe you could collaborate with one of the other students to use their work - which would be *really cool*).
Another thing, I think you should use an already existing XML format, weather is be Inkscape SVG, GraphViz or something else. Tools already exist for graphically displaying and editing these formats so that it will be much easier for people to create new maps. A “randomise” option for maps might be fun too. I would recommend something like TinyXML++ for XML parsing. It is small, lightweight and very easy to use (TinyXML++ looks more like standard C++ then standard TinyXML).
It would be very cool if you could do a screencast of “How to play Risk”. It would be a good way to showcase both tpclient-pywx and the risk ruleset. If you are feeling adventurous, you could even try it with the 3d client that jmtan is working on.
Keep up the good work!
Mithro | 06-Jul-08 at 12:11 am | Permalink
Another thing you might want to look into is adding “BattleXML” support. This allows you to describe to a player exactly how the battle went and have some cool animated output too.
The document on the format is pretty sparse and it is really only supported by the Python server at the moment, but it would be a cool thing to do. Your combat is fairly simple so would be well suited to the current format.
Check out the documentation in the “battleviewer” repository.
Mithro | 06-Jul-08 at 12:39 am | Permalink
PS You are also likely to find more people to play against if you are on IRC more often