3D Sidescroller RunNGun

Update: Fine tune Player Control

Just redone player’s animations. Now player has 8 ways aiming animations for all states, except crawling on the floor state, which can only shoot 2 ways (front and back).

When press down while standing on flat ground player will go to CRAWL state

When press down on a slope he will go to CROUCH state instead because I don’t want to play around with rotating body to match the slope angle.

The level 01 game play is playable now finally. I will add a bit more assets and do some basic start / pause menus, then try to export the game.

Update:

I added Jump buffer and coyote jump to player but seems a bit buggy.

I tried model the ground and found it’s kind of a pain to match the scale between Godot and Blender. So I ended up using Gridmap again LOL but this time only for static ground. I guess that’s what it’s good for. The floating platforms are scripted so they are not part of Gridmap.

Right now there are only blocks (simple mesh with collision). I will update the meshes and textures to look more organic. I might add another Gridmap for extra stuffs like rocks/trees so I can place them on the Gridmap ground.

2 Likes

Not bad.

1 Like

Update : Gridmap with textures

-Created meshes with textures for Gridmap level.
-Add shadow to player. I’m using Blob shadows because I read using shadows cast from light can be cpu intensive especially if you wanna export for web, which I plan to.

1 Like

Update : 1st Level boss

Finishing 1st Level boss " THE WALL "

Orb will start attacking after each mountain face is destroyed. When all three orbs are killed the entrance will be revealed.

2 Likes

Update : Working Menus / Trim down game

Main Menu:

  • Start will show Pop up to choose controller then game will go to a cut scene (to do) which you can skip and start the game.
  • Level Select : You can choose to start from any level at the beginning or at the boss. I just hard code teleport player/camera’s position. This is more for debug and won’t be included in game.
  • Quit

Pause Menu: Press a key to pause then Pause Menu will show up for you to Unpause / Restart the game / Quit. Pop up to confirm your choice.

It looks simple but a lot is going on in the scripts LOL. Because I have set up my game to instance/un-instance basically every main scene in there so I have to rely on signals to communicate between them all. I’m pretty sure I unnecessary over-complicated my game with this set up but it is a good learning.

I also got a hang of Godot UI, not much but enough to get by.

As for the game itself I have decide to trim my game considerably. It will instead be shorter course levels with a bit more time fighting bosses. Reason being that it’s a first game for me to learn and practice. I just wanna put all kinds of mechanics that I learn into this one little game and share.

Next will do a lot of modelling and add more visuals.

-Low poly gun for player. Inspired by “No country for old men” film but I made it fatter. nicknamed “the bulldozer”.
-Spent few hours learning how use texture paint tools in Blender ::sweat_smile::
-Kept the nose short because I dont want bullet to instance too far out from the body hitbox.
-Small barrel - regular bullets / laser and big barrel for launching rockets I guess.
-He can conceal and carry this weapon somehow.

1 Like

Nice gun BTW. (I love the decency circle too lol)

Game characters are always pulling massive guns or equipment from their magic pockets! In Rainbow Six Siege I can only carry two grenades, but I can also carry four massive car batteries, six or seven massive wall or hatch re-inforcements and infinite window barricades. But only room for two grenades for some reason :slight_smile:

1 Like

At least they got magic pockets LOL. My player only wears minimal (easier to animate) so you’d have to use your imagination.

2 Likes
  • Refined animation holding gun
  • Added death animation. I’m thinking one-hit death like the original to make it more challenging.
  • Respawn: I just use timer after death and reposition the player at the last on floor position.
  • Player’s area3D is disabled for few seconds for respawn invincibility. However player will fall through the floating platform since it uses area3D for detection. Will figure a fix later.

Update : Stats / Win, End scene

Nothing visually interesting but I added stats (health/lives/scores/current level/current weapon) to be carried over from one level to another or when continuing. They are stored in a node called “Game_Scene” that is a parent for all game objects.

When Health is 0 : Lives decrease by 1 and Health is reset to 1.
(As I plan a 1 hit player death maybe I will change “Health” to a “Shield” feature instead.)

End Scene
When Lives is 0 it adds an End scene on top of level and freeze(end) level’s PROCESS_MODE.
When continue is pressed it restarts level’s PROCESS_MODE and respawn player
When count down is done it just removes the level and adds the Main Menu scene.

Win Scene
Shows the stats stored at the level completion.

My game set-ups use many add_child/queue_free so I’m sure there would be some stuttering when export to web. I’d need to optimize them later on.

1 Like

Progress : Just showing some updates

  • Fine tuned player movements
  • Now have save point at half way when continuing.
  • My CPUparticles fire wouldn’t show up when shooting so I’ve been spending 2 days 2 nights trying to fix the code, just to realize I instanced it on a marker3D node with its visible OFF.:weary_face:

Still need to fix laser, I’m using PhysicsRayQueryParameters3D but tested on the web really slow down the game. Not sure how to optimize it yet.

Quick update: Weapon items

1 Like

Quick update: Weapon Upgrade

Originally I wasn’t gonna have this feature but since it uses similar setup with weapon item then why not.

Update: Weapon Visuals

5 Weapon types:
Normal > Rapid : Higher rate of fire
Spread > Rapid Spread : Higher rate of fire
Flame > Super Flame : Large hit area
Laser > Super Laser : Larger hit area & Longer Laser time
Homing Missile > Rapid Homing Missile : Higher rate of fire

I’m developing a sorta similar game (2.5d Metroidvania like Metroid Dread or Shadow Complex) and I was wondering how your aiming work?

Sure. I have explained earlier on this thread.

Nothing much just been learning create lowpoly assets with Blender, Gimp, Krita.

Encountered many opensource software anti-intuitions frustration :weary_face: