This week instead of taking Sunday and Wednesday off, and working on my own projects on my days off, I aim to take a different route:
Sunday day of total rest.
Monday through Wednesday, Vargenstone
Thursday through Saturday, Therian VPet.
Today, unfortunately, I’ve misspent my peak creative hours. So, rather than trying to do the theoretically optimal thing (build an orc animation), I’m going to switch over to a task that requires skill rather than creativity: creating final-quality versions of the dwarf animations that exist thus far. Tomorrow, I aim to be back on the “Minimum Viable Product” train, working to bring the Orc to life. Assuming that goes well, Wednesday’s task will be to master alternate costumes for the Dwarf.
Thursday morning or Wednesday evening, we will change gears, examining how well we did on Vargenstone, and laying out our objectives for Theria.
For the first two days of the week, we were 100% on track.
On Wednesday, I took a break to work on my own project, as is my wont…
…and then the national news became extremely distracting.
This is a poor excuse. Coups, counter-coups, and political posturing shouldn’t keep a man from his work, especially when it’s going on 1500 miles away and the man can neither affect it nor further attenuate its effect on him. But here we are.
Part of this is worry over things I need not worry about. Part of it is I refused to abandon my virtual with a feature 1/4th implemented. On the one hand, I ought to say, “well, the vpet is the lower priority, so it’ll have to be back-burnered to avoid distraction.” On the other hand, I refuse to do that. This stupid vpet is a lifelong ambition finally falling into place, and I am overly fond of it.
I’m thinking of splitting my workweek into two 3-day legs, and focusing one leg on Vargenstone, and the other on the pet from here forward. In fact, so let it be written, so let it be done.
Now we come to the drama that inspired all this hullaballoo.
In Wolfenstein, the player is able to walk 8 directions, while aiming his gun 8 directions.
In Vargenstone, the player is supposed to walk 8 directions, while aiming his gun 8 directions.
That is 64 versions of each animation involving the weapon. 64 walks. 64 idles. 64 attacks. Even keeping the framerate low, to 5 or 6 frames, and at the low quality where I spend 20 minutes on an animation, that’s… a bit of work. When you consider I have to make a separate version for when the dwarf is disguised and armored, it’s 192 versions of each animation.
Now it’s not quite that bad. One of those elements (aiming or walking) but not both can be mirrored for all the left- and right-facing animations. So that reduces us to 40 instead of 64, or 120 instead of 192 versions of each animation. But that’s still one full time week per animation per character. Except I need to spend more than 20 minutes per animation.
And if we set aside my complaining about work, that’s a lot of graphics data to try and store in a game that’s meant to run in your web browser.
Wolfenstein solves this by not solving this.
Your body can animate going four directions, but because of the low possible fidelity, they are almost indistinguishable. Your gun can point in, IIRC, 5 directions per hand, and be in either hand.
Enter the Gungeon solves this by animating your character in four-directions: the diagonals.
That reduces the number of character animations to 2 sets which can be flipped. Since both sets are facing to the side, they then attach your gun to the side, and rotate the gun sprite in code, giving them 180 degrees of rotation on each side.
Again, they are able to get away with this in part because of the look of their graphics. If I were to make Vargonstone work this way, I’d have to redesign the graphics from the ground up, and then get approval from the designer, who has already approved the concept work I did 4 years ago.
Now, I could probably get away with doing one of each animation in each direction. E.g. if you aim southwest and move north, the southwest walking animation plays. This kind of shenanigan is done in games all the time. Even in big-budget, AAA, 5 to 10 year dev cycle games.
But I’ve chosen to split the torso off from the legs because I’ve decided to make the work I had previously done work. Which brings us to where we are today.
Today, my goal is to draw a single frame of the upper torso aiming forward, for each of the five directions I need to animate in. Then rig it up in Unity in my little “art playground” scene so you can aim in 8 directions and walk in 8 directions.
The key will be the difference between the direction you aim and the direction you walk. I am convinced I can choose a rotation of up to 45° without it looking bad. So, if you are facing South, aiming south, southwest, or southeast are all acceptable to just play on the upper torso. I think a 90° twist that only manifests itself in the dwarf’s tiny, obscured gut is too unrealistic. My intended solution there is to turn his legs one notch toward his aim, so if he’s walking south and aiming east, the south east walking animation will be playing with the legs. And then for the remaining possibilities, I intend to play the walking animations backwards.
Previously, I have dived into the intersection of three theories of learning. The intersection is the Grammar Stage of the Trivium: the part where you put data into your head so that you will later learn to connect it (Logic) and deploy it (Rhetoric).
There’s a couple of reasons I’m interested in this. Partly because there are a lot of things I wish to learn, and not much time. Partly because I’m teaching my own offspring, and benefit from doing so efficiently.
Timestamp 5:50. The leg animations took me 25ish minutes to do 6 frames, so we’ll say I have the two additional directions by 7.
Once again, I’m struck by how stupid I was to center a six-frame walk cycle on the crossover poses rather than the heelstrikes.
Done properly, this could have been easily three or four times as readable. Thank God it’s workably readable.
6:28. Same song, second verse.
So that’s all the legs we’ll ever need, until it’s time to remaster them at final resolution.
“What about the orcs?”
I’m hoping to convince everyone that the orcs can turn their whole body to face their target each time they want to shoot, so I can avoid animating their legs and bodies separately. But if it is deemed needful to animate the orcs in pieces to be true to the original game design (and I half expect that to be the decision), at least I will be able to explain how much longer it will take and why, so that the tradeoff is intentional.
Let’s get the dwarf his upper body, and assemble our work in Spriter!
Upper body done, timestamp 7:02.
Rough Spriter Animations done, timestamp 7:15. Now the trick is showing it off in Unity. And here’s where the fact that I’m an artist who can code, rather than a coder who can draw, is going to bite me. I’m not super familiar with the math needed to pick our facing.
We’ll hack something together. After all, while figuring out the precise angle might be needful in case someone is using a gamepad or joystick in a final game, this is a test demo, and it will be enough to pick the diagonals if multiple arrows are pressed.
Boom: Timestamp 8:00.
Right. It’s time to take a break, do farm chores, feed my kin. That sort of thing.
Our next step will be aiming and shooting which is the whole reason we separated the parts like this.
Yesterday, being the Lord’s day, and therefore a day on which I do as I like, I made progress on my virtual pet. Said progress report can be found at the bottom of this post, but I’m quite enthused with it so far. Can’t wait ’til Wednesday to work on it again.
For my new readers, “Captain’s Log” posts are regular project update posts. They occur at four times: the first day I work on a new project, the day I finish the current leg of a project, and every Monday and Friday for the duration. On Monday, I call my shot for the week, and on Friday I analyze whether I made my shot and try to adjust my plans and expectations accordingly.
Krag Vargenstone marks the first time since I formed this blog that I couldn’t reasonably be described as the ‘captain’. Which is fine — I have neither need nor want to be “in charge” of this project — but I titled the category without considering I might work on a team at some point. I may, therefore goof around with the titles.
I’m unsatisfied with the “HD” graphics used for the upper body in the south-facing walk. For one, his nose grows two sizes when he starts walking. For another, the linework is kind of terrible. But the time for me to perfect my process for the final artwork is after I deliver useable art for my programmer.
My days off are Sunday and Wednesday. Here are my plans for the remaining five days in order:
Northeast and Southeast idle and walking animations.
Aiming and shooting animations
Orc 8-direction move and idle
Dwarf alternate costumes (cloaked and armored)
If I get ahead of the curve, I can go in and figure out the art quality.
I also got a recurring weekly art commission from my church, and I intend to do that Monday of each week. But I providentially have the option to set aside a separate block of time for that.
When we left off, we had made ourselves some leg animations.
Don’t worry about the fact that they’re low quality. They’re supposed to be draft one. I hope by the end of the day I have enough time to polish one direction, so I can justify the process with the end result, but my magic 8-ball has expressed… reservations.
We need to make some torso animations and then, go into Unity and combine them. I’m leery of this since I’ll be jumping the existing project forward by a solid four years worth of Unity updates and something is liable to break. I have some small skill, but I don’t know whether it will suffice to fix anything that breaks.
But I’m borrowing trouble. If my skill is not up to the task, we can always roll back the repo in git. ONWARD!
I’m up a couple of hours earlier than normal. I credit the traditional New Years food of my people: chimichangas. That’s not a comic book reference. I’m Arizonan.
Alright. Day 2 of picking up Vargenstone where I left off. I had successfully-ish created a tileset.
I can see some issues with it, but it’s usable. First thing you do is make sure you’ve got usable versions of everything in the game, and then you go in and fix stuff. So we’ll leave this alone. And that means our #1 priority right now is a player character.
So, I’ve got a 3D model I made for reference. A hand drawn guy with shading which I decided was too much work, and a vector guy with no shading, which doesn’t match any of the other art. Oh, and attempts to build pieces for animating in Spriter.
Downloaded the repo for the first time in four years, and I’m looking it over. At the moment I haven’t touched Unity, as the Unity version in use is really old, and if we upgrade (and I hope we upgrade!) I want that to be the decision (and problem) of the team’s code monkey.
He did not give me a time frame other than January, which has a whole month’s worth of days, so I don’t know if work on the project is going to start on the other end today, or in one month. But there’s a bunch of stuff I can do in the mean time. I’ve improved significantly as both an artist and an animator in the last 4 years. I have better, more potent tools now than I did then.
At the moment I’m just going through the art, figuring out what the heck I was doing, reorganizing it, and tidying it up. I also need to re-learn Spriter.
Krag Vargenstone is an interesting sort of a thing for me. It’s a fantastic opportunity to make friends with people who want to make un-woke games. The last time I made it, it fell at a particularly unfortuitous time of my life: I was dealing with some nasty medication side effects, and I was preparing to leave my home state to help with some drama with my in-laws. Now, I no-longer need the medication that was causing the side-effects, and I am back among my own family.