I started off this month with the tedious project ever I accepted to work on. In order to port 21 games to HTML5-based games. In fact the timeline is for totally 2 months, but it took times nearly 1 whole month to set up talking and direction with client. So this mean I started late, and late !
Fortunately I bring in another member to help out as game on web platform is cross, and so cross in nature. It requires to be able to run on iOS, Android, and Desktop. Of course, for iOS you have specifications that don’t diverge that much, everything set up. But for Android, it has several tastes of browsers and fragmentation of device to make developers headache. Desktop is not a problem, it’s full features.
I decided to use cocos2d-html5 (http://cocos2d-x.org/). In fact, it’s a spin-off from cocos2d-x which I experimented a past 2-3 months on my own iPad. I really love this framework as it’s open source, solid community (mostly Chinese, but it’s okay :), cocos2d-based framework for all spin-off from cocos2d-x which means you have a single API on the go with your future porting or game development !
Anyway I must say I love this framework, and pretty excited with its improvement and development. I chose to stick with it for a prolong period of time. Just see how far it can go.
Apart from that, working in environment that you have to integrate your knowledge and work with your only team mate in web domain is an awesome experience. We collaborated via Trello (http://trello.com) which simulates a scrum practices via card switching for a current project in focus. Yes, only this single tool can make your life much easier, and more focus.
Initial stage costs fairly, but on the go after I spent more time with it and be more familiar with its commands, I can manage to reduce time lost to nearly minimum. A huge decision for this project is that I need to spent time designing a working approach for Git’s branches and branching. As I have 21 games to port, and there’re 8 types of game to work on for others that are based on them with my intention to have all the code indexed by Git system for future reference and safe way for programmer to work if the backup code is lost, etc, thus it come out with 3 main line in development which all of them originated from the main point (main branch).
I have main branch (contains shared features that all game types, and specific games must have), game-type branch (contains a logic code for each game type specifically), and specific game (contains a specific game logic code branching out from game-type branch but with different game content. Its code is shared with game-type branch already). Working with this approach for quite decent time now, I found myself spent too much time on updating game and game-type by merging from its parent commit (or branch). If shared features are changed, then you probably need those changes to go all around to all other branches -> That’s a huge work in updating!
Nonetheless I would think it’s the best possible approach I would think of for this period of time. It suitable for medium to large team members to work on and share responsibility in updating all the branch up or down. But with only 2 members (which I intend it to be just like that ;), you may found it not practical for time lost.
All in all, I’m happy with this set up so far, and quite good that I can shared collaborating effort and knowledge with my team mate.
Keep coding, and release often.
Have a nice day.