Day 12: 45 commits and 48 hours logged so far.
Well, the game engine is completed and it now have a name: KRPGE(Kiba Role Playing Game Engine).
The only thing left is actually preparing it for release. I have to get rbgooey out the door first since rbgooey was updated for use on the engine.
After that, I will be working on preparing the game engine framework so people can actually use it. It will have blanks placeholder files so people can add their code to it.
Once I am done with releasing the framework, I will be working on the map editor again.
I hope to finish it all before RubyWeekend #2. If not, at least I have some advantage over my peers in term of how much I have to do.(assuming at least I get the engine out)
18 more days to go before I complete my training. :)
Showing posts with label copypirate. Show all posts
Showing posts with label copypirate. Show all posts
Sunday, July 20, 2008
Saturday, July 19, 2008
Day 11: Nearing Completion
I like self-mandated work hours. It make things goes WHOOOOOSH!
And it did for me today. Day 11 with 50 commits, marking 44 hours total of development logged. 19 more days to go
Well, my prediction that I won't finish the engine this week, barely. Unless you count Sunday as the end of the week, in that case, I will finish the engine.
Progress so far:
I finished pretty much everything except updating the file format and the player related features. The Player class isn't fully integrated into CharacterTracker class yet. The code, for the most part are there to support the full integration. It is just that there are special assumptions that are made about the Player class that shouldn't be there.
The CharactersTracker class also got some addition to help make life for users of the engine easier. For example, it can display the name of every characters on that map and return that list. The Character class also got an addition, the name attribute. This will make identifying the different characters on the map easier.
Plan:
Tommorow, I will probably be finished. I hope tommorow will be the release day of the game engine. If not, than it will be Monday. Then, I will start work on the vim inspired map editing tool.
And it did for me today. Day 11 with 50 commits, marking 44 hours total of development logged. 19 more days to go
Well, my prediction that I won't finish the engine this week, barely. Unless you count Sunday as the end of the week, in that case, I will finish the engine.
Progress so far:
I finished pretty much everything except updating the file format and the player related features. The Player class isn't fully integrated into CharacterTracker class yet. The code, for the most part are there to support the full integration. It is just that there are special assumptions that are made about the Player class that shouldn't be there.
The CharactersTracker class also got some addition to help make life for users of the engine easier. For example, it can display the name of every characters on that map and return that list. The Character class also got an addition, the name attribute. This will make identifying the different characters on the map easier.
Plan:
Tommorow, I will probably be finished. I hope tommorow will be the release day of the game engine. If not, than it will be Monday. Then, I will start work on the vim inspired map editing tool.
Labels:
copypirate,
experiment,
game development,
game engine,
log,
productivity,
programming,
ruby,
video games
Thursday, July 17, 2008
Day 9: A Codebase in Chaos
For Day 9, I am continuing my effort to finish the RPG engine. This time, however, the codebase is thrown into chaos.
Several new classes has been created all over the place, as well placeholder code until classes are complete. We also have some bugfixes so that the game can work properly again.
One of the newfanged class is the CharactersTracker class, which track all the players, npcs, and mobs. The class will cannibalize the EnemyTracker class in favor of a more generic version. Along with the cannibalization, it will be possible to "plug" in different kind of characters.
Another happening is the cleanup of MapLaw and GameLaw classes. Documentation are added as well the cleanup of magic variables. It is also planned that the maplaw and gamelaw class will move out of mapengine class and into the game engine class.
We will also have to address the camera's following issue, as the code will have to be refactored to take into account the CharacterTracker class.
That's a lot of work right there. I think this is it...I hope.
21 more days to go until I complete this productivity training.
Several new classes has been created all over the place, as well placeholder code until classes are complete. We also have some bugfixes so that the game can work properly again.
One of the newfanged class is the CharactersTracker class, which track all the players, npcs, and mobs. The class will cannibalize the EnemyTracker class in favor of a more generic version. Along with the cannibalization, it will be possible to "plug" in different kind of characters.
Another happening is the cleanup of MapLaw and GameLaw classes. Documentation are added as well the cleanup of magic variables. It is also planned that the maplaw and gamelaw class will move out of mapengine class and into the game engine class.
We will also have to address the camera's following issue, as the code will have to be refactored to take into account the CharacterTracker class.
That's a lot of work right there. I think this is it...I hope.
21 more days to go until I complete this productivity training.
Labels:
copypirate,
experiment,
mapengine,
productivity,
ruby,
rubygame
Wednesday, July 16, 2008
Day 8: The Last of the Cleanup?
For Day 8 of my productivity experiment, I decided to focus on map engine cleanup so I can have something to release by the end of this week.
Day 8 yield two important changes in the codebase.
First, the map engine class is further spilt into two new classes. In this case, the game engine class is managing the map engine class. The changes happen because there were classes that does not have anything directly to do with our map engine code. Since this was not intended to be merely a generic map engine, it was to be an RPG type, so I decided to expand the scope of the engine code. I will be expecting a few new classes and movement of code away from the map engine code as a result of this deciesion. Hopefully, it isn't something I'll regret.
Secondly, further changes were made to de-hardcode the enigne. The MapLaw class is now spilt into two classes. One is the generic MapLaw class, managing common functionality relating to the maps, while another is the GameLaw class, which defines custom triggers and events on the map and other objects. The GameLaw class inherit all the MapLaw functionality and is required by the map engine to function. I still do not know of other way to de-hardcoded it. It is also possible that further redesign and classes spilt will happen before we got the API down.
All of this changes, of course, doesn't in any way impact The CopyPirates' gameplay or multimedia capability. However, the map engine should serve as a strong foundation for the game once we're finished.
It seem that I am on the verge of finishing the engine codebase so it should be released soon. However, look can be deceving and it may take a bit longer than expected. I hope to not be disappointed by the end of this release.
Day 8 yield two important changes in the codebase.
First, the map engine class is further spilt into two new classes. In this case, the game engine class is managing the map engine class. The changes happen because there were classes that does not have anything directly to do with our map engine code. Since this was not intended to be merely a generic map engine, it was to be an RPG type, so I decided to expand the scope of the engine code. I will be expecting a few new classes and movement of code away from the map engine code as a result of this deciesion. Hopefully, it isn't something I'll regret.
Secondly, further changes were made to de-hardcode the enigne. The MapLaw class is now spilt into two classes. One is the generic MapLaw class, managing common functionality relating to the maps, while another is the GameLaw class, which defines custom triggers and events on the map and other objects. The GameLaw class inherit all the MapLaw functionality and is required by the map engine to function. I still do not know of other way to de-hardcoded it. It is also possible that further redesign and classes spilt will happen before we got the API down.
All of this changes, of course, doesn't in any way impact The CopyPirates' gameplay or multimedia capability. However, the map engine should serve as a strong foundation for the game once we're finished.
It seem that I am on the verge of finishing the engine codebase so it should be released soon. However, look can be deceving and it may take a bit longer than expected. I hope to not be disappointed by the end of this release.
Labels:
copypirate,
engine,
experiment,
game development,
log,
productivity,
ruby,
rubygame
Tuesday, July 15, 2008
Day 7: Slowly but Surely

Day 7 marks another day in the development of the map editor. I am still stuck in the mapeditor's file menu system. The good news is that I am on the verge of moving toward the editing system.
I created three distinct UI element. These are typepad, the logger, and the file scroller. I also used the modal system instead of the regular toolbars. The logger element lists event that has tooken place such as loading files. The scroller is responsible for displaying files. The typepad is for typing. So far, the scroller is the only complete element. Logger's functionality is almost complete. It only lack deleting old messages thus any more messages over 5 will overflow the screen. Typepad is functional for typing but the event triggers are not programmed in yet.
The mapeditor, by design, is modal(just like vim). For example, if you want to type, you have to press tab.(and disable all keyboard functionality except typing) To finish typing, you also have to press tab. When you're finished, all the other keyboard functionality become available.
Labels:
copypirate,
experiment,
game development,
mapeditor,
productivity,
ruby
Monday, July 14, 2008
Day 6: Inching toward a Map Editor
For today, I done some work on the map editor's file menu system and the map engine code. In particular, I finished work on displaying the content directory and showing new files via pseudo scrolling. It was tricky, as it require a bit of thought to implement it.
Map engine code is relatively easy, as it is merely a cleanup job. I was dissatisfied by the ugliness of some code so I refactored them. Eventually, it lead to a code reduction as the codebase got ridden of outdated attributes and unnecessary long code. There is still the MapLaw class to go through though.
As for the productivity experiment, I got 24 days more to go.
Map engine code is relatively easy, as it is merely a cleanup job. I was dissatisfied by the ugliness of some code so I refactored them. Eventually, it lead to a code reduction as the codebase got ridden of outdated attributes and unnecessary long code. There is still the MapLaw class to go through though.
As for the productivity experiment, I got 24 days more to go.
Labels:
copypirate,
experiment,
game development,
mapengine,
productivity,
ruby
Friday, July 11, 2008
Day 3: Coding Roadblocks
I finished the third day of my 4 hours for 30 days productivity experiment. 27 more days to go. That's the good news.
The bad news is, I am encountering coding roadblocks for pretty much everything I tried to work on.
First, it was the rake task for generating files. I tried to write rake tasks that accept argument but I got weird bug before I was able to finished it.
Then I spent three hours trying to figure out how to use hashes loaded from yaml file.
These 4 hours are not very productive. However, the important thing is that I am learning discipline. The roadblocks are only temporary. The long term gain will pay off big. I just need to keep doing this experiment all the way to the end.
The bad news is, I am encountering coding roadblocks for pretty much everything I tried to work on.
First, it was the rake task for generating files. I tried to write rake tasks that accept argument but I got weird bug before I was able to finished it.
Then I spent three hours trying to figure out how to use hashes loaded from yaml file.
These 4 hours are not very productive. However, the important thing is that I am learning discipline. The roadblocks are only temporary. The long term gain will pay off big. I just need to keep doing this experiment all the way to the end.
Subscribe to:
Posts (Atom)