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
En Yi
204329d2aa
Use float for timing in particle system
...
Also, update the assets_loader due to this
2024-04-24 21:47:58 +08:00
En Yi
6bcccf7412
Fix regression in water air timer
2024-04-24 21:30:34 +08:00
En Yi
c76ceba9bf
Add delta time into particle system updates
...
Only update the callbacks to use it
2024-04-24 21:06:57 +08:00
En Yi
0a3f56f730
Fix out-of-bound access in water check function
2024-04-24 20:58:54 +08:00
En Yi
0a6e7b4ddc
Add delta time handling
...
Internal Changelog:
- Major change: all engine that does counting uses delta time instead of
frame counting
- Animation runs at 24 FPS
- Water fill is at a constant rate as well
- Particle update will need to be given delta time as well.
- Particle system is not updated to use float, so no delta time handling
for the system in this commit
2024-04-23 22:44:52 +08:00
En Yi
6f3f391d8a
Rework the offset collision checking
...
Change the function to check for collision at the specified point.
This is much straightforward to use.
The offset point to check must be computed before passing into the
function.
2024-04-22 22:42:32 +08:00
En Yi
fec9ac268d
Adjust simple collision function signatures
...
Remove redundant position argument for the straightforward collision
functions, as the entity would have it alread.
The collision offset check function is not as trivial and requires
some review
2024-04-22 22:31:58 +08:00