The Struggle of Game Development is Real
insanity54
Kybertrike, a third person mech shooter, the game of my dreams, is becoming a reality one weekend project at a time. Let's take a look at our progress.
In Kybertrike, we want to be able to pick up items from the ground. I came up with a Module system with two parts, an Item, and a Mount. Items are dispensed from the Dropship and display on the ground, Mounts display on the Kyberpod when Modules are equipped.
I figured the best way to approach MountPoints was to define them when creating the 3D model in Blockbench. Each MountPoint is named after the location it occupies, and it's positioning is unique to the Model. This opens up the future possibility for us to easily position Module Mounts on different types of Kyberpods with different proportions, and attachments will just work (tm).
Weapon Modules need to shoot things, so I've been building on a FPSController from BeardScript. [hi I'm beardscript...] Our game is a third person shooter, so we've had to make some changes, and we've run into several hurdles. Firstly, we want the bullet to come from the gun barrel, not the camera.
This complicates how the projectile flies because our aim point originates at the camera and travels down range, but our projectile originates at the Weapon Module's barrel and travels down range. This offset between our aiming position and projectile position is the same problem we have in the real world when we work with firearms.
Rifle scopes are always above the barrel, which means we have to zero the scope to intersect the point where we intend the bullet to hit the target.
I haven't solved this problem completely and there's still more work to do especially on the type of mount like a gun that I intend to make gimbal and always point in the same direction as the camera.
One challenge I've been working through is that projectile exposions are spawning at the wrong position. I think this might be a combination of a few problems, one of which is the aim point zero offset, and the other could be a mix-up of X-Y-Z local coordinates vs. world coordinates. I'm not sure yet, but I'm sure I'll get to the bottom of it soon!
Luckily, I have resources for when I get stuck. RogueEngine Discord server has been a wonderful place to present my issues and get advice. Shoutout BeardScript for always being so helpful! Cheers mate!
I wrote some quick code to make a jumpjet. The solution seemed easy enough-- apply upward acceleration in addition to forward acceleration, right? Not quite. It turns out that the 3d physics library I'm using, Rapier, only allows applying acceleration to RigidBodies when their type is set to Dynamic. Unfortunately for me, Kyberpods in my game don't use a Dynamic rigid body, meaning their physics type doesn't allow any external forces to act on it.
I hacked together a solution which modifies the Character Controller's playerVelocity directly, but this has the side effect that physics are ignored while that happens. We can jump through other rigid bodies like buildings and mountains. Not good!
The struggle of game development is real, but I know I can't give up. There are no shortcuts or escape hatches. The best way is through, and I'm committed to the clicks because that's what it takes to create the game I've been dreaming of.
Overcoming one problem at a time, showing up, doing the work and being persistent. That's my commitment, even if it's hard. Let's make a great game!
Thanks for watching, bye.
53488588 Bytes