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

Basic gameplay features #32

Open
3 of 5 tasks
paulbrzeski opened this issue May 12, 2024 · 17 comments
Open
3 of 5 tasks

Basic gameplay features #32

paulbrzeski opened this issue May 12, 2024 · 17 comments
Labels
enhancement v6 Part of the v6 overhaul

Comments

@paulbrzeski
Copy link
Member

paulbrzeski commented May 12, 2024

Functionality needed:

  • Shooting basic projectiles and health systems
  • Killboards / players online UI
  • Implement bot behaviours
    • Need to make some dynamic behaviour switching
      • Stage 1: Basic movement and target locking
        • Default for bots is to be on patrol
        • If a player or cargo ship is in range, pursue
        • If a structure is in range and currently pursuing, break off pursuit and return to patrol location and pattern
        • Players and bots have their own target lock mechanics
      • Stage 2: Combat
        • If a player or structure attacks the bot, it flees for a few seconds and then doubles back to attack
          • If the player is in range, it will resume the fight
          • If the player has left the area, it will return to it's patrol
    • Behaviour probably needs to be part of the game/ folder so it can be on the server

Out of scope:

  • Implement Pirate aircraft and aircraft selection screens
  • Missions and objectives

Acceptance Criteria:

  • Bots move around the map using automatic pathfinding
  • Player can target lock bots
  • Mini map
  • Bots change behaviour based on others in proximity
  • Players and bots can shoot at, damage and destroy each other
@paulbrzeski paulbrzeski mentioned this issue May 12, 2024
6 tasks
@paulbrzeski paulbrzeski changed the title Feature: Basic gameplay v6 Basic gameplay May 12, 2024
@paulbrzeski paulbrzeski changed the title v6 Basic gameplay Basic gameplay features May 12, 2024
@paulbrzeski paulbrzeski added the v6 Part of the v6 overhaul label May 12, 2024
@paulbrzeski paulbrzeski moved this from Backlog to In progress in Langenium v6 Overhaul Jun 28, 2024
paulbrzeski added a commit that referenced this issue Jun 30, 2024
- Adding config class to store client level settings and persist them
- Refactoring menu system
- Code standards
paulbrzeski added a commit that referenced this issue Jul 1, 2024
- Implementing local storage for settings
- Debug mode can be toggled on and off
paulbrzeski added a commit that referenced this issue Jul 1, 2024
- Refactoring all 3D environment related code into the scenograph and it's subfolders
- Replacing all usages of window.l to just l.
- Code standards
paulbrzeski added a commit that referenced this issue Jul 1, 2024
paulbrzeski added a commit that referenced this issue Jul 7, 2024
paulbrzeski added a commit that referenced this issue Jul 7, 2024
…nd basic switching of orbit controls target
paulbrzeski added a commit that referenced this issue Aug 4, 2024
paulbrzeski added a commit that referenced this issue Aug 4, 2024
@paulbrzeski
Copy link
Member Author

paulbrzeski commented Aug 4, 2024

Early July notes:

  • Working on Basic gameplay features #32
    • Fixing minor issues
      • Debugging, fast and skip intro are now toggleable
    • Refactoring code base around the scenograph
    • Implementing scene overview
      • Got proof of concept working
        • Tried to use Tweakpane Table but it's for an older Tweakpane and couldn't get it working on the new branch either
        • Looked into making my own Tweakpane Plugin but it seems cumbersome, for now I can get away with just overriding it's inner contents and managing it myself.
    • Refactoring camera into new Cameras class with separate sub cameras
    • Implementing orbit control target selections

Todays notes:

  • Basic gameplay features #32 - Basic Gameplay
    • Just noticed there's no http server built into dev... never mind it was on https
    • Exporting a pirate model from Blender, could be good to add a thruster to it..
      • Never mind it looks wrong aesthetically and the file size is rough
    • Checking Yuka documentation for what I need to do for basic bot behaviours, looks like the options are quite API-ey so I need to think about what I want first and then figure out what parts of the spec I need to use
    • Brainstorming bot requirements. There are two sets of bots I want to build at this stage
      • Freight ships that travel between the structures
        • Could be fun to make them run away from attack so it's a game of cat and mouse to get ships to their destination
      • Pirate ships that are trying to raid the freight ships and attack players who approach them
        • A timer that spawns in the pirates initially and replacements
        • Randomise the spawn location between a couple of pre-set spots
        • They should target the nearest freight ship when spawned, fly towards it and begin attack
        • If a player approaches while they are engaging cargo ships, the player is ignored
        • If a player attacks them while they are attacking the ships, they switch targets to the player
        • If they are not near a freighter yet and the player intercepts them they will immediately aggro and target the player
    • Renaming "Ship" class to Player so that it makes more sense alongside the incoming Bot class
      • Testing, looks good
    • Reviewing Yuka documentation, looks like there's quite a lot to do in order to implement the behaviours
    • Adding the Raven model to the scene within the Bot class
      • Implementing the Wander steering behaviour so the 3D model just flies around at first
        • It's moving but very slowly and I can only seem to get it going backwards..
        • Fixed it up, it needs to be restricted to boundaries somehow
        • The camera isn't able to track the ship, need to look into that

paulbrzeski added a commit that referenced this issue Aug 5, 2024
- Moving YUKA modules into Scenograph
- Moved animation loop from overworld definition into Scenograph
- Fixing up mixup of currentTime and delta in the animation, using YUKA's calculated delta
- Tidying up wander behaviour and vehicle implementation in the Bot class
- Adding todos
@paulbrzeski
Copy link
Member Author

  • Langenium Basic gameplay features #32 Mini Map
    • Adding static HTML container with background colour
    • Aligning all the overlay colours and refactoring styles
    • Adding minimap class and player's FOV shape to the minimap
      • Adding icons
      • Replaced FOV shape with chevron
    • Adding portrait mode to HUD
    • Fixing game control positions after resizing, actually this needs more work because they need to debounce
    • Disabling overlays before game mode is active

@paulbrzeski
Copy link
Member Author

  • Langenium Basic gameplay features #32
    • Bumped three.js to latest
    • Creating new actors concept which is for behaviours that can be attached to objects to give them behaviours
      • Bots
      • Players
    • Refactoring so YUKA lives inside the game folders and is only defined once in there
      • Split old bot from client into client raven aircraft with pirate actor attached, these can then be uncoupled later but at least the pieces are up.

paulbrzeski added a commit that referenced this issue Jan 10, 2025
- Added package.json to game folder
- Completing renames for refactor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement v6 Part of the v6 overhaul
Projects
Status: In progress
Development

No branches or pull requests

1 participant