Friday, November 10, 2017

Boat Sailing and underwater exploration

    Once players fund the town pier repairs, a boat becomes available. It can be used to sail and discover a couple unreachable locations, but also, if a diving suit is crafted, players can go underwater and explore there. Where you land at the bottom depends on where you were above water. Also, an oxygen system has been implemented for underwater ventures: You get a limited supply each day and if you exhaust it you force yourself back to the surface and have to wait until the next day to descend again.

    Many years ago. smugglers used to hide in caverns behind the waterfall, some locals say. But what happened to them and their treasure?





Monday, October 16, 2017

Character equipment and hair styles

    Having your character be able to wear clothes other than the default set was in my to-do list since the beginning. However, while drawing the standard animation frames for the main character, I realised it would be a much bigger undertaking than what I originally thought.

    You see, right now the full animation set of the main character has 170 unique frames. Even if we subtract 50 frames having to do with the character's legs, because if we want to draw a hat we'll skip those frames anyway), we are still looking at 120 frames. So for each piece of equipment that isn't a simple color switch, I must draw those 120 frames from scratch. Sigh...


    Granted, in some frames the main character has the same orientation, so I could escape drawing stuff from scratch by copying and pasting from a similar frame, but still. When you are dealing with so many frames, even thinking about redrawing or copy-pasting takes time!

    Fast forward one week. That was a lot of clicks in my image drawing program. A lot. But hey. We now have a bunch of clothes, hats, armor pieces and boots!






    I have also decided to make some equipment sets grant bonuses when fully worn. As always, I hate it when in a game everything swims in a homogenous grey soup of balance. So there are clothes of trivial value, which don't make any big difference if you equip them, but there are also powerful pieces of equipment that grant cool bonuses. Depending on how you play and what you decide to explore first, there is no guaranteee that you will stumble on the weaker equipment first.

    I've also created several hair styles for each gender, as well as finalized the female base sprite. Being an idiot as usual, I fiddled with the size of the arms size in certain animation frames, requiring me to make variations of some equipment for each gender. But hey, I'm past it now, moving forward.

    If I may inject a more contemporary remark, recently Valve has begun dropping the Banhammer on a bunch of Shovelware games. You know, these low-effort, asset-flipping pieces of crapware that get re-released on the Steam store with different skins, passing for a different game?


    It's sad seeing that some people have actually "earned" (more precisely, "gotten away with") money from selling non-games whose development cycle was probably even less that the time I spent drawing hats for my stupid little game. Just think about it!

    Anyway, I'm currently finishing the crafting system, as well as finalising the "rewards" from each villager for each level of friendship you manage to reach with them. In general, I'm mostly left with connecting various infrastructure elements with each other, adding some optional areas, making the rest of the music tracks and adding sound effects. That's still a lot of  work, make no mistake, but hey, the finishing line is on the horizon!

Sunday, September 3, 2017

Town Festivals!

    August was Town Festival month. Throughout the year, there are eight distinct occasions that call for the player's attention. Some are competitions. Others are just for hanging around and talking to people. Others are spectacles to be witnessed with others, like a theatrical performance or the first sunrise of a new year.

    Townspeople will inform you about an upcoming festival (usually a day before) and will remind you the specifics: Time, place etc, so you don't have to worry about constantly checking for an upcoming event or accidentally skipping one.

    Chicken Festival (Spring)


    Our favorite coop animal! If you have one, you can submit it and hope for the best: The best chicken of the year produces Golden Eggs! If you don't have any chicken or you don't want to submit one, you can still drop by and chat with the townsfolk.

Tuesday, July 18, 2017

Indie Game Picks interview

    There has been so much progress that I'm in perpetual conflict about what to write for first: The completed recipe system with over 100 recipes? The automaton quest that culminates in your very own automaton that helps you in farm tasks? The challenges of writing a skeletal animation system in two afternoons and the implementation on a new boss? The fact that so far over 250 items have found their way in the game?

    Welp, until we get to these, here's an interview from Indie Game Picks. This covers the basics of what the game is all about, so if you've lost too many episodes and want a recap, you should probably read this. Heck, even if you've gone through the entire blog, it's still a good read!

Thursday, May 25, 2017

Simple lighting in 2D games + shader (GLSL)


    Using some sort of light system in your game is kind of a double-edged knife. It may improve some scenes visually, but may also oversaturate, overexpose or simply clutter (especially when the engine you use also "creates" shadows) others.

    In the times where games were still written in Assembly and presenting an eighty Kilobyte background image to your lead programmer to cram into the cartridge could cost you your head, Scene lighting in a 2d game was usually "baked" into the tilesets. So for example a dark cave or forest used darker and more muted colors, while a sunny village had a more vibrant palette and strong yellow highlights could also indicate the presence of an sun overhead. Dynamically changing the lighting of a scene during runtime, barring some palette animation tricks, was usually not possible.

A few decades ago, all it took was some dark, dull colors...

...or some bright, vibrant ones.

    These years we have shaders and raster effects and we can pretty much alter the value of our output pixels however we want. It is not uncommon for a 2D game to have diffuse, self-illumination, normal maps and more, in order to achieve a pixel-perfect, accurately lit environment with shadows! But sometimes, all we need is a simple light map that makes some areas brighter and others darker.

Saturday, April 29, 2017

Creating cutscenes for a 2D game

    If you've read some of the more technical posts so far, you'll know by now that Gleaner Heights is being developed in Game Maker: Studio. As such, ideas below will be expressed with that specific program in mind, but this doesn't mean they can't be extrapolated for application in some other game creation medium.


    So...cutscenes. A farming sim sure has quite a number of them. You have the intro. Then maybe the Mayor waits outside your house to inform you about an upcoming town festival. Then maybe you have another cutscene in said festival. Then maybe you have a scene or two with your romantic interest[*]If you think that's a lot of maybes, multiply them by 2 and that's how many cutscenes you will end up with.. Due to the nature of the game, one or more cutscenes may play consecutively. For example:

Friday, April 7, 2017

Progress report: Crafting, Dialogue, Spouses and more

    Since the last post, my main focus was on creating character dialogue. Now characters introduce themselves and also have something to say depending on the season, the weather, whether they are visiting someone else etc. Also, they accept gifts. There are four levels of reaction to a gift: They can hate your gift, be neutral about it, like it or love it. Your "friendship" level is adjusted accordingly. A common mechanic in these games is that when you give them a present on their birthday, the gift reaction value is multiplied. Also, multiple gifts per day can be given, but each subsequent gift has an even lesser effect.


    When your friendship level with an NPC reaches a certain threshold, they will reward you in some way: Either with some town lore, a present of their own, some piece of clothing, a skill increase or a food recipe/crafting schematics. Friendship events haven't been implemented yet, but at least their dialogue is 99% done. Finally, in order to unlock certain events for some NPCs, you have to reach a certain friendship level.

Friday, March 10, 2017

Interesting combat in a farming game

    February was Combat month. This means that I had to setup attack hitboxes, special moves and enemies. I didn't design and implement as many enemies as I wanted. So far there are 9 "normal" enemies and a "boss" one. There is definitely room for more content there and, besides, some enemies not done yet are crucial to the main story.


    Since the game's atmosphere is more akin to this of a suburban gothic 90's TV series, a certain degree of realism is expected of the game world. Sure, there may be mysterious entities and a hint of otherworldly powers, but their impact will be much greater when contrasted with a more down-to-earth environment. Would the encounter of killer BOB by the main characters in Twin Peaks be such a harrowing event if in the rest of the series we watched townsfolk fighting zombies?

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!