Know more about Unforgiven

It's been 2 years since Unforgiven was created and we haven't dedicated a post about what it is like for us to have been together this long.

It all started 2 years ago after we took the decision to create games for a living. As things have progressed, the company's vision started to take shape and we set on the path we are now.

To put it simply, we are just a group of friends who want to create games that makes us proud. Everyone has good memories about how games have affected their lives in many ways, and we want to take the opportunity of creating an indie studio to give back to the world what it gave to us, be the experiences, the good feelings and thousands of hours of fun.

Since we value the time invested by the players who try our games, we are making sure that they can fully enjoy themselves with our work. One of our goals is that the player is happy to spend their precious time playing the games we make. This goal gives us a lot of pressure and pushes our desire to learn more about how to make games in all the areas like art, programming, production or design. Learning is a never ending process and we are grateful to be on a journey where we are all learning and at the same time sharing what we love to the entire world.

Many people don't know it, but we are only 6 people here at Unforgiven, and that forces us to wear many roles in the company.  The team is formed by Mauriccio Torres (3D Artist), Ramanand Purizaga (Programmer), Guillermo Rossell (3D Artist), Andres Revolledo (Programmer), Antonny Vega (3D Animator) and Vania Torres (Concept Artist). However, we still want to specialize in what we enjoy most, be it art, animation, programming, you name it. It's a great feeling to go work to a place where you can tone up your skills, it feels very refreshing and that's something we really enjoy!

We all have common interests here, we love fantasy and RPG games and the kind of games we make reflect our taste in those genres. That led us to decide that we needed to create our own IP such as the Final Fantasy games, Zelda and many more great games.

It took around 5 years to hone our skills in order to turn Stage 3 into what it is now. Since the very beginning, we determined that it was essential to study the basics of game development and all the techniques involved in the process. Polycount became our favorite place to learn and we highly recommend it to anyone who wishes to enter the industry to go into that forum, it is full of invaluable information! 

It's amazing to see what we have accomplished so far and the best is yet to come!

At the very beginning of Unforgiven's existence, we started working on assets for Unreal Engine Marketplace. This decision proved to be very useful to us because it made us learn new techniques and the entire asset production pipeline. Looking back, we are amazed on what we did during that time since we can do better now. But our real vision was to create games that everyone can enjoy around the world. Without Epic, we wouldn't be able to do what we do today, they helped us by creating a great platform to monetize our skills and gave us a tool set that comes with everything we need to create the games we want.

Stage 3 is evolving a lot, the first time we showed it in Colombia, where we worked non-stop for 2 months to create an Action RPG game. It wasn't even called "Stage 3", it was called "Le Blank". Most of the reactions were related to the "Cool" factor and people seemed to enjoy it a lot. It was the first game we created and it served as a proof that we could make something bigger, given enough time and developing consistent discipline. And right after it, we showed it into a local convention called Mas Gamers Tech Festival where we had a blast!

This is the first teaser we made to be shown around in Colombia during the MICSUR 2016 event

 A screenshot of Stage 3 in its early stages when it featured procedural generation. (Formerly called LeBlank)

A screenshot of Stage 3 in its early stages when it featured procedural generation. (Formerly called LeBlank)

 Mauriccio on the left and Ramanand on the right showing Stage 3 during the  MICSUR 2016  event in the Peruvian booth

Mauriccio on the left and Ramanand on the right showing Stage 3 during the MICSUR 2016 event in the Peruvian booth

 From left to right: Antonny, Mauriccio, Guillermo, Andres and Ramanand during the  Mas Gamers Tech Festival

From left to right: Antonny, Mauriccio, Guillermo, Andres and Ramanand during the Mas Gamers Tech Festival

 Ramanand in the booth with the LeBlank banner soon to be named Stage 3

Ramanand in the booth with the LeBlank banner soon to be named Stage 3

Because 2 months wasn't enough, we developed a more polished version of the game and we went to the GDC to show it to the public and other companies. The reaction was the same as the previous version, it seemed to give the effect of "cool as hell" factor, that gave the attention of many developers and some publishers. We even got our development kit to develop Stage 3 for PlayStation!

Latest teaser for Stage 3 used in our greenlight campaign

 Stage 3 screenshot showing the new art

Stage 3 screenshot showing the new art

 Stage 3 screenshot showing some gameplay

Stage 3 screenshot showing some gameplay

 We managed to show the brochure we made to Tim Sweeney! 

We managed to show the brochure we made to Tim Sweeney! 

 Mauriccio carrying the box with the Play Station 4 dev kit in it.

Mauriccio carrying the box with the Play Station 4 dev kit in it.

After that trip, we focused entirely on the IP and reworked the game almost entirely. We reworked the characters, story and the entire world. By that time, we saw the potential of VR and we wanted to translate what we created for the Stage 3's universe into a game that is completely different from what we have tried before. This game would focus on an important character called Azaria and will introduce new characters and enemies that you will find in Stage 3.

The first time we showed Stage 3: Azaria was in a local convention called PGX. Despite being a super early version which didn't show our entire vision for the game, the people enjoyed it a lot. They even waited for 3 hours to play the game! 

 Stage 3: Azaria, our new VR game

Stage 3: Azaria, our new VR game

 Gameplay of Stage 3: Azaria

Gameplay of Stage 3: Azaria

 Environment done for the PGX event

Environment done for the PGX event

 People waiting for their turn to play the demo of Stage 3: Azaria

People waiting for their turn to play the demo of Stage 3: Azaria

 A local news outlet doing Guillermo an interview

A local news outlet doing Guillermo an interview

Play testing of Stage 3: Azaria in a local convention

From young to old people both males and females enjoyed the experience. That is something very rewarding for us since it's the reason we are doing this and commit to work everyday! Hell we've even been on national TV 3 times and it encourages us a lot when the work being done is appreciated.

We are closer than ever to release the first Demo of Stage 3: Azaria and we are working very hard to deliver a great experience to you guys. It has been an amazing journey so far! We can't wait to see what other amazing things come to our life as we pursue our mission and purpose.

To contact us leave a comment below or you can send us an email at contact@unfgames.com. See you guys in the next blog post!

 

Stage 3: Azaria - Development diary 3: Optimizing content for VR

We wanted to share with you what it's been and still is to work in a VR game compared to a traditional one. Specifically for creating worlds, it can make a big difference because the experience of using a VR device really changes everything we know about making games.

To the contrary of what many people think, ideas evolve and consolidate as we work in the game. We watch them grow, change and sometimes the changes need to be drastic if it's for the best of the game. Below is a collection of screenshots during the development process for the August build we worked for 2 months:

Hereogan's Castle process

There is a lot going on behind the scenes but the basic formula is to test the idea we have on paper and put is right away inside Unreal Engine. Most of them won't work as intended, specially for VR since the experience is completely different. But the process is reduced to iterate and look what works and what doesn't and continue to evolve the idea.

In this article we are going to talk about the considerations we need to take to create VR worlds inside Unreal Engine.

General considerations

Most people don't know it, but creating VR games can be extremely difficult because you need to get a high frame rate, in our case we need a minimum of 90 frames per second in order for the game to work. Otherwise, it can cause motion sickness and make the experience a not very enjoyable one for the player. While the hardware required to run these type of games is very powerful, we still need to optimize a lot to achieve high frame rates.

Texture resolution

This isn't for VR only games but we always need to take in consideration the size of the textures since it can decrease frame rate significantly if not handled well. The challenge here is to reduce the texture resolution while keeping the same amount of detail, since in a VR game people can look very close to the objects, we need to make sure the detail stays there.

Fortunately Unreal give us many tools for optimizing textures. Many developers wonder about how big the size of the texture should be and it really varies from project to project since the same object won't have the same impact if the game is a First Person Shooter versus a Third Person Action game and VR is not the exception. The good news is that we can easily know the size of the texture with Required Texture Resolution mode on.

This is how the object looks in the game:

torch.jpg

And with Required Texture Resolution mode on we can see how much texture resolution is required depending on how much screen space the object occupies.

With this mode you can see how much texture resolution is required depending on the type of game you are making. The problem with VR games is that most objects have the potential of occupying a lot of screen space since the player see the objects as if they were in real life size. That means that even when the object is close we need to maintain the same quality. In order to achieve this, we can use detail textures to give the player the resolution they are looking for while using low resolution textures.  This can be achieved easily just by using the DetailTexturing function inside the Material Editor.

detailtexturing.jpg

You can see the difference between the same object with Detail Textures applied and another one without it. With this, we are able to achieve high quality graphics while keeping the texture resolution low and increasing the game frame rate which is our primary goal.

Level of Detail

This is a huge one, while testing the game performance you can notice without the VR headset that the frame rates are going well, probably above 90 FPS. However, when you test it with the headset the performance can change drastically. We noticed that using Level of Detail (LOD) on all our models increase our frame rates by a considerable amount, while it may be obvious, you can't find the problem until you test with the headset on and this one was a huge bottle neck.

Like everything inside Unreal, this can be easily achieved in theStatic Mesh Editor using the LOD feature that automatically reduces the triangle count while calculating how much screen space it deserves. This can save hours of work since it's calculating everything for you and assigning the correct distance for each LOD.

As you can see, the Highest LOD uses 1014 triangles for the 3D model and the lowest use around 100. While the silhouette is terribly wrong when the object is close, it works perfectly well from a distance. For Stage 3: Azaria we used 5 LODs for all models and it increased the frame rate significantly.

Draw Calls

In our experience, the best you can do to optimize a VR game is to reduce the Draw Calls. Like everything you won't notice frame rate problems until you wear the headset, but if you use Unreal's tools to analize the rendering statistics you can see that the Draw Calls are the biggest bottleneck for a VR game. It is less forbidding for a project for PC and Consoles and we knew that for Mobile devices was a huge one, but we got the surprise it also have a heavy impact even on VR devices even when the machine is powerful enough.

It is easy to detect how many Draw calls your game has by using Unreal's optimization tools. By typing the Console Command.

These are the most used to track performance issues:

  • Stat scenerendering
  • Stat unit
  • Stat fps

These will give us an Overview of how much milliseconds takes to process the frame both for the GPU, CPU, Game code and Draw Calls.

scenerendering.jpg

As you can see, the Draw calls appear to be the lowest problem here but if you wear the headset you will find that it is actually the biggest bottleneck. You can also check how many Draw Calls your scene have and work your way around to reduce it, for Stage 3: Azaria we went from 2000 Draw Calls to 300. The easiest way to reduce them is inside Unreal, the typical workflow would be something along the lines of "exporting content from Engine to 3D Package, merge objects inside 3D package, create new LODs, reimport and replace old meshes for new ones". Like anything in Unreal, you can reduce these steps into a single click! Just use the Merge Actors feature and you are good to go.

You can see in this image that we have merged some of the Heorogan's Castle columns and reduced Draw Calls from probably 200 to 4.

drawcalls.jpg

This is how the Merge Actor window looks like and it does all those steps in a single click! The best thing is that it also merges LODs so you don't need to create them again. Our advice is to create LODs before reducing Draw Calls since you will get the new LODS for free.

Untitled-13.jpg

Advice and final words

If we were to put a list of insights that we got from experience these would be the most important:

  • Always test with a VR headset, you can't know how well or bad it goes until you try it on.
  • Epic has a lot of resources and information about VR development, be sure to read there first. Most likely they had the same problem you are experiencing and have a solution for it.
  • Use the tools provided by Epic: Performance statistics, LOD generation, Merge Actors, and the list can go on. These are tools that really speed up the process and help you to focus on what is most important: the game.
  • Avoid dynamic lightning whenever possible.