Hey guys, long time, no see, right? While snowdrop has been busy giving the site a facelift (The new look is sexy, btw!), I’ve been hibernating. For those of you who don’t know, I’m aspidites, lead (and currently sole) developer of ViCE, which aims to be a desktop framework that enables its user to play (or even create) their favorite (or own) TCGs. Until recently, I’ve just been too busy or unmotivated to code anything, let along ViCE, so not much was done, but now I’m back.
Back to Python
Go ahead, say it: “I told you so”. I might blog about this in more detail in the future, but it basically comes down to two things:
- Productivity: I am far more productive in Python than I am in C++. Aside from the difference in verbosity, my brain “thinks Python” than it does C++.
- Premature Optimization: Sure, C++ is faster than Python, but until ViCE proves to be slow, I don’t think it matters, especially considering the existence of PyPy and Cython.
Not Back to Square One
Go ahead, say that, too: “Crap, back to square one? He’ll never release this thing!”.
While the latter part of that statement might be true, the former is not. Before restructuring the project, the database layer and plugin framework were complete, with networking being prototyped. I never got a plugin framework that I liked completed in the C++ version (required yet an additional language to be learned, or was based on dynamic runtime libraries written in C++), and Doxygen was a nightmare to document with compared to Sphinx. I’ve refactored a lot of the python code and now have plugins and the database backend working again.
Back to the Future
Go ahead, ask it: “So what is the status of this thing? Is there a roadmap?”
Not as such, but I did take the time to diagram the ViCE framework stack, which should give a good indication of where things are, and to what degree things are usable (depending on your role as user):
The boxes on the right indicate different user levels:
- Player: These are the users that only want to play a particular card game or host a game server.
- Designer: These are the users that help develop the game Rule plugins. They are the ones responsible for inventing new TCGs or porting existing ones to ViCE
- Developer: These are the users who are responsible for making sure that designers and players can do what they want.
Keep in mind that an individual may easily occupy more than one role. I, for example, am not only (obviously) a developer, but a designer and player as well.
The level of opacity of any given box on the left indicates the approximate degree of completion of the feature. As you can see, the plugin framework is mostly complete, as well as the Item and Action plugin types. The only thing left to do, in fact, is write regression tests and documentation for them.
Boxes with a dashed line around them indicate optional and/or tentative features: features that are not required to have a functioning ViCE.
Back to Work
Visualizing the framework (and subsequently my progress in developing it) has helped me to prioritize tasks somewhat. Over the next week or so, I’ll be writing documentation and tests for the existing code. After that, I’ll declare those features complete. From that point, I can start to work on “fun” features, like networking and the user interface.
I’ll update this post once I finish the tentative roadmap. Check out the milestone page to get an idea of the progress