Click to Play!

Wednesday, July 18, 2018

Battle Gem Ponies DevLog #180 (Coding, Cures, & Confidence)

Hope rises as pieces of the overworld are coming together.
      Weighed down by post-delay sad vibes all week and only just now getting back into the swing of things as I write this at 3:30am on a Wednesday. This week was code fever and I wore a programmer cap tight while sprucing up BGP's bones.

     Lots of things are working better than ever, and lots more are sure to come. The real issue right now is seeing how much can get up and running before BronyCon. The panel is going to be a slideshow about game development in general, some Q&A between slides, how I came up with and created BGP, and what features I have left to create and how I plan to implement them. 

     And all that will be sandwiched between a Trailer to show off the game and a gameplay demo of the battle system and overworld. Then I'd like to have some sort of teaser finale to send everyone off with and encourage them to download the demo to their phones on the way out so they can remember the game later.

     But how much I can show depends on how far I get in the next 6 days, so fingers crossed, I won't hit any more road blocks. Every precious minute counts right now, and I think I might just barely make it. So let's see what's been done in the past few days.




It's been a week of coding and rewrites. Trying to get every little thing to make sense and be more efficient than before.
Laying out the bones for every possible object and scenario even if I'm not sure on the exact formulas and syntax yet.
Just want to get the grunt work out of the way so I can make each feature work as needed, when needed.
Feeling particularly proud of this new Enums script I came up with to organize those lists of things I find myself using over and over in multiple scripts. Now all centralized into one place, and variable spelling errors will be easier to fix.
This is how I can make those little dropdown boxes in the Unity editor.
Like so.

And since I can't use spaces, dashes, or any punctuation in these things, I have a conversion system
that turns 0 into space, _ into -, and 8 into ., all using the .Replace() function. 

   Completed:
  • New Cover Up System for Interior TileMaps
  • Updated Scripts for NPCs & Challenger Setup
  • Reorganized Tile Prefab Scripts
  • Tweaked TileMaps
  • Wrote A Couple Story Nuggets to Help Players Bond with Ponatina
  • Convention Panel Scheduled
  • Outlined BronyCon Presentation
  • Put Website Hosting & Domain on Auto Renewal
  • Learned New Programming Tricks About Enums
  • New Global Enumerators System
  • Messed With A New CSV Reader System and Failed
  • Updated CSV Reader Formulas Instead (wrote a new way to entire sheet to finds a row or column name if I only have the intersection and one of the axis)
  • Got Yotes Games on the Indienomicon List (status was "under review" for so long I stopped waiting for it)
On a whim I checked, and there it was!
Yotes Games is listed on the Orlando FL local indies list.

     Lessons Learned:
  • The project's release date got pushed back, morale went way down, and it took me a while to get my inner fire back.
  • Morale really is everything. I was working at a snails pace when I just wasn't feeling it because it becomes near impossible to focus.
  • I understand Dev Depression more than ever now. When hopelessness strikes, it feels impossible to finish any task at all. You just wanna lay down, scream, groan, and watch YouTube videos or scroll through Facebook & Twitter forever.
  • When I finally got my wits about me again and snapped out of it, I tried putting new productive habits into place.
     Productivity Tips:
  • A good cure for Social Media addiction is for me to hide my phone during work hours so I don't pick it up while Unity is compiling. (Now I doodle pony animations while waiting instead)
  • Forcing myself out of bed in the morning helps too. No more scrolling through Facebook & YouTube first-thing, wishing the day would go away. We've got work to do. I'll forgive myself after breakfast.
  • No more Listening to Music & Podcasts unless I'm doing something extremely tedious & repetitive like renaming a hundred files or aligning sprites.
  • If I'm doing anything that requires problem solving or creativity I get them done faster in silence because my brain has only one thing to process and focus all that attention on.
  • If I'm debating multiple ways to do something, I need to write out both on paper. If 60 seconds pass and I still can't decide which is the better way to go, I do go with the first choice no matter what and just try executing. If the 2nd thought was really that good, changing my mind should've been a no brainer. 
  • When I go exercise, I gotta go hard. Something about an intense 3-5 mile run makes stress dissolve. I come back to my computer after a nice shower, break, dinner, then maybe a 2 hour nap, and I'm ready to work through the whole night with laser focus.
One more script I'm super proud of is this centralized NPC Script.
     I've been redoing a lot of code for the sake of pipeline efficiency under my principle of "I should never have to code this twice." It's a bug avoidance and time saving measure to keep me from having to dig through all my code to find and correct every time I copy/pasted something that was broken. 

     I noticed all my NPC objects (Humans, Ponies, Trainers, and Wild Encounters) were basically the same with different names for the same variables and a few unique traits to each. So I made a new script for all "Alive" overworld game objects to use and hide away values that aren't relevant to them.

     A separate Challenger Info Script handles preparing an opponent's fighter data. I can customize each battle encounter with sliders and drop downs. Or even make a script to randomize and create infinite replayability in the Stadium Mode later.

Take a look:

It's like I'm a tools programmer or something.
     Been visualizing this in my head for a long time. Cool to finally have it up and running. If I can build little editors like this for the rest of the game's pieces I can start the fun part of turning all the scenarios written in the design document into gameplay.

Each town gets an interior map holding all the rooms of all the houses and shops.
    To save tilemap space and keep things neat, I've planned a system that allows interior maps to be crammed right up next to each other, but still remain hidden under a black square cover when you're not in that particular room. The same way I've been hiding menu elements.

     Super useful for keeping all the house rooms of a town under one prefab, and also a neat way to allow me to hide and reveal rooms as they become relevant in later scenarios where you'll be wandering through air vents and the like, so fading rooms in and out without having to do a loading transition would be a nice touch.

     Going to implement that soon as I get overworld trigger collision and basic interactions working again. It's been a week full of nonstop coding, experimenting with efficiency, and rewriting tons of stuff again so I can understand what's going on at a glance.

These are the bones that'll make cutscene creation such a breeze.  
     Finally outlining the Cutscene Events Manager in code form. I just need to come up with a neat/efficient way to write out sequences then send em to this script to be converted by the computer into animations and text the player can see.
     
     Cross that bridge when I get there. Right now I only have a week to get the battle engine running and I really want to show off the tutorial fight on my panel. Clock is ticking.
___________________________________
  


     Glad I finally shook off that week long depression spell, but that put me a week behind! I leave for BronyCon in like, 7 days and I have 14 days worth of stuff to do. Corners will have to be cut and explained away, and my panel is mostly going to be the PowerPoint and Q&A with the trailer running on loop or a Let's Play in the background. And I might not have time to make a new trailer either.

     But no matter what, the show must go on, and the Alpha demo must go out in August. It's do or die time. After 4 years of development it's high time this project got an audience. 

     I just know there's gotta be over a million people out there who'd love this game if only it was finished and they knew it existed.

No comments:

Post a Comment