Rune (2018) is a sequel to the original Rune Classic made back in 2000. It is the first title I've had the privilege to work on in a capacity outside of hobby game development or small prototypes. My role on the development team has been multi-faceted, contributing to overall game design and planning, as well as the programming for UI and tools related to development. Videos and more information about the game can be found at https://www.runeragnarok.com/
Open WORLD Multiplayer
Refined and optimized to accommodate up to 32 players in a persistent, always shifting environment, performance of the open world is a perpetual consideration when developing the game. Every system has to work in harmony to only function in the forefront when it’s absolutely necessary to reduce overhead when idle.
It has forced me to refine a lot of code I could otherwise let slide on previous projects, and has helped me develop a much better sense of concision when crafting new systems.
Quests, Houses, Enemies, Oh My!
The majority of my time on Rune has been spent developing systems for a variety of gameplay features in the game. Creating editor tools for designers to make new quests, build objects in the open world, and place encounters with enemies are all examples of systems I contribute to.
As a relatively small team, we’re able to rapidly implement systems to test their fun and refine them as necessary once we find something great. It’s a pleasure to work with such a mountain of talent that allows us to whip things up at such a fast pace.
Same Experience, Alone or Together
Despite being an open world multiplayer game, Rune has been developed to also function the exact same locally. That means everything we build considers the player’s networked environment and behaves accordingly to ensure someone playing by themselves gets the exact same world and experiences as those playing online.
This proves challenging in certain cases that rely heavily on separating server and client logic. Writing systems that manage that distinction forces us to take careful considerations when designing new architecture.