Welcome, friends, to this new dev blog entry!
This time around we will dive into the core of V Rising, giving you an insight into the more technical aspects of the game. Some of you have been curious about the engine being used to develop V Rising. There have also been questions regarding the technical challenges our team has faced these past months, among other interesting happenings behind the scenes. Read ahead if you want to learn more about Stunlock Studio’s programming team: the beating heart of V Rising.
THE COGWHEELS BEHIND V RISING
The engineering team at Stunlock is built upon the experience and knowledge of the senior programmers, who worked on Bloodline Champions as a school project back in 2009, as well as the fresh ideas and innovative skills of the more recent hires.
You may have already talked to some of our programmers on Discord or may be familiar with them from our previous games. The newest face is Filippa, who is working with shaders, effects, and technical art as she learns all the fun tricks from one of our senior programmers, Temps. Working on AI, Physics and Gameplay is Jonas. Prog has also been spending some time on Gameplay, as well as developer tools and UI. KHCT has played a key role in developing the V Rising website and has been helping us in the marketing team with the more technical aspects of our different platforms. Zec has been working on castle and world-building, networking, and developer tools. Smurf is doing a bit of everything, with castle building, networking, and gameplay on his plate. Same as Phalanx, who is also busy with planning tasks.
For this Dev Blog, we got exclusive insight from within the tech team itself. Fredrik Haraldsson, Zec, revealed some information about the new game engine which gave birth to V Rising, and many juicy details about the mysterious features we are all looking forward to trying out during the closed beta.
Hi! I’m Fredrik and I go by the online nickname Zec more or less everywhere. I’m one of the original founders of Stunlock, so I’ve been here since we started out in our university’s basement more than ten years ago. I’ve been working in most programming-related areas throughout the years, both backend and frontend, but my favorite areas are probably networking and making developer tools. In Bloodline Champions, I worked a lot with UI development. In Dead Island Epidemic and Battlerite, I focused a lot on the game engine in general, particularly on networking and analytics. Today I’ll walk you through some of the new tech we have been using to develop V Rising, and the challenges we’ve encountered.
CUTTING EDGE TECHNOLOGY
V Rising has been developed using Unity’s latest technology: their Data-Oriented Tech Stack (DOTS). Its focus on “performance by default” allows us to spend less time on coding to get a performant result. DOTS allows us to utilize the threads and cores of the CPU in a simpler but still very efficient manner. This means that games can run faster and with more FPS.
These improvements have been an excellent foundation for us when creating and supporting the vast world of V Rising. We decided to make a significant part of the world dynamic, where a ton of the environmental objects are interactable or destructible. Currently, the world consists of more than 100.000 interactable objects, and that number will just keep on growing. Being able to break things such as trees, rocks, bushes, chairs, flagpoles, fences, tables, and a ton of other objects make up for an interesting and dynamic gameplay experience.
A vampire destroying a crate in-game.
Being at the forefront of using new technology like DOTS brings a certain set of challenges related to maintaining and upgrading our code as Unity’s new engine develops. The advantages far outweigh the difficulties, however, and we’ve found ourselves able to rely on a foundation that is both stable and flexible!
A FRESH START WITH A FRESH GAME ENGINE
For all our previous games, we separated rendering and gameplay into two different areas. We used XNA (Bloodline Champions) and Unity (Dead Island Epidemic, Battlerite) for rendering, which displays the graphics on your screen. In the background, our custom in-house engine handled all gameplay, combat, and network-related logic. This separation would allow us to switch rendering engines to port the games into new platforms if we wanted.
As useful as this setup was, these decisions came with limitations. We were unable to do everything we wanted in Battlerite due to technical constraints. One of the main issues we had was the lack of engine support to multi-thread the game and it mostly relied on single-threaded operations. This is why a few Battlerite players were frustratingly bottlenecked on the CPU and experienced a mediocre amount of frames per second (FPS), despite having a top-end computer. To prevent this from happening again, we decided to switch to DOTS.
With V Rising, we decided to go all-in and implement it all in Unity with no restrictions, which has given us a lot of freedom to create the vampire realm of our dreams.
This change also meant that we had to create a whole new engine core for V Rising, as very little code from Battlerite could be ported or re-used. While the tech team worked on this, our design team prototyped in the old Battlerite Engine, exploring the basic concepts of our new project. Thanks to our several years of experience from previous titles with similar gameplay, we could replicate core functionalities and bring the design team over to the new engine relatively quickly.
Early V Rising Prototype. Not actual in-game content.
THE LARGEST WORLD WE’VE EVER CREATED
The world of V Rising is planned to be much vaster than any game we’ve previously developed, which is a challenge in itself. The world is currently more than 4.5 square kilometers (or 1.7 square miles), and it’s constantly growing. You will be able to explore all of it at your own pace, and we are looking forward to watching your videos of encounters with strange creatures and hostile factions.
The world’s layout is pre-defined, but we’ve always wanted to keep the door open to make the map more procedural and dynamic. This is why we’re constructing it using enormous puzzle pieces that we internally call “Chunks”. These chunks are streamed in and out as you move through the world, making the experience smooth and seamless. This means there won’t be loading screens while exploring the secrets hiding within V Rising.
An example of a “Chunk.”
BIG FOCUS ON DEVELOPER EFFICIENCY
This is our most ambitious project so far and has been both a technical and a content-producing challenge, given the great scope of the game. We have invested a lot of resources into developing tools that enable the other teams to efficiently work with V Rising.
One of the biggest issues we encountered while using DOTS is that coding is more complex and technically challenging. It has been a test for the design team to adapt to these more restrictive ways of programming. Vampires have an intense combat style, and our designers need flexibility when trying out the different weapon and spell combinations. This allows them to create and polish the combat mechanics to include that characteristic gameplay feel our studio is known for.
We in the tech team provide our artists and designers with all tools and basic functionality that they ask for. They often surprise us with the content they produce, exceeding our expectations of what is possible to create based on what they are given. Therefore, we focus a lot on enabling our colleagues to do what they do best, which is developing exciting games.
NEW COLLISION AND PHYSICS
Our previous games have primarily relied on 2D physics for all our gameplay and combat, despite being 3D games. We have long worked with 3D physics for things such as ragdolls, visual effects, and non-gameplay elements, but with V Rising, we also bring our gameplay to the third dimension.
You can now shoot above players and objects if you’re standing on a higher elevation. You can jump up and down from cliffs or platforms in the game, either on your own or while riding on your trusty steed.
One of the main features we utilize this new 3D collision for is a core mechanic of V Rising; the sun! The sun is an actual moving object that orbits the world of V Rising throughout the day.
To keep safe, you need to stay in the shadows. The way we calculate if you’re in the shadows or not is to cast rays from the sun onto your character. If there are any “Sun Blocker” tagged colliders between you and the sun, then it means that you are safe. For a while, at least.
This image showcases how colliders work. The sun rays are blocked by the hayrack before reaching the player.
As most objects you see in V Rising are highly dynamic, their collider representation also needs to be networked and synchronized to your game client, and this brings a fun element to the gameplay. You could be hiding from a hungry bear while taking cover from the sun behind a large tree. While in pursuit, the bear crashes into it and breaks it, fully exposing you to the sun just a few seconds before nighttime. It’s happened to me multiple times, and I love the panic I always feel when I suddenly see the rays from the sun striking my character, wondering if I can survive until it gets dark.
INTO THE FUTURE
Using DOTS opened many opportunities for us. We are continuously pushing our limits on how huge we can make the world or how many players we can cram onto each server while still having good performance.
One of the features that we are continuously expanding upon is the castle building system. We have the goal to make it a more user-friendly and exciting experience for the player with every iteration. With the addition of a new graphics programmer to our team, we also want to find new ways to work with our game’s graphics for further development.
We still have a lot to do, but we are more motivated than ever to deliver the best game we can. We are optimistic about how far we can go with V Rising and are looking forward to watching you try the game during the beta to test our work.
Zec, looking good.
That’s all for now! We will open a channel in the official V Rising Discord server after the summer where you will have the opportunity to ask questions to our programmers for a future dev blog entry, so make sure you don’t miss out on this opportunity by joining the server here.
Please keep an eye out for more V Rising news and content by following our social media and subscribing to our newsletter!
Wishlist V Rising on Steam: https://store.steampowered.com/app/1604030/V_Rising/
Subscribe to our newsletter: https://www.stunlock.com/newsletter
Join The V Rising Discord Server: https://discord.gg/bsSgmhMVSe
V Rising Facebook: https://www.facebook.com/VRisingGame
V Rising Twitter: https://twitter.com/VRisingGame
V Rising Instagram: https://www.instagram.com/vrisinggame/
Lots of love and a pint of blood,
/The Marketing Team