Overgrowth Console gets an Upgrade
Add comment!March 21st, 2009
This week, I replaced the old console in Overgrowth with a new one I am pretty happy with.
If you are a web developer you probably immediately recognize this console as the WebKit inspector console, which is used in WebKit based browsers like Safari and Chrome.
The WebKit console is probably my favorite of all the Javascript consoles (compared to Opera's and the Firefox add-on Firebug). That is somewhat debatable, however, I am pretty sure it sets a new standard for video game consoles which often do not even support copy-paste.
Here are a few features that this console supports:
Autocomplete
As you type commands, the console will try to guess what you are trying to write and autocomplete it for you. It shows its suggestion in gray, and you can press tab or the right arrow key to complete it. You can press tab multiple times to iterate through suggestions, or just ignore it if you like.
Scrollback history
The console remembers everything you type, so you can press up and down to scroll back through its history.
Rich introspection
The console is aware of a number of datatypes, so it can effectively display functions, objects, nodes, or regular expressions, for instance. It is very convenient to be able to look at a Javascript object and browse through it within the console.
Multiline support
By holding option (or alt) you can enter a multi-line command.
However, my favorite aspect of this console is that it is written 100% in Javascript and HTML, like all UI elements in Overgrowth. The recursiveness and metaness of that fact has always struck me as insanely awesome. This makes it very easy to modify and hack. Because of this, it is inherently open source, so anyone can easily make changes and make the console more powerful. We will certainly be submitting our changes back to the WebKit project.
So what does this mean for Overgrowth? Why do we need a fancy console in the first place?
Well, we have big plans for the modability of OG. This console lets anyone easily write their own functions for the game in Javascript, which is executed through Google's V8 Javascript engine (read: very quickly). We are going to make an effort to expose as much of the engine as possible. Right now, there a small handful of functions that are available, for instance, Camera.setFOV, or Camera.move.
We are "eating our own dogfood" so we are going to write the entire campaign of Overgrowth using the same map editor that you guys have access to, scripting it using a Javascript API, and all UI will be open powered by WebKit. We are really excited to see what mods you guys come up with in this enviroment.
What kind of features would you like to see in the console?