Monday, January 16, 2017

Creating townsfolk schedules


    In order to make the game world livelier, the inhabitants of Gleaner Heights have to be on the move every day. Maybe they will leave home and go to the town square in the morning, then enjoy a meal at the Diner, then visit a friend, and so on, until nightfall approaches and they return home to rest. We've seen this in games before. The older Harvest Moon games did it. Modern AAA open-world RPGs do it. And now I'm doing it. Unsurprisingly, this section of game design is rife with challenges as well.

A few characters from our main cast. Sorry for the messy upscaling.
    I'll remind you that I am using Game Maker: Studio to develop the game so some technical jargon will refer to this specific application, but the gist of the article isn't confined by it, as always. Any software development tool supporting data structures can be used to implement the ideas discussed below.[*]People who write in programming languages utilizing classes and pointers are probably laughing so hard right now after having skimmed through this article that I can probably hear them from here. But this is Game Maker we're talking about, and we'll have to make do with whatever hand we've been dealt.

    So...we have a bunch of villagers (over thirty, actually). And we want to set up a daily schedule for each and every one or them, bearing in mind the following guidelines:
  1.     Townsfolk (or Non-Player Characters or NPCs) should have different schedules during certain days of the week. Also, their daily routines differ each season of the year.
  2.     Each NPC must have a clearly defined schedule, that is a list specifying where they should be at any given time. This means that if the mayor leaves home at 8:00 in the morning and he needs 10 game minutes to go to the general store, if at 8:05 you exit a building and you spawn at the town map near the general store, you should see the mayor exactly halfway there. Also, NPC schedules should be declared in a brief, yet human-readable way. Writing tons of borderline nonsensical -to your future self reading them- parameters for over 30 NPCs can cease to be fun very, very quickly.
  3.     NPCs must pause their route briefly when the player character is very close to them, in order to lend some attention to the player. Maybe we want to chat or give them an item. Of course we can do all that when an NPC is on the move, but chasing them around to do so isn't the smoothest option. In any case, they stop for a set amount of time, beyond which they resume their route.
  4.     NPC schedule infrastructure must be set up in such a way, that it will be possible for the game to alter a given day's schedule under special circumstances. For example, if it's snowing an NPC will stay home, if it's a festival day an NPC must be at the town square etc.
    So...my approach is the following:

Saturday, January 7, 2017

Game music attempts #1

    Is it too late to wish you all the best for 2017? Have I exceeded the New Year Wishing time limit? Either way, have a great new year!

    I have no formal music education. I have no idea what a C note sounds like, or what scale can get on well with another. But decades of listening to video game[*]And movies/series soundtracks. And ambient music. Generally anything without lyrics music and replaying all those tunes in my head has given me some internal composing ability. Why internal, you ask? Well, I might have this great melody running around in my head for some time. To actually produce something out of it, with my aforementioned lack of musical education and experience, well, that's the real challenge.

The theater man in the beginning of the game has some brooding mysterious saxophone music going on. Or at least I think it sounds like that.
    I am using (mainly) soundfonts for my composing attempts. I find them more straightforward and besides I don't think I could afford any expensive VST, my poor ol' computer wouldn't probably handle 5 Gigs of ultra-quality instruments loaded up all at once, and I wouldn't be able to put them to any good use anyways. Besides, I believe that a retro-looking game doesn't have to have ultra realistic music with top-notch instruments. Soundfonts are easy to look and categorize and pretty easy to use, but I reckon we are talking about a nearly extinct species here.

    So I have tried to write some music for the game. This isn't my first time of fiddling with music, although we are talking about really amateur levels here. Since I am going for the classic cutesy farming sim, but with some more...ahem...surreal stuff underneath, I am trying to inject some mysterious jazzy vibes into various music tracks, like how the music of a 90s mystery TV series would sound, so I am using the saxophone soundfont on many occasions. Does it work? Well, why don't you listen yourselves and give me a heads up:

       

    The tracks are set up for looping (listening to them on the Soundcloud website gives you the ability to loop them).The main question is: Would you play a game fitting the above description with such a soundtrack? Or is the music intolerable? Plan B is to hire a musician which is fine too since I'll have more time for development. I am designing the game, writing all the code, making all the graphics, so I don't expect any time soon to be a master composer. But if those tracks seem ok for the task, or could be tweaked for the better, let me know!