First of all, happy new year, thanks to everyone who's stuck with us for all this time, and to everyone who's taken interest since the new trailer, thank you so much! We hope to deliver something to you, as of this writing, our 1240 followers! What a milestone!
And now, to the point: What's been done since we last had a proper devlog.
New additions to our team
Please say hello to our latest composer: DirectalArrow!
He's responsible for the latter half of our trailer's music and Ezreal's theme. Check out his own project Deltarune: Internal Demons, also featured in Underevent 2023! We look forward to more of his banger music and I'd like to personally thank him for helping me being more clear as a director.
...Oh, I wonder who this Ezreal guy is...
This right here is Ezreal. If you know which game he's from, you know. If not, I'm just gonna say he's from the card game Legends of Runeterra and leave it at that for your own safety.
Meeting him shortly after arriving at the mysterious labyrinth beneath The Inventory, Frisk butts head with this notorious tomb robber who will continuously bully and hinder his progress through Inven-Lana using his enchanted gauntlet and through the fact that he's older than Frisk.
What he lacks in actual archeological knowledge or common sense, he makes up in aim, as shown here. Big props to Draex for programming a library for tracking bullets! Ezreal won't be the only one aiming his shots to where Frisk is heading to, but he will be the poster boy for it.
Those sure are some complex animations for a battle sprite, huh? But before we get to that we need to talk about the Battle rewrite. Take it away, Eir!
The battle rewrite
So! The battle rewrite! What is it? What does it do? Let me explain.
It's a "rewrite" of the battle system used by Create Your Frisk and older versions of Crossovertale. The new system aims to lean more into the way Unity scenes are meant to be set up - less screens full of hard-coded mess, more focus on game objects interacting with one another.
All encounters, enemies, waves, even bullets, are now prefabs. They can be edited in the editor itself, instead of through code only. Coming from a Create Your Frisk background, this is huge.
I've also designed a new class, BtlScript
, a component that can be attached to a game object anywhere in a battle scene, and still receive events from the encounter, active enemies, waves, item use, player hurt, and so on. This is a fresh take on jam-packing a bunch of unrelated code snippets into one encounter event.
Everything being set up visually instead of solely through code will also help us with special effects a lot. It would be child's play to click an "add sprite" button, select an image, and add a custom BtlScript
that rotates an image over time, or colors it based on the player's or an enemy's health.
Finally, the decentralization and cleanup of battle logic allows us to use other Unity conventions! Namely, the Unity 2D Animation system! It used to be that sprite animations were limited by what you could code, but those days are over, now that we can use an actual timeline graph and inverse kinematics. This will allow us to make legitimately stunning animation.
TL;DR: Most of the things in battles that required code and jank now require a lot less code, and have better ways to do them.
As for how it's going? It's almost done! Sometime within the next month or two, it'll become standard in our development process, and we'll use it exclusively from there on.
Now how would y'all like to see some of those animations I mentioned?
Character Animation
Thank you, Eir!
Indeed, a big motivation for retooling the Battle System was making better animations possible. But how and why?
Up until now, animations have been made in the only way CYF allowed: Through code. And while it's gotten some really nice looking results so far, there's been a few problems with it, to say the least...
Does this look pleasant to you?
No? Welcome to my nightmare.
And this is just for a single animated pose.
On top of the unintuitive, tedious-looking code, placing the rig's parts on the scene was always a pain, boiling down to just guessing the numbers and hoping you got the coordinates correctly and constantly opening, playing and closing the scene until you got it right.
And while the rhythmic and steady nature of a sine function results in very clean results, it is very limiting when it comes to portraying animations that amount to more than just bobbing up and down in place.
This plus many other issues led to many, many hours late at night spent painfully getting these animations to look just right. Was it worth it? Yes. Would I do it again? No way.
Using Unity's 2D Animation features, we say goodbye to those dark days. Now we can animate characters as if we're using actual animation software instead of banging our heads against a wall of code and praying it doesn't break.
Without needing to exactly code and calculate where things are, we can now do more complex one-shot movements, such as flinching animations.
Rigging manually takes a bit to fully setup, but once everything is ready we have a truly a fully working 2D rig that we can move to our liking! It even has Inverse Kinematics! (Fancy animator talk for "we can just move the hands or feet around and it will drag the entire limb with it")
A whole new set of possibilities on the kinds of poses we can achieve now with this. And you know the best part of it is? The component in charge of all this is 100% accessible by the new BtlScripts, allowing us to call upon them at will.
Frame-by-frame is still not out of the picture mind you. The ideal is to combine them both to get the kind of results that will look nice.
Because yes. Frame-by-frame animation is feasible (and looks rad), but given how time-intensive it is to produce, it's best we keep these for dramatic, visceral or important moments. Such as this death animation for Dustgirl.
If Frisk is not careful, he could be killing more than just monsters this time!
A retrospective on last year and moving forwards
2023 was a very rough year for most of us, but also one that led to a lot of self-discovery, gamedev related or otherwise. I for one learned about being more clear about directions and being more transparent when it comes to important decisions such as what to post and when to post these devlogs.
Participating in Underevent 2023 gave us renewed motivation to show off our previous work to a wider audience as well as working on new things. We'd like to thank the Underevent team for including us in the event, thereby giving us that extra kick in the pants. Crossovertale feels like a completely new thing compared to last year already!
But I'd say most importantly: having a clear goal, keeping and updating a list of things to do, writing things down in places other than Discord chat and bouncing ideas back and forth between us has made progress go by faster than ever before.
...And yet, I often feel like it's still been too slow, even if it's been steady work this past year. There is a lot to do still and I'd be lying if feeling overwhelmed and burned out has not been an issue. Especially when trying to meet a deadline.
Game development is a marathon. All the different disciplines and tasks to do and refine so it all clicks just right take a lot of time and effort. Having a good script while juggling so many different characters has been especially tough to do (and the first draft is still not done!)
Not to mention, we can't work on this all the time. Self-care is important if we don't wanna go insane, we have duties and responsibilities outside of making the funny crossover game, and sometimes, life comes at you with a steel chair and it's best to worry about that first.
I won't make light of our efforts, I think we're doing pretty great, but we're few and could stretch ourselves thin without help.
We have positions open we'd love more help with:
Overworld Level Design.
Assistant pixel artist.
Assistant writer.
Assistant animator.
Tile-set artist.
Background artist.
Sound design
Someone who knows how to code for rhythm games.
Bug tester.
This is strictly voluntary, we won't be able to pay you for this.
Click on the header or here to access the recruitment form!
Well! I guess that's it for now. Thank you for your support and patience all these years. See you on 02/02!
6 comments