Devlog Update 106

The parks you guys are building are getting crazier all the time, so I’ve spent the last two weeks almost entirely on performance optimizations.
There are three major areas that have been improved.

Rendering

Big Parkitect parks can contain tens or even hundreds of thousands of objects, and Unity was not too great at rendering lots of individual objects so far.
That’s why we’ve been eagerly looking forward to upgrade to Unity 5.4, which we’ve been testing over the last half year or so and which seems stable enough to use now.
Unity 5.4 adds instancing, which is a technique that allows faster rendering of multiple copies of the same object and moves a bunch of work that previously needed to be done on the CPU over to the GPU. Due to the way scenery works in Parkitect the same objects are usually on screen tens or hundreds of times and as a simulation game we need all the CPU time we can get, so that’s perfect :)
They also added experimental support for improved multithreaded rendering, which helps quite a bit as well.

Guests

We want to have as many guests in the park as possible, so they have already received the most attention for optimizations in the past.
There were still some improvements left to be done though, especially for off-screen people.

Mouse picking

Some of the parks you’ve built got so big that even something as seemingly trivial as figuring out what object is below the mouse could become a performance problem.
We’ve previously used Unitys mesh colliders for this; their intended purpose is more for adding physics interactions to a couple of objects, but it worked well enough in the past.
Since the game received scenery and more content though we’ve seen parks were it could take up to a second to figure out what’s below the mouse in extreme cases…so we’ve replaced that with a custom solution now that’s more suited for our needs and brings that time down to a couple milliseconds.

Results

We’ve tested with a couple of different scenes. Here are some of the results on two of our test systems (graphs showing milliseconds required to calculate each frame, so less is better):

More stuff

Stuff going wrong can cause performance issues as well. Especially right after game updates we’re receiving a bunch of reports about strange issues and performance problems that are usually caused by mods not being compatible with the newest game version yet. Luuk worked on this error window that identifies broken mods and contains the error message so that the problem can be reported to the mod author:

Tim worked on allowing to set specific colors for certain shop products:

And on this area delete tool that lets you select a bunch of objects at once (like the selection tool for creating blueprints) and then delete them:

And we’re displaying some of the controls on screen now depending on context, which should help new players (can be disabled). Eventually this should evolve into a proper tutorial.

And there are some new palm trees:

Devlog Update 105

This weeks devlog entry is by Em!

Hi, I’m Em and I work with Gord at A Shell in the Pit Audio making sounds for Parkitect.
This week I had an exciting opportunity to visit Vancouver’s one and only Amusement Park; Playland, on a field recording trip. Christopher Tammik joined in the adventure and we each attended armed with a recorder and microphone. We went thinking that we were going to have to be quite stealthy, but ended up only sneaking our gear under clothes and scarves on the more intense rides. We rode the mini train a ridiculous amount of times with no questions asked! (With the exception of some curious kids, which you’ll hear in the following recording.)

The aim for this game in particular was to capture as many mechanical, engine, and rattling sounds as possible while avoiding people and music. Not the easiest thing to do even on an overcast monday, but we did manage to grab some great stuff. The interesting thing to note about what you hear in the game is that these recordings are not going to be used only for their corresponding rides, and they’re not going straight in as recorded. The squeaky clacking of the mini-train could be a single layer amidst multiple for any ride in the game.

So we pull discrete loops and segments out of these recordings. For example, this mini coaster:

What you build in your theme park won’t correspond to this 30 second long mini coaster ride. We’ll simply extract similar bumpy and rattly segments of the recording, edit them together, and make it loop seamlessly so it can work for any coaster you build. In Parkitect we create 5 different speed loops per coaster, including the climb loop, which this ride had a great sound for. We were also able to get close enough to the lift mechanism on Playland’s wooden coaster (one of the oldest in the world!) and record a super long segment. That one will most likely be hidden in a couple different rides. In the Wooden Coaster, it was very challenging to keep the microphone steady; it was hard enough holding on and being thrown about the seat.

Other than coasters we were after engines. The louder the engine, the more it would drown out all the background noise of the crowd and music, which all gets recorded and added in separately. It was usually loudest inside the ride, so we spent a lot of time running around riding everything we could. (Yes, this is a real job.) Though it did get to the point where even the kids rides like tea cups were making us feel sick. Note to anyone planning something like this: Do not ride the most spinny thing first.

Here is one of my favourite engine sounds, the scrambler. I cleaned some of the crowd shouts out a little bit but the engine was powerful enough that I didn’t need to alter it too much.

That’s all for now, next up is a trip to a sightseeing train crawling through a vast park. Hope you enjoyed reading about our fun trip. See if you can find these sounds somewhere in the game later! It won’t be easy.

Here’s a merry little video to close off.

Devlog Update 104 + Alpha 3

Alpha 3 is now available for download! The full change log is at the end of this post.

Riverwood Themepark (no mods), by xRBz

Devlog

Devlog Update 104! I guess that means 2 years of weekly devlogs, wow :)

Garret modeled a Motion Simulator ride during this weeks Art Stream. At just 2x2 tiles it is the smallest ride in the game and should work nicely to fill some gaps in parks that are running out of space.
Getting the animation working in the game with the hydraulics and all turned out to be a bit more difficult than originally expected, but here it is:

(Animation shortened for GIF)

And we added cloud shadows:

They’re fairly subtle but help visualize the current weather a bit better.

Team

I’ve been the sole programmer working on Parkitect so far and it would’ve been cool to finish it alone… there’s a bunch of work left though and our sale numbers are looking good enough that we can afford to bring on some people to lower the work load and speed things up a bit, so Luuk and Tim from ParkitectNexus are joining us part time to help with programming tasks.
Welcome to the team! :D

Alpha 3 Changelog

- added Motion Simulator
- added Shark costume for Entertainer
- added brick walls set and some industrial props
- added sounds for Giga Coaster, Mini Coaster, Alpine Coaster, Suspended Coaster, Monorail, Ghost Mansion Ride, Inverted Dark Ride
- added new path style
- added paths don’t connect through walls and fences anymore
- added paths don’t spawn handrails if wall/fence already exists in same location
- added working queue signs
- added text signs that can be put on paths and act as “no entry” signs
- added underwater tunnels
- added track tunnels automatically updating when terraforming
- added search bar for blueprints
- added embedding log flume tracks into water/terrain without spawning tunnels
- added stats graphs for tracked rides
- added cloud shadows
- added Dutch names
- improved the look of flowers
- improved the look of tunnels (look darker on the inside)
- improved savegame load times by up to ~50%
- fixed a case where guests could queue for a closed attraction
- fixed various issues with building fences
- fixed guests rarely thought an empty queue is full and didn’t enter it
- should fix very rare case where mechanics could get stuck in ride exit gates

Devlog Update 103

Art Stream

It’s finally the end of the month, and that means it’s time for another Art Stream! Join us on Garrets Twitch channel on Wednesday at 1pm PST to chat while watching some new Parkitect art being created.

Translation Progress

Since starting the translation site lots of translations for many languages have been contributed, which is awesome! Thanks :)
One small problem is that many translations have been suggested, but there aren’t enough people voting for these suggestions. The way these community translations work is that after a suggestion has been made it requires a couple of votes to actually get into the game.
To vote for suggestions, click on the “Suggestions” tab, then use the Vote for/Vote against buttons. You need to be logged in for this.

Devlog

Progress has been rather slow this week due to some none-development related tasks that might continue into early next week, but things should be better again then.
We’ve added the option to view the coaster stat heatmaps without having to go into build mode, and while we were at it also added some graphs for this data:

The heatmaps are much more useful and easier to understand in my opinion, but it can’t hurt to have the graphs and if nothing else they’re at least helpful for debugging.