Tuesday 23 February 2016

Game Update: 2015's tough love.

I had hopes of writing blogs on a monthly basis but that certainly isn't working out.  2015 has been a rough year for my project.  "Tough love" is probably the best way to put it... I should probably write the blog about that.  Hang on, let me go back a few steps:

2013 is when I started working on a prototype which, after a few iterations, evolved into a multi-player build in 2014.  Throughout the year 2014, there were a few features that got implemented (although in primitive state) such as climbing, lighting torches, going underwater, traveling to different areas, character stats, "combat".

During the various iterations, I got into the habit of working on two simultaneous builds:
- Build-A kept the art up-to-date (so that we could troubleshoot and build assets).
- Build-B is basically a rewrite of the entire thing for a cleaner, more organized code and faster performance.

Once in a while (every 3 months or so), I'd replace the code of Build-A with Build-B's.  That way, Build-A would inherit new features and Build-B would be rewritten from scratch yet again. The process isn't really linear and how much time I dedicate on each build varies.

In December 2014, I got involved in the Beta of Unity 5 to get acquainted with it as early as possible.  So, Build-A was in Unity 4.x and Build-B was a rewrite in Unity 5b.  To give you guys an idea, I wrote a blog post about Build-A's "stress test" in March 2015 and I wrote a blog about Build-B's progress on world building in February 2015 (with an update in June).

In March 2015, problems started to arise.

Visually, the team and I started to notice oddities with how we handled natural rock formations on the walls when light would hit the surface from extreme angles.  Because of the random nature of the game, we couldn't completely avoid it without taxing the video cards too much by adding more polygons.  So we had to brainstorm alternatives.  The solution we found involved locking myself up in my appartment and write more complex code for days/months.

With Build-A's success, retooling how we'd handle the visuals wasn't such a big deal.  I mean, most of the core functions were already working (despite the bugs) so where's the harm?  Especially if the solution would help with other aspects.  Well, it turns out that Unity v5.2's patch made drastic changes to how the engine would handle multi-player; making most of the multi-player code I had written until this point "depricated" or obsolete.  I had to adapt when very little documentation could be found.

So I had to rebuild the visual component as well as restructure the multi-player...

... Shit.

This was a year ago.  Feature wise, nothing changed.  Which makes it look like we did absolutely nothing in 2015.  Under the hood, however, it's like we're building a completely different game.  Time well spent although it was at the cost of sweat, blood and tears.

So what are we working on now?

Art wise, we've come to the surface and started the ground-work on trees and (more recently) grass.  I think the artist went overboard with the grass, though:

If you look closely (because it's not obvious with all the grass), you'll notice that the trees in the foreground are merely stumps.  This is because this area is identified as a village... so, eventually, houses and a few shops would be filling up the scene.  Idealy, not all trees in the area should be razed but that's balance for another time.

As far as game systems and mechanics goes, AI is being worked on.  NPCs need to be able to participate in a conversation so I've been brain-storming ideas for the UI while scripting behaviors.  I'm expecting this to take a full year to implement.  Eventually, I'll make the AI move around.

We got the wind back in our sails.  Lets hope that 2016 is kind.

/////

So what have I been playing lately?  I got back to my "roots" and started playing more rogue-likes.  Dragon Fin Soup and Hieroglyphika are the new additions to my collection.

Fridays and Saturdays are my "game days" now and, when I'm not recording Elder Scrolls, I've been meaning to showcase more rogue-likes in my streams:
- Rogue (the original).
- Tales of Maj'Eyal.
- Brogue.
- Eldritch.
- Delver
- FTL: Faster than Light.
- Dungeon Crawl Stone Soup.
- Crypt of the Necrodancer.
- Caves of Qud.
- Darkest Dungeon.
- Dragon Fin Soup.
- Hieroglyphika.

3 comments: