Some thoughts about code quality

Shocking truth, but significant part of Open Horizon’s code wouldn’t pass my own code review. It’s probably ok for pet-project, because if I will rewrite code every time I want, the project would be in development forever. The reason code isn’t perfect from the start is quite simple.

First of all, I don’t know how the original game worked before some research so I write first implementation, then, when problems occurs, I research again with updated information, making new assumptions. This is a continuous process, but other code is already depends on what I wrote previously so every time such problems appears I can’t just rewrite it all.

On the game mechanics side, I often choose ugly solutions right before the release, because I want it to be done already so I cut corners and struggle with my own architecture. While I’m complaining about architecture, the other aspects of the code quality, like checking ranges and pointers, are mostly fine, because it’s critical to the stability and sanity. Any unnoticed null pointer reduces game’s value to zero.

Open Horizon Mission Editor

editor_screenshot2It’s finished at some point. Of course it’s kinda useless right now, as you can’t see the result in game yet, but I wanted to release it anyway so people can make suggestions. Like, what else is required to remake AC5 missions?

You could find some documentation here. Don’t expect to have undo/redo and copy-paste in this release, it’s complicated.

Open Horizon progress demonstration 5

There are a lot of tasks done in this version, like collisions, hud and special weapons, but the most important is that since this release Open Horizon finally feels like an Ace Combat game. It’s not yet feature complete, but already playable and fun.

This release also featuring experimental multiplayer, but don’t expect much – this is the first row implementation and requires a lot of additional work, so expect lags and report bugs.

There is no more requirement to run Open Horizon from ACAH folder, you can run it from other location and will be asked to specify resources path.

Download: Open Horizon 5th Demo

Resources research

I’ve got some progress on Ace Combat resources research, have added code to unpack resources from base containers of AC4-6, besides Assault Horizon. Actual progress is shown here.  Actually, it’s a low priority task I do when I’m stalled with others, so I’m not sure how soon Open Horizon will actually use resources from previous games.


Sound is a different story. I don’t want to mess with legal problems of CRI’s patented HCA proprietary codec until Open Horizon get any descent community around. Possibly, never. Upd: found an open source implementation under MIT license GARbro so I can port that to C++ and use in Horizon without messing with a suspicious source code from japanese boards.