I have done a major re-architecture of lib-gwt-svg-edu, my educational game project. You can see the results here.
The project had become too big to fit under the umbrella of a single maven project: it was slow to compile, the various games where tied to one another, and adding more games seemed problematic. So I bit the bullet and decided to re-architecture it. I split it into several independent project:
- lib-gwt-svg-edu-commons
- This is a library to group miscellaneous classes which are reused in the games.
- lib-gwt-svg-edu-dots, lib-gwt-svg-edu-puzzle, lib-gwt-svg-edu-push, lib-gwt-svg-edu-maze
- These are the game projects per se. They can be run independently or as deferred GWT modules integrated under a root portal GWT application
- lib-gwt-svg-edu
- A desktop oriented portal application
Here are the benefits of the new architecture:
- It is much easier to add more games
- You can work on just your game and focus on it without being bothered by the rest of the project. Notably this has enabled me to do some work on lib-gwt-svg-edu-maze and it now works beautifully on Chrome 7 too ! I hope I can port the other games soon, or at least file more Webkit bugs as I get better understanding of why they do not yet work on Webkit based browsers.
- There is a potential to reuse the games in more environments. I plan to make plasmoid and Opera widget version of the games. I also would like to develop a new menu to target mobile devices.
Leave a Reply