I recently got the book Eclipse Distilled to help me learn some basic information about Eclipse, even though I’ve been using it for a while. I’m up to Chapter 4 and have already learned a few things I didn’t know. The book also has some nice suggestions about coding.
One suggestion the book made, which I liked alot, was seperating out the pieces of your project into seperate Eclipse projects to help enforce decoupling. So I should take all the data classes from my RPGAM project and make it a seperate project. That way I could also work on SWT and RCP versions at the same time and not polute the data classes or worry about duplication. Ideally, my data classes shouldn’t change wether I’m using SWT, RCP or even Swing to render my application. I could do the same with the Audio Engine piece of the project and avoid duplication there as well.
The only real downside there is that each project would need to have it’s own CVS project, meaning at least 4 seperate projects (SWT app, RCP app, data classes, audio engine) and right now I’m using the free version of CSVDude which only allows for one project. I suppose I could switch to just using a local CVS.
It also suggests using multiple workspaces, something I had never considered doing before. With seperate workspaces, I can keep my RPGAM projects in their own workspace and have a seperate workspace for following the examples in the various Eclipse books I have.
I made some changes to the site yesterday. I moved from Movable Type to WordPress which should make updates and thottling spam comments easier. It also allowed me to use a snazzy theme for the look of the site. I also set up a gallery in my Flickr account for development screenshots of the app.
Let me know what you think!
I’ve uploaded a new “dev” version of RPG Audio Mixer which you can get from the downloads page. This fixes a few bugs, adds a few features and gets me back in the development process. You still need QuickTime to run the development version. Also, Adventures are now saved in XML, instead of serialized Java objects, by using the XStream library.
Also, since I love his work so much and have purchased everything he’s released so far, I’ll mention that DirectSong has released the Guild Wars Factions soundtrack by Jeremy Soule. It’s got an Asian theme to it, so it would be perfect for any Oriental Adventures or Legend of the Five Rings campaign you’re running, as well as even a Serenity / Firefly campaign.
In order to get things moving again I’ve decide to postpone re-creating RPG Audio Mixer using Eclipse’s Rich Client Platform. It’s going to take some time to get that under my belt and I don’t want progress on RPGAM to halt completely because of it. So my new goal is to get the current version in decent working order, including the following:
- Better Save Format (XML)
- I just implemented XStream, which easily let’s me save my data as XML. Previously I was just saving objects out to files, which was pretty easy, but would break old files when I made any changes to the data class. XStream should help prevent this, or at least provide some sort of upgrade path (like search and replace on the XML file)
- Easier Distribution
- I want to automate the Java Web Start packaging and distribution process using Eclipse. Every time I go create another release, I’m slowed down by having to remember and re-learn how to sign my JARs and make everything work correctly.
- Externalize Time Data
- Current the length of a song is stored along with the adventure. The bad part of this is that when a song’s duration is updated, you need to re-save the adventure or else you’ll lose that info. If I automated that save then it might end up saving changes you didn’t necessarily want.
- Audio Engine Selection
- I want to add an easy way to choose which audio engine you want to use (currently just JMF and QuickTime) and make that work seamlessly. I might also look into creating an additional audio engine based on something doesn’t need to be download seperately because of licensing issues (meaning JMF and QuickTime). It definitely needs to support the MP3 format.
- Bug Fixes
- Fixing up any general bugs out there for a nice, clean, working application.
Some of the unfortunate things I’ve decided to do:
- Dropping Mac Support
- Between the odd SWT layout problems, not always having my Mac plugged in, lack of external interest and general cross-platform support issues, I’ve decide to hold on trying to get RPGAM working on both Mac and Windows. My priority is Windows for now.
- Dropping Environments
- I’m holding off on implementing the concept of Environments. The idea needs to be fleshed out more, I need more experience under my belt and there’s plenty to do as it is.