Commit Graph

423 Commits (bbcef9124b319652956e25d221f4aab000332d78)

Author SHA1 Message Date
En Yi f3defcf656 Significantly Update CMakeFile to reduce clutter
This is to reduce repetition and better integrate Tracy.

Some options are added as well.
2024-12-21 18:42:45 +08:00
En Yi ee65e3c974 Extend the render queue to tilemap
This is only applied to the main game
2024-12-21 16:53:47 +08:00
En Yi e24bb382f9 Update editor rendering function 2024-12-21 15:36:58 +08:00
En Yi 04d928c97f Add a rendering queue for sprite
Only applies for editor scene as a test
2024-12-21 14:37:18 +08:00
En Yi 34b60fb699 Restore boulder movement on wooden tile 2024-12-14 16:45:19 +08:00
En Yi f4a6d6c768 Fix crash on level loading 2024-12-12 21:19:58 +08:00
En Yi 3408fb8086 Add simple camera view indication 2024-12-10 22:28:39 +08:00
En Yi a6326a3944 Tweak crate fall delay 2024-12-09 21:51:55 +08:00
En Yi ee64133de7 Fix jump sfx incorrectly played 2024-12-08 15:39:06 +08:00
En Yi 518c2def93 Fix crawlspace death glitch 2024-12-08 15:38:51 +08:00
En Yi a123e59c82 Fix unable to bash box on the side underwater 2024-11-24 15:53:32 +08:00
En Yi 2de6eaa107 Add sprites for title and menu 2024-11-24 15:43:31 +08:00
En Yi 6b4723b963 Fix jump water penalty not applied correctly 2024-11-16 11:05:26 +08:00
En Yi 0556318ca0 Fix urchin destroying spikes again 2024-11-15 21:31:33 +08:00
En Yi 5b29ad4ba4 Update swimming hit- and hurtbox proper 2024-11-13 23:06:26 +08:00
En Yi 6b59064772 Adjust player acceleration in water 2024-11-13 22:36:05 +08:00
En Yi c02eba9548 Add air pockets to level data 2024-11-11 22:59:32 +08:00
En Yi 9d5b54435b Increase water upthrust 2024-11-10 18:29:20 +08:00
En Yi 6509b33c5a Rework urchin collision with crates
Changelog:
- Fix error in urchin spawning in main game
- Reduce urchin's collision box
- Adjust crate destruction:
    - Delay with arrows and bombs, instant with anything else
2024-11-09 23:40:54 +08:00
En Yi 613d5642cc Add parsing for urchins 2024-11-09 16:15:59 +08:00
En Yi ab2928fab9 Update level data packing 2024-11-09 15:02:51 +08:00
En Yi 188c2e30a5 Add tileset info in level pack 2024-11-09 13:30:32 +08:00
En Yi abdf246382 Adjust explosion hitbox 2024-11-09 12:56:51 +08:00
En Yi c33f6f0df0 Adjust jump speed 2024-11-09 12:56:40 +08:00
En Yi 214025bc81 Adjust title image 2024-11-03 16:41:10 +08:00
En Yi 1f8c2b2151 Add dark top bar in game 2024-10-12 23:11:55 +08:00
En Yi f5fa46aeeb Settle the window size and UIs 2024-10-12 13:35:42 +08:00
En Yi b36592311a Add water splash to urchins 2024-10-05 20:32:11 +08:00
En Yi db8849a7de Add urchin particles and update menus 2024-10-05 20:22:16 +08:00
En Yi 1382cf1370 Deal with urchin's particle effects 2024-10-05 19:18:42 +08:00
En Yi e52c9445c9 Fix crash when player finish a level
This happens because the player exit entity is removed without checking
with the tilemap, causing it to linger
2024-10-05 19:07:55 +08:00
En Yi 8efa3015ad Update urchin hitbox and bbox
This is so that wooden can be destroyed by urchin. Urchin can still be
crushed by a wooden crate though.
2024-09-30 22:47:27 +08:00
En Yi 3520715655 Allow urchin to be crushed
LIMITATION
- Urchin can be crushed by wooden crates.
2024-09-29 17:58:07 +08:00
En Yi d3db15a018 Add urchin sprite and fix its spike collision 2024-09-27 23:15:38 +08:00
En Yi 2ee1e38094 Remove unneeded code 2024-09-26 23:02:27 +08:00
En Yi 8bf1957e1e Fix incorrect velocity reflection on collision 2024-09-26 21:31:24 +08:00
En Yi 9854654d61 Slightly resize UI for spawning urchin 2024-09-26 20:46:58 +08:00
En Yi ce0ca96c67 Allow value snapping for urchin spawn velocity
Also, update the UI
2024-09-24 22:30:17 +08:00
En Yi b275caf795 Add spawning urchin in editor 2024-09-23 21:55:06 +08:00
En Yi 8a731637f7 Merge branch 'main' into profiling 2024-09-08 23:06:26 +08:00
En Yi 4abe996640 Add urchin enemy
Changelog:
- Ctransform component now has a bounce coeffcient which determines
  velocity reflection on contact.
2024-09-08 23:05:12 +08:00
En Yi f6847f1ffd Merge branch 'main' into profiling 2024-09-02 22:45:47 +08:00
En Yi 066ea5e080 Accumulate collided side before check 2024-09-02 22:45:16 +08:00
En Yi 3041f5df54 Merge branch 'remove_edge_check' into profiling 2024-09-02 22:02:37 +08:00
En Yi 41585f6938 Simplify edge velocity check
Internal Changelog:
- Use tile collision to determine which side has collided and perform
  the velocity zeroing, instead of separating out.
2024-09-02 21:58:11 +08:00
En Yi c8059300ac Fix freecam bug on game restart
Changelog:
- Lock player if freecam is active
2024-08-27 16:02:55 +08:00
En Yi e00e1ff8d2 Remove player on finish level 2024-08-27 15:49:21 +08:00
En Yi ca5c653b9d Test integrate tracy into scenes 2024-08-24 21:44:23 +08:00
En Yi 10d48c1d70 Allow optional inits for scene
Particle system and entity management are now optional during scene
init.
2024-08-24 14:42:11 +08:00
En Yi add592afd2 Refactor out entity removal function
This allows a singular entity removal method for the game
2024-08-24 12:43:49 +08:00
En Yi 03a4240c6d Simplify and unify level restarting
Changelog:
- Add function to clear all game entities
- This functions is called in both editor and main game
2024-08-24 00:25:33 +08:00
En Yi 2fe3faf08f Update exit rendering 2024-08-24 00:23:17 +08:00
En Yi 16714159bb Tweak air point check depending on player stance 2024-08-21 16:28:41 +08:00
En Yi 9f496b4bee Tweak player's swimming hitbox and hurtbox 2024-08-21 16:26:16 +08:00
En Yi 34041a68bb Fix particle emitter not unloading on player death 2024-08-21 16:25:30 +08:00
En Yi 89176142b6 Readjust arrows and bombs spawning
Changelog:
- Make use of anchor point function
- Readjust offsets and anchor points of sprites
- Readjust hitboxes offset and sizes
2024-08-21 12:52:19 +08:00
En Yi d45937da6a Recenter player on ladders 2024-08-21 10:35:23 +08:00
En Yi f4167c6270 Add chest count in main game 2024-08-20 16:38:07 +08:00
En Yi bae17e8a87 Add level ending in main game 2024-08-20 14:52:26 +08:00
En Yi f208964e7f Fix rendering for finishing the level 2024-08-20 14:03:59 +08:00
En Yi 2be80ea6bf Add sprites for player finishing the stage
Also add cave exit sprite

They are all placeholder for now.
2024-08-20 14:03:41 +08:00
En Yi bf655daf8d Add mempool macros to simplify definition 2024-08-19 20:29:49 +08:00
En Yi 056b50c431 Separate out component memory pools definition
Changelog:
- Refactor the EC header files to put struct in more sensible locations:
    - Sprite and Particle Emitter + Configs are now assets, as they
      should be
    - Components type are now unsigned int, thus it is not sensitive to
      any component enums
    - Components enums are now pure index store. There are two sets of
      components: Basic for engine use, Extended for game-specific ones
- Component memory pools are now defined on outside of engine. Majority
  of the components will be game-specific, so it should be on the game
  to define the components and the mempools for all of them.
2024-08-19 18:26:08 +08:00
En Yi d2af974b29 Experiment with extern component mempool
Internal Changelog:
- Split assets from engine so that rres_packer do not need to implement
  mempools
- The idea is that mempool is incomplete and requires implementation of
  the mempool in scenes.
    - Components are usually game-specific, so this is the first step to
      decouple it from the engine.
2024-08-19 17:33:05 +08:00
En Yi e4b5695a15 Allow level end to be deleted 2024-08-19 14:24:33 +08:00
En Yi e37e89505a Experiment with timer-based transition 2024-08-19 14:24:22 +08:00
En Yi 019f39f84c Implement basic level state management
Internal Changelog:
- Remove spawn position for entity
    - Not used. If spawning is needed, use a spawning entity
- Put in state machine callback function
    - Player spawning system is part of callback function
    - Remove player spawning system
- Incorporate state transition in systems
2024-08-19 11:55:48 +08:00
En Yi f6f6d54ecf Put back the air meter
Render it on the game canvas layer
2024-08-17 20:37:20 +08:00
En Yi c20401c457 Rework free camera toggling behaviour for editor
Changelog:
- Reorder render layers
- Seperate out player related actions from others
- Add indication for free camera mode
2024-08-17 16:59:50 +08:00
En Yi acb1b7858c Add lookahead feature into main game 2024-08-17 14:59:17 +08:00
En Yi 90bbad09ae Add free-movement to camera in editor scene 2024-08-17 14:49:51 +08:00
En Yi 5d8385f9ff Refactor camera update system 2024-08-17 14:10:59 +08:00
En Yi 9fdb8296ff Add key to toggle player movement
This key will be used for looking ahead
2024-08-17 13:58:06 +08:00
En Yi e762f62f40 Decouple player dead and respawn system 2024-08-15 11:55:22 +08:00
En Yi 9410075207 Add placeholder images 2024-08-15 11:08:39 +08:00
En Yi c1207ec5b4 Properly reset a level scene 2024-08-15 11:08:20 +08:00
En Yi 13d8aafec3 Increase engine limits 2024-08-15 11:00:16 +08:00
En Yi 259fa114ca Fix water filling rate 2024-08-13 18:17:52 +08:00
En Yi c3924c862b Adjust player swimming behaviour
Internal Changelog:
- Slightly increase upthrust
- Slightly reduce air time
2024-08-13 18:17:33 +08:00
En Yi 979533092e Update main game render 2024-08-13 15:34:31 +08:00
En Yi 639aed69db Reposition level select UI 2024-08-13 15:33:38 +08:00
En Yi 0e9ba5795c Center menu screen 2024-08-13 15:33:18 +08:00
En Yi 65b04523ce Update game rendering
Internal Changelog:
- Port editor scene rendering improvements
- Make game scene ~640x480 for testing
2024-08-12 16:06:36 +08:00
En Yi 9f6c37c1fd Fix bubbling particles issue out-of-water 2024-08-11 15:50:11 +08:00
En Yi 5d1784dad8 Attempt to fix BG scrolling 2024-08-10 17:45:09 +08:00
En Yi 2c908ffd46 Update rendering for editor scene
Internal Changelog:
- Add background
- Update grid and bbox drawing
2024-08-10 17:21:10 +08:00
En Yi f20daa9cce Update main game sprite rendering 2024-08-06 21:43:40 +08:00
En Yi 4a54bfe84f Incorporate anchor point in player sprite info
Changelog:
- src anchorpoint is also an enum. The offset needs to be computed
  dynamically due to flip_x
- Re-add back the offset field.
- Add symbol parsing for anchor point.
2024-08-06 21:36:17 +08:00
En Yi 1215746e05 Add x-flipping for anchoring 2024-08-06 20:36:23 +08:00
En Yi 657110a66d Implement sprite rendering anchor 2024-08-05 21:50:01 +08:00
En Yi 2dbc1f19ab Add additional sprites for swimming 2024-08-03 17:50:08 +08:00
En Yi 8207558be7 Add title to level select scene 2024-07-08 21:08:55 +08:00
En Yi 9b6c364269 Add mouse support for scroll area
Internal Changelog:
- Refactor scroll area refocus function
    - This only triggers when selection is made
- Add mouse function process in test scene
- Add action for mouse selection
2024-07-08 19:16:10 +08:00
En Yi eff3d090df Add proper level selection actions
Internal Changelog:
- Scroll area will auto scroll to make selection completely visible
2024-07-08 18:42:29 +08:00
En Yi 41f3656ba1 Integrate Level Selection scene transition
Internal Changelog:
- Changing scene now return the scene to change into
- Set the level pack and selected level
2024-07-08 18:18:48 +08:00
En Yi 98b957a8ff Encapsulate scroll area as UI component 2024-07-08 18:02:56 +08:00
En Yi 6dd185b6cd Integrate scroll bar to level select 2024-07-08 12:40:27 +08:00
En Yi 33de816841 Replace hardcoded scene values to enum 2024-07-07 16:48:55 +08:00
En Yi 0c461d3167 Integrate level select screen to main
Not complete tho
2024-07-07 15:45:17 +08:00
En Yi 893fc1c73f Add level select scene
Just a render texture with simple scroll
2024-07-02 21:54:54 +08:00