• entries
2
0
• views
3129

# [Tangling with the game episode 1] Cleaning up the mess, refactoring, completing documents

464 views

[font="arial, verdana, tahoma, sans-serif"] [/font][font="arial, verdana, tahoma, sans-serif"][size="2"][font="arial, verdana, tahoma, sans-serif"][size="2"][font="arial, verdana, tahoma, sans-serif"][size="2"][font="arial, verdana, tahoma, sans-serif"][size="2"][font="arial, verdana, tahoma, sans-serif"][size="2"]I started by gathering every bit of document/email/jabber talk and smoke signal that was related to game concepts and mechanics. This took a while since I have neglected it for about a year so it was all around the place. Some documents were on my mail, some were on my google wave, some on google docs, some in other weird places you do not want to know about. After 4 painful hours I ended having nice 43 pages long document that contains general ideas about every aspect of the game which means that there are no specifics there like "every-ship-detailed-that-will-be-in-the-god-damn-game", instead there are general ideas how ships should be constructed, how for example, combat should look and so on. This is a bit horrifying when I think how big will be this document in final version when all details will be put in there.
[/font]
[/font]After that and a bit of valium I started to do the same with source code. This was a lot easier to collect, everything is either on my backup servers or local git repositories so this took maybe 15 minutes. Problems started later when I started porting stuff from old framework to current one (it evolved over time, take that creationists!). It did work but it was unclean, full of hacks and messy. With nothing better to do, I started working on it which resulted in some re-factoring, cleaning and bug-stomping. Which resulted in about 12 commits for just damn bug-fixes (granted that those were small, but catching this nasty pests took time) and 4 big uns (refactoring).
[/font]
[/font]I had most fun when I took at look at old test suit wrote for the client. It was one big mess, to the point that test functions were launching in random order and it was unable to control. I decided to not bother to fix it and simply rewrote it from scratch + import payloads from earlier versions. It's simple and it works.[/font]
def exec_tests(self, test_list):[/font] '''[/font] Test runner functions. @param test_list:[/font] '''[/font] run_lst = [] for func_name, func in test_list.items(): if func_name != 'self': run_lst.append((func_name, func)) run_lst.sort() t = 0 speed_factor = 0.2 for t, func in enumerate(run_lst, 1): reactor.callLater(t * speed_factor, func[1]) self.test_mode = False reactor.callLater(t + 1, self.listen)

I've also came to a decision how to progress with my project. Decided to go with many small milestones approach with focus on "develop one thing - test it hard and then expand it". This should keep me motivated as I will see constant progress and at the same time, with constant testing, I won't be left with some annoying bug lurking to pop out later.
Hopefully.

There are no comments to display.

## Create an account

Register a new account