Ivan Berlin

Programmer && Musician

Ivan Berlin is a second-year Computer Science and Cognitive Psychology major at Northeastern University who has a passion for programming, composing music, playing and analyzing videogames, and cats.

He is currently exploring how to interweave his wide array of interests by studying - and applying himself to - new programming domains, music genres, music production programs, and game-related software. His witty sense of humor is equally loved and hated by his friends and family.

Seaside Scramble

Project Summary

Seaside Scramble is a turn-based tactics game based on territory instead of direct combat. You play as “land cats” who fight back against sea creatures by claiming more sand tiles than they can claim water tiles. You spread sand around a certain radius of every tile you move to. Your movement is hindered by the battlefield’s split terrain, as these cats don’t necessarily like to go swimming. Likewise, the sea creatures can’t navigate in sand. The winner of the battle is whichever side occupies more terrain by the end of the last round.

Project Role(s)

I composed the game’s music and also created sound effects, though I only managed to include the sound effects in the first post-jam build. For the first time, however, I took an additional step in my journey to bridge my passions for music and programming: I integrated the music myself using Wwise and Unity. Having just recently gone through the 101, 201, and 301 Wwise courses, I was able to add reactive functionality to my music in Wwise and program any necessary integrative components in Unity. Further, since the lead programmer was partially unavailable towards the end of the jam, I also assumed the responsibility of playtesting, bug fixing, and building the game.

What I Learned

This jam was the first time I put my new audio implementation skills into practice, so it taught me a lot across every step in the pipeline. I discovered that Logic Pro can’t efficiently export lots of individual midi regions as individual audio files with their effects applied; yet I did learn how to speed up and get through this monotonous process. I figured out how to implement a system akin to Wwise’s “sequence step”, except that it could (as desired) effectively negate how randomly repeating a segment in the Music Playlist Container affects the sequence. Since there were some relevant differences between the codebase of the game used to teach Wwise 301 and the codebase of our game, I also had to learn additional details about Unity-related properties and scripting for Unity in C#. For example, because the “land percentage” game parameter was non-static, I had to script a function that would pass on that parameter to an RTPC in Wwise differently than how the 301 course teaches you to do so.

To abstract these lessons, this jam reminded me that doing new things – even if they’re in a domain that you’ve already explored – can bring up unexpected problems. Without immediately obvious solutions or instincts, this can take a while, so it’s very helpful to account for this in your schedule. I ultimately had to cut down on the scope of what I wanted to achieve because I underestimated how long some of the potential problems would take, which is why, sadly, there are no sound effects in the original jam build.