Monthly Archives: August 2012

Wrapping up v0.1

I haven’t posted in awhile as I’ve been pretty busy this last weekend getting my girlfriend moved in and with the release of Guild Wars 2, but I have done a few updates on our code and we’re getting close to getting v0.1 ready. You can see here that there are only a few issues left. Map readability may not make it into this release unless someone finds a quick, awesome way of going about it, but as of now, I don’t think it’s work throwing too much time into as it is “working” already. This release will definitely feature all functionality in place. There won’t be an option that doesn’t work or an operating system unsupported. The features may not be as polished as I and others would like, but there will always be room for advancement.

After this release, I’m going to be changing the Downloads page to include the following for each release (if applicable):

  • Executable (Windows Only)
  • Source Zipball
  • Changelist Post
  • Contributors: <List of Contributors>

I found that I could actually choose any commit from the repository’s history and download the Zipball at that moment in time. This should allow me to link to the specific releases instead of overriding each time when the “master” get branch will be updated with a new release or patch. Anyway, I’m going to be at PAX this weekend, so unless something amazing happens code-wise, the release should be out early next week.

Tagged , ,

Getting Started With Git

I’ve chosen to use git as my version control system (VCS) for The First Fantasy that is currently hosted on github. Git is a more complicated VCS than some others such as Subversion, but it provides a few features that is only possible with a fully distributed workflow. Simply, git allows each developer to have their own private copy of a remote shared repository that can be modified and changed without effecting anyone else’s work until the developer decides to push their local changes (called commits) into the remote repository.

Git has a full range of powerful console commands, but if you’re looking for the convenience and visual ques of a GUI, there’s a number of options out there. I currently use EGit, a git package for Eclipse that integrates itself into the tool. The official git site features a number of GUI clients. I highly recommended using GitHub as it integrates well to their project hosting site, SmartGit, or the built-in GUI (gitk and git-gui) that comes with git. For those wanting to bust out your command prompt skills with git, this is a nice guide that will get you started.

To make a clone of my project and get started, all you need to do is give the following command:

git clone git://

If you have any good experiences with a particular way of using git, fill us in!

Tagged , ,

How to Contribute

For those completely unfamiliar with version control systems (VCS), I’ll make a post in the future that should be able to get you started to at least navigate your way around an recognize certain aspects.

The First Fantasy project is hosted on github, a popular “social” open-source project hosting site that uses git as its form of VCS. Github provides a number of obvious benefits to project managers and contributors alike and attempts to make the whole contribution idea as painless as possible. I would highly recommend checking out some of their basic guides to get a feel for things and then go ahead and fork The First Fantasy repository to play around with it. Don’t worry! There’s no possible way to cause any harm to the original repository without being an assigned contributor of that project (by me). You can still make pull requests that will let me and the contributors know you have made an addition or change that needs review to be implemented into the project.

I’ve made a wiki page on the project’s page that describes the intended workflow. After spending this latest release getting used to the workings of git and github, the wiki page should give a good idea of what the overall “process” will look like. Think of it as a guide to how we can make the most of contributions without stepping on people’s toes. By following this, we should be able to produce meaningful results that are easily tracked and implemented.

If you don’t want to get involved with github just yet, you can always download a source zipball to mess around with a copy of the repository. If you have any questions or comments, please let me know! I’d be happy to help in anyway I can.

Tagged , ,

Release – v0.09


While not radically different visually, I, and a couple contributors (Onionnion and Horst), made some big changes to documentation and making sure we adhere to PEP 8 styling standards. Another major addition would be the support for multi-platforms. Linux should now be able to save/load games and pause/clear the screen. Game wise, I’ve put in some unique items for you guys to find! There’s one for each type of equipment! If you manage to find all at once and equip them, send me a screenshot and I’ll make another unique based on your input! Give this release a run through. v0.1 is going to need to be super stable with all basic functionality (shops/markets!) implemented so send any bugs or suggestions my way or submit an issue on github. Thank you everyone for your support!


  • Full adjustment to PEP 8 code style.
  • Added unique equipment.
  • Non-Windows operating system support (Linux confirmed).
  • Updated README.txt to be a little clearer.

Known Issues

  • No change to existing issues. See github in the future.


Windows Only Executable: 0.09


Tagged , ,

Patch – v0.08b

Another quick patch to fix saving/loading for Linux users. Once we fix these and it looks stable, I’ll bring everything in for v0.09.

Source Zipball: v0.08b-zipball

Tagged , ,

Patch – v0.08a

Put together a quick patch for our Unix friends who were having some issues with Windows dependent system commands. If you have future issues you think are OS related, please let me know and include your Python version as well. Thanks to those who submitted your feedback!

Windows Executable: v0.08a

Source Zipball: v0.08a-zipball

Tagged , ,

Suggestions and Ideas for v0.09

The next release, v0.09, is definitely looking to be a lot of cleanup work, but there will be some additions in store. If you’ve already checked out the source, you may have noticed that unique items (known as rare items for now) are getting implemented. Thanks to Onionnion, the code is also now a lot closer to PEP-8 code style standards than before.

Suggestions big and small are certainly welcome. Got an idea for a cool weapon/armor/consumable? Name for a zone? Maybe some tweaks to the UI? Comment here or submit an issue on github! Bigger features can certainly be requested, but they may not be ready for v0.09. Something like buffs/debuffs may have to wait a little while.

Tagged , ,

Inside Look – Eclipse IDE and PyDev

For my IDE of choice when working with my project, I use Eclipse. I was introduced to Eclipse a couple years after I had made the first iteration of The First Fantasy. Now instead of Java, I use it for Python development. To do this, I use PyDev. There’s a ton of features, including the ones you would expect from a proper IDE like code completion, syntax highlighting, code coverage, and a debugger. It feels natural and provides me really everything I need as a Python newbie. In fact, it’s probably got more features than I’d ever use in my lifetime.

Eclipse has literally hundreds of additional software projects that can be installed to enhance productivity. PyDev is just one of these. Another tool that I use is EGit, a git plug-in to allows me to perform version control operations from within the IDE. I’ll go into EGit more in a later, as it can be pretty complex compared to other VCS solutions and deserves its own post.

What IDE do you use? I hear all sorts of methods that people use to work on their code and a surprising number of them use basic text editors such as VIM or Sublime to write code. I couldn’t submit myself to that kind of torture for larger projects, but I’d imagine it would feel good to make something from complete scratch with little assistance.

Tagged , , ,

Source Code Available

After a few requests and me finally succumbing to the beauty of open software, I’ve made a repository on github to host my project and for anyone to view and possibly contribute. You can access that repository here:

Transitioning over to git was more complicated than I would have liked, but I can definitely see the advantages of using it over subversion although I will miss its simplicity. Anyway, this will mean a few changes to links on this site and how Downloads will work. I’ll be hosting the distributable versions of The First Fantasy in the downloads section on github, but linking to those from my blog. As the link to the source is always the same, it will have it’s own section in the Downloads page.

I’m hosting the project to the public to share, learn, and help others that are open-source project newbies get on their feet. There’s still a lot of documentation that I’d like to do so viewers/contributors can better understand my thinking, and you can expect additional commenting to be a priority right now. If you have any questions, please feel free to send them over to me. I might even make a post to explain a process I use.

Tagged , , ,

Inside Look – py2exe

Early on in development, I immediately recognized the need for The First Fantasy to be easy distributed and ran without handing over a load of source files and asking the user to build them and also have the Python interpreter on their machine. This is where py2exe came in for me.

py2exe is a Python Distutils extension which converts Python scripts into executable Windows programs, able to run without requiring a Python installation.

The output from using the utility is what I zip and make available in the Downloads page. Nifty huh? All that’s needed is to create a simple file in your working source directory with the following:

from distutils.core import setup
import py2exe


Then, through a batch file or command line, execute both of the commands:

python install
python py2exe

Py2exe will create a build and dist directory. The build directory can be discarded, but the dist directory contains everything needed (besides possibly a couple .dlls that the user should have) to run the program. Numerous options exist that allow you to modify the output such as renaming the executable, choosing where to place the dist directory, and several optimization options.

Tagged ,
%d bloggers like this: