User Tag List

Page 1 of 24 1 2 3 11 ... LastLast
Results 1 to 10 of 238

Thread: RPM - Rage's Platform Movement

  1. #1
    Clicker Install Creator Pro
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    ragem's Avatar
    Join Date
    Jun 2014
    Posts
    123
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    RPM - Rage's Platform Movement

    Now permanently marked down to $4.99! Free version also avaliable on itch.io, ClickStore, and Steam Workshop!

    Patreon Build now avaliable! Pledge $1 to get access to even more content than the LITE version!


    Get it here:
    https://ragem.itch.io/rpm-rages-plat...ickteam-fusion
    http://clickstore.clickteam.com/rpm_platform_movement
    https://www.patreon.com/posts/rpm-rages-11590310

    LITE Version, free to download! (also attached to this post):
    http://clickstore.clickteam.com/rpm_lite_version
    http://steamcommunity.com/sharedfile.../?id=856268083

    Shantae HTML5 Exporter test:
    https://ragem.itch.io/rpm-shantae-test

    Example characters: https://dl.dropboxusercontent.com/u/...Characters.zip

    Hey guys, long time lurker here but I've decided to come out of the shadows to show you something!

    So for the past 2 years, I've been working on and off on a new FastLoop platform engine after taking a 6-year hiatus from any type of game design. I got my hands on a Steam sale CTF 2.5 and decided I should give this another shot. Back in my heyday I would try and build static engines that replicated a specific title, like say Super Mario for example. When I got CTF, I decided I should instead look into creating a more flexible engine that can replicate many things. I'm aware that the Platform Movement Object can be used, but I'm hard-headed and instead wanted to make my own thing.

    After many frustrations, false-starts, and re-learning, I've developed my own system called the Rage Platform Movement. The goal of this engine is to help streamline the development of platformer by building in most of the essential movements and include special "Widgets" that can control various aspects of the engine without needing to directly edit the code itself (unless there's a bug or quirk you don't like :P). As it is, it currently features:

    • Float-based, for smoother character movement
    • FastLoop-based collision detection, which can be modified even during play
    • Character Linkage: Simply add you character to the Group.Player qualifer and the engine automatically applies basic animations and sets it to the mask
    • Group-Based objects: Turn active objects into solid objects, jump-thru platforms, moving platform, ladder, etc.
    • Slopes, including slopes that can be jumped thru the bottom
    • Support for Horizontal, Veritcal, Rotating, and even Physics moving platforms
    • Built-in pause function
    • Custom smooth scrolling Camera
    • Options to toggle Jumping, Crawling, Crouch Jumping, Ceiling Slide, Jumping Down Platforms, etc
    • Basic XBOX Controller support, with the option to easily add more thru the Player Input Widget (which the engine reads as input)
    • Basic Metronome, because its something I always wanted to mess with :P
    • Animation Control Widget: Enable or disable any of the basic animations (even from behaviors) to allow custom animations, or used "Forced Animation" to manually control an animation
    • Only uses XBOX Gamepad and Physics extentions, which aren't really required
    • Basic 2-Player support
    • Other stuff that I can't quite think of at the moment!


    ...right so I'm kinda bad at this pitching stuff, so I've included a few examples of what it can do. All examples run on the same basic code without modification, using object behaviours and the widget system to add-on and control parts of the engine itself. It includes a Yoshi's Island test, an "Out-of-the-Box" example (how it works with nothing added), a Greninja example (using the excellent sprites by Neweegee), and a Shantae test (more of a test of the animation system and the metronome). Be sure to read the control file cause there's quite a few things to go over!

    I eventually might release the source on the ClickStore (minus all of the copyright infringment of course!). Maybe not at a price that'll break the bank since I'm sure you have your own engine lying around. :P Moreso for folks looking to try something else or see how sloppy I code things. Mainly need to write some better documentation on how to use it and get some non-copyrighted stuff to use for an example.

    Let me know if you find any bugs, I'm sure I missed plenty!

    https://dl.dropboxusercontent.com/u/...eviewBuild.zip
    Attached files Attached files

  2. #2
    Clicker Fusion 2.5Fusion 2.5 MacAndroid Export ModuleiOS Export ModuleInstall Creator Pro
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    PlasticCogLiquid's Avatar
    Join Date
    Feb 2015
    Posts
    48
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Nice! Yoshi's Island was probably my favorite SNES game too so double win.

  3. #3
    Clicker Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)
    Volnaiskra's Avatar
    Join Date
    Jan 2014
    Location
    www.sprykegame.com
    Posts
    1,792
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)
    This sounds fantastic. I have my own engine, but I'll definitely take a look and learn some stuff from your methods. The rotating platforms sound particularly interesting to me.

    A suggestion (unless you've already implemented it but didn't mention it): add support for jump buffering (where you can press jump a split second before hitting the ground and it'll still jump) and platform ledge buffering (where you can hit jump a split second after falling off a platform and it'll still jump).

    I'm in the process of working those things into my engine after several playtesters requested it.

    Anyway, thanks for coming out of the shadows to share such a useful resource!

  4. #4
    Clicker Fusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleiOS Export Module
    Fusion 2.5 (Steam)
    schrodinger's Avatar
    Join Date
    Nov 2014
    Posts
    3,155
    Mentioned
    26 Post(s)
    Tagged
    1 Thread(s)
    Thank you for this, looks very well done!

    Don't know if I mashed too many keys (while searching for buttons without re-opening the controls file )
    but the preview stopped working correctly after I switched to entry 3 and 4,
    players fell through platforms and/or started flying while holding the jump key.

    I think I triggered the pause 2-3 times while cycling the keyboard, don't know if this may be related?

    Not sure I can replicate the exact sequence to be more helpful in bug-tracking

    Good work, best luck with this engine!

  5. #5
    Clicker Install Creator Pro
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    ragem's Avatar
    Join Date
    Jun 2014
    Posts
    123
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey folks, thanks for all the kind comments! I wasn't sure how well this would be received since I'm sure you all had your own platform things going on. :P

    Yoshi's Island is definitely one of my all-time favorite platformers, which is why I chose it as the lead example for the engine. It's a bit of a shame they never really re-captured the magic of the original game though. One day though...

    Jump Buffering sounds interesting. I haven't included it in the movement itself, but there's a bit of a ham-fisted way of doing it by bumping up the Ground Detect value in the mask to detect the ground earlier. Of course this does lead to a side effect of the character "stopping" a bit before physically reaching the ground. :V It shouldn't be too hard to implement tho *knock on wood*, so I'll check into it.

    As far as the falling through stuff, chances are you ran into some of the debug keys I conveniently forgot to disable before releasing it lol (one of them disables collision.) The flying up thing is something I'll have to look into though. That usually happens when there's a conflict with the Float position values compared to what Fusion states. Not sure if that's triggered from the debug stuff but I'll have to go over the code again.

    Anyways, I wanted to show you a bit of how the main frame would look:

    https://dl.dropboxusercontent.com/u/...reenturnon.png

    On the side are the widgets used to control the engine

    • AC - Animation Control: This controls what animations the character will play, and allow you to manually play an animation. It also gives you the option to allow your Walk/Run to be affected by XSpeed, and if the mask should play the running animation either at top speed or if its dashing. The Shantae example makes good use out of this.
    • M - Metronome: It gives you a basic metronome feature that allows you to count beats/off-beats. You can adjust the BPM with float values to give you extra precision, and can trigger events on beats or on specific bars. It also includes an accuracy option (how close you are to a new beat) and a frequency jammer to distort samples (like the Touch Fuzzy in YI).
    • P - Player Input: This converts your all your inputs into generic Up/Down/Left/Right/Fire 1/etc. commands that the engine reads. It also detects how long you hold each input, and can read command strings (used for some special moves in Greninja)
    • E - Engine Control: This is used for specific functions in the engine itself, such as how steep the slopes you can stick to, pausing some or all elements, how long inputs are considered active, "forcing" jump through slopes, etc.
    • A - Player Attributes: This is where all of the character's attributes are stored, like Speed, Weight, Jump Strength/Release, etc. It also has triggers for enabling jumping, dash types (hold button or double tap foward), crouching, and more.
    • C / MC - Camera objects: These control how the screen moves (obviously). It includes options on how fast it moves, X/Y Distance offset, screen shaking, smooth/straight scrolling, and manual positioning.



    Most of the mask's functions (the gold square) are handled by the Attributes or done automatically, but it includes the option to increase the collision detection, how high slopes it can detect, and if it should retain its forward momentum in air. The arrow boxes are simply used for the Horizontal/Vertical platforms to shift directions.

    Here's part of the event editor:

    https://dl.dropboxusercontent.com/u/...venteditor.png

    I wanted to make sure everything was neatly organized properly in the groups, and made it so you just have to copy the top most group into whatever frame you want. I'm trying to comment on as many events as I can so you can have a better understanding on how the engine functions.

    And here's a sample of how Shantae uses the animation system in her object behaviors:

    https://dl.dropboxusercontent.com/u/...89/shantae.png

    Once again, thanks for all of the comments guys!

  6. #6
    Clicker Fusion 2.5 MacFusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleiOS Export Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    Fuuriokun's Avatar
    Join Date
    May 2010
    Location
    Brazil
    Posts
    203
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    It slowdown a lot here, it's not GPU because I have a Nvidia GTX 1080, it might be really CPU intensive (I have a AMD Phenom II x6 1090T, it has 6 cores, but it's not that fast)
    But it looks amazing, I'm trying to create a custom engine too, but I got confuse pretty fast with this, never created an fully working engine from the scratch...
    I've tried to use Styrbjorn's Platform engine as something to start with, but it's missing moving platforms...

  7. #7
    Clicker Install Creator Pro
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    ragem's Avatar
    Join Date
    Jun 2014
    Posts
    123
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Oops, somehow my post got deleted. Dang mobile version!

    Anyways, was this only on the Yoshi example or all of them? I kinda hamfisted that level there because it's one gigantic PNG eating away at your memory. I'm running on a FX-8350 and while I do get a bit of slowdown there, it's fine on the other examples. I did try to add some events that disabled the loops when not needed, but maybe I should add more? I don't have a lot of old CPUs to test on.

    Also, the full release should be coming soon (likely early-mid October if everything goes well), as I managed to run across some old sprites someone made for me of one of my characters. The only catch is that it doesn't quite have all the animations I need, but enough to get some basic stuff going on. To compliment, I'll likely release some of the characters I made in the examples separate from the engine. They're all behavior-based, so they should work fine as long as the engine code/widgets are there. You should also be able to copy and paste their moves (like the air dash or the wall sliding) on to your own character should you want those.

    I did look more into the warping thing, and while I wasn't able to re-create it, I went ahead and programmed a check that automatically resets the Float X/Y values if the mask goes beyond a pre-calculated position.

  8. #8
    Clicker Fusion 2.5 MacFusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleiOS Export Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    Fuuriokun's Avatar
    Join Date
    May 2010
    Location
    Brazil
    Posts
    203
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    All of then seen a little slow, but Yoshi seen slower.
    I have 10gb of RAM, and I believe the GTX 1080 has more 10gb of video memory...
    Well, you will eventually optimize it, don't you? So it's ok
    I'll try to learn something by your screenshots, I'm not this organized haha

    Oh, and how do you store and calculate float values? I never got it working in alterable values or counters (close but not perfect), but it could actually work in alterable strings for me I think...
    Another question, it has an internal clock, right? All movement is based on the clock update? (that's why you can pause everything, am I right?)
    Metronome = Internal Clock? (some people call it delta time)

  9. #9
    Clicker Install Creator Pro
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    ragem's Avatar
    Join Date
    Jun 2014
    Posts
    123
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I haven't implemented a delta timer yet, mostly because I haven't quite figured out how to get it working. :X Perhaps there's some magical click wizard that knows. It's probably why it runs like junk on some systems. Machine-Independent speed works for the most part but it kind of makes moving platforms weird. What's actually pausing the engine is disabling certain groups. Some events are made to pause either only the player or everything but the player. If I could figure out how to get delta working maybe I could try experimenting with that.

    The metronome primarily works on either Fusion's internal clock (if no song is applied) or the sample position of the song. It'll stay in sync regardless of FPS. It's more about getting the right BPM.

    The way floats work in my engine is by first getting the intial X/Y position of the player mask, then adding X/Y Speed (already a float value) to the Float whenever the mask accelerates/decelerates. A loop is triggered based on the Float value minus the mask's position, which then moves the mask. The Float value automatically updates to the mask's position whenever it stops to prevent warps.

    Optimization is going to be the next major step it looks like. It may or may not hit that October window depending on what needs to be done, but it'll get out there.

  10. #10
    Clicker Fusion 2.5 MacFusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleiOS Export Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)
    Fuuriokun's Avatar
    Join Date
    May 2010
    Location
    Brazil
    Posts
    203
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    7fps, running in slow motion on the Yoshi example.
    My pc seen a bit slower than usual right now, I may need to reboot. And I read about some low fps issue on Windows 10 Anniversary Update and later versions, may have something to do with it.
    Delta timer may help, but you got to look into your code for continuous events, redundancy can mess a lot with the fps.
    I've got a similar problem when trying to get an old project to run on my smartphone, it got really slower, then I've tried another engine, and it worked flawlessly, the same can happen with PC, try to clean everything that is not necessary to run all the time.

Page 1 of 24 1 2 3 11 ... LastLast

Similar Threads

  1. Custom platform movement or MMF2 platform movement?
    By soopytwist in forum Multimedia Fusion 2 - Technical Support
    Replies: 0
    Last Post: 5th July 2016, 08:34 PM
  2. Horizontal Moving Platform using Platform Movement Object example
    By Warmachine in forum Guides, Tutorials, Examples, Widgets
    Replies: 0
    Last Post: 20th January 2015, 09:31 PM
  3. Replies: 2
    Last Post: 5th January 2015, 10:13 PM
  4. Weapon rotation( Streets of Rage style)
    By gamer123 in forum Multimedia Fusion 2 - Technical Support
    Replies: 1
    Last Post: 20th July 2012, 01:46 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •