I recently ran across a take by C.S. Lewis on eschatology. His concept of the end times is that the point of end times passages is not so that we can play Pin the Tail on the Antichrist, but to put our actions in perspective. Christ might return in a thousand years. We’d better make long-term plans and brace ourselves for the long haul. Christ might return tomorrow. We’d better not neglect our neighbor today.
His point was that it is good to plant oaks in whose shade you will never rest. But if you prioritize the long game to the point of actively harming those around you, and Christ decides to end the show tomorrow, that would be pretty embarrassing, wouldn’t it?
Lewis was writing before Eugenics was a dirty word. When everyone thought “if we only let science do whatever it wishes, we shall cure death and suffering in a few years,” instead of having the general distrust for boffins in white coats which the technocrats have earned for themselves in the intervening years. At the time, the idea of breaking a few eggs to make a civilizational omelette was in vogue in a way it isn’t now (though sadly, as a culture, we’ve rejected it not because it is wrong, but because of the teh feelz).
His take, however, ties in quite well to thoughts I’ve been entertaining of late.
I’ve implemented giving and taking damage, and released a gif to that effect on the Twitter.
To which I got the following response:
Yeah, about that…
This month’s objective is to make an ugly prototype. The point is any time spent making it look “sharp” is time wasted.
Which is not to say these are ugly graphics and the final graphics will blow them away (though maybe. One can ponder.) Rather, these were graphics I had already lying around and used rather than make new ones.
Will they end up in the final game? Time will tell. The Scratch (hero) sprite was intended for use in 8 Lives Left. The Zelda-esque tiles were not, but they certainly fit the bill.
But even if the Zelda-esque field doesn’t make it into the final set, there’s a strong chance the final set will have a similar appearance.
The purpose of the project for November is to make an ugly prototype. All the focus is to be on the gameplay. If something looks kind of cool, it’s a sign time was spent on the wrong thing.
However, I have an itch to make pretty graphics. And once per week I work on whatever I feel like rather than the project of the month. So here’s how the characters should look in the game I am prototyping:
Maybe next week I’ll add a sword strike. Or maybe next week I’ll paint a backdrop so we can all see how the game is supposed to look.
My wife’s favorite RPG is FFIX. Which I have never played. Because I don’t like where Final Fantasy went from VII onward. For most people these days, the 6 to 7 border is where Final Fantasy began; for me it’s where it ended.
Turns out 9 is a callback to the pre-FFVII world. So now I have to give it a try for research purposes.
I’m not trying to make a Final Fantasy. I am not a huge fan of that series, even before 7. But I am a huge fan of Chrono Trigger and Mario RPG, both of which owe a debt of gratitude to Final Fantasy, and I especially love Mario and Luigi Superstar Saga and Paper Mario, which grew out of Mario RPG.
If my bubbles make you think of the Final Fantasy ATB, you aren’t far off. I have both a fondness for and a problem with the ATB.
I hate video as a format. I like text because I can read much faster than people can talk (and even speeding up a video, as I often do, I read much faster than I can listen). I like text because I can skip forward and back with ease. And so on and so forth.
Here’s a video I find inspiring and useful.
And now I’m going to textify it for my convenience, then follow it up with some thoughts.
A Box Collider2D can get the rounding advantages of a capsule collider via the edge radius attribute.
A Tilemap Collider2D will treat each tile as an individual collider unless you check “Used by Composite”, which has performance pitfalls and can get you caught on corners. Adding the requisite composite collider automatically adds a rigidbody, so be sure to set that to static.
Be sure to set static components (such as large swaths of your map) to static, to enable various optimizations.
Be sure to set your player character’s collision to Continuous and interpolation to Interpolate so you don’t have to deal with the Bullet problem.
If you want to use Physics2D.Raycast for sensors, and your plan is to start the raycast inside the character’s collider, be sure to deselect “Queries start in colliders” in the Project Settings.
Unity doesn’t play nicely with C# events. If you want a public event that multiple entities can subscribe to, look up Unity Events. If you just want one component to broadcast an event to fellow components, it’s easier to just wire them up by hand.