"NiAt" Advanced Custom platform movement engine!

Post your own tutorials, guides and demos.

Post » Wed Jul 16, 2008 2:17 am

Hi! This is the NiAt engine created by Me and Nillo (who i think hasn't registered to this forum yet, but he will soon.)

This advanced platform movement engine features

-Ability to change max speed, gravity, acceleration, deceleration, in-air acceleration and deceleration, max falling speed, jump strength, jump hold, bunny hop and roof slide in real time!

-New simple slow motion system!

-Resizeable character even if the game uses detectors!

-A fancy slo-mo blur (coded, not the built in one), also with settings for start-opacity and fade out speed!

-Heavily commented and with clean code nicely sorted into groups!

We started making this in mmf2 but we never upoladed it anywhere. I decided to translate it into construct and i also cleaned it up and added some extra features.I tried to do this a few months ago, but i ran in to the "destroy your .cap along with all it's backups"-bug, so i decided to wait for construct to be a little mor reliable. Now everything seems to work fine!

Instructions are in the group "comments" at the top of the event sheet editor.

Enjoy!
B
8
S
2
G
5
Posts: 744
Reputation: 3,288

Post » Wed Jul 16, 2008 7:31 am

Good job :)

I love the motion blur (press + about 20 times on the number pad in case some poeple miss it) and I appreciate how you can resize the sprite and the detectors etc automatically resize, meaning if you decide to change the size of your object later in development you dont need to manually edit the detectors.

However, I've noticed theres a couple of custom platform engines out here on the forums, and if you dont mind me asking...why are people creating them ? I mean is there something in this engine that the normal platform movement cant do ? If thats the case, please suggest it and it might be implimented. Behaviours in construct arn't just something for noobs to use, they are there to aid in the development process, and they are written in machine code so they perform faster. The goal of behaviours is for them to contain no bugs so everyone can easily access a 'perfect' platform movement, etc.

Anyways, here are a few minor issues I found
1 - The engine doesn't appear to handle slopes
2 - The object can only move whole pixels at a time, so you cant walk really slowly (like 1 pixel per 5 ticks)
3 - If you make the fps unlimited, the object flies to the left and right...so the speed of movement is dependant on the frames per secon the game runs. This is no problem if it runs at 60 fps on all computers, but if you use V-sync you might have some issues :( I suggest when you add acceleration and velocity, you multiply it by (timedelta * 80)

Otherwise, its a pretty good stable engine with its move per pixel collision system! Not even a 1 pixel wide object can run though a 1 pixel wide wall!
B
4
S
2
G
5
Posts: 641
Reputation: 3,011

Post » Wed Jul 16, 2008 11:11 am

Well, i can't really say ther's something this movement has that the built in one doesn't have (eccept the slo-mo and the roof slide :mrgreen: ) but i like having my movements coded because it gives me 100% control over whats happening. Also, since i know exactly how it works i can now calculate exactly how high and how far the character can jump wich is very useful when creating AI. I can also control it without the keys, and that is not only useful but necessary when creating AI. I also used this as a test to check if construct can handle more complex things and if the groups where working correctly.

you have some good ideas for improvement here. I'll investigate it further. Slopes shouldn't be impossible to add, and moving slowly shouldn't be that hard either even if i don't feel like i'll need it. The fps problem will probably mess up things when i want to calculate things, but i could ad it as an option.

thank you for your help!
B
8
S
2
G
5
Posts: 744
Reputation: 3,288

Post » Wed Jul 16, 2008 6:55 pm

[quote="Attan":3747yehu]Well, i can't really say ther's something this movement has that the built in one doesn't have.[/quote:3747yehu]
I disagree. It has proper controllability. When you want to do anything besides a simple platformer there is a high probability that you will start to need to hardcode events into the movement or change the way the movement works per character (like a robot vs a human), when you come across problems, you can fix them much easier, and it's easier to work with families ATM. The behavior is best for prototyping and speed (since it's hardcoded), that about it. I would prefer the behavior though, if I'm not going to do anything "special". But that said, this is obvious, because it's impossible for it to do everything for everybody.

Thanks for sharing.
B
2
S
2
G
4
Posts: 259
Reputation: 1,968

Post » Wed Jul 16, 2008 7:20 pm

[quote="Attan":1fbzokq9]eccept the slo-mo[/quote:1fbzokq9]
Did you know timescaling was added in 0.96? If you set the time scale to 0.5, your game runs half as fast - providing you use a built in movement, or your custom coded engine uses TimeDelta. And it's perfectly smooth. Your engine seems to wait an amount of time between moving the player - using timescaling, the object would be moving smoothly across the screen instead of 'stepping'.

Oh - and that's not a true motion blur by the way, like the built in one ;) that effect is called frame feedback.

Not trying to bully you but just pointing out differences between your engine's features and the built in ones! You've definitely got a solid platform movement there :)
Scirra Founder
B
359
S
214
G
72
Posts: 22,952
Reputation: 178,600

Post » Wed Jul 16, 2008 10:40 pm

Yeha, i know ther's time scaling, but it affects everything so far right? And i know the motion blur is a diferent thing, i just didn't know the terms :p. The built in motion blur looks totaly diferent though. It doesn't give the matrix look that this "frame feedback" does.

Well, i created this mostly to test if it was possible without crashing like it did last time (and to test this: viewtopic.php?f=2&t=1255 ). It might also be a good example on how to code in a clean looking way (something i learned when i looked through the source code of 'Knytt' by Nifflas).

Edit: Also, since i said earlier it's nice to be able to calculate how the player is going to move, and to be able to controll him without pressing keys. I needed a non-player controlled platform engine to be able to continue my AI engine. Is it planned to implement this? Also, it would be really nice if you could post exactly what the values you write when configuring the platform movement means!
B
8
S
2
G
5
Posts: 744
Reputation: 3,288


Return to Your tutorials & example files

Who is online

Users browsing this forum: No registered users and 0 guests