Skip to main content

Posts

Idle WitchCraft Sprint 6

Farmer Sprite The next character joining our roster of hand-drawn sprites is the Farmer! You may notice that this sprite is only a 32 by 32 resolution headshot of the character, rather than the full-body treatment that the Knight got. This is because we as a team have decided to pivot from doing 128 by 128 full body character art to smaller scale headshots that I can complete much faster. I would love to do full body artwork for all of the characters, but sadly the time we have left to finish this project wont allow for it. Pivoting to headshots is overall easier, but it also presents its own unique challenges. Before, I was able to convey a character’s personality and profession through a depiction of their entire body, but now I have a much more limited space to try and depict as much as I can about a character. This is proving to be a challenge as I work on the Scholar and Maiden sprites currently, but for the farmer I actually didn’t have too difficult of a time. After revi...
Recent posts

KEIS Sprint 6

  This sprint, I worked on improvements to the enemy AI, solving the issue of players having to search for the last few stragglers at the end of a wave to move on, and making the Weapon HUD functional! Enemy Auto-Chase Throughout the project’s development thus far, all enemies’ AI were initialized to the Wandering state upon spawn, meaning that they would navigate to random nearby points, waiting until the player entered their sight radius before chasing and attacking. This sprint, we decided that we want enemies to instead start in the Combat state. Thankfully, due to the way that I set up the enemy AI in previous sprints, this was easily accomplished by initializing the AI state to Combat upon spawn, and plugging in the player character as the attack target. Super Easy! This worked great for the light enemies, who would now immediately book it toward the player. However, this implementation had some undesired effects on the behavior of ranged enemies. With ranged enemies,...

Idle Witchcraft Sprint 5

  This sprint hasn’t been my most productive due to some external circumstances, but I still did manage to finalize our first customer sprite, the knight! This guy proved to be quite a challenge. I haven’t had much experience doing character art, only winging it as best I can when a project calls for it. While far from perfect, I’m still really happy with the result! I began the process by building out the pose I wanted with a sketch. I took a very loose approach to this as all I wanted was to get an idea of the features and idea I was trying to convey. After this sketch, I kind of jumped the gun by going straight to flat colors. I tried to refine the details of the sketch while also figuring out the basic coloring, and I wasn’t very happy with where it was going, so I ended up tossing this attempt and restarting this step. I realized here that trying to properly work out the details and color at the same time was biting off more than I could chew, so I decided to limit mysel...

KEIS Sprint 4

  This sprint, I worked on some upgrades to the heavy enemy, some touch-ups to the wave system, as well as ensuring that the player will always see the tutorial once before they first play the game. Starting off with the heavy enemy, feedback indicated that it felt too similar to the medium enemy. They were essentially the exact same, except one was bigger and shot more rapidly. In order to further differentiate the two, we decided to give the enemy a burst-shot, as well as a unique ground slam ability that would hinder the player for getting too close. For the burst fire, I decided to use a delay loop that would retrigger until int Burst Index reached 0, decrementing it at the end of each loop. At the end of the loop, an event is called that notifies the AI controller that the burst fire sequence is complete. I think that in the future, it might be better to take another stab at this using a timer handle, and probably some more descriptive function names than “FireProjectile...

Idle WitchCraft Sprint 4

  This sprint, I started by implementing alternate success conditions for certain scenarios. This means that for some scenarios, there will be multiple different stat checks that can lead to different outcomes, and potentially different scenarios down the line. Two different outcomes of the scholar’s exam scenario. One for high intelligence, and one for high charm! This was an interesting programming challenge, as I had to figure out how to associate these alternate conditions with the data table that is currently holding all the scenario information. The interesting thing about these alternative outcomes is that they function as almost half a scenario. They have no intro dialogue, but they do have a unique stat check, outcome dialogue, and list of scenarios to unlock on success. Because of this, I decided that I would copy the current scenario into a new struct. That way, I could “swap out” certain pieces of data at runtime without having to fill my data table with duplicate inf...