HomePhabricator
Echo goes open source!
Just quietly

Echo logo

Tim and I have been discussing releasing Echo under an Open Source license for some time (years in fact). The main blockers were lack of documentation, and a number of tasks that we (mostly me) wanted to get done before release. Things like better platform support, a few known minor bugs, better defined interfaces etc.

In the end, the catalyst was actually because of the uptake of Echo at my main day job. Initially it was used as part of a rapid development cycle but has since been established as a core framework for our entire system. We use it for Networking and Graphics mostly, but the Kernel and Task system is used in various places and we've discussed "Taskifying" (or is it "Taskerfying?" things to be more Echo orientated to give us additional execution options.

Despite the lack of documentation in a number of systems, it hasn't really been a problem. Most of Echo's code is self documenting as long as you understand the concepts. Having the source code handy can clarify things for our team. I know it does help having the primary developer on hand too, but for the most part feedback from our core team that uses Echo has been positive. Which I have found to be very humbling.

A little Echo history

Here we go

In my software design class I was learning about ways to write abstracted code. I had mostly come from a C background so being introduced to Object Orientated Design was like handing me the keys to the spaceship. I was off on an adventure and not returning any time soon.

Echo started out as some basic rendering and input abstractions. I was reading various C++ software design books at the same time as I was doing my software design courses at university. Previously I had mainly used C++ in a limited context of objects but not taken advantage of any features such as polymorphism or templating. Combined with my background in home brew Nintendo Game Boy Advance development and Nintendo DS development, I decided to port the rendering and input classes to those platforms.

In the end the GBA and DS versions halted pretty quickly when I realised how much work was involved to maintain significantly different graphics APIs next to DirectX APIs outside of direct buffer rendering, You can still find the DS build scripts in early Echo versions.

As I continued my studies, I added to Echo in my own time. I started experimenting with Nintendo Game Cube home brew development, so ended up with a GameCube and OpenGL version of a simple rendering system. Echo 1 was used in a 2D platformer project at university the following year after the project started and later a further developed version of the engine was used for our major project, Mawashi Madness, which on Best Independent Game at GCAP in 2007.

After uni, significant work was done to upgrade Echo. This became known as Echo 2. Development continued but focused on casual games. Multi Sudoku was released in 2008 on PC.

Echo was used as a framework for Android Remote Keyboard, a keyboard replacement while you were at your desk. Numerous unreleased projects were created and worked on, including a match 3 type game, a side scrolling rocket game (like Donkey Kong Country's Wii rocket game mode) and to name another one a pixel racing game.

During this time I was also levelling up my skills with a day job and further studies. This resulted in a significant design update which we now know to be Echo 3.

Echo 3 is now the backbone of a number of quite important projects. It is far more than the game engine it started out as.

Echo is used as the framework for the software for Subbi, a system designed to assist hearing impaired people have regular conversations. It is also the main communications and rendering framework used at a certain company that I'm not at liberty to talk much about.

Keeping in the games theme, Tim has been using Echo between version 2 and 3 to update one of his puzzle games designed for children. To be honest, I think the lack of release using Echo is largely responsible for the disruption of the port between the two versions. But he has told me there are plans to revive the project and continue!

And now, the release

And here we are now. Echo has been released under the MIT license. The decision to do so was partly to reduce complications of it being used in a number of significant projects without a defined license and partly to try and motivate us to get some documentation complete. It would be great to see contributions from other developers in the future as well.

I never expected that Echo would be involved in so much when the project started, so I am excited to announce that the project is now open source and interested to see what else it will be used for!

Written by 0xseantasker on Apr 3 2019, 10:54 PM.
User
Projects
None
Subscribers
None

Event Timeline