Design, deconstruction, and development details of our indie RPG!

Category Archives: Philosophical

I’m starting to understand, Kirb old buddy, why it took you nearly a year to get 2D physics under control.

This has been a baffling past week in a way that I can only call the Unity equivalent of the unexpected discovery of the accelerated expansion of the universe and the proceeding need to posit and model dark matter as an explanatory hypothesis.

Put more simply: game physics always seem to be just a couple steps shy of operating in the way that one predicts. All the placeholder rocks in this picture—the big ones—have colliders (essentially hitboxes, defined boundaries for collision detection). I’m sure of this: I followed various tutorials multiple times each to make sure I did everything right. The placeholder characters have colliders. I’m sure of this because they can’t move through each other.

But the controllable character can move through mountains. Now, at first I thought this was like the opposite of dark matter: instead of seeing an effect on the universe and inferring the existence of invisible matter with certain properties, I see the absence of an effect and infer the non-existence of my visible matter.* That’s also how a certain scene in the st—oh, wait, spoilers!

Then I discovered something interesting. The controllable character can move through mountains, but the stationary character can’t; I can push her around the map, but not through mountains (or over the water). This means that the colliders always have been working, but somehow I’m unintentionally overriding them with my character movement script.

All of which means that now I’m on the hunt for a pathfinding solution. I need a way to check where I’m about to walk before I walk into it so that I can stop before I move instead of starting to move and then detecting whether I should stop.

The most promising solution I’ve found so far is unfortunately geared toward polygonal games—its own creator says that it’ll slow a tile-based game down quite a bit—so the search continues.

* The above concludes today’s game developer content. Now for a philosophical tangent: You may have heard the saying that “absence of evidence isn’t evidence of absence,” but that’s not a universal truth applicable to all situations at all times. To illustrate: the fact that I’ve never seen a coyote on my way to Las Vegas isn’t evidence that no coyotes live anywhere in that desert area, but the fact that I’ve never seen a coyote in my house is powerful evidence that no coyotes live in my house. This is because of probabilities—there’s no guarantee and not even necessarily a likelihood that I’d see coyotes while driving if they were there, but there’s an extreme likelihood that I’d encounter a coyote in my house.

So it would be reasonable to assume that my visible colliders somehow don’t actually exist if they have no impact. (I was still half-joking, though—it’s more likely that my colliders were broken than non-existent. =P)

Essentially, whenever an unpredictable agent enters the picture, like animal behavior or especially a person’s inner thoughts, then “absence of evidence isn’t evidence of absence” applies at its best. The fact that someone has never expressed interest in skydiving, for example, doesn’t mean that she doesn’t want to try it; it only means that she’s never felt a need to express it at a specific point in spacetime when and where you were within earshot. And so you learn and build relationships on the basis of suboptimal, incomplete knowledge about one another.

Speaking of intense romance, did you know that diamonds are thermodynamically unstable matter that will, over millions of years, eventually transform into graphite? So next time you consider buying a diamond ring, try looking into a box of pencils instead—they’re a more ultimate form of matter, the super saiyan to diamonds’ base form, battle-hardened and time-tested by years of entropy.

Positive reinforcement, I thought. As soon as I manage to create a functional overworld sprite, I’m going to In-N-Out Burger and I’m ordering a 4×4 and that mass of beef will be the only thing I eat all day, but it’ll be worth it.

That was around ten or twelve days ago.

Negative reinforcement, I thought—and that was four days ago on Monday. No matter what, I haven’t been able to get past this hurdle. Until I do, I won’t write any devlogs. I don’t get to do that until I prove myself worthy!

And now… I’ve got it!

As I solved issue after issue, at first it seemed like everything was wrong except the sprites.

Chunks of the tile map somehow ended up on the wrong Z plane—something impossible to notice by looking at it from a 2D perspective—so it wasn’t that I was passing through them, but passing in front of them. I noticed it mostly by chance when I got so desperate that I started looking over every individual setting of everything.

When I finally had sprites bumping into each other, triggers were working but collisions weren’t even though they’re pretty much the same thing. I chalked that up to differences between Unity’s current 2D physics and the tutorials I dug up using older versions of Unity. (I’ve gotten colliders functional since then, though; this was another matter of individual settings and nothing wrong with tutorials or videos elsewhere.)

Throughout this process, my antivirus programs’ real-time scanning kept blocking permissions to save or access data and Unity doesn’t give any indication of why permissions are denied; Dr. Google resolved that one. I still don’t know why that hasn’t been going on forever or at least consistently since I didn’t change anything with my programs, to my knowledge.

And all of this to say no, not only did I have these tangential problems, but on the direct front, I can only string together a C# script for character movement and animation if my life depends on it. =P (To my credit, I actually did put together some of the code on my own. I went through many a resource to get the basic gist of it, but most of them avoided diagonal animation for simplicity’s sake, so I had to figure out that much on my own. (Not that I intend to have eight-directional sprites; like Chrono Trigger and certain cutscenes of Final Fantasy VI, they’ll move diagonally even if the sprites only face four ways.))

But now it’s done! At very least a sprite can move and collide with itself. I told myself that I’d have everything working by Sunday’s end, but I’m pretty sure that character-to-character collision detection was the third hardest part, sprite animation was the second hardest part, and the random surprise errors from left field were the hardest part, so character-to-terrain collision detection should be comparably easy.

Originally a script for a video review, so some parts may stick out and, without visual aids, I recommend having played the game already! Note: this is for the originalTales of Symphonia, so if anything changed in the re-release, I haven’t touched on it here.

Oh, right. “I just believe” isn’t too terrible a response. We all believe in at least a few things we haven’t seen firsthand.

caption: dark matter, string theory, human rights and other Platonic notions of justice or goodness, parallel universes, life on other planets, life at ocean depths that haven’t been visited, animals you’ve never seen, countries you’ve never traveled to, the laws of physics remaining constant tomorrow

And I’ll give credit for not pulling out Pascal’s Wager.

No, not that Pascal. Wrong Tales game!

caption briefly flashed; people will have to pause if they want to read it: In all seriousness, while Pascal’s Wager may be a poor reason for Christian faith because of the specifics of our faith, namely that “I’ll believe just in case lulz” arguably isn’t a belief, it’s a pretty handy tool for probabilistic utilitarians in the tangible world. I don’t know for sure if lead-based paint, cell phone signals, sulfates in shampoo, aspartame in soda, or fluoridated water are harmful or if microwaves really so supercharge the particles inside food that our bodies’ defense systems cease to recognize them as food and begin attacking them like poison or something. I just ask myself what it would cost me to avoid them all and the answer was “not much,” so I kept microwave popcorn and tossed out everything else. No more philosophy in the rest of the videos, promise!

—

—

—

7) It’s Bunglers All The Way Down

The party leaves Palmacosta again, but in their absence, Chocolat’s taken to a human ranch. Everyone agrees to save her, but first they run into the ninja girl again, praying in a church. She gets huffy and flustered while Lloyd and mostly Colette disarm her with kindness and get her name, Sheena, until she can’t take any more happy power and smoke bombs out again. (Caption: Hopeless Characters: 1)

Now off to the ranch. The Governor’s assistant warns everyone they’ve been led into a trap, so Kratos and Raine want to ditch Chocolat and go save the world. Colette vetoes them because she’s the Chosen, and the assistant wants in too. Even though he can’t fight [Hopeless Characters: 2], Lloyd’s like yeah, sure, because no one knows as much as him about being told you’re worthless.

Originally a script for a video review, so some parts may stick out and, without visual aids, I recommend having played the game already! Note: this is for the originalTales of Symphonia, so if anything changed in the re-release, I haven’t touched on it here.

The story in Tales of Symphonia, especially early on, aims toward old-school RPG fans. People who value originality above all may not like it too much, but some of us live for this kind of thing. For the most part, it’s a fun and lighthearted fantasy story–and like with so much classical fantasy (see the Silver Age of comics, Dragonball Z), the story is a little silly (see Batman: The Brave and the Bold, original Dragonball), a little cheesy (Star Wars, Sailor Moon), and even a little self-contradicting, but that’s the beauty of it and it has a big heart in the right place.

If you want to jump on the emotional roller coaster, though, you’ll need to play the game yourself. I’m only here to make fun of what I love. To get 100% completion, you need to finish this game at least three times—and I did that and started noticing certain… things. I’ll take them in the order they come up.

the three mandatory best friends for 100% completion

—

—

—

1) Colette Brunel Who Now?

It seems like the writers had no idea what to do with Colette’s character. I’m not saying I don’t like her! I like her a lot, but we’ll talk about that later. I’m just saying it seems they wanted to make their heroine appeal to everybody, so they gave her every character trait they could think of even when they conflict with each other. You can tell in the first few minutes if you look for it. Let’s go to examples!