Luca Fusi Sound Design | Implementation

7May/140

WUIS Worklog WED 5/7

So at this point, this venture's got me straight-up learning about Object-Oriented Programming, assorted computer science fundamentals, C# and its syntax. This this stuff translates readily into understanding more about Unity, vis-a-vis C# being a development language for it (and these tutorials feeding me easy examples of attaching scripts to objects, etc.)--but it doesn't really have much to do with Wwise, sound, or what I set out to do. The whole of "learning to program" is a rabbit hole into which I could tumble endlessly, so I think I should take a moment to update my daily and overall goals.

The end goal, for now, is still to figure out how to cook a Wwise project up and then create a Unity project which can invoke sound calls, RTPC updates and the like from those bundled banks, turning them into really simple game functions like, "When I push space, this sound plays" or "When I move the mouse on this axis, this RTPC increases."

To hit that point, I'll finish these tutorials, and daily:

  • List the stuff I've "learned" how to do. ("Learned," as in, "have experienced in one or another tutorial"--but won't necessarily have under my skin until I've really ventured off the rails and experimented with).
  • Any particularly cool points or definitions I feel like I've covered, I'll go into more detail on. And maybe list a few examples of how I can see that working in a simple project I'll define as I go along.

By finishing these tutorials and daily drilling in these reminders of what I've learned about C#, I expect that I'll be able to crack open the Wwise-Unity Integration Demo classes and at least understand what's going on at a structural level. It'll still be Greek, but I'll be able to recognize it as such, instead of a big text file full of scary.

Today I Learned:

  • About inheritance, main classes and base classes. Specifying a base class lets a class inherit certain properties, like instance variables and functions. When you create a new Unity script, that first public class and open brackets it creates specifies "MonoBehaviour" as the base class. This is like some default framework that Unity has which contains a bunch of useful functions. Makes sense. Diving deeper, it seems like there are other ways to do this kind of inheritance stuff with "delegation" and "subtyping"--but I don't know what the deal with those paradigms are or why I'd elect to use them. Yet.
  • About different value types--int and float, for starters. I don't know why exactly one of my example scripts has to explicitly define a floating value as such twice. That is, in the statement, "float coffeeTemperature = 85.0f;", why do we have to say both 'float' and put the 'f' suffix after the initialization value? Anyways, I'm not expecting this type of stuff to start becoming a problem until I'm converting between data types. As an example of why an audio-related function might do that could be turning a super fine-tuned, precise value like mouse coordinates into an integer that falls somewhere specific on an RTPC graph.
  • About constructors, which are like functions that are used to create brand-new objects (like GUI boxes) at runtime. Decided to make some semi-interactive controls to accompany the coffee temperature test tutorial on IF statements, and ran into some compilation errors until I looked this up.
  • About loops--While, DoWhile, For and ForEach--and when you'd use each one. Messed around a bit with trying to combine some examples.

Up Tomorrow:

Thinking to go off the rails a little bit. As a simple but creative test of what I've been learning, I have this crazy idea that I want to make a button-navigable, text-based RPG fighter that does some really easy damage calculation. From what I've seen, tweaking the GUI may be the hardest part.

Much respect for UI programmers.