I’m Learning Godot

Good Morning from my Robotics Lab! This is Shadow_8472 and today I am learning a thing or two about game development with the Godot game engine. Let’s get started!

Why Godot?

Godot has had my interest for several years. As far as I can tell, it is the only general purpose free and open source game engine (if you want to make a block game for the fun of it, use MineTest instead). Engines like Unreal and Unity allow you access to their software free of charge until you make it big enough that it’s worth their bother going after you. With Godot, your final product is 100% yours, but as with other open source projects, you are encouraged to donate as you are able.

I Want to Make a Sonic Fan Game

My sister (Tzarina8472) and I were on a dog walk when we decided a game about Cream the Rabbit in a chao garden would be fun. The adorable and ever-popular chao –per fan consensus– have gone criminally underused since they were featured in Sonic Adventures 1 and 2 (SA1, SA2) (and their Director’s Cut remasters), where player characters could raise a number of these creatures in a number of themed gardens. Once your chao is strong enough, you can enter it to compete in chao races. While our hypothetical game revolved more around what a wild chao garden would look like, it still made me want to play it for myself.

I have been admittedly lacking in access to primary sources for this project. I only own Sonic Adventure 2: Battle, but both my GameCube and Wii stopped working before I made it half way through the game’s content. We picked up a used Wii in good condition for cheam on short notice on Thanksgiving (Thank you, Jesus!), so that will be on my to-do list some time. Otherwise, I’ve been playing a humble offering I found in the Android Play Store library called PocketChaoGarden.

“Installing” Godot

Godot proper doesn’t require installation. Download/unzip it, and you can run it directly from your file system. The stable version is Godot 3.5.1, but Godot 4 is in beta. Long story short, between my two daily drivers, only DerpyChips is willing to run the stable version. I kept getting any number of errors I’m clueless about for other configurations. I will be adding this and a selection of other of my open issues to my Discord server.

Learning Around Tutorials

I have found the GodotQuest brand tutorials to my liking. They have two introductory course lines – one for game developers switching to Godot, and one for programming newbies. I already know about variables, loops, and data structures, but I bet on the non-elementary course line skipping over vital information about how game engines work in general; I opted to review.

I focused on the playlist Getting started with the Godot game engine in 2021[1]. It introduces concepts one short video at a time. Most importantly: Games are made up of scenes. Scenes are made up of nodes. Scenes can act like nodes for building larger scenes (think: a player scene or enemy scene being put into a level scene). One script can be attached to each node. GDScript is a Python-like scripting language that’s been optimized for use in Godot. The playlist concludes with a pair of two hour long videos where it walks you through assembling a creep crushing game – once in 2D, and again in 3D.

Our Game So Far

I skipped the 2D game and went wildly off script on the 3D one. Where the tutorial provided a textured model, I spent an hour or so making a poorly textured cube in Blender with a sprite of Cream’s face as provided by Taz. I coded the horizontal movement, but I diverged from the tutorial around half an hour in.

A lot of my improvements since splitting with the tutorial have been invisible to what would be an end-user. I spent around day figuring out how to use materials effectively so I can replace art assets without the need for Blender. I reorganized the internal node structure and am presently playing with getting inherited scenes to behave.

Takeaway

This post needed longer than a week to study. I’m learning a lot, but if I gave any more through coverage, I’d find myself parroting the tutorials.

Final Question

Have you ever wanted to make your own game?

I look forward hearing your answers on in the comments below or on my Socials.

Works Cited

[1] GDQuest, “Getting started with the Godot game engine in 2021,” youtube.com, Apr. 22, 2021. [Online]. Available: https://youtube.com/playlist?list=PLhqJJNjsQ7KEcm-iYJ2a8UCRN62bTneKa. [Accessed Nov. 28, 2022].

A Thought of Incomplete Towers

Good Morning from my Robotics Lab! This is Shadow_8472 with a small thought for the week. Let’s get started!

As much as I hate to admit it, scope is important when working on a project. Luke 14:28-32 bids anyone who wants to build a tower first assess its cost and compare against personal treasury. The advice truly applies to non-monetary resources as seen in the following illustration of a king going to war with an army twice the size of his own. Even if you are the only witness to the foundation you laid, incomplete projects are a constant source of annoyance when you lack the resources to complete them.

I am in such a situation in pursuing a Linux phone. Even this post is an example. I was going to observe how I probably should have focused my attention on a tablet. It’s basically just a phone without a dialer, right? Alas, as I began writing this paragraph, I figured I should do some background research on Linux tablets… If phones are wanting, tablets are even farther behind.

I’ve taken a few days to think about it. When given a choice between a phone or a tablet, the typical user will choose the phone. With the bias towards phones, limited development efforts are focused accordingly. From personal experience, I have observed how apps designed without the larger screen in mind sometimes do strange things if they even install. The same thing happening with an entire operating system is not something I’m prepared to deal with.

In other news, I’m now active on Twitter @Shadow_8472. I’m still considering my balance of priorities: digital privacy vs. free speech, so at most I’ll be adding around here is a traditional link on my socials page. However, I believe the new direction Elon Musk is taking the platform is an improvement from what it was doing prior to his buyout.

Final Question

What projects of yours would have benefited from an evaluation beforehand?

I look forward hearing your answers on in the comments below or on my Discord Socials server.

I Choose AnySoftKeyboard as My Android Keyboard.

Good Morning from my Robotics Lab! This is Shadow_8472, and today I’m finalizing my decision on an Android Keyboard. Let’s get started!

AnySoftKeyboard (ASK) is not the perfect keyboard for me. As I stated last week, the default (Googled) keyboard that came with my tablet is my control test for user experience. The only visible features I find it lacking are up/down keys and a dark mode. ASK offers both of these, but offers additional features I need to grow into.

Unlike other keyboards I tried, ASK is especially flexible if you don’t move on before you’ve explored the depths of its settings app. Buried within its confines are a number of prebuilt top and bottom key rows – around a dozen each. The most unintuitive feature for me was a list of swipe gestures I could safely ignore if it wasn’t key for switching keyboards on-the-fly. I even found a “developer mode” with 41 different types of text fields to test how the keyboard behaves.

My biggest standing complaint with ASK is the confusion over exactly what is a “language.” Installable ASK languages appear to be plugins for key mapping/dictionary pairs, while Android’s installed languages menu brings up a set of all installed on-screen keyboard programs. ASK’s definition is the better descriptor, but a multilingual end-user who only cares that things work will accept Google’s definition before something more descriptive like “keyboards.”

Special thanks to muneyotxi for showing patience while educating me about ASK’s less obvious features – namely long-pressing the Return key for a faster access to keyboard app switching.

Final Question

AnySoftKeyboard is an almost trivial tweak to Android I would recommend for anyone thinking about digital privacy. What other raw beginner level tips do you have to share?

I look forward hearing your answers on in the comments below or on my Discord server.

I Replaced My Android Keyboard and You Can Too!

Good Morning from my Robotics Lab! This is Shadow_8472 and today I have a side project of the week while I work on something larger. Let’s get started!

My journey to replace the default Android keyboard on my tablet started with the need for an up arrow. I already had left and right (a massive improvement over tap, check, and revise), but no up or down – which would be extremely helpful when using an SSH program I rarely use.

As a note to the unaware: Google collects as much data on you as it can get away with, and they use it for their own profit. Their word suggestions as you type works by sending them your keystrokes and memorizing you well enough to predict your most likely next words. Symbiotic or parasitic relationship? I don’t need this feature, and it is a privacy concern. For me, the answer is parasitic.

Switching to a new keyboard was as easy as installing any regular app. Note that I am preferring F-Droid over installing through a Play Store client. My first find was Unexpected Keyboard, a keyboard with a dark mode and four-way arrows. If only it wasn’t designed around key swiping, I’d be more than content with the ability to hold Ctrl+Shift+left/right to select text.

Shortly afterwards, I found Open Board, a fork of the AOSP (Android Open Source Project) keyboard. It too has a dark mode, but its visual familiarity despite lacking enhancements such as the left/right keys has kept it relevant to my search. My biggest complaint is that the backspace doesn’t play well with Collabora Office, an open source document editor I used this week to write about a page of fiction.

Much later, I tried out AnySoftKeyboard. Where I’ve had a chance to form a full opinion on the first two, AnySoft appears as though it could be a compromise for a “just chilling” type of keyboard. It has the left/right keys I’m so fond of, but auto-correct is a slight bit too aggressive.

Most importantly, I learned that each keyboard is handled as a separate “language” by Android. All three keyboards have the option to quickly switch to another, and that makes the goal of finding the perfect keyboard less important than defying the monopoly by straying from the gold standard for its deal breaker. My tablet is one of two operable portable devices I own with one being purely experimental. I don’t want to lose the other because I didn’t know enough of what I was doing.

Takeaway

I wish I had a pie chart data the typical smartphone collects on its user. How useful to its masters is each piece? How hard is it to mitigate each slice? The hardest part of replacing a keyboard has been finding a single one that works, and I cannot always tell right away because they often require time to explore any configuration options. For now, any issues I have with each board are not so important when I can easily access a menu to switch boards. This is more of a progress report than anything final. However, I am glad to report that I’m well on the way to a solution without breaking non-redundant functionality.

Final Question

What on-screen keyboards have you tried out?

I look forward hearing your answers on in the comments below or on my Discord server.