One always has exaggerated ideas about what one doesn’t know.
– Albert Camus
Hello. I’m Michael Kapelko, Opensource Game Studio team programmer.
This is an annual article describing our successes and failures this year.
2014 marked our lowest public activity ever: we have posted only once until now. We were caught into many unforeseen changes, “had nothing serious to show off”, and kept on working until another year has just passed by.
As you know, we expected to achieve the following this year:
- Completion of:
- Deferred shading pipeline
- Dictionary state API
- First playable versions of:
- Mahjong 2
We have successfully completed work on Actions to the state of our needs. This includes shaking a held object while it’s being moved, crane lamps’ blinking in the test chamber.
We have successfully completed work on Deferred shading pipeline. Here’s a list of screenshots and videos of the progress:
- Columns and floor of a test chamber
- Test chamber without colors
- Test chamber with colors
- Test chamber with flickering shadows
- Test chamber with correct soft shadows
We have also successfully completed several unexpected issues.
State API (formerly “dictionary state API”) gave birth to the concept of Component and Extensions. Its idea is to have a Component which can do very little or almost nothing at all, and add functionality to it with the help of Extensions. The approach proved to be extremely useful in mitigating the consequences of ever growing code base due to strict functionality separation among Extensions. Also, dynamic nature of State API allowed us to add functionality without breaking ABI (critical requirement for libraries).
The need to manage our ever growing functionality resulted in the emergence of OGS Editor. Here’s a list of videos of the progress:
- Camera tracker built into an effects’ test application
- CEGUI enabled UI for Camera tracker, OGS Editor 0.1.0
- (Interrupted) OGS Editor 0.2.0 with Camera tracker refactored as CutScene plugin
- OGS Editor 0.3.0 with CutScene and Scene plugins
Unfortunately, we haven’t touched Mahjong 2 and Shuan at all, because we have not foreseen the emergence of many issues like Components and Extensions, OGS Editor, etc..
Last year I claimed we would transition our workflow from logging to planning, but these were only my expectations. They failed, as is with all expectations that are not planned.
The approach of unplanned expectations ended in November.
During 3 days I (along with several of fellow co-workers at my fulltime job) have been taught the basics of project management (teaching has been conducted by TechnoConsult-Management). The provided information was invaluable.
Shortly after that I stopped the work I’ve been doing on Editor 0.2.0: implementation of scene editing. I’ve created a detailed plan for achieving scene editing in Editor. All work has been planned in advance and confirmed by our team. No additional, i.e. unforeseen/unplanned work was allowed except for critical issues like fixing crashes.
The result was astounding. I finished all the planned work (and released Editor 0.3.0) before the time ran out.
I must note the plan was not perfect. Some issues were vaguely described, and the result turned out to be as vague. I had to cut some corners and introduce temporary solutions to such issues. After finishing the planned work, it became clear what I missed last time. Those vague issues have been clarified and made their way into the next Editor iteration which, again, have been strictly described and confirmed by the team.
Currently we are working on creating detailed plans for the next 3-4 months. Starting January 2015, we will be posting plans, their estimated (not expected!) completion dates and results regularly.