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

Login with username, password and session length

 
Advanced search

1369504 Posts in 64351 Topics- by 56370 Members - Latest Member: Plasma Rift

November 20, 2019, 03:04:29 PM

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


coffee&coding


View Profile WWW
« Reply #980 on: September 08, 2019, 03:39:34 PM »

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

This is something that I try to keep in mind, it's good to have a reminder of it! The duct tape patches on the breakable side of the crates are a good example of having a visual indicator for something, rather than just relying on the colour alone. I can't think of anywhere in the game that this would currently be an issue and will continue to try to avoid any colour problems SmileyHand Thumbs Up Right
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #981 on: September 09, 2019, 04:20:26 AM »

Yeah, so far the artwork in your game has been amazing in this department, thanks so much for that Hand Thumbs Up Left Grin
Logged
EJlol
Level 0
**


View Profile
« Reply #982 on: September 09, 2019, 11:13:12 PM »

Indeed it looks great Hand Thumbs Up Right. Btw if you want to check whether it also looks great for people with color blindness, there are tools like Color Oracle (http://colororacle.org) to help you with that. The tool is open source/free, and easy to use Wink.
Logged
devindazzle
Level 0
*


I am a really tall midget


View Profile WWW
« Reply #983 on: September 13, 2019, 05:53:52 AM »

This DevBlog is awesome!! Thank you for sharing both details about the game but also details on the inner mechanics of the game.

Waiting in great anticipation for part 3b and part 4 of the collision system  Smiley
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #984 on: September 14, 2019, 09:55:56 AM »

Alert states

I realised there is actually one part of the game that uses a colour change to indicate something. Some enemies have 'alert' states - in this state they are reacting to Leilani being nearby by chasing her, throwing stuff at her, etc.

During this state the enemy's eye turns from blue to red to help indicate that their behaviour will be different. I've made a tweak to also adjust the size of the highlight on the eye, so there's at least some visual difference between the two states other than the colour.



I think having this kind of visual difference helps all players, not just colour-blind ones!

There are also other indicators of the enemy's alert state - e.g. a sound effect and "!" above their head when first seeing Leilani.

Waiting in great anticipation for part 3b and part 4 of the collision system  Smiley

Thanks! Yeah I will get around to writing those at some point. '^_^
Logged

Zorg
Level 9
****



View Profile
« Reply #985 on: September 18, 2019, 09:45:40 AM »

Great detail! I like how the solution looks totally obvious when you see it.
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #986 on: October 13, 2019, 09:39:10 PM »

Hi all!

I'm here with a general progress update. Progress is good, I've added a couple more levels to the game in the last few weeks!

Spinning flower platform level

This level has been a particularly long time in the making. Four years ago I showed this idea for a spinning flower platform that I wanted to improve upon. Moving on top of the platform would lift it up. As the platform rotated it had a kind of conveyor belt effect to counteract your movement and keep you in place as it rose upwards. When you stopped moving, it'd fall back down.



Then three years ago I reinvented it to be a bit simpler, and also more explicitly roll-centric. Rolling past the flower bud spun it up into the air, where it would turn into a platform for a short time.



Shortly after that I posted about the level I'd worked on that used the flowers! That level was ok, but I was never fully happy with it, and always intended to go back to it. It had also 'deteriorated' a bit over time - the main example was that I added an improved jungle tileset to the game but the level was still using the old one.

Well, recently I pretty much remade the level from scratch. There are certain parts that I've brought forward from the old level, but most of it is new! I wanted to give the level a little more of an exploratory feel, so there are more secrets and side areas. There are also various ways to get through the level, for example rolling past the flower bud to spin it yourself, or rolling an object past it, or getting an enemy to trigger it.

In this instance I pretty much threw out the idea of following the "4 step level design" - I found it more fun to simply block out a level and repeatedly tweak it until I felt it was good! This took a while but I'm happy with the result. I'll just show a sneak peek.



Rotating platforms

In a nice full-circle bit of development, I also revisited the original idea of the spinning flower platforms, and came up with this rotating metal platform for use in factory levels.



It's a bit different to that original flower platform. It can only be spun by rolling on it, not walking, so the player has a bit more control. It's on a fixed screw, so it stays where it was put, rather than falling back down. I also made it wider (5 tiles rather than the original 3) because I remembered the original platform being very fiddly to use.

One of the things to consider with this platform was how it should behave when it gets to the end of the screw. One option was to have it immediately stop rotating. This makes the most mechanical sense since the platform is attached to the screw - but it would also mean that Leilani would suddenly shoot off in the direction she's rolling (not unlike in Sonic 2). I wanted to avoid this sudden burst of movement, though. I also wanted the platform to still maintain some interactivity when it's at the end of the screw - otherwise it could easily be mistaken as a fixed platform. So I opted to have the platform rotate at half speed when it's at the end of the screw.

I've already put together a level that uses this platform, so that's another level checked off the list!
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #987 on: October 14, 2019, 01:33:30 AM »

So... much... polish...  Kiss
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #988 on: October 27, 2019, 05:26:55 PM »

Hi all!

More Challenge Levels

I've continued to work on content this week, including a couple more Challenge Mode levels. These are pretty quick to create, and are a fun way to explore different uses of the game's mechanics, or harder challenges involving them, that wouldn't easily fit into a normal level.

One of the new levels involves kicking macas into boost rings to hit blocks and collect shells:



This clip is from the end of the challenge where I got a lucky chain reaction:



Rotating Platforms

I showed these platforms last time. I'd like to make more effort to keep this devlog interesting, and thought that going into more detail about how these platforms work would be good.

Animation

The animation for the platform feels quite smooth, but there's a few factors that made it easier to animate than it might look at first.



To start with, the shadows and highlights aren't added until the animation is all done. The top and bottom edges of the platform also don't animate while it spins. This means the animation can be done using just two colours, yellow and purple.

Since the chevron pattern repeats with alternating colours, the second half of the animation is actually just a copy of the first half, with the yellow and purple colours swapped. As a very basic example, here's a single frame with the colours alternating. It doesn't really work as an animation as there aren't enough frames to indicate which way the platform is spinning - you can force your brain into thinking its rotating to the left or the right. (The yellow chevron looks a bit like Pac Man if you imagine him moving to the right.)



Adding a single frame - and a copy of that frame with swapped colours - turns it into a four frame animation, which looks much better.



Finally, adding another two intermediate frames (and again, copies of those frames with swapped colours) makes the animation feel very smooth.



I didn't draw all the animation frames perfectly from the start - it was definitely a process of just tweaking pixels until it looked smooth. Since I only had to worry about two colours, rather than a lot of detail, tweaking the animation was fairly painless to actually do.

General Mechanics

The idea of the platform is that rolling on it (but not walking on it) will rotate it.

As the platform rotates, the entities on it will move in the same direction. It works simply like a conveyor belt, if the platform is rotating to the right, then all entities on the platform also move to the right and eventually fall off the platform. This doesn't make physical sense - in reality if the platform was spinning the entities would just move in circles - but for a 2D game it feels like it works fine to model it as a conveyor belt.

The platform moves up and down as it rotates, which will be described later. For now we can ignore this.

How Fast to Rotate?

This works by looking at all the entities that are standing on the platform, checking if they're rolling, and if they are, then looking at their X velocity. From these velocities, we need to calculate a target rotation velocity for the the platform. The platform builds up towards that rotation velocity over a short time. If nothing is rolling on the platform, it will gradually decrease the speed back to zero.

Single Entity

If there's a single entity rolling on the platform, this is easy. For example if Leilani is rolling at a velocity of 7.5 units per second, the target rotation velocity of the platform is set to -7.5 units per second. Once the platform reaches its target velocity, the conveyor-belt-effect of the spinning platform will counteract Leilani's movement, and keep her in place. This is useful for gameplay purposes as you can rotate the platform for a long time without worrying about falling off it.



Multiple Entity - Adding Velocities

If there are multiple entities rolling on the platform, we have the problem of deciding how to combine their velocities.

The solution I started with was to add up all the velocities of the rolling entities. This works well when two entities are rolling in opposite directions on the platform - their velocities will cancel out, and the platform won't rotate, which is the desired outcome:



However, if two entities are rolling in the same direction, adding their velocities together results in the platform rotating twice as fast as either of them are rolling. The conveyor effect of the platform will then cause at least one of the entities to fall off the platform. It doesn't feel right:



Multiple Entity - Averaging Velocities

The next version of the calculation was to average the velocities. This fixes the previous case - the two entities rolling at the same velocity will be held in place by the conveyor effect:



However, if the entities are rolling at different velocities, the platform will rotate at a speed partway between the two. Neither will be held in place, since one is rolling slower than the platform's conveyor effect, and one is rolling faster:



Multiple Entity - Adding Extreme Velocities

The final version of the calculation is to take the highest positive velocity, the highest negative velocity, and add those together. This fixes the previous case by giving priority to the fastest of two entities rolling in the same direction. In practise, the fastest entity is usually Leilani, so it seems fair to hold her in place on the platform, while the other entity moves:



If two entities are rolling in opposite directions, they'll both be taken into account - because the highest velocity in each direction is added together - so their speed can still be cancelled out, the same as before.



During gameplay these situations are probably not likely to come up very often. But, if they do, the platform's behaviour will hopefully feel fair to the player.

Vertical Movement

Adding the vertical movement to the platform is simple (given that the game engine can already handle moving platforms). Every frame, the platform's Y velocity is set based on its rotation speed, causing it to move vertically.



The platform can be setup with limits on its movement. Once it reaches the limit, it'll no longer move in that direction. As discussed in the previous devlog post, the platform also rotates more slowly when it's reached its limit. This is done by simply halving the target rotation speed calculated for the platform. If Leilani is rolling at 7.5 units per second, the target rotation speed for the platform will be -3.75 units per second. The platform's conveyor effect will no longer be strong enough to hold Leilani in place, only to slow her down.



Variations - Screw Direction

The platform has some variations. The first is one with the opposite screw direction, indicated by the chevrons on the platform pointing in a different direction, and the appearance of the background screw being different.



Chances are that I won't actually use this variation in the final game. During normal gameplay, I imagine that most players are never going to pay attention to the direction of the chevrons, and instead would just feel a general confusion that the platforms don't behave how they expect. I'd prefer that the player just internalises the fast that rolling to the right makes the platform move upwards.

Variations - Orientation

The platform can also work rotating vertically instead of horizontally. This is basically exactly the same. The main difference gameplay wise is that Leilani is the only entity that will be able to interact with the platform; when enemies roll into a wall they either die or rebound off the wall. Leilani is the only one to slide down the wall in a way that could rotate the platform.



It's worth noting that Leilani can only rotate these platforms in one direction, when she's sliding down the wall. This felt 'right' to me, as Leilani isn't indicated as having any grip on the wall during brief periods where she's rolling upwards on the wall. It's only when she starts to slide down the wall that she is really gripping it.



This brings up an interesting point - I previously described that the rotation speed of the platform is calculated by looking at the velocity of all the rolling entities. In fact, it's up to each individual entity to decide whether it's in a state where it can affect rotatable platforms. Thus the Leilani entity is able to make its own decision that it can rotate these types of platforms when sliding down a wall, but not when sliding up it.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #989 on: October 28, 2019, 03:24:46 AM »

So much thought going into the physics here, fantastic stuff!

(I think the threading is the wrong way around on the last two gifs though)
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #990 on: October 28, 2019, 02:09:48 PM »

So much thought going into the physics here, fantastic stuff!

(I think the threading is the wrong way around on the last two gifs though)

It looks ok to me. Although, at one point I had the rotation animation for those versions of the platform going backwards and didn't even notice for a while! So I don't trust myself fully on this one  Cheesy
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #991 on: October 29, 2019, 01:37:57 AM »

Viewed from the left the threading is counter-clockwise whereas the platform is rotating clockwise
Logged
Schoq
Level 10
*****


♡∞


View Profile WWW
« Reply #992 on: October 29, 2019, 07:18:41 AM »

threading looks right, but it's spinning the wrong way considering Leilani's rolling

Everything looks amazing though. Updates to this devlog is a small highlight of every week!
Logged

♡ ♥ make games, not money ♥ ♡
Prinsessa
Level 10
*****


Ava Skoog


View Profile WWW
« Reply #993 on: October 29, 2019, 07:35:17 AM »

This is looking so cool! Kiss Lots of great stuff throughout this devlog.

I think Schoq is right!
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #994 on: October 29, 2019, 08:31:34 AM »

Quote
threading looks right, but it's spinning the wrong way considering Leilani's rolling
The threading is right in that when the platform spins upward (like it does now) it should go left (like it does now).

It's wrong in that the platform should spin downward, and therefore both spin direction and thread should be reversed.
Logged
Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #995 on: October 29, 2019, 06:06:27 PM »

Ooh this is great discussion. You're right, compared to the way Leilani is rolling, the platform is turning the wrong way:



The reason it's like this is because I wanted the platform to counteract Leilani's movement as she slides down the wall, to keep her in place, like so:



But I hadn't realised that it just doesn't work given the direction that Leilani is rotating while rolling.

If it rotates downwards while she slides on the wall, it's technically more correct, but also the conveyor effect pushes her downwards twice as fast as she'd usually go:



Rather counterintuitively, if I swap the conveyor effect so it's actually pushing Leilani upwards slightly - even though logic says it should move her faster downwards - it kinda feels good:



It may also be more interesting from a gameplay point of view, since you don't get to stick to the wall indefinitely so you may have to do some wall-jumping or something to move the platform the entire way.

Those are just some quick thoughts - I will tinker more with it another time.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #996 on: October 30, 2019, 01:51:42 AM »

Quote
The reason it's like this is because I wanted the platform to counteract Leilani's movement as she slides down the wall, to keep her in place
Ok, that makes sense, except for the part where it's Leilani who is creating the spin on the platform to begin with, which makes my Newton's Second Law Of Motion sense go completely haywire

You're totally right about the part where it doesn't make any logical sense for Leilani to fall down slower, unless the rotating platform has perfect grip, meaning she doesn't slip down, unlike every other wall.

(You could play with that too: have "sticky" walls where you slip down more slowly, and against which you can roll upwards. Because you know, you clearly don't have enough cool interactive physics systems in this platform game yet  Tongue Big Laff)
Logged
diegzumillo
Level 10
*****


This avatar is so old I still have a some hair


View Profile WWW
« Reply #997 on: October 30, 2019, 04:15:51 AM »

What a bloody fantastic project. Looks amazing, and the devlog is so well organized and rich in information.

And it somehow flew under my radar all this time. Few subforums have such a high "rotation" like the first page of devlog threads. Every refresh shows a different set of 20 devlogs.

Excuse me while I peruse all 50 pages of your devlog.
Logged

Zorg
Level 9
****



View Profile
« Reply #998 on: October 31, 2019, 01:19:43 AM »

In the last gif, the chevrons should be pointing downwards, because there is no possible action for Leilani to make the chevron texture 'scroll upwards', and make the platform move to the right (in this picture)?  Huh?
« Last Edit: October 31, 2019, 01:25:17 AM by Zorg » Logged
matriax
Level 4
****



View Profile WWW
« Reply #999 on: October 31, 2019, 03:34:33 AM »

No idea Leilani's Island had a devlog here, i was following the progress on twitter, love all this devs posts Smiley
Logged

Pages: 1 ... 48 49 [50] 51 52
Print
Jump to:  

Theme orange-lt created by panic