Time for Skybridges!

by matt v, November 10th, 2016

We’ve just released the latest update to Project Highrise that we’ve dubbed “Petronas Towers”. Why, you may ask? Halfway up the twin spires of Petronas Towers in Kuala Lumpur is their most striking feature aside from their great height – a skybridge connecting them. Now, in Project Highrise, you can start on your very own version of that Malaysian masterpiece by doing something like this:


Another new feature that accompanied skybridges in the recent update are cantilevered floors. Now you can build out up to four tiles out from the edge of your building.


If you want to decorate your building for fall or Halloween, we added a few (spooky) seasonal decorations to haunt your hallways and liven up your lobbies.


The other piece of big news since our last update is the full Russian translation translation of Project Highrise is now available.


We’ve updated and changed a few other things and fixed some more outstanding bugs and balance issues. If you’re interested, you can view our full release notes here.

If you’ve been enjoying Project Highrise, we’d be very grateful if you could leave a review of the game on our Steam or GOG.com store pages. We’re still working hard on Project Highrise, so stay tuned. If you haven’t signed up for the SomaSim Newsletter, you can do that here to learn about updates like this one and news about our studio.

Announcing Building Amenities

by matt v, October 12th, 2016

It’s hard to believe, but Project Highrise has been out for over a month! Thank you again to everyone who has bought, played and participated in discussions. It’s been a great few weeks!


Since release, we’ve done quite a few updates to fix the bugs and address some tuning/balance issues that we found after release. (A full history of release notes lives here). But we’ve also been working on new stuff to adorn and improve your skyscrapers. The first batch of new items is now available and here some details!


  • Vending machines are small additions that will help make your residents happy. It gives them a place to take a quick break and escape from their desks for a few minutes. If there is a vending machine on the same floor, chances are that at break time, you’ll see some office workers head over to grab a snack.
  • Pay phones provide a place for office and apartment dwellers to converse privately in public. Look for them to head there when they need a break to phone home or to make a call away from prying eyes. Since privacy requires some soundproofing, these will also cut the spread of noises a bit as well. Like vending machines, residents will only go to pay phones located on the floor where they live or work.
  • Shoe shine stations help residents keep their fancy footwear in top form. They’ll visit them during break-time or free time if they are located on the same floor as their office or apartment.
  • Common areas are relaxing oases from the rigors of urban life. Residents will seek them out during off hours for a few calm moments. They also slightly reduce the spread of noises and smells.
  • Custodial supply rooms and broom closets help reduce wear and tear and cut down grime. As your building grows, you’ll be able to unlock a supply room that will allow you to place up to three broom closets. If a broom closet is built, grime will accumulate much more slowly for tenants on the same floor as the broom closet. Gaining more prestige will grant you access to more supply rooms and allow placement of more broom closets. Since you are only able to build a few of these, make sure that you place them on high-traffic floors or areas that quickly accumulate grime!

Update Highlights – 1.0.4 and 1.0.5

by matt v, September 23rd, 2016

Since we’ve now done two pretty big updates, we thought it would be good to share what’s gone into them. So if you’re up and running version 1.0.5, here are some of the highlights without boring you with the boring bug fixes. But you’re welcome to keep up with the current, detailed release notes here.


  • Added a new graphics option to customize heatmap colors, for players with color blindness
    Thank you to those who brought it to our attention, hopefully this helps make the game more accessible to everyone.
  • Added a hint mouseover that displays what a tenant is going to need after they moved in, but before they start demanding it (see an icon “i”, next to tenant’s satisfaction smiley)
    Hopefully this helps you build things to keep your tenants happy and be more pro-active landlords!
  • Retuned worker and resident NPCs to patronize retail stores much more than they used to
  • Retuned retail store revenues and limits, to account for the change in customer base
  • Retuned restaurants and retail to be more sensitive to not generating enough profit
    Those three should get rid of the stores that never make money and contribute to having some better balanced game play in the stores and restaurants – but this was a BIG balancing change and involved some AI and behavior modifications, so please let us know if you see anything out of the ordinary here.
  • Enabled Steam Cloud syncing
  • Added UI scaling below 100% (for displays smaller than 720p)
  • Retuned higher-level tenants to make fewer service calls
    Hopefully this is better – but we’re still looking to optimize this further – especially for larger towers, so stay “tuned”.
  • Initial construction office can now be removed, and placed elsewhere (it shows up in the infrastructure build menu after bulldozing)

As for some of the larger bugs that were fixed that might directly impact your games:

  • Fixed incorrect logging of “I can’t get to where I need to go” feedback
    If you see lots of these showing up – like dozens of them – please let us know
  • Fixed a bug where the budget popup would show up twice in a row, give double revenue (This should also fix restaurants + retail incorrectly showing “0 customers yesterday”)
    This is something we’re pretty sure is fixed. But it was kind of a difficult bug to reproduce. If you see it happen post 1.0.5, please let us know!
  • Fixed the “+1 construction worker” upgrade getting undone if the player bulldozed and rebuilt the expanded construction office
  • Services will no longer consider themselves “overloaded” if only a small number of service calls (<= 3) were not fulfilled
  • Fixed arrow keys so that they behave exactly like WASD, +/- behave like Q/E
  • Fixed a problem with media campaign “Call in a Favor” not unlocking an extra contract

And the full release notes live here if you missed them or want to read them again.

Thank you!

by matt v, September 16th, 2016

Project Highrise released last Thursday! We’ve had an amazing week since then and that was entirely due to our amazing players. We’re humbled by the response. Thank you to everyone who has supported the game.


We’re now hard at work on updating the game. If you’ve played a bit or a lot and have some ideas for how the game could improve, we’d love to hear from you. There are some great discussions happening over on our Steam Community forums. Join in on one of those or start your own if you’ve got a new idea!

Once we get through the post-release period, we’ll be announcing some new content. Be sure to stay tuned to these emails and to our Steam page for future updates.

Once again – and we can’t say this enough – thank you.

Project Highrise Release and Pre-order Announcement

by matt v, August 10th, 2016

Project Highrise has a release date! You’ll be able to start building skyward on September 8, 2016.

The game will launch on PC and Mac for $19.99/£14.99/€19.99.

But hold on to your hard-hats, because to mark this exciting announcement, you can now pre-order Project Highrise on Steam and save 10% off the release price.

If you pre-order Project Highrise on Steam you’ll get access to the game on day of release as well as these seven exclusive in-game decorative items to spruce up your burgeoning skyscrapers:


  1. Aurora, a statue inspired by the dawn of modernism.
  2. A bold standing light to adorn and illuminate.
  3. Catalonia chair. A stylish standby of skyscraper lobbies.
  4. A cubist fountain with water gently cascading over carved granite.
  5. An elegant teak table, a curvaceous, contemporary design.
  6. Brünn chair. A sleek statement of modern interior design.
  7. Carrara marble walls – the height of sophistication.

Also, in case you missed it, here’s our latest game play trailer made by our friends at Kasedo Games. Check out our YouTube channel for lots more videos including quite a few Let’s Plays.

We are also working on Steam Workshop to support mods for Project Highrise. We’ll have more info about them as we get closer to release.


Project Highrise – Architect’s Notes for July 15, 2016

by matt v, July 15th, 2016

Form ever follows function.
– Louis Henry Sullivan

This week, we started sending out previews of Project Highrise to press, YouTubers and streamers. Check out some of them on our YouTube channel. It was great to watch other people play the game. (By “great” here we mean a combination of anxiety about how people will react to the game and relief that they seem to actually like it.)

In the past, we’ve talked a lot about the game design and the systems in the game. In the process, we’ve also shown a huge variety of game art. So this week, we’d like to go back in time and look at the things that inspired the visual design of Project Highrise.

First, a bit of an abstract aside. We had an idea that we wanted the game to look like a past view of the future. Those imaginings are fascinating to behold – mainly to see how wildly wrong they were. Hence our offices with the hulking CRT monitors and some apartments with some very classic looking appliances and furniture. But there is an undeniable optimism to many of those images – especially those from the 1960s.


That ideal – that we can perfect the future through design – was pervasive in the early 60s. And we took many of our visual cues from that era.


So let’s get specific with the 1960s. We’ll start at the bottom with the color and move our way up. So, looking at images and video from Project Highrise, these color palettes might look familiar:


That’s a color palette from a 1960s home design catalog – specifically from Eichler homes in California. Look at some of the names: Pumpkin. Sunflower. Eucalyptus. The idea that the home or building should strive to part of its environment rather than obliterate and dominate was a new one in the 1960s. These colors reflect that outlook. We drew a lot of inspiration for wall colors and base colors from these palettes.

We’ve got a similar thing going on here. The colors are meant to evoke the materials that create an interior space – deep reds and browns from wood and leather along with blues and grays from glass and steel. Here’s an example of it all brought together:


Except that’s not from the 1960s. It’s a Mad Men set piece. They did such a brilliant job bringing the 1960s back to life, we couldn’t resist. In fact, the early inspiration for the characters in Project Highrise came from the opening credits of said TV show:



Ok, that last one isn’t from the series, but it’s inspired by it in the way that we were. In Project Highrise, players have to be able to identify people by type quickly. So we wanted stylized characters that still provided some opportunity for variation in clothing colors.

Here’s how that all came together in the game:



Those were some general influences from the 1960s (and from the 2010s view of the 1960s) when it comes to color and character art. Now let’s look at two monumental figures from the 1960s that we drew heavily upon for the visuals of Project Highrise – Ludwig Mies van der Rohe and Dieter Rams.

We’ll start with Mies. We live in Chicago as did Mies from 1937 until his death in 1969 and the city is chock full of his work. The outer skin of the building in Project Highrise is essentially a mash-up of Federal Center, the IBM Building and 860-880 Lake Shore Drive. Those are below in that order.




The Mies style of architecture was unprecedentedly bold: strong rectilinear grid, supporting beams and infrastructure on the outside instead of being hidden away, showing the materials from which the building was made right on the facade. It spoke of the technical optimism of the era, and the style became the dominant influence worldwide.

We wanted to evoke that in Project Highrise as seen in this exterior shot:


User Interface

A lot of the color that was used in the UI was specifically from the Federal Center. Speaking of UI moves us right into the other German we referenced – Dieter Rams and his Braun appliance designs from the 1960s. Let’s look at a few:




The clean layout and integrated typography is definitely reflected in our UI, with colors and icons adopted for screen display instead of physical products:


Here our inspiration was less visual and more layout. There is a clean, easily understandable layout that adheres strongly to a grid. Things are very simply yet elegantly balanced. All of the buttons are the same size. The knobs are in proportion to one another. And if you get closer, you can see some lovely typography. And it’s to a bit of typographic inspiration that we’ll move to next. Here we again looked back to the 60s – specifically to Swiss design. They made some really smashing posters like this one:


The grid. The colors. The type. Doesn’t get more 60s modern than that, does it? So it’s with that that we’ll end our review of the visual inspirations behind Project Highrise.

As a final aside, we’ve heard a few people say it looks like the 1990s. I think that’s our “alternate future” bulky CRT monitors and dot-matrix printers. And also your humble narrator (and art director) is a child of the 90s having gone to high school and college in that decade. Much of it was spent (re-)discovering the music and fashion of our parents. Who mostly grew up (you guessed it) in the 60s.

Project Highrise – Architect’s Notes for July 8, 2016

by matt v, July 8th, 2016

“Your living space is not defined by your real needs. It is defined by your economic situation.”
– John Macsai

This week is all about a residential tower. We’re working on tuning the scenario mode of the game and this is the result of a partial play through of one of the apartment building scenarios. Clicking on any of these images will open a giant version in a new tab. Enjoy!

First let’s start with a zoomed out view of the entire tower at night.


If you click on the larger version, you’ll notice one of the main things that differentiates an apartment building from an office building – there are people in it at night! Let’s get a bit closer on some of them in the early evening.


This is mid-evening in some of the building’s studio and one-bedroom units. We’ve got residents making dinner, relaxing and of course spying on the neighbors across the street. Let’s go forward in time a bit and upward in the tower.


Here it’s the middle of the night. Most people are already in bed and the few night owls that stayed up too late are also turning in.


And now it’s a beautiful morning. Residents are heading out for another day at the office while those that work in the building are arriving.

Project Highrise – Architect’s notes for June 30, 2106

by robert, June 30th, 2016

God is in the details.
Ludwig Mies van der Rohe

A very fast overview of our fast AI
One of our main goals in Project Highrise has always been to make buildings feel alive, filled with people whose daily comings and goings create an irresistible bustle. In addition to the aesthetic feel of that, the people’s daily activity drives the economy of the building.

Our “living building” objective requires a large number of people. We gave ourselves a performance goal: the game needed to be able to run with 1000 NPCs at 60 FPS on a reasonably recent desktop-grade personal computer.

1,000 NPCs at 60 FPS. Click to make the madness larger.

This posed an interesting implementation challenge. We’re a tiny team with only one programmer whose job is not just AI, but also to build the entire rest of the game as well. So we needed a system that was very fast to build, required very little ongoing maintenance once it was built – and primarily, helped us reach our goal.

We wanted to have our people live very stereotyped, routinized lives – following a predictable daily routine that will give rise to that feeling of a bustling highrise building. We also wanted to have a lot of designer control over those daily routines, to enhance the fiction of the game – so that worker and resident behavior would match their socio-economic status, but at the same time, have a lot of variety and quirks for “flavor”.

This is called an “action selection” problem, which is something that game character AI has to do all the time: figure out “what should I be doing at the given point in time?” In Project Highrise, we built this in layers. First we build individual actions (like “go somewhere” or “sit down”), which are simple and atomic. We then assemble those actions into stereotyped scripts, which are descriptions of simple daily activities such as “going to the office”, “going to a sit-down restaurant and sitting down to eat”, “processing a repair request from a tenant”, and so on. Finally, those scripts are then be bundled together into various daily schedules, with simple logic for picking the right script based on current conditions such as time of day, and equally simple “working memory” (which remembered, for example, where the character wants to go, where their current job is, where their current home is, and so on). In terms of computational cost, this selection process is trivially inexpensive.

So an office worker at a basic office only has a few things to do in their daily schedule:

{ from 8 to 16.5 tasks [ go-work-at-workstation ] }
{ from 16.5 to 8 tasks [ go-stay-offsite ] }

From 8 am until 4:30 PM. they go do work at their office. Then at 4:30, they go “offsite” (by that we mean “home”). While at the office, there could be several things that could impact their routine. For example, if the office is run down, the worker will react negatively. If there are too many stairs they have to climb to get there, that will make them upset. And there are many more things that might impact the happiness or unhappiness of the worker.

They also can have a series of one-time actions that are possible, so for example the basic office worker that we looked at above also has this:

{ at 12 prob 0.5 tasks [ go-get-lunch ] }

That means that at noon, there’s a 50% chance that the officer worker might want to go get lunch. So is there a place to get lunch? If there is, great! The worker will head there and buy lunch, and the restaurant will benefit from being patronized by a customer. If there’s no place to have lunch or the lines are too long, then the worker will get unhappy. We can control all of that behavior by simply adding the one-time event of “go-get-lunch” into the daily schedule.

We can then begin to chain these things together to make more complicated schedules that have more complex outcomes. Let’s look at how we schedule an resident who works out of the apartment in a home office:

{ at 10 prob 0.5 tasks [ go-get-coffee ] }
{ at 10 prob 0.25 tasks [ go-get-breakfast ] }
{ at 13 prob 0.25 tasks [ go-get-lunch ] }
{ at 16 prob 0.1 tasks [ go-run-errand-2h ] }
{ at 19 prob 0.5 tasks [ go-visit-retail ] }
{ at 20.5 prob 0.25 tasks [ go-get-dinner ] }

This is a much busier day than our office drone. There are probabilities that they’ll want to at various times of day get a coffee, get breakfast, get lunch, go shopping and get dinner. Plus maybe a few errands here and there.

These schedules represent the ideal routine for each resident or worker. Players must try to accommodate these routines. If they succeed, the people will be happy. It’s when the routines break down that unhappiness begins to seep in. Unhappy apartment residents may soon seek a new home. Unhappy office workers may contribute to an office moving out.

With the action selection question answered, we moved on to pathfinding. Once our (potentially) hundreds of people had decided what to do, how would they go there without causing a huge hit to performance?

The game takes place on what is essentially a 2D grid – a cut-away side view of a building, which can be, say, ~100 stories tall and several hundred tiles wide , depending on the scenario. A naive implementation of A* pathfinding on the raw grid representation quickly turned out to be insufficient, with hundreds of NPCs trying to navigate the grid at the same time.

So we reformulated pathfinding so that, instead of using a simple grid, we built a specialized compact graph representation, which had support for the user changing the path graph all the time (as they built, altered or expanded their highrise). Based on the game’s design, the pathable space divided up into distinct floor plates, which were contiguous sequences of tiles on the same floor, such that the character could do a straight-line movement inside a floor plate. Additionally, each floor plate was connected with those above or below it via stairs, escalators, or elevators, together known as connectors. Floor plates and connectors became nodes and edges in our high-level graph, respectively, and movement inside each floor plate became trivial.

A path! A path! Click for larger.

This search space reduction was significant: for an example of a dense building 100 stories tall by 150 tiles wide with four elevator shafts, we reduced the space from 15,000 graph nodes to only 100, with 400 edges between them. This made pathfinding performance fast enough that we could still just run A*, but on a much more compact data model.

Finally we wanted to take care of the worst case scenario, which is when a lot of people accidentally all want to perform pathfinding at the same time (imagine a movie theatre, when the movie ends and everybody wants to go home). If this happens on a single frame, even an efficient pathfinding system would have a lot of work to do – and in order to maintain 60 FPS, we must limit each frame to take ~16ms in order to prevent framerate hiccups. So we resolve that by implementing a simple job queue system with a limiter, such that in the case of that worst-case scenario, we spread the queue of pathfinding requests over multiple frames, instead of doing them all at once.

And there’s a very fast overview of our fast AI! Next time we’ll talk about the design side of things, and the kinds of design variety that we can get out of this system.

(PS. If you want to read more about our AI, we’re going to have a much more detailed paper coming up in the upcoming book “Game AI Pro 3”: http://www.gameaipro.com/ )

Project Highrise – Architect’s Notes for June 23, 2016

by matt v, June 23rd, 2016

Architecture should speak of its time and place, but yearn for timelessness.
– Frank Gehry

It’s a day in the life of a Project Highrise skyscrape in animated gifs! Click on any of them to open larger versions in a separate tab or window.

Over the course of a day, you’ll see a lot of varied activity as residents, workers and visitors go about their lives. Let’s start in the morning. Here we’ve got a few latecomers getting to work as well as some visitors arriving for some very important business appointments.


Some say that breakfast is the most important meal of the day. But if you’re the developer of an office building in Project Highrise, that honor is definitely reserved for lunch. Make sure that there are enough restaurants to meet the demand at the lunch rush!


We leave you this week with the serenity of late night. After the workers have gone home and the janitors have done their work, the only sound audible over the din of the city is the soft splashing of the fountains. Soon another day begins anew in the tower.


Next week we’ll get technical about how we got all of those people moving about in the tower.

Project Highrise – Architect’s Notes for June 14, 2016

by matt v, June 14th, 2016

Less is more.
– Ludwig Mies van der Rohe

It’s time for some show and tell in this week’s post! Click on any image in this post to view a larger version of it.

This post starts off with a quote that has fewer letters than the name of the man who said it. Project Highrise visual design was highly influenced by Mies’s architecture and design philosophy. We’re based in Chicago where he spent the more prolific part of his career and there are many examples of his work in our fair city.

Recently, we’ve been working on several visual refinements to the game. First of all, we’ve implemented a new outer skin to the building. When designing the visuals for the exterior of a building in Project Highrise, we took Mies’s maxim quoted above to heart.


A key tenet of the architectural style championed by Mies is that the building’s structural elements should be sufficient in terms of decoration. We tried to follow that when creating the outer skin of our building. So the windows are simply framed by structural columns and the roof decoration is limited to the ventilation shafts.

Moving downward to the subterranean portion of a building….


There are also new support pylons that act as the foundation of your skyscraper. If you’re building an 80 story tall building, it’s important to make sure it’s well-anchored in bedrock. So we also included bedrock which you can see in the bottom of this image.

In an earlier Architect’s Notes, we talked about utilities and the pipe and wire infrastructure of a building in Project Highrise. In this rainy day image, you can see the conduit that brings electricity, telephone, cable TV, water and gas service into your building from the city’s utility grid.


Also, if you’ve ever seen one of Mies’s skyscrapers in person, one of their more striking features is their soaring glass-encased lobbies. One of the finest examples is the IBM Building here in Chicago. So of course we had to have glass lobbies to Project Highrise.


And finally, we’ve added clouds and did some refining of the day and night cycle. So we’ll leave you with an animated gif of a day swiftly rushing by. Click here or on the image to view a higher quality movie clip.


Older Posts Newer Posts