3D Sidescroller RunNGun

Yes but it’s just what you see on the videos and plays very badly because I didn’t know how to optimize for web so stutters everywhere.

As soon as I finish level one I will give a demo link for anyone to try.:+1:

1 Like

Roger that :slight_smile:

UPDATE : Level Visuals

*sped up to keep under 1min

Creating level is harder than I thought. Not from the technical side but creative side (what to add, how to place them..etc). Also you can get carried away on little details, trying to make it “look good” while forgetting the big picture.

I went off track on learning to create procedural textures on Blender, trying to make good, realistic-ish texture. This stalls my game progress so I realized I gotta keep it simple and grounded.

I now will start doing all the levels first by prototyping objects with simple color shadings and gradually adding more details and textures at later time.

There a few bugs I need to take care of as well:

  • The player uses last is_on_floor position for respawning position. When he dies dropping down from the disappearing platform he will respawn but the platform is no longer there so he has means to go forward.

  • Boss orbs somehow can be shot while they are hidden and deactivated.

  • Player’s Blob shadow position

Moving forwards, there are 5 levels planned.

  • Mountain
  • Factory
  • Underground sewer
  • Infected Headquarter
  • Lair
2 Likes

You’ve got a lot of features in there already, it’s looking very playable :slight_smile: Some particle effects / explosions / stuff wouldn’t go amiss.

1 Like

QUICK UPDATE : Add underwater count-down.

Count-down timer when underwater (when player is crawling in the water area). Reset when come up (for air), dies when time runs out.

1 Like

Been working on obstacles for levels.

  • Spikes Trap
    Can be set to static spikes or moving spike Up/Down/Side to poke you.
  • Revolving Electric Shock
    Rotates every 1/3 , only hit when the lightning is align to player’s plane.
  • Spikes Wall
    One touch and your’re dead.
  • Lava Bubbles
    Jumping lava bubbles (best known as mario’s lava bubbles)
  • Poking Columns
    Can be set individually to hit on all sides or just from the tip (so you can stand on it)
  • Spikes Ball Cannon
    Shoot huge spikes ball from the background at you.

Will add some more later.

2 Likes

this game looked different by time

1 Like

i like where this is going, gododo is cooking

1 Like

UPDATE : Some Enemy

Just finished coding this guy so just thought to share.

  • 2 states (patrol and attack)
  • Will attack when player is close, go back to patrol when far.
  • Some gun aiming when player is higher or lower.
  • Will have 2 versions (Normal and Upgrade)
  • Normal can be shot anywhere to the body while Upgrade can only be shot in the back.
3 Likes

UPDATE : Some more Enemies for level 2

Level 2 is going to be in a factory so most of the enemies are robotics.

Mechanical Arms

Arm movement using Tweens and shoot slow moving projectiles. Aiming by using look_at().

The ones on conveyor belt are moving using PathFollow3D. They will only shoot or get shot when above ground by using PathFollow.progress. For example, I know the progress between 1 and 10 is above ground so:

	if pathfollow3d_4.progress >= 1 and pathfollow3d_4.progress <= 10:
		arm_robot.shoot()
		arm_robot.area_collision.disabled = false
	else:
		arm_robot.area_collision.disabled = true

Mechanical Walker

Starts by walking out of the background and turning to face the player. For example:

# Walking
position += global_transform.basis.z...

# Turning once reaching the foreground (z axis = 0)
if position.z < 0.05:
	body.rotation.y = lerp_angle(body.rotation.y..)

I’m using Enum States for 2 attack types.

A) Shooting projectiles according to where the player is. As an example:

	if distance_to_player > 2 :
		projectile.velocity = Vector3(-2,2,0)

B) If the player tries to crawl under it will squash you.

	if distance_to_player <= 2 :
		State = state.SQUASH

Using a simple animation_tree for blending animations (by lerping the values of blendspace2D)

2 Likes

I really like the mechanical walker, it encourages the player to move around, but not too predictably :slight_smile:

Might it be more fun to be able to use the crawl mechanic for something, rather than being punished for using it? To get behind it, or to bypass it, or maybe its own shots hit it when aiming at the player below itself, or something.

1 Like

Thanks :+1:

I thought about the crawling under to escape the walker’s attack but then I’d need to code a few more checks and add more animations to it :laughing: . I decided to leave the walker as a simple enemy and make the bosses more challenging instead.

This project is kinda dragging along slowly imo so I just want to keep it simple. In fact I’m about to simplify this game even more by reducing player’s animations, weapons and enemies.

1 Like