Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1395452 Posts in 67264 Topics- by 60346 Members - Latest Member: ShreddedTemple

September 24, 2021, 07:40:04 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsLeilani's Island
Pages: 1 ... 63 64 [65]
Print
Author Topic: Leilani's Island  (Read 277793 times)
Prinsessa
Level 10
*****



View Profile
« Reply #1280 on: February 12, 2021, 03:54:06 AM »

Woohoo, congratulations, it has certainly paid off considering how amazing the game looks by now!
Logged

vdapps
Level 3
***


Head against wall since 2013


View Profile WWW
« Reply #1281 on: February 12, 2021, 06:41:17 AM »

Congratulations! Gentleman I admire your patience and dedication!
Logged

Suttebun
Guest
« Reply #1282 on: February 13, 2021, 06:07:46 PM »

I enjoy how it feels like a homebrew game..
Sort of like, you don't have to release - and look at how fun the game is and how much more you can play with.
Logged
brewfall
TIGBaby
*


View Profile
« Reply #1283 on: February 22, 2021, 08:49:34 AM »

This is the only DevLog I look at, I love watching the progress. Keep up the great work!  Toast Left
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #1284 on: June 12, 2021, 07:41:07 AM »

Current list of collision system posts:

Collision System Part 3B: Interactions again

This is a follow up to part 3A of the collision system series of devlog posts. I said I'd go over how the interactions work in various different hitting-block situations.

The previous post showed Leilani using INTERACTION_BUMP_STRONG to break a block. The interaction that's used varies depending on Leilani's current powerup / state, resulting in differing her ability to break blocks.

  • Small Leilani - INTERACTION_BUMP_WEAK
  • Big Leilani - INTERACTION_BUMP_STRONG
  • Fire Leilani (while in fireball state) - INTERACTION_BUMP_SUPER_STRONG



The main thing Leilani needs to know when hitting a block is whether to rebound off it or not. This is done based on the reaction that the block returns. There are four possible reactions:
  • REACTION_BUMP_BUMPED_REBOUND - Block was bumped, whatever bumped it should rebound off it
  • REACTION_BUMP_BUMPED_NO_REBOUND - Block was bumped, but don't rebound off it
  • REACTION_BUMP_NO_EFFECT_REBOUND - Block was not affected, but still rebound off it
  • REACTION_BUMP_NO_EFFECT_NO_REBOUND - Block was not affected, don't rebound off it
I don't quite remember why the difference between BUMPED or NO_EFFECT is important, I don't see any parts of the code that differentiate between these reactions Cheesy. So all we need to worry about really is whether it's a REBOUND or NO_REBOUND reaction.

The rest of the effect of hitting the block (whether it gets destroyed, items come out of the block, etc) is all handled in the block's code.

Small breakable block
  • INTERACTION_BUMP_WEAK: Block is damaged/breaks. REBOUND
  • INTERACTION_BUMP_STRONG: Block is damaged/breaks. REBOUND
  • INTERACTION_BUMP_SUPER_STRONG: Block immediately breaks. NO_REBOUND

Big breakable block
  • INTERACTION_BUMP_WEAK: Block is not damaged, only bumped. REBOUND
  • INTERACTION_BUMP_STRONG: Block is damaged/breaks. REBOUND
  • INTERACTION_BUMP_SUPER_STRONG: Block immediately breaks. NO_REBOUND

Lava rock block
  • INTERACTION_BUMP_WEAK: No effect on block. NO_REBOUND
  • INTERACTION_BUMP_STRONG: No effect on block. NO_REBOUND
  • INTERACTION_BUMP_SUPER_STRONG: Block immediately breaks. NO_REBOUND

You can see that NO_REBOUND allows two quite different cases depending on if the block remains intact (in which case it'll behave like any normal solid collision - in the gif above Leilani rolls up and over the block which is normal behaviour when hitting any kind of wall), or if the block is destroyed (in which case Leilani won't respond to the collision at all and will move right through it).

Digging Interactions

One last block type with quite different interactions altogether is the diggable soil blocks:



This looks like quite a complex interaction between Leilani and the soil block that would require them to be pretty aware of each other's state. But actually they can be fairly well decoupled.

After hitting something solid, and after Leilani has already tried doing the relevant INTERACTION_BUMP_* interactions with no effect, she'll then test to see if something diggable is there. This is done using either INTERACTION_DIG_TEST_WEAK (for small Leilani) or INTERACTION_DIG_TEST_STRONG (for other powerups). These interactions have no actual effect on the block but are intended just for checking whether digging can happen.

The soil block receives this interaction. If it can be dug then it returns REACTION_DIG_BEING_DUG. Otherwise it'll return REACTION_NONE. The large soil block can't be dug by only WEAK digging so would return REACTION_NONE if small Leilani tried to dig it.

After the successful dig test Leilani goes into a dig state in which she'll stick to the wall and keep rolling. She knows which entity she's digging and will adjust her vertical position to match the Y position of the centre of that entity (you can see this in action in the gif above when Leilani digs through the big soil block and lifts off the floor slightly).

Every frame while Leilani is digging she'll continue to collide against the soil block entity and will send another interaction - INTERACTION_DIG_WEAK or INTERACTION_DIG_STRONG (note the lack of "TEST" in these ones). This interaction lets the other entity know that digging is continuing.

When the soil block receives these interactions it goes into its own 'being dug' state, losing integrity over time, emitting particles, shaking, etc. It returns REACTION_DIG_BEING_DUG again which lets Leilani know that she can remain in the digging state.

If Leilani stops digging then the block will just exit from its 'being dug' state because it's no longer receiving the INTERACTION_DIG* interactions. If the block is destroyed then Leilani will no longer collide with it and naturally leave her digging state that way.

Also a quick reminder that these systems aren't specific to Leilani even though I may talk about them as if they are. Some enemies recently gained the ability to dig through soil blocks using the same interactions:

Logged

Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #1285 on: June 12, 2021, 07:51:54 AM »

Coffee

Aloha! Apologies for the long devlog hiatus. I was struggling to find much time to work on the game so ended up taking a break from it - I last posted on the devlog in February, though was still working on the game itself until sometime in April, so I've actually only had a couple of months off development. Hopefully I'll now start to have a bit of time here and there to devote to the game again (work and baby permitting) and can figure out where I was and start to get back into it.

I just wrote a new entry in the collision system devlog series (see previous post), I felt like I didn't want to restart the devlog without at least some meaningful content! I also have a few gifs saved from work I did before April so those will appear in some upcoming posts.
Logged

Prinsessa
Level 10
*****



View Profile
« Reply #1286 on: June 12, 2021, 08:32:48 AM »

Welcome back! Another great update. Always fun to see the inner workings, all seems as nicely organised as ever.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #1287 on: June 13, 2021, 07:15:16 AM »

Hope the break was refreshing! Coffee
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #1288 on: June 18, 2021, 06:18:38 PM »

Hope the break was refreshing! Coffee

It was mostly because I had literally no time or energy to spare for this project so I don't know about refreshing! Cheesy But slowly getting back into work on Leilani will hopefully feel nice at least.

Charging Grunt enemies revamp

Now for one of the features I worked on before my break - revamping another enemy type.

I have these big enemies currently just known as Grunts (better naming of enemies will happen at some point!), I don't know if I ever went into any detail about them in the devlog.

Basically they're large patrolling robots that can carry different weapons - they're my version of the Hammer Bros, Boomerang Bros etc from Mario games. Or indeed enemies like the boomerang-throwing duck from Wario Land.


The unchanged boomerang version of the enemy

This one has a boomerang. Once it spots Leilani it'll walk back or forward to maintain a certain distance from her and periodically throw its weapon.

I had a version of this enemy in the game that held no weapon at all:


Old version of the charging enemy

This was implemented in basically the laziest way possible Embarrassed All I did was alter it's 'alert' behaviour so that, rather than trying to maintain a certain distance from Leilani, it would try to chase her down instead. However it moved so slowly that it was hardly even obvious that it was chasing Leilani, and not much of a threat. I had added the spike to its belly so that it could hurt Leilani if it did manage to walk into her.

Anyway, I decided to revamp this and make it a much more interesting enemy.


New version of the charging enemy

It's now carrying a spiky shield, and has new animations for actively charging at Leilani. The charge can result in it smashing blocks, causing other enemies to roll, or being stunned when it runs into a solid wall. I'm really happy with how this turned out! In terms of being alike to enemies from Mario games it's now filling the Chargin' Chuck niche quite nicely. And in Wario Land terms it feels like a nice reference to Wario's shoulder charge move.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #1289 on: June 20, 2021, 08:43:32 AM »

I was just about to say: can hear the Wario shoulder charge sound effect in this gif!
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #1290 on: June 25, 2021, 04:26:21 PM »

Missile Collision Improvements

Another recent improvement to the game was in the handling of collisions with missiles. It was inconsistent and not fitting with the game's form-fits-function design ideology.



You could hit the flat side of horizontal missiles to nudge them up or down. But trying the same with vertical missiles would hurt Leilani!



This is now more consistent, you will rebound off the flat side of the missile rather than taking damage. Also, it's not shown in the gif, but rolling into the flat side of the missile with nudge it sideways in the same way that the horizontal missiles can be nudged.

I also made changes to allow the booster side of the missile to be treated as a "Fire" type of damage. For the most part this just hurts Leilani as normal, but Fire Leilani is immune to the damage and gets instantly heated up allowing her to use a fireball or do her flaming roll move without charging it up.



Damage Feedback Improvements

The changes to missiles inspired some general improvements to how different types of damage are handled throughout the game, now with new particle effects specific to each type of damage.



This gif shows all the different damage types. In the order shown in the gif:

  • Electric damage - from the enemy's energy projectile
  • Crush damage - squashed by the moving platform
  • Fire damage = from the enemy's boosters
  • Spike damage - from the spikes on the wall and floor
  • Blunt damage - from the rolling bomb
  • Poison damage - from the bouncing poison blob

Each damage effect also indicates the direction from which the damage came, as shown by the difference between the two spike damage effects in the gif.

Hopefully this just provides a bit of extra feedback in hectic situations to let the player know why they took damage! Also given that Fire Leilani is immune to fire-type damage I think it's particularly useful to indicate when this type of damage is being dealt.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #1291 on: June 26, 2021, 11:40:13 AM »

Does the front of the missile hurt Leilani? And if not, does that mean that their purpose is more about obstructing her?
Logged
Prinsessa
Level 10
*****



View Profile
« Reply #1292 on: June 27, 2021, 03:42:16 AM »

I feel like every time I reply to this thread I'm just repeating myself, but it all looks so good! Cheesy
Logged

Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #1293 on: June 27, 2021, 01:45:11 PM »

Does the front of the missile hurt Leilani? And if not, does that mean that their purpose is more about obstructing her?

Yeah it does, the missile will explode when Leilani touches the front of it. At one point a long time ago the missiles had rounded fronts but I made them a sharper point to make them look a little more dangerous, though hopefully the fact that it's a missile gets that idea across too! As with many enemies in the game they're intended to be a mixture of threat and tool, which is why Leilani can interact with them to nudge them off-course and affect where they go.

I feel like every time I reply to this thread I'm just repeating myself, but it all looks so good! Cheesy

I really appreciate the continued support! Coffee
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #1294 on: June 28, 2021, 12:51:34 AM »

If you're worried about communicating danger, maybe making the front blink red to indicate that that's the dangerous hot-spot would work? Since quite a few games use "red blinker" as a shorthand for "armed explosive" so many players will have already learned to read it that way.

Also, I forgot to mention it in my last post but I'm in the same boat as Prinsessa: this devlog always delivers! Coffee
Logged
Razz
Level 6
*


subtle shitposter


View Profile WWW
« Reply #1295 on: June 28, 2021, 03:01:46 PM »

wow, I haven't been on TIGsource in quite a while, but it's really inspirational to see you still plugging away at this project. game looks awesome as usual, can't wait to play it! Wizard Hand Thumbs Up Right
Logged

bayersglassey
Level 0
***



View Profile
« Reply #1296 on: July 17, 2021, 07:02:23 PM »

This game just feels so satisfying. Belated congratulations on 7 years of dedication to it. Smiley

Edit: also, I've read various parts of this devlog before, but not all the posts on collision detection. I just read the one on slopes and those gifs are just pure eye candy.


It's like a stress reliever...
« Last Edit: July 17, 2021, 07:13:18 PM by bayersglassey » Logged
Pages: 1 ... 63 64 [65]
Print
Jump to:  

Theme orange-lt created by panic