Progress Summary
It has been another day of work and game dev. Again, I made some good progress if I do say so myself. The stuff I completed took less time than I thought it would. Also, I think I’m starting to truly get familiar with the Godot engine, which is something I’m really happy about. All it takes is consistency and an adequate challenge to tackle each day.
So, I added the “mode switching” functionality for Albert + Ping Bot. The idea is that you can switch to Albert to access your gadgets and movement on both x and y axes. You can also switch to Pingbot, which can reflect the ball. I added a risk factor: it takes a bit of time for that switch to happen. So it's very dangerous to switch modes while the bomb ball is coming your way. I figured that giving the player access to all directions of the moment in a PONG game without consequence would be hilariously overpowered.
When I first started to use Godot, implementing a timed feature took days because I was trying to manipulate the frames directly. But some days ago, I discovered the Timer node, which makes things a lot easier. It took a confusing mess of logic to handle a simple click and input field configuration. This really supports my philosophy of using direct scripting as a last resort. If there’s a non-programmatic way to approach a problem, I’ll go out of my way to do that instead. I like programming, but I want to finish projects at a reasonable pace. I don’t want to waste my time reinventing the wheel and solving problems that have already been solved.
Another feature I added: when the ball makes it past one of the paddles, the game goes into slow motion, before declaring the results (if it's either the player or CPU that got blown up). So far, it’s just a simple print action that says it in text, but in the final version, it is going to be a cool explosion. I even have ideas of funny lines the enemy pong can say as the slow motion is in action, with the explosion itself cutting it off. This was surprisingly easy to implement. I couldn’t even imagine what I would have to do to get this working all in code, but this can be easily achieved by the “Engine” class that Godot supplies. Again, the non-programmatic approach took me minutes which would otherwise take me days, or weeks for me to figure out.
One of the things I value the most is organization. That’s why I cleaned up any redundant layers being used and again scanned the project for any mismanaged files or scenes. When it comes to a scene that functions more like an object, I like to keep everything separated by Node 2Ds, which can be used to behave like folders in a scene. I could use the “Node” nodes, but more research needs to be done on those. I remember accidentally using plain Nodes and them causing absolutely bizarre issues. So I’m a tad bit hesitant to use them to hold groups of other Nodes.
Area2D nodes are all under a regular Node named “Area2Ds”. Same deal with Cameras, Sprites, and Timers. They have their own, appropriately named “folders”. I did have a bit of an interesting thought experiment about the Timer nodes. Should I use multiple Timer nodes to solve specific problems or would it be more efficient to have one that does it all? After some thinking, here’s the conclusion I made. I should separate them. One, what if I have multiple things requiring the same timer happening at the same time? That immediately breaks the action and thus ruins the appeal for me. It sounds like a potential headache that I don’t feel like encountering. Besides, I will always give up efficiency for ease of use and understanding - at least while I’m still a beginner, anyway.
There’s also the question of where to put your scripts. Which object should be computing the logic? So far, anything that has anything to do with the ball will have the logic of it on the ball object. I think this makes sense because unlike with the majority of other stuff, the ball will be interacting with everything in an actual scene. That includes the rigid/static bodies, area 2Ds, and the instantiation process. It’d be a pain to have a function on a paddle, only to realize that the wall or another object should have similar functionality. Really, the bomb ball is the main star of this game, I plan to keep the amount of logic minimal on objects other than it. And it can be achieved using the signals and singletons that Godot provides.
Plans
I’ve been putting off drawing for far too long. Tomorrow, I plan to take a break from the script and project editors and instead open up Inkscape. It’d be a nice change of pace, and I should get started on that new character. And that new character is not my only goal for the weekend. I want to draw a new itch.io avatar for myself. I love it when a person’s avatar follows the general look, defaults, and vibes of the website they’re on. Here’s a bit of info about my name: I got the idea from “The Wizard of Oz”. When I publish my games, I want my name to be “Magic Curtain”, which refers to the curtain that the man hides behind as he pretends to be a powerful wizard. I see myself as “just some guy” who can orchestrate awesome events, situations, and challenges through video games, sorta like how that man created the seemingly all-powerful being. “MagusCurt” is just some shortened version of the actual pen name.
So that leads me to the look I want to go for. It’s basically Oz. I have to do some rough sketches, but I want to look like the giant green head of the movie’s namesake, but also maybe have a frog aesthetic to it, as that’s what this site seems to be going for. This first version will not be the only one. I’ll likely make updates to it as the months go by. Of course, there are some errands IRL I have to run, so I won’t be able to dedicate my day to this (but who am I kidding, I wouldn’t spend my entire day on something productive in a world where video games exist anyway).
General
In my first post, I said one of the big reasons I wanted to start game dev is to meet people, but ironically, I’ve been a bit of an online shut-in with this project. But, I can’t even blame the project itself. I want to participate more in the community and forums, but I can’t seem to find any topics that interest me. Unsurprisingly, it seems to mainly be a bunch of posts either promoting or looking for games. Thinking about it now, I’m the foolish one for expecting more. So, to actually speak to some more people online, I might post a topic myself. It might not get much interaction, but I hope to have a fun conversation, even if it's a short one. No update on the game design document today.
I’ve mainly been going through the action items like a checklist, so there haven’t been too many changes, but this blog has given me some things to think about that might get added to the document. I’ll try to post it tomorrow or Sunday if that’s the case.
Did you like this post? Tell us
Leave a comment
Log in with your itch.io account to leave a comment.