Friday, 18 May 2018

DevGAMM Kyiv 2018

At the beginning of February I travelled to Kyiv to speak again at DevGAMM.
As usual it was an amazing, fun and friendly event. I'm really, really grateful I was invited there again. This time I talked about the early days - the prototyping phase of development of Horizon Zero Dawn.

4C St. Petersburg

Between 22th and 23rd of September I had the privilege of speaking at 4C conference in St. Petersurg.
Apart from seeing this beautiful city I met wonderful Russian devs and people from who organized the conference. I talked about the Evolution of the Decima Engine from Killzone to Horizon Zero Dawn.

Thursday, 27 July 2017


Earlier this year I started a synthwave/trance/digital hardcore musical project called VirtuaX. First track from the EP I'm working on, is released and available for listening on YouTube.

Tuesday, 4 July 2017

DevGAMM Moscow 2017

Between 18th and 19th of May I had the privilege of speaking at DevGAMM conference in Moscow.

It was quite an experience to open the whole conference and meet a lot of wonderful Russian, Ukrainian and Belarus developers. Including the wonderful and very talented people at Ice-Pick Lodge, who are hard at work on Pathologic.

Again I talked about quests and the Quest System in Horizon Zero Dawn, but this time I had the opportunity to get a bit more technical.

The conference was unlike I have ever seen before, relaxed, not very formal and very, very friendly. Also a bit crazy as this picture shows:

Yes that is Chris Taylor (damn that dude is ripped) and Jon Carnage on stage :D

Wednesday, 12 April 2017

GDC 2017 Talk on YouTube

My GDC talk about Non-linear narratives in Horizon Zero Dawn is now available on YouTube :)

Friday, 10 March 2017

GDC 2017

A couple of days ago I returned from sunny San Francisco where I was attending GDC 2017. I'm at a loss for words to describe how amazing the whole event was. It is absolutely mind blowing to meet so many people from the industry, to share ideas and just to nerd out. Talks were super interesting but as everyone knows, the evenings are the heart of the whole event.

During the first day, on the Narrative Summit I also delivered a talk about Quests and Non-linear Narratives in Horizon: Zero Dawn (full talk is freely available in the GDC Vault, presentation slides are already available at the Guerrilla Games website). Where I talked about the Quest System I built and designed for Horizon: Zero Dawn, our process in creating it and our approach to non-linear narratives. It's sort of a Engineer's Approach to Game Narrative :P

I never talked at such a important event before so I was pretty scared and breathless. However it would seem it all went quite well, the I reception I got was amazing. The fact that the game was critically well received undoubtedly helped as well (currently 89 on Metacritic!). Afterwards I was answering questions for an hour, so I missed the following talk (sorry Amy!).

One of the coolest things that happened to me during the conference was meeting Jeff Howard. Who had his own talk: Force and Fire: Making Your Game More Metal (also available on the GDC Vault, but account is needed for access). He wrote an amazing book about quests in video games (Quests: Design, Theory, and History in Games and Narratives), which I used to create my talk and even quoted at the very beginning. The meeting was unexpected to say the least :D

Apparently some of the game press also found the talk worthwhile, which blows my mind even more:
 My friends at Guerrilla Games also gave talks on other topics:

Friday, 29 July 2016

libGDX and Editor update

Over the past year I've made some significant changes to the Zaria framework and the Zone Editor. Polish, improvements but also I slimmed down it a bit.

Zaria has been working for a very long time on top of jMonkey Engine 3.0. As amazing as that engine is it proved a bit troublesome at times. Quite a bit of my game projects hit significant delays, because functions that would be expected to just work, would not. All 3d projects hit problems with physics, stable rendering of shadows or general performance. All of these can be worked out of course, but my ambition was never to write a game engine, it was to create a framework for quick development of cRPGs (along with such games).

Given all that I decided to take a step back and more conservatively look at what can be done. It would seem that for the time being scaling down and developing a 2d game was a good way to go.

jME3 is great 3d engine, but is not particularly good for 2d projects. I decided to look at the other big Java game engine/framework - libGDX which had very good 2d support (as well as some other really cool features like HTML5 support).

Switching the backend is never simple. So it took a while to decouple Zaria from jME3. The benefit of that is that Zaria and the Zone Editor is now agnostic in regards to backends. It can be used for any Java game engine and all specific code is now put in separate libraries. It also made development for Android simpler as I abstracted all desktop specific code as well.

There are many things still to do. Fixing jME3 support to work with the new abstracted logic (I've been working exclusively with libGDX for now), adding a plugin architecture to the editor, so custom, engine specific editors could be added easily, while still making the core editor engine agnostic, adding netbeans/eclipse plugins for common Zaria actions and types, improving documentation and howtos. However this drastic change was good for the whole project. Made me think what it is actually supposed to be doing and how to implement it in a clean way.

Along the way I managed add two new features to the editor that I really like. One is suggestion support to the script editor, to make scripting even easier:

Now when scripting Ctrl+Space will show a dropdown with all possible functions that can be used at the given moment (pretty much like any IDE).

Another thing is I added support for Value and Function types. These can be used by different definitions provide a value (like how far the fireball can go in regards to character magic stat). However because thet are definitions by themselves, they are easy to tweak from the editor. Plus the CurveFunction got its own custom editor (strongly inspired by the libGDX Particle Editor):

You can add points which will define the function, zoom in and zoom out. Currently three types of functions are supported: Linear Interpolated, Spline Interpolated and Polynomial.

And yes I did (finally!) change the color scheme to dark.

I'm continuing to work on the project. New cool things are coming.