Shoot for the Stars Devlog 38: Big Brain Play!
Hello Everyone! Here we are with another big update to Shoot for the Stars! This time, we talk more about the battle system as well as further details on the big art changes and optimizing our workflow. We've added scripts to photoshop to make certain actions easier, as well as getting very familiar with the brand new art style. we've taken the time to really polish up any loose ends and make this game the best it can be!
Rob C. Miller
Lead Illustrator/ Game Design
Hello all. We’re here once again with the monthly Devlog, where we update you on what we’ve all been up to this month. And once again, it’s another month of redos for me, as we’re still working on getting caught up by redoing all the needed art pieces so that they are in the new art style.
In terms of that, I’ve finished the characters in each of the intro scenes. We’re now in the process of finishing the backgrounds of those scenes, with Kayla doing the line work and the coloring being left to me. I’ve also got most of the puppets up to date, with only a few left. After that, I believe I’m caught up on my end with the redos and can move on back to working on the Event Editor and the rest of the assets that I’m responsible for finishing, in order to get this demo out.
Month 2 of working with this style, and I’ll say I’m getting used to it. One thing I was worried about before working with this was staying consistent enough as I did more and more pieces in the style. As you may have noticed, the line work is made up of shapes that are each a different thickness. However, it appears I’ve stayed fairly consistent. A challenge with this style is figuring out the best way to render light and shadows, as I’ve found I have to move away from my usual process in order to compliment the style, particularly with grass and dirt. The style is more graphic in appearance than how I normally work, so the rendering must also be more graphic-looking. This led me to creating “shadow shapes” within the grass and dirt, and changing these shapes based on what type of surface it is. The grass has more sharp, pointy angles, while the dirt looks more blocky. (See example below)
If you’ve been following us on social media, you may have caught a glance at a post showing off these intro sequences. Those were done with a more “painterly” coloring style. However, now that the outlines of the characters are made up of shapes of varying thickness, we have to also change the coloring to match them. This is the direction we will be going.
For next month’s Devlog, I plan to be done with the rest of the redos on my end and I’ll hopefully have more new updates for you all. I’ll hand it over to my associates for now.
As Rob mentioned, this has been a big period where the artwork in the game has received a great deal of redoing the artwork. This is inclusive of the website landing pages as well as the puppets, menus, sprites, and event scenes.
With this in mind, this also gave me the idea to add more “details” to some of the 3D models, such as The Cards and Comics Shop. These 3D models get used for the visual novel backgrounds and also help aid with the overall layout of the maps.
Optimization is also something we’ve taken into great consideration not only for the player, but us, the developers, as well. A Few months ago, we learned that creating tilesets for the overworld background not only greatly reduced the FPS, but allowed us to also create infinitely larger maps with no loss in return. When coming up with the tile sets, it was quite tedious at first breaking up the maps and saving out each tile. With that, I talked to Ryan about how nice it would be to have a photoshop action that could just blast through an entire map and tile it for me. We put our heads together, and I created 2 actions for photoshop while he created a script that told photoshop to run those actions in a specific automotive order until the whole image was cut into bite sized pieces!
With that said, what would have taken a few hours to complete now only took a few minutes to tile all the maps that appear in the demo, and will be significantly easier for future maps for the whole game.
Rob and I have also been going at a pretty steady pace working through the rest of the card’s artwork that appear in the demo for the game. We’ve more or less come up with a system to create a certain amount of card art each week to keep ourselves at a good work pace for everything needed. I can also agree that after doing the new art style now for 2 months, the style is now a lot easier to work with and I feel I have also gotten the hang of things as I’ve been lining the background assets in the pictures. I personally really look forward to adding more life into the sprites with this new art change, as well as also adding more of an animated quality to them.
Programmer/ Game Design
So as I sat down this morning I reflected on the devlog I wrote last week. After some careful pondering and consideration, I came to the deep, philosophical realization that I had written it a month ago. Quite a lot occurred this past month, and it feels like it all blurred past in an instant.
As I continued to expand the size of Seon’s brain, I found myself having to bounce back and forth a lot between working on his AI, as well as advancing the functionality of the gameplay itself. Much of this work was involved particularly in the battle phase itself.
Seon has made a lot of progress in the ancient art of placing cards onto a game board. For now I simply want him to play cards in a somewhat random fashion to allow the player to experience something different each time, while also making sure he would play cards in a way that would allow him to utilize effects. To accomplish this, I actually created 2 different decision trees for his main phase decision making (Yea, I explained all the technical mumbo jumbo on decision trees last month. Go read up on it there). One for making decisions on playing Fighting Creatures, and one for making decisions on playing Support Creatures.
I know, “play a card” seems like quite the arduous decision to make; however, there is a lot of nuance that goes into what to consider when playing each type of card to make sure effects can be used. In the full game even more specific decisions will need to be made in this regard to create AI that plays in a more strategic and focused manner. With these two trees I have Seon process them in the order of Support Tree, Fighter Tree, Support Tree again to have him refill old squads of surviving cards, begin new potential squads, then fill those squads out as necessary.
With that I was left fairly pleased with the current state of the Main Phase. It was now finally time to move on to the Battle Phase. Before Seon could be scripted to make the perfect play every time in combat though, I had to actually make the Battle Phase you know… actually do something.
I began to move off AI work and jumped right into managing attack declarations. I needed cards to be able to determine what their actual valid battle targets could be. Checking existing cards in the same column was a simple enough task, but the game also allows you to attack Fighting Creatures linked to targetable supports in their Squad. Luckily, due to some valuable forethought, the squad construction from days long past came in handy here. All supports contain a list already of Fighters they are attached to, so it was simply a matter of tapping into that list to determine the rest of our valid attack targets.
Originally I had intended to perform this check after the attacker had selected to make an attack; however, it came to my attention that I still needed a way to determine if a card could perform a direct attack. I had already been storing the targets temporarily in a list when determining targets, so I realized I could simply determine targets when opening a card’s context menu in battle to determine if they had any obstructions before displaying whether to attack or direct attack. If they don’t I give them the option to direct, if not they get the option to attack. That information could then be passed on into the actual target selection step since it already is being stored.
My next step was both to take care of some necessary functionality for the game itself, as well as to visually prove/flex how cool my attack targeting system was. I had assembled a system to manage battle animations. I simply created a listener that I could shoot events to that would spawn battle animation objects. This would allow me to insert battle animations where I need them between tasks. With that my beautiful programmer art fire animation was born (And died because the animation objects destroy themselves when they’re done.)
We now had attack targeting and the perfect fire animation, so my next step was to handle the aid steps. I could captivate you with the tales of cards valiantly sharing numbers with each other to topple their foes, but unfortunately those stories must wait another month, as this is currently the part of this story that is still being written.
Thank you everyone for tuning into another update. We'll be continuing to add more to the battle system as well as dive into more animation s with the Sprites and puppets! The next big update will be 6/25/2021. Make sure to follow us on Twitter for all the latest updates. The demo gets closer and closer to complete with each passing week, so see you next time TerraZone Fans!