Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411423 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 18, 2024, 11:59:54 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsLeilani's Island
Pages: 1 ... 33 34 [35] 36 37 ... 67
Print
Author Topic: Leilani's Island  (Read 409796 times)
Mr.Blue
Level 0
**


Hello.


View Profile
« Reply #680 on: November 17, 2017, 01:20:42 PM »

Love this game so far.
Logged

Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #681 on: November 26, 2017, 02:57:35 AM »

The bad guy

It's time to finish up this two month boss extravaganza with - the boss herself! Presenting Kuila and her toolbox.



Kuila invades Leilani's island with her robot army, and builds machines to charge all her batteries. She's smart, and taller than Leilani, but she's a cowardly spoiled brat type. When she's not inside a big tank she'd rather just run away.

Leilani is a intentionally a bit of a grumpy blank slate for the player to control, but I wanted the antagonist to show much more personality. During boss fights she will celebrate or get mad depending on how the fight is going:





And here's a work-in-progress ending sequence for the boss fights:



My plan is for this to all be timed to music, similarly to how the

is done. My process for doing this is: first, I come up with a sequence of events where I know I can control the timing of certain things. For example, after Leilani rolls into the tank, I can control the timing for all of the following:

  • Time until Leilani headbutts the tank and it explodes.
  • Time until Kuila crashes off the bottom of the screen.
  • Time until "Boss Clear" starts to appear.
  • Time until "Boss Clear" stops its spinning animation.
  • Time until confetti appears.

Next I put the whole sequence into the game, and tweak the timings until I have something I'm pretty happy with. There are still things I want to adjust and extra effects to add, but that will come later. I will request music from Woofle that roughly matches the timings of the sequence. Then once I have the music, I'll hook it up in the game and will re-adjust the sequence to perfectly fit the music.

I'm really happy with how the end-of-level sequence feels, timing something with music just adds that extra bit of impact to everything that happens on screen, so I'm looking forward to doing the same for the end-of-boss sequence too.

What's Next

Speaking of music, I will soon be requesting new music for the game from Woofle, including music for boss fights, world map, and some other stuff. So part of my work this week will be to put together a proper spec for all the music I want to request.

I also want to tidy up some loose ends - I have various small bits of feedback written down from people who've played the game over the last few months that I haven't got around to, so will look through my notepad and see what areas of the game I can polish a little.

Then I want to get stuck into some proper level design in December. So this devlog should hopefully become more varied than it has been recently Smiley
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #682 on: November 26, 2017, 03:54:50 AM »

Quote
Leilani is a intentionally a bit of a grumpy blank slate for the player to control, but I wanted the antagonist to show much more personality.
Well, rest assured that you succeeded

I don't know if you were going for a Team Rocket-style "chewing on the scenery" vibe, but that's what I'm imagining her personality to be (in the best possible way)

EDIT: the tropes predict that she'll have a robo-sidekick.
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #683 on: November 27, 2017, 11:57:41 AM »

Quote
Leilani is a intentionally a bit of a grumpy blank slate for the player to control, but I wanted the antagonist to show much more personality.
Well, rest assured that you succeeded

I don't know if you were going for a Team Rocket-style "chewing on the scenery" vibe, but that's what I'm imagining her personality to be (in the best possible way)

Thanks!! Smiley Team Rocket is a good source of inspiration, I hadn't really considered that! I never watched much of the Pokemon anime in the past but am keeping up with the Sun & Moon series (Alola region ftw) so hopefully I'll get some ideas from that. Having Kuila spying on Leilani from the backdrop now and then could be quite fun.

Quote
EDIT: the tropes predict that she'll have a robo-sidekick.
Quote
Presenting Kuila and her toolbox.

 Wink
Logged

io3 creations
Level 10
*****



View Profile WWW
« Reply #684 on: November 27, 2017, 12:16:53 PM »


The way Kuila flies off-screen after being defeated seems a bit odd.  That tends to happen to minions and other less significant enemies.  Based on your description, I'd imagine her Cry  for a while and then either picked up by one of her robots/minions or running away.

Then again, I'm basing that based on my (somewhat limited) experience of 2d side scrolling games so maybe that type of event is being used in games that I haven't played?
Logged

qMopey
Level 6
*


View Profile WWW
« Reply #685 on: November 28, 2017, 02:00:42 PM »

Also happens in Cave Story with cat boss thingy (3 min 16 seconds):

« Last Edit: November 28, 2017, 02:06:39 PM by qMopey » Logged
Al_B
Level 0
***



View Profile WWW
« Reply #686 on: November 28, 2017, 02:36:42 PM »

I like this a lot. I get a slight Star Tropics, adventure Island kinda thing. Also, were you influenced by Moana by making the main character a gal? Sorry if that was a stupid remark.
Logged

io3 creations
Level 10
*****



View Profile WWW
« Reply #687 on: November 28, 2017, 03:40:07 PM »

Also happens in Cave Story with cat boss thingy (3 min 16 seconds):


Sure, I can imagine it happening, especially if there's a cutscene right after.  Perhaps my main issue is that the single gif gives me the impression that Kuila is basically dead, that happens to fit perfectly the scene you linked.
Logged

qMopey
Level 6
*


View Profile WWW
« Reply #688 on: November 28, 2017, 08:45:24 PM »

Dr. Robotnik typically flies away in a robot after defeat, and it never seems like he dies  Well, hello there!
Logged
EJlol
Level 0
**


View Profile
« Reply #689 on: November 29, 2017, 12:22:50 AM »

I agree with io3 creations here. The robot feels heavy during the fight, and when the fight is over it suddenly becomes able to kick it around without any weight? It just feels weird. And yes I also expect Kuila to run away instead of dieing.
Logged
JobLeonard
Level 10
*****



View Profile
« Reply #690 on: November 29, 2017, 03:45:45 AM »

Dr. Robotnik typically flies away in a robot after defeat, and it never seems like he dies  Well, hello there!
That's exactly io3's point: he runs away, he doesn't fall off the screen...
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #691 on: November 29, 2017, 10:06:33 AM »

This is really good feedback, thanks all! I definitely don't want to give the impression that she's beaten for good. I don't have any dialogue in the game so everything needs to be presented as clearly as possible. How about, instead of flying off the screen, she crashes into the floor. She can lie there dizzy / crying Cry during Leilani's celebration, and then escape off the screen at the end. Basically the same as Bowser Jr's escape after every fight in NSMB:





It's always a bit dumb how the hero just lets the bad guy escape... but it feels fitting.

The robot feels heavy during the fight, and when the fight is over it suddenly becomes able to kick it around without any weight? It just feels weird.

Yep I need to make this bit better, the way the tank bounces around isn't very weighty or satisfying.

I like this a lot. I get a slight Star Tropics, adventure Island kinda thing. Also, were you influenced by Moana by making the main character a gal? Sorry if that was a stupid remark.

Not a stupid remark at all Smiley I checked the dates to make sure I wasn't misremembering, I started this project in Feb 2014, and Moana was announced in Oct 2014. So Leilani came first Wink I do remember being super hyped at the announcement!
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #692 on: November 30, 2017, 12:13:52 PM »

The robot feels heavy during the fight, and when the fight is over it suddenly becomes able to kick it around without any weight? It just feels weird.

Yep I need to make this bit better, the way the tank bounces around isn't very weighty or satisfying.

Here's an idea: the tank has an "infinite" supply of explosive cannonballs inside. So you could make it end up with one of them stuck in the deformed muzzle when it's damaged enough, let Leinlani trigger that bomb by bumping into it, and then have that explosion trigger "all" the bombs still inside the tank. Then big boom.

Also, heavy = lots of momentum, so you could add more screen shake in the direction of impact (representing momentum being transferred to the world's frame of reference) to communicate that.
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #693 on: November 30, 2017, 01:29:43 PM »

Here's an idea: the tank has an "infinite" supply of explosive cannonballs inside. So you could make it end up with one of them stuck in the deformed muzzle when it's damaged enough, let Leinlani trigger that bomb by bumping into it, and then have that explosion trigger "all" the bombs still inside the tank. Then big boom.

That's a fun idea, but I'm trying to avoid anything being too specific to this boss - other versions of the tank may not have turrets / bombs etc.

Here's what I've been working on this evening for it:





I improved the speed and timing of how the tank bounces to give it more weight, the screenshake when the tank hits the wall now goes in the left/right direction that the tank is travelling. Also did a quick placeholder for Kuila landing on the floor instead of going off screen.

I do want to beef up the initial moment when Leilani hits the tank with extra effects and probably have the tank explode to better explain where it gets all its velocity from.

I think Leilani could also do with a stronger animation / pose after she has just punched the tank to make it explode.

What do you think?
Logged

Louard
Level 2
**


View Profile WWW
« Reply #694 on: December 01, 2017, 08:57:46 AM »

LOVING Kuila's animations!

Also, I liked her dropping off the screen, but I get what folks are saying.
I would suggest having her fly back onto screen, pause, shake her fist at Leilani then fly off the top of the screen. Perhaps holding onto a propeller gadget like this...


Sorry.. came out bigger than expected...

As for the weightiness of the boss tank being bounced around, here's a totally non physics based animation trick for adding a sense of weight: longer hang time, stronger gravity.

So, if you imagine the arc the tank traces through the air as it rises and falls, you can imagine the whole arc taking the same amount of time, but cramming more of the "drawings" up at the top of the arc. In other words, you'd be changing the spacing, not the timing.

The effect should be that the tank will rise fast, hang longer then drop fast making it feel much less floaty and moon-gravity-y. Like it takes a lot of force (momentum) to get it up there then it crashes down with equal force.

Lookin' fantastic, as always!
Logged

-Louard
louardongames.blogspot.com
Louard
Level 2
**


View Profile WWW
« Reply #695 on: December 01, 2017, 11:58:05 AM »

OOH! Just remembered that I also wanted everyone to notice the detail of the missing spikes when the tank blows up.
Ishi, you seem to be displaying a clarity and consistency in your visual language that, frankly, many games lack. I love that the spikes tell the player that Leilani will get hurt if she touches the tank (thus forcing her to kick the bombs back at it) and the spikes being replaced by bandaids when the tank blows up makes it all make sense when she runs up to kick its now harmless husk.

A+
Logged

-Louard
louardongames.blogspot.com
Snö
Level 0
**


View Profile WWW
« Reply #696 on: December 01, 2017, 12:44:31 PM »

Amazing work Smiley Animations and visuals are super great!
Logged

Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #697 on: December 01, 2017, 02:28:16 PM »




...

The effect should be that the tank will rise fast, hang longer then drop fast making it feel much less floaty and moon-gravity-y. Like it takes a lot of force (momentum) to get it up there then it crashes down with equal force.

Ahh this is amazing art! Thank you :D I love the propellor gadget, I'm tempted to put something like that in the game!

For the weighty bouncing, I do use that exact animation trick on the jumping curve for the tank, and I had also used it on the tank's death bounce but then scaled the effect down and then forgot about it. I'll turn it up a bit and see how it looks. I had turned it down previously because it didn't do much in the first iteration where the tank just flew through the air, but now the tank bounces on the floor inbetween Leilani hitting it it should have a better effect.
Logged

WildGamut
Level 0
**



View Profile WWW
« Reply #698 on: December 01, 2017, 03:08:50 PM »

This game looks incredible! The level of polish is really impressive and the graphics are refreshingly colourful and whimsical. The gameplay looks like a lot of fun too!

Seriously looking forward to this one, keep it up!
Logged

Support the development of our first game on Patreon!

Website | DevLog

Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #699 on: December 03, 2017, 03:30:16 AM »

Scancodes vs Keycodes

I implemented a nice feature in my keyboard input system this week.

(I don't know this stuff in detail so hopefully the information here is all correct! I believe these are general concepts that apply to all keyboard input, however I will refer to some SDL-specific enums and functions.)

I ended up chatting with a friend about keyboard input, and he brought up this really useful distinction between Scancodes and Keycodes. Scancodes and Keycodes are both values that refer to a key on the keyboard. But the difference is:

  • Scancodes refer to a location on the keyboard - for example SDL_SCANCODE_Z is the key in the bottom left of the keyboard,
     regardless of what's written on the key.
  • Keycodes refer to what's actually on the key - for example SDLK_z or 'z' refers to the Z key, no matter where it is on the keyboard.

I was already aware that keyboards have different layouts around the world, and that games commonly don't handle them properly, but hadn't yet given a lot of thought to how to solve it.

As an example I will compare the UK and German keyboards. The main important difference for me is that the Z and Y keys have been swapped around.

Luckily, the problem was pretty simple to solve. Before this week my code dealt exclusively with Scancodes. The main advantage of doing this is being able to supply sensible default controls for the game. By default when you first launch the game, the jump action is mapped to SDL_SCANCODE_Z and the roll action is mapped to SDL_SCANCODE_X. This means that on a UK keyboard the inputs will be 'Z' and 'X', and on a German keyboard the inputs will be 'Y' and 'X'.

The only problem that arises is that when I display the key on the screen, it's incorrect, as on a German PC is still shows Z. So before displaying the key I convert it from a Scancode to a Keycode. SDL has a function to do just that - SDL_GetKeyFromScancode. So I convert it to a Keycode, and display the appropriate key according to that value instead. Keycodes never need to feed back into any other area of the game so it's a nice self-contained fix.

Swapping my PC from UK to German language now changes the keys!

     
UK            ->     German
Logged

Pages: 1 ... 33 34 [35] 36 37 ... 67
Print
Jump to:  

Theme orange-lt created by panic