Scifi Rogue - top down / 3rd person shooter game

Been working on this for a while, finally got around to posting here :grinning_face:

Teaser

Scifi Rogue

Top-down / 3rd person shooter set in a future where you have enrolled in S.C.I.F.I - Solar Command International Fleet Intelligence and are exploring unknown space ships and other installations.

Playable “tech demo”: https://demo.scifirogue.com/

Keys:

  • Alt-C: switch camera in game
  • Alt-Shift-D: show debug lines (can help you find the exit)
  • Alt-I: Dynamically load and show inspector (sometimes need to press twice)

Procedural level generation https://demo.scifirogue.com/procedural

The game use a procedural algorithm to generate levels using a grid, placing rooms and then connecting using a minimal spanning tree (and some extra tweaks to allow loops).

Dev notes

  • Game Entities are organized and queried using bjs-ecs
  • Character models are made with heave AI assistance (Flux, Trellis) and some manual tweaks.
  • Environment models are from asset packs, further tweaked in Blender
  • These are all loaded into asset containers and then instantiated from there
  • Octree is used for culling static meshes
  • Everything is setup with physics v2 (Havok), main character is using a custom “character controller” which based on input applies physical forces and blends animations
  • Top down mode works both with keyboard / mouse and virtual joysticks (iPad)

Todos

  • Make enemies intelligent (navmesh, navigation agents, some kind of attack)
  • In game HUD (health, ammo, etc). Will mostly do this with React (Tailwind?) and then interface through Zustand store / BJS Observers.
  • Shadows
  • Co-op multiplayer

See also https://scifirogue.com/

16 Likes

Managed to get some time in to implement some improvements:

  • Navmesh using the navigation plugin (recast)
  • Basic enemy locomotion animation (walk/run/attack)
  • Simple spring arm for 3rd person camera - zooms in/out to avoid walls

Video:

Try it here: https://demo.scifirogue.com

I think next thing will be looking at in-game HUD, right after some crosshair settings that our son convinced me of :bullseye:

8 Likes

This is freaking good my man!

1 Like

This looks cool!
Your 3rd person camera implementation is great.

I love procedural level generation, are you considering having multiple floors available in the level?

It would be cool when you are exploring space ships, that you can look out through windows and see space.

1 Like

Keeping things simple in terms of multiple floors - for now at least. Would need to figure out good modular tiles for stairs and tilted walls :thinking:

Good input about windows as well, more to think about.

Also if you hadn’t noticed - where is the ceiling? :stuck_out_tongue: (it’s missing on purpose for the top down view, but would make sense in 3rd person).

Updated the settings, so now you can choose different crosshairs for 3rd person - and our 8 year old was pleased :smiley:

Another option:

Understandable with the floors, I’ve always kept to 1 floor myself :sweat_smile:

Ye, maybe you could consider adding a ceiling, but only render it from below, so it’s transparent on the top :slight_smile: ?

Some initial work on the HUD :heart::water_pistol:

Using React/Tailwind with a slight CSS 3d perspective transform.

3 Likes

Hmm just realized this layout wasn’t gonna work on tablets with virtual joysticks, moved to top instead :mobile_phone:

1 Like

Latest update (demo.scifirogue.com):

  • Functional HUD (React / Tailwind, synced through Zustand)
  • Player can take damage and die
  • Reload and damage animations for player (from Mixamo)
  • Tweaked difficulty: enemy damage, move speed

Almost starting to feel like a game :grinning_face:

7 Likes

Thinking about adding another enemy type. Wanted to do something Babylon inspired, though my image AI, doesn’t seem to be too well trained on Babylon 5.

Here is what I’ve come up with so far:

I’ve codenamed it BetaKosh, as I don’t think it’s quite as intelligent as a full on @Deltakosh :stuck_out_tongue:

4 Likes

Gosh he looks GREAT :smiley:

1 Like

Ran BetaKosh through 3D GenAI (Hunyaun3d 2.5) and did low poly and bake in Blender:

p3d.in - BetaKosh

5 Likes

Tried in top-down view, it plays so well! When an enemy comes at you while pushing a box it’s like they are using cover, pretty cool.

In top down, it would be cool if you could use another aiming option that was like a red line (like if it was a laser sight) as an alternative from the dot/cross (sorry if it’s already implemented, I didn’t see it in the options).

Glad to here it runs well.

Our boy had a bit of a jump scare the other day during testing (in 3rd person) when an enemy had been hiding in a corner behind some boxes and suddenly pushed through and was right on top of him :fearful: TBH: the enemy pathfinding isn’t aware of the boxes at all, it just uses physics to try and push through, but seems to work quite well.

Good input on a better aiming visual for top-down, had just started with the simplest possible. I have been focusing mostly on 3rd person lately, maybe time to give the top-down some more love.

1 Like

I implemented using a “laser sight” line for aiming in top down. Lemme know what you think :slightly_smiling_face:

1 Like

Just tried, and I love it! Really sells the vibe to me of a solo operator shooting down enemies with precision shots :slight_smile:

1 Like

WIP: BetaKosh attack animation

Weight-painting a character with this kind of a robe is a bit of a mess, though think it will work okay for now :face_with_tongue:

6 Likes

Couldn’t really accept not having better skinning quality - even on a “Beta” Kosh :face_with_tongue:, so did a proper re-mesh, and more manual rig setup in Blender

Much better now :grinning_face:

3 Likes

Nice! Any chance this will be open source in the future? I’d love to add it to awesome-babylonjs.