Maybe It Could be Canon, Though

We’re working on our long-term projects here these past two weeks.

Art

The art team has been chipping away at the art coherence task.

We’re
using a new art technique to help make all the units in an area feel
like they’re part of a set. Instead of getting their colors from the
vertex colors of the mesh, which is what we’ve been doing, now they get
their colors from a palette texture. This is a pretty common technique
in low-poly modeling. The benefit is that every unit in a group shares
the same exact colors. We can easily tweak the palette without touching
the meshes for fast iteration.

Areas where enemies have started to get the palette treatment:

  • Poison Farms
  • Dog Base
  • Graveyard
  • Fishing Zone

New art!

  • Dr Geckelston — it’s Gecksellent!
  • A few of the units in Crypt of Cathulu get new art.

We’ve started to hit some of the backgrounds for some of the area on the island. The beach is now a bombed-out city, covered with scavengers and junk jumpers (I just made that up, that’s not canon).

All of the clouds have a new low-poly-esque appearance that fits better with the rest of the aesthetic. They also are tintable now, so we’re making their colors blend in better with the background. The result is…. atmospheric!

Also, see if you notice anything different in the screenshots. It’s subtle. Scroll to the end to see the answer.

Content

Ray’s been taking passes over content, cleaning up bugs in XP, loot drops, elemental susceptibility (which has also been simplified), minion spawning, the columbo progression, and “making snakes more interesting”. Other touched units (not exhaustive, I don’t have all day): Ambassador, Assassin, Poison Convoy, tetra, Noble Politician, Gazer.

And the Pharaoh has a new layout. This looks cooler due to the “lightning” bars, and also uses less code, so, winning the candle from both ends here.

UI

We’ve wrapped up the last of the radar tasks that we knew of, so if you see any bugs there, let us know! Friends have a little heart on them, isn’t that sweet? Dropships have a little radial timer so you can tell how long before they disappear. Convenient!

We’ve started on the new quests system. We’re hoping to start adding some content next week, but I wouldn’t expect to see anything in-game for a while. Rome wasn’t built in a day, and let me tell you, a quests system is way more complicated than some dumb city.

Now when you enter an area, you will see a “Now Entering” message. That helps you learn where things are.

Optimization

We’ve enabled spawn throttling on the server side. One performance problem we observed was that multiple enemy spawns could stack up on the same frame, causing a framerate hit. Now, we have a throttle to cap the number of units. This took some work to roll out, since it broke some units which had to be found, and then fixed. If you see any broken minion type units, please report them! On top of that, unit spawning is faster on both client and server, so we can do more with what we got.

Another thing we observed is that sending lots of small messages places stress on the system. Typically this was triggered by lots of high-fire-rate units, such as around the Chariot Judge, or the Poison God, or some of the high-level dungeons. The solution was to combine all the bullet fire messages in a frame into one batch. This reduces the overhead enough that it’s made those units behave better now. We also added a messages-per-second graph to the HUD so it’s easier to keep an eye on it.

Backend

On the backend, we’ve got a better system for uploading gifs and crash logs. It’s better for us, anyway; players will probably only see indirect benefits. The backend also has an improved Steambirds-specific display of player items, which should make it easier for us to manage the game.

Also on the backend is a new global configuration system. We’ll be able to add all sorts of fun global variables that we can modify from one convenient web page.

I guess we got a lot of backend changes these days! We’ve switched to a different service for crash reports: Sentry.io. Crash reporting’s an essential but unsung tool for keeping the number of egregious defects down. Whenever there’s an unhandled Unity exception, it reports all the info it can get about the exception to us, and batches similar ones so we can deal with them as a conceptual unit. Sentry seems like it’s working out well for us so far!

Alright, that’s probably not everything but it’s what I had time to compose! Have good skies this week, everybody!

For those who wanted to find out what we subtly changed about the game, here it is: The FOV of the camera is now 30, up from 20. Originally it was narrow because we were trying to replicate the orthographic effect, but now that we’re comfortable with that, we wanted to push it a bit and get more 3D feel without pushing it so far it feels like you’re playing in a fishbowl. It’s still pretty subtle at 30: you’ll feel it in your bones instead of your eyes.