Rivengard (2017-today)

Rivengard was started in the autumn of 2016 by some colleagues I worked with in Warlords – after four years of learnings from Warlords we were eager to improve some areas and make it the best game so far. I joined the team as the second client developer, about 7 months after its start.

Being part of a very small and talented team I have had the pleasure of wearing many different hats throughout the project. To name a few:

I’ve discussed and partly implemented the technical set-up and architecture of the battle: Pure C# to be able to run wherever we would like it to, heavily tested, using an entity component system of some sort and a DSL for building abilities; a stream and message queue system to separate the logic from the view; a view layer in Unity to interpret the stream and convert the messages into a visual state as well as commands for the sequences to play.
I’ve developed and implemented a screen visibility system handling culling and blurring to keep performance high, even with multiple popups opening on top of each other; an abstract system to handle all screen and popup animations; a generic GUI tracking system to track interactions of players with all parts of the UI. I’ve written the pooling systems for our widgets that get reused across multiple screens, and their lifecycle management. Set up a command pattern to tie logic and view interactions and sequences together. I implemented nearly all UI sequences one can see in the game (albeit I have to admit that every sequence in the game uses a different way of achieving the goal, every time using something better than before. This ranges from tweens over animations over animators, over timelines, backed by code state machines or not – I still don’t know what I think is the “best” out of those).
I’ve written the level editor interface (using Odin inspector), and I’ve helped our technical artists with the tile/wall calculations in our level editor. In general I’ve built and helped with a bunch of tools, post/asset processors, the build pipeline, asset bundle management, Jenkins, Slack integrations, some Ruby scripts, a little bit of Gradle and Android Studio, a little bit of Xcode, and leaving the programming landscape I’ve created translation requests for our 9 languages, contacted the translation agency, imported/verified the translations (or rather built the tools for it), but also managed releases and organised play tests, uploaded builds to our three platforms Apple, Google Play and Samsung, observed the release by watching our Error Analytics in Crashlytics (Firebase) and talking with our community managers and started everything over by planning milestones.

I’ve also have had the joy of building a few of our levels of the Shara’Zar tileset, the third chapter in our game, as well as giving feedback on audio, concept art, all kinds of assets, level design, game design, community management and much more.

Over the years I had the pleasure of working together with some excellent people, building a fantastic studio and establishing a healthy work-life balance and ethos, and most of all – had a lot of fun 🙂

rivengard-game.com