Commit Graph

401 Commits (183def69c45d59865d93a79df4415880607eb914)

Author SHA1 Message Date
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
En Yi b158bee1e8 Remove unused ActionResult
There is only one focused scene at a time as part of the design
limitation. Thus, it is no longer needed
2024-07-01 20:48:48 +08:00
En Yi c5a30bee6d Use scene idx instead of pointer 2024-06-29 13:26:48 +08:00
En Yi 0653cbd0a2 Continue plan data struct for scene management 2024-06-20 21:41:14 +08:00
En Yi 5a0c02b81a Fix out-of-bound tile check due to uint 2024-05-14 23:22:26 +08:00
En Yi 394825173d Fix inequality check for one way tile
Refactor the check as well
2024-05-14 23:22:03 +08:00
En Yi ededdb488b Fix off-by-one error in one-way tile check 2024-05-13 21:51:52 +08:00
En Yi 8765500606 Add button to toggle solid tilemap 2024-05-11 15:53:39 +08:00
En Yi 7b4af0b513 Add tilemap rendering from sprite
Internal Changelog:
- Add a mapping from connectivity to tile to render
- Add new field for static tilemap sprite
2024-05-09 21:07:15 +08:00
En Yi d7113d42fe Add neighbour solid counts
This is preparing for the tile sprites rework
2024-05-06 22:04:53 +08:00
En Yi 501a599336 Allow multi-rows sprites framing
Internal Changelog:
- Add a new field to store frames per row for a sprite
- Update sprite drawing function to bound check
- Update assets loader to look for the new field
    - Refactor adding a sprite function to reduce repetition
- Update all main programs
2024-05-06 21:18:03 +08:00
En Yi 0f09a7b2bd Remove obsolete render function field 2024-05-04 20:40:15 +08:00
En Yi 251360ca3e Fix instructions not rendering correctly 2024-05-04 19:29:43 +08:00
En Yi 21e37a328e Update editor rendering to use texture dimensions 2024-05-04 19:25:47 +08:00
En Yi bef2ee2813 Expose initial window size to scene
This is so that each scene does not need to hardcode render layer size
2024-05-04 18:28:53 +08:00
En Yi 75d019aa34 Rework rendering to allow multi-layer render
Internal Changelog:
- A scene now has a maximum amount of render texture. It is to be
  rendered in order of the array by the engine.
- A scene now needs an explicit render system to draw onto the render
  textures. The scene will also init the number of render layers
  needed.
- The change is to allow more separate of concerns when it comes to
  rendering. A scene can also now compartmentalise the rendered items,
  which hopefully make understanding the code easier.
- Update all exisiting code to use the new render system.
2024-05-04 17:57:07 +08:00
En Yi 0d4089d9ce Tweak scene render function
Delegate BeginDrawing and EndDrawing to individual scenes
2024-05-01 19:56:10 +08:00
En Yi 41e4b34869 Allow changing sound pitch 2024-05-01 17:08:29 +08:00
En Yi 1094e13c0a Fix some emitter positioning 2024-05-01 12:38:53 +08:00
En Yi 2bda67e917 Make player box a little smaller 2024-05-01 11:56:07 +08:00
En Yi 42c4572066 Rework sprite render system
Internal Changelog:
- Add more fields
    - Elapsed is now in sprite component
    - Add rotation fields
- Tweak early exit checks in render functions
2024-05-01 11:55:34 +08:00
En Yi 754d380221 Integrate mouse action into input process 2024-04-25 21:46:53 +08:00
En Yi 0fb1fe27de Display time scaling in sandbox 2024-04-24 22:15:52 +08:00