Advertisement

You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

Behind the Scenes: Haven Park

1

Short intro

Hi! My name is Fabien Weibel and in this article, I am going to present my first game made with Blender + Unity and what I learned from making it.

I have been using Blender for more than 16 years now; I remember rushing back from school to check if my renders came out correctly. Good times!

I studied art and animation in Lyon (France) for 5 years, worked in Paris at Cube Creative Company as a director then moved to Luxembourg where I had the opportunity to develop my own animated TV series called “Barababor” which is currently broadcast in 60 countries!

About two years ago, I decided to start a new journey towards real-time rendering, such as for VR and video games. I learned Unity and started a few VR projects and now I am releasing my first indie game as a solo developer!

Presentation of the game

Haven Park is a small exploration game where you need to take care of a natural park. Find and build nice little campsites, meet and make friends with the campers, but—most importantly—relax and enjoy the wilderness of this peaceful place!

The game was inspired by A Short Hike and Animal Crossing. You can play at your own pace, discover quests and meet cute characters along the way. So get ready for a big little journey!

The game is available now on PC/MAC/Linux and Nintendo Switch! Get your copy now with a limited 15% off! The discount lasts for a week after the release.

Here you can explore a small Diorama on Sketchfab inspired by the game.

Goal

When I started this project, my main goal was to get the full game developer experience. From A (concepts, prototyping) to Z (release to market, promotion, support). I wanted to explore the whole spectrum and every aspect of an indie game project.

Organization

I have some experience with project management for animated short films and series, but none for video games production. There was a lot I needed to learn, technical stuff, of course, but more importantly, organizational aspects.

I tried to make the best use of my limited time on the project (1 day per week + some weekends and evenings), so I had to plan ahead. I made a simple spreadsheet to keep up with all the tasks that had to be done.

I wanted it to stay very simple. For every task, I added arbitrary values to help me evaluate them: Difficulty, duration, and importance. This was helpful to see the health of the project and the specific aspects where I needed to put in more effort.

I separated the project into 2 main folders:

  • The Unity project folder, on my m.2 drive for fast read-write access. That had a significant impact on the build and import times.
  • The asset production folder, on my Synology NAS (network-attached storage). It contained all source files with increments (.blend, PSD, etc).

This separation allowed me to keep the Unity project folder as lightweight as possible and to gain time on imports. It was also important because I used Git to track the file changes and I didn’t want to end up with a repository that was too heavy (it currently weighs 2.3GB, which is good). The source files for the assets were versioned with the hyper backup tool on Synology.

Discipline

When working “for yourself”, strong self-discipline is required to keep going forward. And that is not always my greatest strength….

Aware of that, I decided to take a few actions to help me stay on track:

  • Setting up short and realistic milestones. Every day that I was working on this project, I would start by setting daily objectives. Not too challenging, but also not too easy. Every week or month I would also do that but on a larger scale.
  • Involving people. Having a close circle of people following my project really helped me to keep going, as I had “people to report to”. I would like to thank them for their support (my family, my friends, the community on the Discord!).
  • Setting the bar at the right height. I wanted to make something I was proud of, and yet not out of reach. I knew I had to overcome a lot of things, so I started very simple and added more layers of complexity as the project was moving forward.

Workflow

In order to reach my goals, I needed to set up a workflow that allowed me to quickly iterate, and not lose time on annoying and repetitive technical tasks.

Fortunately, Blender is a wonderful tool when it comes to this: It is easy to write scripts to make life easier and to set up an efficient work environment. Also, an important time-saving strength that we sometimes forget to appreciate: it’s SO FAST to load compared to *ahem* other tools that I won’t name.

I also needed a “what you see is what you get” tool. I set up Blender’s viewport to look as close as possible to what I would get in Unity. That helped me avoid bad surprises.

Blender - Eevee

Unity - URP

Pipeline Blender to Unity

The pipeline I used is not revolutionary, but it did the job well.

In order to keep things simple, I went for a low poly art style. To give the objects their colors, I used vertex colors. That way I didn’t have to use diffuse textures for each asset, saving on memory usage. Most objects have a visible pattern, like wood or rocks. It is a simple map that is used across objects and blended with the vertex colors like so:

Notice the “power” node? It is necessary to convert the color space between Blender and Unity, as the project was set in linear. Without it, the vertex colors would appear all pale and greyish.

I used this equivalent node setup in Blender:

I also added a soft grain effect on these pattern textures to add more visual interest.

To export the object from Blender to Unity, I wrote a small script that sets up the FBX exporter with the right settings. For example, Unity and Blender use a different coordinate system, so the “apply transformation” option needs to be set to True. The script also sets the correct export location. So basically, using one shortcut, I could export the selected asset to an FBX in the right folder, and that would instantly update it in Unity.

I tried to keep the number of Blender scenes as minimal as possible, and instead made use of the collection system. I had only 4 main files:

  • For nature elements
  • For manmade objects (cabins, bridges, fences, props…)
  • For characters
  • For characters animations

This allowed me to easily check the objects against the others to make sure I maintained consistency across them. The exporter I wrote used each element’s collection name to properly name the FBX file and place it directly in the right Unity folder. I thought about importing .blend files directly into Unity, but I preferred to keep the asset creation business separated.

Publishing

At the beginning of this journey, I was committed to publishing the game all by myself. But a few weeks before the initial planned release, I was contacted by Mooneye Studios. You might have heard of them because of their successful indie game “Lost Ember”. They offered to partner and help me publish Haven Park. After some discussion, and seeing that the feeling was good, I decided to trust them with their experience. I’m really happy with our collaboration, they truly helped the game reach a new level in terms of visibility and quality! Thank you, guys!

You can discover their new publishing label, Mooneye Indies!

Lost Ember by Mooneye Studios, publisher of Haven Park

Conclusion, next steps

Overall, I’m extremely happy with this experience. I met all my objectives. Game development is definitely something I will keep pursuing. I already started to think about the next game I’ll make!

I will conclude with 5 points about what I learned:

  1. Keep your eyes on the target. Don’t lose focus along the way. Don’t fall to the temptation to restart over and over until it’s “the perfect concept”. There is no such thing. Start with a strong idea, then make it better as you move forward. Keep going!
  2. When stuck on a specific aspect, put it aside and come back to it later.
  3. Find a workflow that allows you to make fast iterations. From an update in a character rig to a build, it needs to be really fast.
  4. Fail fast. Challenge your ideas and try to “break” them as early as possible. If something has to fail, it must be quick, so you can move on to a better version of it.
  5. Enjoy the journey! It’s cliché to say, but it really is more important than the destination. Find your routines to help you get out of bed and start the day with precise goals! It’s a strong way to keep you motivated!

About the Author

Fabien Weibel, I was born in Switzerland. I discovered Blender when I was 15 and immediately got hooked. I did a few animation shorts as an autodidact, then I moved to France to study 3D animation in an Art School. I obtained a Master’s degree in Art Direction. After that, I worked as a director at Cube in Paris, then on my animated series Barababor, in Luxembourg. I am now starting to develop games independently.

 

About Author

Abby Crawford

I've been a part of the BlenderNation team since 2018, producing Behind the Scenes and Meet the Artist features that highlight Blender artists and their work.

1 Comment

  1. FANTASTIC article (and beautiful work!) I just got started with Unity after loving working with Blender for a few years so this is enormously helpful. Thanks so much for it!

Leave A Reply

To add a profile picture to your message, register your email address with Gravatar.com. To protect your email address, create an account on BlenderNation and log in when posting a message.

Advertisement