March’s Progress: Hot Stuff

Jon: Hi, everyone! Time for March’s update.


This past month I’ve spent most of my TAR time on AI, and have a few things to mention:

  • We are now using  a different AI system than GOAP. GOAP planning was taking up too much CPU, and was getting too difficult to debug… I have been reading Mat Buckland’s book, Programming Game AI by Example, & have found his Goal-Driven system to be quite insightful. I have the new system up and running and it’s using a lot less CPU than the previous system!
  • Continuing in the book, I decided to work on a weapon selection system for NPCs utilizing the chapter on fuzzy numbers. The basic idea is that they’ll choose the most desired weapon they have based upon various inputs, such as distance (Swapping from a bow to sword, for example). It’s coming along.

Swing-Throughs

I have started the possibility of hitting multiple targets with one swing. We have wanted to have Strength, along with larger weapons, to allow for sweeping through multiple opponents, or at least smaller ones like bats, with one swing for a while. This is a step towards that. In the process, I may have fixed the bug where weapons could remain active if an attack animation was interrupted as well.


Potions

I’ve also dabbled in potions, continuing work to make them more modular. Previously, I would have to make 3 new prefabs for each potion type we would want to add. This was taking too long… Now, I only need to make one prefab per type. I have added some new potion types including a Sleep Potion. 😀

I have also been experimenting with coloring the potions programmatically based on their elemental compositions.


Now, Andrew has been working on things that might be a bit more exciting, putting aside the Castle temporarily to work on the old Water Cave…

~

April Fools! 🤡 It’s a Lava cave! There’s a method to the madness I assure you. Here’s a peek:

“Can’t get enough!”

This is a new area, and will not be replacing the Water Cave.


A couple more things before farewell. I wanted to share some useful Unity discoveries we’ve made this past month that have helped out quite a bit, for other devs out there:


Happy Easter!

Advertisements

January’s Progress: Eye Candy

Jon: Long time no see! Despite our silence, we have been working away. Now that we’ve released v0.1, we begin our journey to the next version.

Here’s what we’ve been working on so far:


Shaders

I’ve been dabbling in shaders this month and managed to get some things working, though all still WIP. Have a look:

  • Eye: The iris is now drawn right on the same object as the eyeball! This allows the specular shines to seamlessly blend from eyeball to iris, unlike before. Previously, the iris was overlaid as a separate object on top of the eyeball.

  • Splatmap: Using Unity’s terrain painting is essentially what this is, but we wanted to customize it so we made our own.

Notice the floor, walls, and ceiling are blending! (This image has been brightened.)

  • Interior Blend (Triplanar?): The idea behind this shader is that it interpolates between 3 textures based upon the vertex normals! This works well for cave or dungeon corridors.

Notice the improved edges where the water meets land.

  • Water: Previously, we overlaid several planes (2 planes scrolling in different directions, and a refractive plane) to achieve the look of the old water. Now with the new shader, it’s all done in with a single plane.
  • Crest: Started a shader for displaying crests/images onto shields and surcoats. I’m not showing you this yet. 🙂

Scene Transitions

Another thing I’ve been working on is improving scene transitions and fancying up the loading screen. I have managed to improve some things:

  • Loading messages will change if loading takes a long time
  • Loading messages will be less likely to repeat in a play session now
  • Fade in/outs are smoother
  • Added a ‘quickload’ option for scene transitions that are quite short such as initial splash to title screen, just fades in and back out, once loaded.

For other Unity users out there, I found that even when using additive asynchronous scene loading there’d be a hitch. This is due to many Awake/Start calls executing at once, which are on the main thread, after the scene load has finished…

For scenes such as the Town, this really increases loading time and I have been working on some solutions. Nothing concrete yet…


Fatigue

Started the basic Fatigue system that we’ve been thinking about for a while. Maybe you noticed the thin yellow bar under stamina that never did anything? Well, now as you consume stamina, you will slowly fatigue, which will temporarily limit your maximum stamina, until it’s recovered by eating or sleeping. Once fully fatigued, you will pass out temporarily.

We don’t want to turn the game into another survival game, but wanted to increase incentive to bringing food on journeys and making sleeping more beneficial.


Misc.
  • Book UI now only displays one page at a time… It was taking me too long to edit books. At this point, time is of the essence. :/
  • Reworked NPC GOAP Planning, spreads logic out over multiple frames to reduce hitches. WIP.
  • Console can now be opened in any scene, even in the title screen.

Along with updating the current scenes to use the new shaders, Andrew has begun building a castle!

Just a quick reminder, this is progress towards the next version, probably v0.2, so this is not in the active release, yet.

Have a good one!

3-Year Development Anniversary

Jon: Hello! Today marks our 3rd year anniversary of developing The Arcane Relics™! Wow, already 3 years… We certainly underestimated the amount of time needed to get this game to where it is, but we’ve learned a lot and continue to surprise ourselves by what we’re able to accomplish. This past year we’ve managed to release the 1st public demo and are getting closer to the next update.


We’ve made a lot of improvements since last November. Some notables:
(Some of these images may look familiar.)

  • Dalwood has grown in size

  • New Zombie-infested Catacombs

  • Revised magic system

  • Day/night cycle improvements: moon, stars, sky colors, clouds

This slideshow requires JavaScript.

  • Hefting unconscious characters

  • AI Improvements: simple Town Guards, pathing for Villagers, & NPCs capable of opening doors
  • Crossroads (yet to be revealed)
  • Increased movement speeds
  • Control changes: Attack buttons & sprint button change
  • Revised Party setup: characters can be created right in there
  • Crossroads Directional Signs: helps locating areas
  • Loading screen changes: radial loading bar, target scene/location name, spinny sword icon, & more message variations
  • Updated most object cursor common name displays (bottom-right)
  • Sprint FOV zoom
  • Texture improvements/changes (environment, items, UVs)
  • Look sensitivities dropped
  • NPC dialog improvements
  • Scene transitions besides warp portals
  • Additional skill group: Trades
  • More items: Helms/Hats, Weapons, Gems, Magic Catalysts
  • Few more spells & additional spell effects
  • Hit lean animations & hit block animations
  • Left-hand attack improvements: uses directional attacks, offhand does less damage
  • More settings
  • Butt-load of bug fixes 🐖💨👾

In public demo, but not present a year ago:

  • Upper Town
  • Additional plants: Blueberries, Strawberries, Rosemary, Sage, Parsley, Thyme
  • Town buildings:
    • Chicken Keeper’s house
    • Clothier
    • Inn
    • Botanical Shop
  • No NPCs in Town (just an angry mob & bats)
  • No sleep jingle
  • Cursor highlighter system: used to swap materials…

This is not a complete list, either.

Another main focus of mine has been rebuilding and cleaning up old code. Since you can learn a lot in 3 years, I’ve found the need to rewrite or, at least, clean up some systems that I started near the beginning. The tricky bugs seem to crop up in the stuff you haven’t looked at in a while.


Past Week’s Progress

This last week I’ve primarily returned to the party setup, trying to improve the usability of the menus and fixing bugs with creating characters. I also improved the device query (“Waiting for input…”). Joining on a controller should be much more responsive now.

Andrew worked on making the newest buildings into prefabs & made lily pad hats and cattail props.

Unity Tip: I also discovered builtin API in Unity for capturing a screenshot! 
ScreenCapture.CaptureScreenshot("Screenshot.png");

Maybe we won’t have lots of crazy cropped screenshot resolutions in the future…


We’re still working away and are still aiming to release the next version before the end of the year. Hang in there! 😀