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

Login with username, password and session length

 
Advanced search

1369502 Posts in 64351 Topics- by 56369 Members - Latest Member: cozycloudprod

November 20, 2019, 02:50:31 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsLeilani's Island
Pages: 1 ... 47 48 [49] 50 51 52
Print
Author Topic: Leilani's Island  (Read 188206 times)
Aw0
Level 0
***


ㅇㅅㅇ


View Profile WWW
« Reply #960 on: July 02, 2019, 11:39:00 AM »

I am consistently blown away at how good this looks. And it keeps getting better every time I see it! :D amazing work, dude!
Logged

Kameneko
Level 0
*



View Profile
« Reply #961 on: July 02, 2019, 08:55:32 PM »

That pink and blue stage with the waterfalls looks stunning, and gives me strong classic Mega Man vibes. I would have loved if Mega Man 11 looked liked that.

Good stuff as always, Ishi.
Logged
fall_ark
Level 1
*



View Profile
« Reply #962 on: July 02, 2019, 09:16:31 PM »



I assume the leaves will have more animation to them? It's a bit jarring to see it not reacting to player jumping/walking on it in an otherwise very animated and dynamic game. Like a slight bounce or something.
Logged

Chinese localizer and influencer. Translated Dead Cells, Slay the Spire, The Count Lucanor, and involved in the localization of Reigns, The Curious Expedition, Desktop Dungeons, etc.
Now also coordinating Chinese and global publishing for Indienova and WhisperGames. Send me an email if interested.
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #963 on: July 08, 2019, 10:04:07 PM »

I absolutely love this! One question though: how will you teach the player that a seed can be planted in the first place?

My current plan is just to give the player no other option of how to progress, other than planting the seed. If the seed and the soil are the only two things in the area then it shouldn't take long for the player to figure out.

The starting area for the level that introduces vines currently looks like this:



I assume the leaves will have more animation to them? It's a bit jarring to see it not reacting to player jumping/walking on it in an otherwise very animated and dynamic game. Like a slight bounce or something.

Yes, thanks for bringing this up! I'd briefly thought about putting more animations on the leaves but kinda forgot about it. You bringing it up was good incentive to make them more lively (see gif above). Smiley
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #964 on: July 09, 2019, 04:36:21 AM »

Can the player knock the seed out of the screen? If so, you might want to make it respawn (like having a new one fall from the sky)

EDIT: Also, it's surprising how much better the leaves look with that little tweak Grin
Logged
Josh Bossie
Level 3
***


Fly Safe, Pupper


View Profile WWW
« Reply #965 on: July 09, 2019, 02:06:11 PM »




My favorite update yet. I love it.
Logged

Ninety
Level 1
*


turnip boy


View Profile
« Reply #966 on: July 12, 2019, 08:02:07 PM »

Better and better with each update. I love that vine mechanic, looks like it'll present some really interesting level design possibilities.
Logged

Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #967 on: July 13, 2019, 03:04:47 PM »

Can the player knock the seed out of the screen? If so, you might want to make it respawn (like having a new one fall from the sky)

EDIT: Also, it's surprising how much better the leaves look with that little tweak Grin

There's a wall just off screen which prevents the seed from getting out of reach. I also made sure the seed can't be destroyed by Fire Leilani's various abilities, or invincibility, and also it shouldn't be possible to kick the seed high enough to get it stuck at the top of the cliff.



So I think I've got it covered Smiley though you're making me paranoid and considering dropping one from the sky in the unlikely event that it does somehow get destroyed...
Logged

NovaSilisko
Level 2
**


Real life space alien (not fake)


View Profile
« Reply #968 on: July 13, 2019, 03:13:39 PM »

I've been watching this for a while. It's so pure and wonderful and I can't wait to play it someday.

So I think I've got it covered Smiley though you're making me paranoid and considering dropping one from the sky in the unlikely event that it does somehow get destroyed...

Perhaps along with a sign saying "Be more careful next time!"  Tongue
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #969 on: July 14, 2019, 08:47:09 AM »

"PS: If you screengrab how you did it and tweet it to me I'd be very happy"

EDIT: Also, given that they somehow managed to kill the ghost in Spelunky, paranoia is probably for the best :p
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #970 on: July 28, 2019, 10:56:33 AM »

Aloha!

Vine Valley level

I've been continuing work on various things even though the devlog is a little behind. Last week I finished working on the level that focuses on the vines and seeds mechanic. Here's a little peek near the start of the level:



The jumping spider enemies have been in the game for a while, but I've reskinned them to be robots.

For this vine level I initially made it a big chase sequence, where a wall of spikes followed you through the level. The idea was that this would be an easy way to force the player into using the seeds and vines to progress - using the threat to motivate them to keep moving. It would also be an easy way for me to get out of the kind of softlock situations we talked about in the starting area, where the player could lose the seed or kick it somewhere unreachable - the threat of imminent death is useful for turning a softlock into more of a proper fail state.



However after implementing the whole thing I decided to take it out. Grin This level is intended to be in the middle of the game somewhere, and I want the player to enjoy learning to use the seeds and vines. I think the constant threat of death would make this too stressful, especially considering that the seeds are potentially the first mechanic the player will come across where they're actively encouraged to use Leilani's ability to carry objects.

So I tweaked the level to the point that the seeds are actually optional - if you lose them down a hole or something you're not permanently stuck. But there are many places to use them, and they're mandatory for every collectable, so the player is strongly encouraged to try.

The code and art for the big spiky column won't go to waste, I'll find somewhere to use it!

Boss intro cutscenes

I've changed focus this week and am going back to polish up the game's first boss fight, beginning with adding a short intro cutscene.



I'm expanding the boss scripting system I wrote a little bit so it can be used to drive cutscenes too. I'll cover it all in more detail once I have more to show.

The game won't be cutscene heavy, and none of them have dialog - it's just a couple of small scenes here and there in the vein of Mario or Sonic 3&K.
Logged

LunaticDancer
Level 0
**


Unveil the curtains of sanity!


View Profile WWW
« Reply #971 on: July 28, 2019, 02:12:51 PM »

Giana, but good and juicy as hecc, nothing not to love!
Logged

Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #972 on: August 03, 2019, 10:48:03 AM »

Boss Intro Cutscene

I've continued work on polishing the game's first boss fight, and adding an intro cutscene that plays before the fight.

First let's have a look at the cutscene:



There's a little more polish to be done but I'm really happy with how it's turned out so far Smiley I think this cutscene is a good example of the tone I'll be aiming for with other cutscenes in the game. There's no plot as such, but I can show some little developments in the behaviour of the characters throughout the game.

Scripting system

In a previous post I gave an overview of how the data and code for the boss tank itself is structured, including the scripting system that controls the tank during the fight.

I've now expanded this scripting system to make it a bit more generic, and not only for boss fights. I was intended on doing this when I first started the boss scripting system - it was a good way to justify spending a lot of time on a scripting system!

Previously when I placed the "B" icon representing the boss in the editor, it would create a BossScript entity, the BossController entity, and all the entities representing the different parts of the tank. I've separated out the BossScript entity (and renamed it to BScript just to help remind me it's not strictly boss-related) so it's now placed separately, and it can be linked up to any entity, not just bosses. Here's how the boss room looks in the editor:



The "B" is the boss, and the script above it is the same one I used to have - it controls the boss' movements during the actual fight.

CutsceneRole entity

I now also have the "C" icons - these are CutsceneRole entities. CutsceneRole is a generic entity which is basically a sprite that animates and moves around. They're totally generic and data-driven; an XML file tells it which sprite sheet to load, which animations it can play, the size of the collision on the entity, etc.

I'm using three CutsceneRoles for this cutscene: the one nearest the boss is Kuila. The one next to her is Gearbox, her walking toolbox. Finally the entity in the air is Kuila's wrench, used in the part where she throws the wrench into the toolbox.

BScript entities

Each CutsceneRole entity has its own script. There's also a script floating on the left side of the room which controls Leilani for the duration of the cutscene.

At its simplest the script is a list of actions and delays. There are also some things like a very basic variable system for tracking values. I covered this in the previous post mentioned above, but I'll give another example - the script for Gearbox during this cutscene.

  • Set variable 'WrenchLanded' to 0
  • Looping animation 'AsleepOpen'
  • Delay until 'WrenchLanded' == 1
  • Animation 'AsleepOpenBounce'
  • Delay until animation finished
  • Animation 'AsleepOpenToClosed'
  • Delay until animation finished
  • Looping animation 'AsleepClosed'
  • Delay 0.3 seconds
  • Animation 'WakeUp'
  • Delay until animation finished
  • Delay 0.1 seconds
  • Walk to the right edge of the room + 9 tiles (i.e. walk off screen)
  • Delay 1.7 seconds
  • Unpause path movement for 'RightWall' entity
  • Delay until finished walking
  • Deactivate entity
  • End script

Some interesting parts about this are:

The 'WrenchLanded' variable is used as the trigger for when the Gearbox knows that the wrench has been thrown by Kuila and landed in the toolbox. This variable is set externally from the Wrench's script. This is how scripts communicate and chain actions together through the cutscene.

This script is also responsible for triggering the right wall of the boss room to close. It makes sense to handle it from this script since it needs to tie in with the timing of Gearbox walking off screen. Scripts are mostly focused on controlling one entity - but they do have the ability to control other entities if I want to, which is useful for cases like this.

The majority of this script is just focused on playing individual animations. There's one more complex command, which is telling Gearbox to walk to a certain position. There are certain actions like moving to a location, or jumping to a location, which were originally designed for the boss to do, but are supported by the CutsceneRole entity as well. When the script tells Gearbox to walk to a point, this results in Gearbox turning around, then walking until reaching the desired position. Acceleration, max speed, and deceleration when reaching the desired position, are all taken into account. Similarly there's a Jump action which is used to make Kuila jump into the tank, and is also used for the Wrench 'jumping' from Kuila to Gearbox.

Short Version of the Cutscene

Finally, I also made a short version of the cutscene which plays when replaying the boss fight after dying. The scripts can handle branches (if statements), so each script has a separate branch for doing the shorter version of the cutscene.



For the Gearbox script, the branch for the short version of the cutscene is very simple:

  • If persistent variable 'BombTankIntroSeen' == 1
  • Deactivate entity
  • End script

So he won't be seen on screen at all.

Thanks for reading!
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #973 on: August 04, 2019, 12:03:34 AM »

Damn dude, the quality of you home-made tooling looks so good! And the two-version cutscene is My Word!-level excellent polish
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #974 on: August 09, 2019, 09:07:14 PM »

Boss Fight Polish

The game's first boss is now complete! The fight was previously functional but didn't feel that good. I've done a lot of polishing on it and it's at a state where I'm happy with it (until playtesting feedback, at least Cheesy ).

Here I will just cover some of the broad changes I made to improve the fight.

Improved Pacing

I tweaked the script for the boss to shorten the delays between actions to a reasonable degree. Of course some delays are good for pacing - if the boss did everything as quickly as the animations allow then it'd be way too hectic. But I was able to trim a lot of dead time from the fight.

The boss alternates between firing objects at Leilani and then travelling to the other side of the screen.

One area where I added a new feature to make the fight feel smoother was to combine the boss' driving and turning actions. Previously the tank came to a halt, and then turned around if Leilani was behind:



But now the tank makes the decision to turn during the drive, and does a skid-turn at the end. It looks cool and helps to keep the fight moving along nicely:



Side Tunnel

This tunnel at the side of the room is for the projectiles to escape down. The spiky balls that the tank fires would otherwise bounce around the room forever. It used to just be an open tunnel with some spikes in it to discourage Leilani from going down it. This didn't work well for small Leilani though, who could easily roll into the tunnel, and would be killed by the spikes:



I've now introduced a new collision type which is solid for Leilani, but doesn't exist for other objects. Using this, the tunnel allows the projectiles to escape, but Leilani can treat it like a normal wall:



Typically I avoid doing this kind of thing - wherever possible I like it when Leilani and other objects interact with the world in the same way. However in this case it seems like the neatest solution for a confined space such as a boss room. I won't overuse this mechanic, but it may come in handy for little puzzles or for safely disposing of rolling projectiles in other places. As long as I'm consistent with the visuals - using the wire mesh to indicate places that Leilani can't go - then I think it'll work fine.

Damage Effects

I improved the effects and reaction when damaging the boss, to make it more of an event.

  • Added hit pause (the game freezes very briefly).
  • Added a big animated shockwave at the point of impact.
  • The tank already flashed white on damage. But I made it flash red instead during the hit pause, so the shockwave can be seen.
  • Kuila's damage animation previously only played if she was outside the tank at the time. Now it always happens.



I think it's much more satisfying to damage the tank now, and it's nice to see Kuila's reaction every time.

Overall Damage Feedback

The tank only needs to be hit three times to defeat it - but it's still nice to get a sense of progress as you continue to damage it. I added some 'malfunctioning' spark effects that happen more often as the tank gets closer to death:



Background

Finally, the boss room now has a unique background - styled after a factory control room, with the rest of the factory visible through windows:



Thanks for reading!
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #975 on: August 09, 2019, 10:58:15 PM »

It looks sooooo good. And yeah, now that you have the tank turn while driving I cannot unsee how clunky it was before.
Logged
greenhat
Level 0
*


View Profile
« Reply #976 on: August 10, 2019, 10:36:12 AM »





I love how the boss now has a blend of cartoon-like and robotic feel to its movement; it feels like it belongs to the world, but NOT to the island.

And the smoothness of the whole game shines here, too.
Logged

FALCON PUNCH!
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #977 on: August 25, 2019, 01:03:14 PM »

Just a quick update to keep the devlog ticking along.

Boss 2

Over the last couple of weeks I've been continuing work on bosses since my head's already in the zone for them. I added a second boss to the game! It'll probably end up actually being the third boss in the order they actually appear in the game.

I won't be showing the boss here as I want to reserve some things. It's similar to the first boss - in that it's a tank that fires things at Leilani. It's had a significant amount of work put into some things that differentiate it, so hopefully it won't come across as lazy boss reuse!

More Boss Polish

The boss fights in general have also continued to receive some polish while I worked on the second one.

One great suggestion I had was to shake the tank when Kuila slams her fists down after being damaged - now that I've added it, it feels like it was really missing before!



Another important tweak in the name of fairness to the player, was that if the boss was already preparing to fire a projectile, then got damaged, the projectile would still be fired during the damage animation. It felt messy and could surprise the player with unexpected attacks. Now the firing action is properly cancelled and the projectile doesn't appear.
Logged

Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #978 on: September 06, 2019, 11:28:41 AM »

I've been pretty busy recently - with my job, and also playing Astral Chain! Leilani development has been a little slow but I've got a bit of work done.

Level data reorganising

I did some reorganising of all the files for tilesets and levels, as they were a bit of a mess. Each tileset has multiple files (graphics, Tiled file, collision info) and all tilesets were previously in one folder. They're now split up. Levels are also organised better - with Challenge levels in a separate folder for example.

It was worth it, it feels much better when I look at the data now and I'm sure I'll appreciate it as I continue to add more levels and tilesets in the future.

Metal crate polish

I also did some work polishing these metal crates. They're Kuila's supply crates and will feature in many levels throughout the game. The old effect for destroying them was a bit lacklustre. Also, while the auto-opening crates had icons showing the contents, the ones that Leilani can destroy did not.



New polish includes improved visuals for the crates themselves - they're more chunky. The new visuals allow for destroyable crates to display the same icon representing what's inside.

Crates go into a brief 'destroyed' state, with a white flash, before the explode, which feels satisfying.

The particles are also improved - with purple and blue metal panels rather than just yellow. The 'empty' crates (with no icon) also produce some nuts and bolts when destroyed, to indicate that they do hold something even if an object doesn't come out.

Logged

JobLeonard
Level 10
*****



View Profile
« Reply #979 on: September 07, 2019, 03:20:15 AM »

Lovely update as usual Smiley

Quote
with purple and blue metal panels rather than just yellow
This reminds me: doesn't look like it will be an issue so far, but being protanomalous myself: can I ask you to make sure that every time color is significant to distinguish something, that there is also a non-colored visual component to give the player a hint.

For example, all the different flowers so far also have different character designs for Leilani that would work if the game was viewed in greyscale. If you could keep that up that would be fantastic! Plus, it also helps the non-colorblind players! Wink
Logged
Pages: 1 ... 47 48 [49] 50 51 52
Print
Jump to:  

Theme orange-lt created by panic