[Request] Update 8 Direction Behavior

Discussion and feedback on Construct 2

Post » Tue Nov 25, 2014 11:11 am

Construct Classic had push out mode "Normal (use for slide)" on Custom movement. I think that would be good addition.
B
34
S
9
G
3
Posts: 517
Reputation: 5,206

Post » Tue Nov 25, 2014 2:56 pm

@Tylermon
Tylermon wrote:Perhaps there is a barrel in front of the player. Now instead of hitting it, they might slide all around it. Despite a barell being a solid object you want a player to stop at. Or if an environment has objects or props rotated, now these become sliding obstacle courses.

A solution to your barrel problem - the underlying collision for your barrel example should probably just be a non angled box anyway. If you need it to slide at angles, have two underlying collision objects, one solid that doesn't rotate to stop the player, and one non solid that rotates for pushing. It seems much easier to account for pushed objects rather than coding complex movements. Perhaps to take it a step further, a no slide behavior could be made. That seems unnecessary though.

I'm not sure I understand your "sliding obstacle course" example. If an obstacle is slightly angled, it shouldn't stop you. It's awkward to get stuck on it. Players shouldn't be expected to push, up, then right, then up, then right, etc to move at an angle that's not 45 degrees.

Tylermon wrote:Add too much, and it becomes the platformer movement. Great for that one purpose. Limiting for much else.

The platform movement is pretty awesome. You can mold it to how you want. How is it limiting?
B
79
S
51
G
39
Posts: 370
Reputation: 24,705

Post » Tue Nov 25, 2014 3:10 pm

@Refeuh
Refeuh wrote:Can you re-create Metroid, Castlevania, Mario, Megaman II and Zelda II, all 2D side-view platformers, with the *same* player behaviour ? Hardly, because each of these have different requirements and work in different environments. You don't want a player behaviour that handles "everything" ; you want a flexible base you can customise to your needs, and that's what movement behaviours are.


I would argue that you can get very close to each of those games movement systems with the platform behavior. It's extremely flexible. Want jump through platforms, add them, change gravity, jump heights, double jump, etc. Of course you have to use code to customize it, like i just added hanging from ledges and climbing over them into my game. The base movement is there and has all the basic features needed to edit them. What if slopes weren't included in the Platform Behavior? That is similar to wall sliding not being included in 8 Direction. It is a basic function of top down movement.
B
79
S
51
G
39
Posts: 370
Reputation: 24,705

Post » Tue Nov 25, 2014 3:32 pm

Fair statement, and I don't deny it's a sensible request, but I think both points of view can be valid. In the end it's all about what features people think are or are not part of a "default" behaviour. Which is obviously very subjective.

Continuing with the platformer example and the functionalities mentioned previously, many games these days have ledges, ladders, double-jump, etc. Does that mean they should be included in the default movement behaviour ? I don't know ; and I don't think there's a black/white answer to this. There's a trade-off, and a balance to find between components doing too little/too much and the amount of "glue" logic the developer needs to implement.

My worry would be to end up with "monolith" components that try to do too much and become hard to customise every time your scenario doesn't fit nicely in the expected use-cases. If I was designing the underlying modules, I think I'd try to make the "slope/sliding" movement logic bit a separate behaviour (purely reactive, unlike input>movement) that you can add, or not, to the entities. That'd avoid unnecessary coupling in scenarios where this features is not required.
Image
B
23
S
9
Posts: 237
Reputation: 2,207

Post » Tue Nov 25, 2014 5:03 pm

@Refeuh
Yeah I agree. I don't want or need everything to be built in and I understand worries about behavior bloat. I guess to me sliding against a wall is expected behavior and extremely hard to code separately. Check out @R0J0hound 's solutions (Thanks for those R0J0) which are really good, but not perfect and still have a few caveats like having to shut off solids. That said, a separate sliding behavior seems like it would be a fine solution, if that's possible.
B
79
S
51
G
39
Posts: 370
Reputation: 24,705

Post » Tue Nov 25, 2014 5:35 pm

@Katala
Construct Classic had push out mode "Normal (use for slide)" on Custom movement. I think that would be good addition.

The custom movement behavior does have that but it doesn't work well. See the link in my other post for an example.
B
91
S
31
G
103
Posts: 5,235
Reputation: 67,756

Post » Tue Nov 25, 2014 5:39 pm

+1
A wall sliding option would be great.
B
70
S
21
G
12
Posts: 314
Reputation: 12,061

Post » Wed Nov 26, 2014 3:41 pm

UberLou wrote:@R0J0hound - Thanks Ill check that out tonight.

@Ribis - Yes, as stated in the OP the behavior does work well, but sliding against angled walls seems like it should be part of the behavior similar to how the platform movement deals with slopes without extra code. The Platform Behavior has received many improvements to increase it's usability but 8 Direction hasn't gotten much attention.


yes, I understand and you are right, make it simple if the behavior has more implementation, but for some request is better if you made your own script for make your own gameplay... but a wall sliding can be an important integrate.

@R0J0hound I locked your script (and don't just this)... and they are like an art... did you study math? :D
B
21
S
9
Posts: 298
Reputation: 2,967

Post » Wed Nov 26, 2014 9:03 pm

@Ribis
I do but all the math there is just a collection of simple things combined, so it only looks complex.
B
91
S
31
G
103
Posts: 5,235
Reputation: 67,756

Post » Sat Jun 06, 2015 4:37 am

Pardon the necromancy, but I'd rather not scatter discussion.

These are a number of good workarounds, thanks be to @R0j0hound, but I would like to see an option for it in the core 8dir behavior. I'll be off using a modified 8dir for my own nefarious purposes muahaha
B
14
S
5
G
1
Posts: 189
Reputation: 1,536

Previous

Return to Construct 2 General

Who is online

Users browsing this forum: No registered users and 7 guests