Skip to content
New issue

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

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

Already on GitHub? # to your account

Add theme modes and health collectibles #4

Merged
merged 10 commits into from
Oct 14, 2024
Merged

Add theme modes and health collectibles #4

merged 10 commits into from
Oct 14, 2024

Conversation

lloydlobo
Copy link
Owner

@lloydlobo lloydlobo commented Oct 14, 2024

Overview

This PR improves visuals with new themes, player mechanics, and the development setup.

Changes

  1. Visual Adjustments

    • Added theme color values (2b2ea02).
    • Tuned light scattering (godsray from moonshine library) shader for better theme intensity (5d6ad75).
      • Caveat: Lacks old school vibe with high_light theme mode.
    • Adjusted contrast for player/game elements (7dda780).
  2. Gameplay Tweaks

    • Smoothed alpha transitions and reduced laser fire rate (6cfc595).
      • NOTE: Alpha varies based on startup dt and needs to be consistent across devices.
    • Scaled down player size, adjusted eye trigger behavior during invulnerability (9925c0a).
      • Larger eye-like feature set enhances consequences of player's actions.
    • Added shield/health collectibles to replenish health (c89a79c).
  3. Dev Setup

    • Added Nix development environment configuration for easier setup (fd4427f).
    • Fixed LOVE packaging error (7583736).
      • Moved source files to src/ directory. Now love main.lua must be from run within the src directory.

Future improvements

  • Fix alpha inconsistencies. (medium/low priority)
    • Review smooth / interpolated alpha calculation in renderer.
  • Improve font sizing for themes. (high priority)
  • Add timers for berserk mode, dash, and laser cooldown. (low priority)
  • Add cooldown for spawning health/shield after recharge. (medium priority)

NOTE: `alpha` seems to depend on start `dt` accumulated.
This varies based on each game instance's startup conditions.
e.g., sometimes alpha could be .6111 or .8234 and fluctuate from there,
but does not deviate a lot from the starting alpha value.

We need to look into how this all works and make it consistent, no
matter the device running the game.
Fx for the collectible is a bit janky for now, but suits the background music.

Future improvements:
- Refactor collectible into state, and constant shields to config.
- Allow for 2 additional shields to collect. (Will lead to rewrite of health based code and side-effects)
- Decreased player radius, player trail count.
- Increased laser radius, player eye trigger.
- Now invulnerability timer also effects player's eye trigger size.
  - When damaged and invulnerable for a second, the eye gets big and
    shrinks by a fraction for bounce/spring effect.

Also we cleaned up the config.lua file, to use private-like variables to
set "constants" inside the module/package table in `config.lua`. Phew!
that was wordy...

Future improvements:

- I should FIX the damn alpha!!! It's janky.
- Introduce better font sizing, to go along with theme
- Introduce limit timers for:
  - Beserker spin mode (high)
  - Laser cooldown after a while (only for combined "beserker + dash" mode)
  - Dash (high)
Running it installs LOVE and other test dev-dependencies
@lloydlobo lloydlobo added the minor version Automatically create a new minor version tag after PR is merged label Oct 14, 2024
@lloydlobo lloydlobo self-assigned this Oct 14, 2024
@lloydlobo lloydlobo marked this pull request as ready for review October 14, 2024 03:11
@lloydlobo lloydlobo merged commit d7fe38f into main Oct 14, 2024
2 checks passed
@lloydlobo lloydlobo deleted the themes branch October 14, 2024 04:13
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
minor version Automatically create a new minor version tag after PR is merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant