Project B Journal Entry 3


Date 14.4.2024

Activity:
- Fixed moving platforms
- Added spikes (at least their hitboxes)
- Added some decorations
- Fixed the Damager script

Notes:
The level is far from finished. Unfortunately I didn't have time left because of all the scripts I had to fix. All intended mechanics are technically there, but these things still mis/don't work:
- Moving platforms desync over time. I don't how's that, since speed to distance ratios match
- So far there aren't any lights, so It's pretty dark
- Spikes are only purple rectangles for now
- Most of the decorations and VFX/SFX are missing
- I wanted to add subtle camera transitions when facing left/right or crouching

Now how I fixed the moving platforms physics. I figured there is some mechanic in PlayerCharacter that resets it's momentum, when in it should remain the same as the platform's. Most of the time I tried to use the public Increment...Movement methods. These are USELESS, since the the MoveVector value is overwritten AFTER it has been adjusted with a method. 

So I tried to adjust how is the MoveVector calculated within the script, but that only led to momentum increasing up to infinity. The solution was introduce new IsOnPlatform property, restrict the MoveVector assignment when it's true, and instead use method Move, that is public in the CharacterController2D script. Idk why are the platforms desyncing, but now they are at least playable.

Then I placed some spikes. The Damager script was straight up broken without me even touching it. I replaced the overly complicated FixedUpdate method, with 5 lines of code of OnCollisionEnter that work perfectly fine. It's actually bizarre how much stuff was being processed each frame.

I hate that Unity cannot serialize interfaces. I hate that UnityEvents supports only one static argument. It's a shame that spacing of sprites in tiling mode cannot be adjusted, or that it doesn't accept more than one sprite form a set. Unity is a nice tool for non-programmers, but it hurts me as a programmer that such capabilities are not utilized in the slightest. A company as big as Unity should've been able to implement these years ago. But I can live with that. 2DGameKit is irredeemable though.

For this course would be the best to find/create some package with huge amount of assets, but no scripts. Things like sprites or audio should be the least interesting for a learning game designer. But they should be given opportunity to create their own mechanics and systems. The ones provided are just overly complicated and cannot be adjusted very well. The range of options are very limited, and alone, they wouldn't be enough to make a fun game.

Time spent:
- Fixing Moving Platforms: ~ 5 hours
- Fixing Damager script: ~ 20 minutes
- Adding spikes: ~ 40 minutes
- Adding decorations: ~ 1.5 hours (Most of it was figuring out how to order sprites)
- Fixing up details I forgot about after my first build: ~ 15 minutes
- Writing journals: > 1 hour

Files

ProjectB.zip 65 MB
Apr 14, 2024

Get Project T

Leave a comment

Log in with itch.io to leave a comment.