“True King” Update (2019/08) – Character Creation and In-Game Cutscenes

The WordPress interface says I’ve published over 200 articles on this blog. Cool!

In the past couple of months, I’ve updated the website for “True King” to be a bit more up-to-date (the first time I’ve updated it since 2017). Notice it contains a new video, private to YouTube and only available to view on the site, giving a glimpse of the current state of the game’s environment. I’ve tried to push the site to Google’s indexing system, but unlike the past, I notice Googling “true king game” doesn’t bring up my game in the early results, one of many issues that will no doubt affect the game when it eventually releases.

But today, I want to focus on new developments I’ve added to the game: a character-creation system at the beginning, and an internal ‘cutscene’ system that takes place during gameplay.

A screenshot of the official website for “True King,” as of 2019/08/25

Continue reading

Facing the Camera: “Physics.Raycast” vs “Vector3.Dot” in Unity3D – PART 2

After further optimization testing, I felt I had enough content to write a new blog post, to follow up the original article from earlier. The big reason is because the results I came up with were wrong, due to a major flaw in my testing environment. This article will cover physics colliders parented to other objects, dot product vs raycasting, and a little bit of multithreading in Unity3D.

A lot of random-looking dancing objects. This is harder to compute than you think!

Continue reading

Facing the Camera: “Physics.Raycast” vs “Vector3.Dot” in Unity3D

I had a great time this week, having been given the opportunity to present a talk at IGDA – Ann Arbor in Ypsilanti, Michigan this month. I’ve been attending their meetups for over a year, and they consistently get a great turnout and great discussions. This time, group was a good size, the audience seemed interested, and I didn’t mumble as much as I tend to. Of course, the talk was about “3D Cel Animation.”

But with many developers and programmers in the room, they brought up some suggestions to optimize how I check which ‘perspective’ of a character should be shown at a given frame. A common suggestion was to use “dot product” at a low-level instead of relying on “Physics.Raycast.” Even years ago, this had been suggested to me. I had fears about its’ efficiency, but after a few one-on-one discussions, I agreed it might turn out to be more efficient, and it wouldn’t be hard to implement.

I felt like such a fool. For 5 years, I’ve preached the brilliance and simplicity of my design! Was an alternate solution so obvious, and really better?

So I gave it a try. And the results surprised me.

A visual comparing “RaycastAll,” “Raycast” and “Dot Product” as they relate to knowing what orientation a character is in.

Continue reading

Making Unity3D Applications That Don’t Drain Battery

If you’ve read this blog long enough, you already know: I use Unity3D a lot, and I love it. Not just for 3D games either! Making a graphic user-interface for a computer program is one of the last things a school ever teaches to Computer Science students, and in most languages, it isn’t easy. In comparison, Unity3D makes it practically instantaneous. Either with their built-in GUI objects, or by programming a custom library of clickable objects, Unity3D is by far the easiest way to make a program that requires any visual interface. Personally, I use it to make a variety of things, the most common I use being a customized text-editor to catalogue my library of DVD’s.

Yes, I used Unity3D to make a text editor. Stop laughing.

… but there are reasons why you shouldn’t use Unity3D for everything (I said stop laughing). For one thing, a compiled build of a Unity3D app has gotten bigger and bigger with each version, currently about 45 MB for an empty Windows game (I made a completed promotional demo recently, coming out to 46 MB… imagine if I had used a lower-level language, I might have been able to create a similar app for less than 1 MB!). Second, while simple Unity3D games can run on low-end GPU’s, it probably doesn’t fair well if you are using an older device without a GPU entirely. And third, and most importantly, is battery life: when using my simplistic text editor made in Unity, my Surface Pro device barely lasts 2 hours, when it can normally run for over 8 hours using other software (Microsoft Word, Adobe Photoshop, Google Chrome, etc.). Even the Unity3D editor doesn’t drain my battery as much as a compiled game does!

I only just recently found a solution to make Unity3D apps use less battery life. It isn’t perfect for all cases, but it works well for me.

Continue reading

Nvidia RTX – Ray Tracing and its Relevance To “3D Cel Animation”

Ever since its reveal last month in August 2018, and likely for months following its release later in September 2018, the tech industry has been abuzz about Nvidia’s newest line of high-end graphics cards. Titled “RTX” instead of “GTX,” the “RTX” line is capable of better “ray tracing” performance than even specialized industry-level cards from only a year ago. But what is “ray tracing?” And more importantly, to answer the question everyone’s been talking about: how does the RTX line effect the viability of “3D Cel Animation?”

No one is asking about that? Oh… well, I’ll talk about what I understand ray tracing to be, anyway. Complete with hand-made diagrams of irregular quality.

How light works in the real world.

Continue reading