Update #1


Originally posted at https://nathanmacadam.dev/

Hello and welcome to the first Game Development Log (Dev-Log) for the Spring 2021 demo of Dream Frontier! This is the 2nd attempt to create a demo for the 4th revision of this project. Dream Frontier is a turn-based role-playing game and is the latest form of our game previously titled Tales From the Unknown. Projects for school and general chaos have delayed development on this game but we’ve now had time to create a much stronger concept and plan.

In the time since most anyone has seen the game, it’s received a new claymation-inspired art style and a revamped combat system. While we haven’t gotten many major chunks of gameplay developed in these past few months, we have been raising the quality of other aspects of the game and honing our skills on other smaller games projects.

This time around we’re putting in a lot of effort to keep our project well managed.  We’ve got the works—a game design document, Jira, a scrum workflow—it’s great.  With previous projects we’ve always had some half-baked jumble of the former game dev buzz-words.  Often times we’d have a great start to a design document, and then later find ourselves with a miserable pile of bullet points and confusing notes that lacked context.  Other times, we’d set up a sprint for the week and then, almost a week from that initial meeting, find ourselves with a lot of open issues that would then get shoved into next week’s sprint.  We’ve (seemingly) stamped out this bad behavior though, and are immediately enjoying the benefits of taking that extra time plan and document our project.

This time around we’re putting in a lot of effort to keep our project well managed.  We’ve got the works—a game design document, Jira, a scrum workflow—it’s great.  With previous projects we’ve always had some half-baked jumble of the former game/software dev buzz-words.  Often times we’d have a great start to a design document, and then later find ourselves with a miserable pile of bullet points and confusing notes that lacked context.  Other times, we’d set up a sprint for the week and then, almost a week from that initial meeting, find ourselves with a lot of open issues that would then get shoved into next week’s sprint.  We’ve (seemingly) stamped out this bad behavior though, and are immediately enjoying the benefits of taking that extra time plan and document our project.

We’ve just wrapped up our first week of development and have a lot to share. Let’s get started!

Character Planning

There are a few new gameplay systems that we’ve designed for this version of the game that finally accomplish some of the goals we’ve had since the beginning of the project over a year ago. The first of these is the Encore system which goes hand-in-hand with Interactions. Encores are effectively our game’s Limits (as seen in the Final Fantasies); large actions that take time to build up and carry over between encounters. This adds an extra element of strategy that follows the player from encounter to encounter.

Interactions are simple button inputs during PSI actions that charge the Encore meter.  We’ve wanted to have a system resebleming Interactions for quite some time now. Ideally something that would keep the player engaged beyond simply selecting actions, but without turning combat into a series of repetitive minigames.  For this we took inspiration from the various Mario RPG series.  The combined end result is a system that rewards extra effort from the player with satisfying big actions without penalty for missing an interaction.

Another new system, though smaller, is Character Traits.  Each character has a unique Trait that modifies one of their encounter actions.  For example, Lavender restores PSI points when taking damage.  This adds strategy to how specific characters are used in encounters. To continue the previous example, Lavender has a limited set of high cost PSI abilities as well as a low cost Taunt ability that draws enemy attacks. This trait encourages using Lavender to shield damage from the other characters and simultaneously build up a large counterattack. The character obviously doesn’t need to be played this specific way, and equippable actions allow for additional strategies, but it adds a unique aspect to how the player thinks about using Lavender in encounters. The same goes for the abilities on the other two characters (or at least Poppy currently, we’re bad at this).

Encounter Backend

I (Nathan here) spent a lot of time this week implementing the backend for all the actions the character can take in an encounter.  From our default ‘Jest’ action, to point-based PSI abilities, using an item, running, auto-battling, and our limit-break like Encore action, I feel pretty confident that I’ve gotten a great start to what will inevitably be followed by a slog through UI coding.

Level Design

One important thing we learned from our school project “Echoes in the Dark” and a recent attempt to create assets for Dream Frontier is that we are not particularly equipped to create large 3D terrains. Instead, we’ve decided to create our levels using modular terrain assets. This method mimics 2D RPGs that used tiles, while retaining the extra dimension and freedom provided by 3D. It’ll help us save time and headache in creating assets and in making changes to a level later if necessary. It also gives us constraints while designing the levels, ensuring we don’t go overboard anywhere and making it simple to create new areas.

Thanks to this new method, we have a town and dungeon more-or-less designed for our demo and we can be confident in planning how long they will take to implement.

Mock-Up Encounter UI

I also got character traits implemented this week!  This means character’s each have their own unique encounter attributes.  For example, Lavender’s ‘Hard Headed’ trait makes her regain a small amount of PSI whenever she takes damage.  By combining these traits with complimenting encounter abilities, we hope to make the gameplay feel a little more interesting and strategic.

We spent some time this week revisiting our encounter UI.  Between rolling meters, an ‘Encore’ score, combat text, and ya know, the part where you actually select things, there’s a lot of ground to cover.  We first tried to get a rough idea of what information we needed to display to the player, and when.  We then determined how we wanted to ‘spend’ our available screen space to convey that. 

Further, we wanted to go in an artistic direction that feels right with our claymation-themed characters and world.  We’ve settled on something that sort of evokes a ‘crafted’ look, using lots of texture, as well as some drop shadows and beveling to make things feel less flat.

End result? Pretty spiffy.

Character Assets

Technically all that has changed mesh-wise in the past week is that Basil, the lead character, got a bag. And it must be noted that it is a pretty nice bag.

Beyond that, each character has been set up to work with a single material and texture. Due to the simplicity of Dream Frontier’s art style, we plan to use a texture/color atlas for the textures in the game. This will help us quickly get assets ready to use after meshes and rigs are completed, as well as leave room for more complex textures if necessary.

Balancing

Let’s close with the most exciting topic: Balancing Spreadsheets! It is actually pretty important to balance the video game and we thankfully are doing it early this time. While there isn’t a whole lot of exciting info to share here we do have a rough idea.

This week we wanted to iron out the essential elements for balancing our game.  We started out by estimating some general statistics about our game: things like run-time, and how much of that the player will spend doing various things.  In an RPG, the player spends a lot of their time in combat encounters.  By estimating the runtime of the game dedicated to encounters and determining how long we want each round of encounter gameplay to be, we can derive a number of useful statistics like how an average encounter will last, how that varies by enemy difficulty, and the average number of encounters the player will play through over the course of the game.  Though these values are tentative, they give us something concrete to work with instead of just guessing at what feels right.  They’re also the basis of a number of different encounter balancing formulas!

Besides general game info, we finalized what stats there are and figured out how we want to distribute and balance them for each of our party members.  Dream Frontier has seven stats: Performance, Spirit, Guts, Improvisation, Luck, Heart, and Mind.  Some of these values are used as raw numbers in formulas; things like calculating damage.  Others are used for determining the value of derived stats; things like dodge and crit chances, or max health.

One problem we ran into when figuring out how to handle derived stats is how to keep them in a specific restricted range.  Imagine if the character’s dodge chance scaled linearly:  at the start of the game, they may never dodge, but by the end, they’ll dodge almost every turn!  Lots of stats in RPGs don’t use linear functions.  It’s common to see polynomial and logarithmic functions, along with a number of other curves and trigonometric functions.  Instead of trying to construct the type of function we wanted purely out of the raw stats and levels, we took a page from animation and utilized easing curves and value remapping to very precisely map our stat growth between preset values.  I’m actually really happy with how this implementation turned out; it’s really flexible and a lot easier to work with once we got it all set up.

    We also figured out a pretty solid damage formula and a workflow for balancing out attacks, but there’s only so much we can talk about spreadsheets though without making things insanely boring, and we’re probably well past that point.  We’ll explore the process more in depth in a future blog post.

Absolutely riveting

And that about covers our weekly ventures! As we move forward we plan to set up a more centralized blog explicitly for posting about Dream Frontier. Until then, we’ll see you here each week! Thanks!


-Nathan & Ethan

Get Dream Frontier

Leave a comment

Log in with itch.io to leave a comment.