Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hacky multi-Z implementation issue tracker #8

Open
6 of 27 tasks
TheArturZh opened this issue May 11, 2024 · 1 comment
Open
6 of 27 tasks

Hacky multi-Z implementation issue tracker #8

TheArturZh opened this issue May 11, 2024 · 1 comment

Comments

@TheArturZh
Copy link
Member

TheArturZh commented May 11, 2024

Mission impossible make moony's april fools joke playable

Current bugs in local repo

  • Fix mapinit working weirdly with zlevels
  • Fix weird client crash when going back up from broken level
  • Fix lowest viewport still rendering when on lowest level (double render)
  • Fix crash when rejoining the game with actor on multi-z map
  • Z view OnCompShutdown crash ("Collection was modified")

Required upstream changes

Edgecases and shit

  • Make falling predicted and make it trigger when parent changes so server doesn't die
    • Ensure gravity is not toggleable for multi-z constructions (override gravity generator behavior)
  • When pulled object falls down it starts glitching. System should either break pull or prevent falling.
  • Falling should shift object in a direction of movement to prevent wall clip (if it will not work well then just snap em to a tile as a lazy fix)
  • Random rotation and position should be handled properly for multi-z stations
  • Grabbed object should also teleport when player traverses via ladder or stairs. It should take the same position as the character. It however shouldn't be done when just falling.
  • Automatically disable split checks for multi-z constructions (Nope I'm not dealing with that)
  • Walls should create indestructable tiles on upper levels when anchored and restore original tiles when removed/unanchored. This is needed to prevent players from falling through walls.

Improvements and features

  • Falling should stun player
  • Damage should be mainly directed at legs (whenever NewMed is merged)
  • Add multi-entity stairs - one denies fall damage, other pushes you up
  • Implement batch map loading & linking (multi-level stations) - via staiton proto mb?
  • Add cross-map substepped spring joint
    • All grids in the stack should be linked to a single grid for better stability, and substepped at the same time
  • Add solid vertical cables and pipes that occupy entire tile
  • Multi-Z Atmos (oh god oh fuck)
    • Need a quick cross-level gas traversal check - perhaps a separate ceiling/floor map, because I'll also need fake ceilings/floors
    • Multi-Z atmos mode should only work for multi-z constructions
  • Make mass scanners display all layers for multi-z maps
  • add ceiling overlay for topmost layer in a construction so shuttles don't look stupid
  • multi-z FTL (necessary for sierra)
@TheArturZh
Copy link
Member Author

TheArturZh commented Jun 3, 2024

Need to check if setting SpriteComponent.Visible every frame can cause major performance issues
If not, I can try to generate low-res visibility mask by sampling tiles of grids within screen bounds and use it to hide some of the entities. Additionally I can sample viewport texture / light buffer, assuming that RGB 0,0,0 is FOV.

that was a bad idea

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant