[mini horror/survival] The Passenger

thePassengerRPG

Hello everyone!

Over the week, I’ve been working on a mini-game to install on the custom handheld machine that I want to build.

It’s a mini Survival-horror game, although it’s really far too cute to really be “horrible”…

You’ll play as the survivor lost in a derelict spaceship, trying to find their way out.

You’ll have to battle androids, but at some point, an unrelenting Alien constantly chasing you.

The game is about done, I need to iron-out a few things, and give it a proper ending, and I’ll post it here, for the community to enjoy :slight_smile:

(I’ve slashed the framerate of the gif to optimize, the game, at least on my machine, rune wayyyy smoother, although, when I post it, I wouldn’t be against a code review to see how I can optimize further)

Stay tuned!

10 Likes

Part of the polish work is to refine the splash page >

More to come…

6 Likes

the art looks amazing! can’t wait to play

7 Likes

Is there a “best day” to launch games? A day where forums are most active, so that the thread doesn’t get buried…

Also, it seems I forgot to put the [game] and [show and tell] tags: is there a way to edit my original post? (or can a Mod do it?))

1 Like

Roger that.

2 Likes

its best to post new games when you make the topic…
Its good to note that less posts are approved on weekends so probably dont try to post then
(other good timings would be on friday morning, so that i gets approved on friday and not on monday with the backlog of new posts from the weekend)

3 Likes

So is this gonna be an alien game or are you changing the splash screen title

Js wondering because that looks like a xenomorph to me

1 Like

Gotcha! Thanks for the pointers! <3
I’ll keep it in mind for the future (I saw a bunch of posts hyping future games, so I assumed that was the ‘modus operandi’ :))
Maybe a mod will be nice enough to retrofit the link to the game in the head message once I post it…
I have one more nasty bug to fix, and I’ll be ready…

1 Like

“loosely” inspired would be the keyword… as in “you are in a spaceship, and at some point, you will be hunted by an unkillable pixel monster quite reminiscent of the famous xenomorph…”
Also, just the title is quite an hommage: in French, they kept “Alien” as the title, but had “Le 8eme passager” (the 8th passenger) as a subtitle …

See, I don’t do “subtle” :wink:

2 Likes

Ok, I think it’s ready for other people’s eyes.

The Passenger

Lost aboard a derelict spaceship, you must escape before you’re hunted down by mindless androids and an unkillable Alien — the nightmare passenger sharing your drifting tomb among the stars.

What is it?

A “proof of concept”, a mini game…something short but complete. With a surprise at the end?
A quick and cheap nod to Alien games.
Something I can install on the custom handheld that I’m planning to build this summer.
Hopefully something the community will enjoy. (Thanks @Luke, @AlexK and @cheetor11 for engaging!)
A pleasant reprieve for me, from making “larger” games (I’m currently working on 2 much, much larger projects, in 3D etc)

What did I learned?

Stupidly, I made the whole thing in-browser… at some point, the Blocks lag was near intolerable. Then I discovered you can actually download and install a local copy of MakeCode: lag? Gone! :slight_smile:
With this realization, I might attempt a much larger game, later.

What now?

I’d love if some experienced makers could give a quick review of what I could have done differently?
I’m a bit frustrated with the lack of OOP / encapsulation - if there’s a way around that, that might allow me to code games with a much deeper logic. Maybe there’s an extension out there that is reliable and allow to embed states in objects, etc?

Hope you guys have fun

SPOILERS:

Summary

Level 1 is a tutorial… It’s meant to be easy.

  • Find the key to open the blue door. This will spawn 3 androids
  • Just kill those pesky androids and exit

Level 2 is the real meat of the mini-game:

  • Every android you kill will respawn randomly
  • Health pots respawn at random locations every 25 seconds
  • An Alien will constantly chase you down: its pathfinding makes it a much more threatening enemy
  • It cannot be killed
  • The moment it reaches you, it’s game over
  • Find the exit before dying

Level 3 is what it is :slight_smile:

4 Likes

Loved the demo, art is really nice and it has a great idea behind it. The keycards and doors and done well, and the player’s blaster is cleanly made. However, the enemy AI is keeping this game from being great. the soldiers still shoot me when they are already dead. It’s because of this 750ms delay in the code:

I see you have sprite utility installed, I’d recommend using this extension’s on sprite update block:

The thumbnail you made is phenomenal, the alien looks super intimidating, but the alien doesn’t feel scary in game because of how easy it it to avoid, but with a few adjustments to how it pursues the player, it would fill the shoes of the thumbnail.

One idea is to have the alien have to states: one where it “sees” the player and one where it does not. Using the sprite update blocks again, we can control the alien’s path. You could use the distance between the player and the alien to check if it “sees” the player but that could get messy around corners. I’d recommend the sprite sight extension. This extension detects sight with rays. When the alien gets close enough to see the player: it swap modes and stops using the sprite path to chase the player with the more direct “follow” block:


In a different loop that operates less frequently, place the original astar path code:

Now the alien will be much better at chasing the player. However, they can still get stuck on corners, so we will amend the alien to have a smaller hitbox for tile collision which will significantly reduce that issue.

Putting the code in a sprite loop also lets you have multiple aliens for later levels.

Sprite Sight:

Example:

Use sprite data:

Hope this helps!

2 Likes

It does more than help! This is phenomenal advice! :slight_smile:

1 Like

Thanks again @Bifrosty - I’m re-sharing because there was a small bug in the enemy AI (the sight needs to be “true” when the distance is inferior to 150 - the oversight is also on the screenshot, in case someone later consult this thread for learning purpose)

That’s exactly what I was hoping for: tools like Makecode have a lot of idiosyncrasies that only people that worked with it a fair bit know - That was a masterclass, @Bifrosty ! Thanks for all the advice, and yes, the Alien is WAY better now (I thought of it shifting both from pathfinding to follow based on distance alone, but it was too easy to confuse him on small obstacles like crates, etc… that “Sight” extension is a life-saver and a must have!)
And for the enemies shooting you beyond death…well, let’s put that on laziness on my end :slight_smile:

2 Likes

I’m glad this helped so much! I did actually set the Boolean to false on purpose, because otherwise the alien won’t always know to walk around walls. Setting the Boolean to true omits walls from the sight check.

2 Likes

I think I understand – you obviously know what you are doing, so I’ll change it back and re-share… I thought it was an oversight :slight_smile:

1 Like