Altimit Pixel Movement [0.50β]

Discussion in 'JS Plugin Releases (RMMV)' started by xilefian, Oct 9, 2017.

  1. xilefian

    xilefian Veteran Veteran

    Messages:
    117
    Likes Received:
    171
    First Language:
    English
    Altimit Movement 0.50 beta

    This is an open-source project, feel free to clone the repository and make pull requests.

    About

    This Plugin replaces the default movement and collision system with vector-based movement and polygon-based collision.

    I've tried many different pixel-movement Plugin in the past, but have found that each one has a set of corner-cases that causes it to fail or break. As a result, I decided to create my own one with the goal of it being as water-tight as possible.

    Altimit Movement is designed to be a drop-in replacement for the default movement system. The primary goal of it is to not be "unexpected"; once Altimit Movement is in your project, it should feel like RPG Maker MV has always featured pixel-movement.

    The goal is for Altimit Movement to be the ultimate pixel-movement Plugin.

    Web Demo
    Download Latest Version
    Video



    Features

    • 8 direction movement
    • Custom character hit-boxes
    Beta Release

    The beta release is about developing the API, including Plugin parameters and commands.

    The goal is to bring it up to par with other existing movement Plugins and provide everything needed for developers to create a game using all the features available with the Plugin.

    Known Issues

    The latest issues are listed on the project page at the following URL: github.com/AltimitSystems/mv-plugins/issues

    Feel free to report issues in this thread or create a new issue on the project tracker (label as Altimit Movement).

    Altimit Movement Debug

    Altimit Movement has a companion Plugin that can display debug information (shown in the video above). It is available at the following URL: https://github.com/AltimitSystems/mv-plugins/tree/master/movement-debug

    Like Altimit Movement, this is an alpha release and has its own issue tags and road-map (such as displaying debug collision information for vanilla MV without Altimit Movement).
     
    Last edited: Jan 6, 2018
    #1
  2. CommanderNZ

    CommanderNZ Villager Member

    Messages:
    10
    Likes Received:
    0
    First Language:
    English
    Primarily Uses:
    RMMV
    This looks like it will have potential, I have been looking for a decent pixel movement plugin that will be compatible with my game for sometime, I will be following this one to see if it will work when the bugs such as the mouse touch are fixed.
     
    #2
  3. xilefian

    xilefian Veteran Veteran

    Messages:
    117
    Likes Received:
    171
    First Language:
    English
    Updated first post to include a web-demo.

    Missing mouse input isn't a bug, just that it hasn't been re-built yet. As of right now (this post), there's no known bugs (but bugs will be found and they will be fixed), which is why I need people to test this out and find bugs so it can be made water-tight.

    It's worth trying with your project, there's zero configuration needed so it doesn't take much effort at all to install and check it out. I've been testing it out its robustness by modding other people's MV projects in private and inserting this Plugin, it's pretty cool to be able to retroactively add pixel movement into other people's published MV projects.
     
    Last edited: Oct 10, 2017
    #3
  4. ramza

    ramza Lunatic Coder Veteran

    Messages:
    522
    Likes Received:
    285
    Location:
    Nova Scotia, Canada
    First Language:
    English
    Primarily Uses:
    RMMV
    I'm surprised how well this runs in the test demo. I hadn't considered using a pixel movement system in my own project before, but after seeing this in action, I am beginning to reconsider.
     
    #4
  5. Dirge

    Dirge Sound Engineer Veteran

    Messages:
    413
    Likes Received:
    281
    Location:
    Canada
    First Language:
    English, German
    Primarily Uses:
    N/A
    What's the benefit of using pixel movement versus the default? I've never looked into it before.
     
    #5
  6. Kyuukon

    Kyuukon 主人公 Veteran

    Messages:
    2,216
    Likes Received:
    1,073
    First Language:
    Spanish
    Primarily Uses:
    RMMV
    Love that philosophy :) Keep up the good work!
     
    #6
  7. xilefian

    xilefian Veteran Veteran

    Messages:
    117
    Likes Received:
    171
    First Language:
    English
    Although I'm thinking "unexpected" is probably the wrong word. Should be "unsurprising", which is the opposite of unexpected.

    The web-demo has been updated to reflect a more game-like usage with move-routes and custom event colliders. It will now always use the latest version of the Plugin from the github page.

    I've fixed a number of issues found when creating this new web demo and added some developer features, namely the ability to change an event's collider.

    I've gone ahead and fixed a number of issues I've reported on the github issue tracker.

    Bugs fixed:
    Thank you to user "Run" of RMMV.co for reporting several bugs that are now fixed.

    Mouse input is something I'm still figuring out a good solution for. Alpha 0.02 will be done once mouse input is in.
     
    #7
  8. styx92

    styx92 Veteran Veteran

    Messages:
    310
    Likes Received:
    38
    First Language:
    German
    Works good for an early alpha. I put it into my current project and dont have a big bug.
    Only footstep sounds and footstep graphics are really wierd :D but i think that are not the priorities at the moment :D
     
    #8
  9. xilefian

    xilefian Veteran Veteran

    Messages:
    117
    Likes Received:
    171
    First Language:
    English
    Alpha 0.02 is now ready (available on first post). This re-adds mouse based movement. There are some event-interaction quirks (getting off a vehicle may be fiddly, needs improvement) but it is working. The path-finding for mouse movement is now rather dumb; the player will simply walk towards the direction of the click, nothing special.

    The reason behind this is because it "feels" much better on touch-screens, now that the movement grid is no-longer a factor. I did implement a full path-finding system (it was super awesome too) but ended up removing that because it just didn't feel as good as the "move towards finger" behaviour.
    3rd party Plugins that add effects like footstep sounds/graphics aren't a priority at the moment. It is open-source, so the hoping is people will create patches that add compatibility with other Plugins and they get merged into this Plugin. It would be interesting to see one of the ABS Plugins that depend on pixel-movement be made compatible with this one.

    Feedback has been overwhelmingly positive for this Plugin so far, particularly about it resolving some bugs that the other popular pixel-movement Plugins currently have.

    The next version should have some developer API stuff added, including an easy way to set custom collision shapes for characters. I've also been looking into having TileD be used as a collision-mesh editor, but there's some complexities behind translating MV to TileD that makes this a difficult thing to implement. The idea is to have an easy way for people to create a totally custom collision mesh for their maps. A TileD translation layer is a completely separate project that I'm not going to entertain for now.
     
    #9
  10. vico

    vico Veteran Veteran

    Messages:
    160
    Likes Received:
    18
    First Language:
    Portuguese
    Primarily Uses:
    RMMV
    Thanks A LOT!

    Based on the video demo, this system is the most similar to how movement is made in Chrono Trigger.
     
    #10
  11. xilefian

    xilefian Veteran Veteran

    Messages:
    117
    Likes Received:
    171
    First Language:
    English
    Chrono Trigger is exactly what I had in mind for the follower behaviour, so I'm actually quite happy you identified this similarity!

    I've been updating alpha 0.02, solving some bugs before I start work on the beta version proper.

    Bugs fixed:
    Enhancement:
    This is the first "enhancement", which is basically a feature that improves on default behaviour, whilst still being something that you expect to be there. In this case, ladder-tiles (ladders and ropes) will cause characters to align to the middle of the ladder/rope if it is an up/down directional tile. This visually looks nicer than letting the player unrealistically slide around the sides of a ladder/tile.

    The on-ladder detection logic is now the same as the on-bush detection, which is another nice visual improvement for ladders/ropes.
     
    #11
    phamtruong1992 likes this.
  12. Da.D

    Da.D Villager Member

    Messages:
    5
    Likes Received:
    0
    First Language:
    Korea
    #12
  13. xilefian

    xilefian Veteran Veteran

    Messages:
    117
    Likes Received:
    171
    First Language:
    English
    It works perfectly fine with this Plugin for me: imgur.com/7ReKDQ0
    Works in any Plugin order too. Zero issues.

    Do you have any other Plugins that could be causing the problem?

    EDIT: Just checked all the method names, there's no conflicts between these Plugins, so they should be completely compatible.
     
    #13
  14. dahlys

    dahlys Meatbun Veteran

    Messages:
    91
    Likes Received:
    87
    Location:
    California, USA
    First Language:
    English
    Primarily Uses:
    RMMV
    Thank you so much for this plugin! Movement looks a lot less rigid now~ :D I've been waiting for a good pixel movement plugin.

    I also tested out a simple character distance calculator using the collider coordinates in this plugin and it works great! here
     
    #14
  15. phamtruong1992

    phamtruong1992 Mage Art - Green Dragon Veteran

    Messages:
    146
    Likes Received:
    180
    Location:
    South Asia
    First Language:
    English
    Primarily Uses:
    RMMV
    #15
  16. xilefian

    xilefian Veteran Veteran

    Messages:
    117
    Likes Received:
    171
    First Language:
    English
    Thanks for the feedback and it's great to see a Plugin using this Plugin. I suggest developers wait until the beta versions with the API implemented before creating Plugins, for now go ahead and do experiments, tests and ideas - but complete Plugins should wait for the API.

    This Plugin sample is a good example for why;
    I see that you've used "collider().x" and "collider().y", which is okay for a scenario where all characters use circle-colliders, however tile events (which are also characters) will use the shared-tile collider, which is a polygon collider and does not have an x/y co-ordinate.

    The API will add a way to get the middle X and Y coords of a character - which for now can be reliably calculated with:
    Code:
    {
        x: ( character.collider().right + character.collider().left ) / 2,
        y: ( character.collider().bottom + character.collider().top ) / 2
    }
    There will likely also be API stuff added for calculating distance from the edge (as opposed to middle) of one collider to the edge of another - which would be useful for a Plugin similar to your one; but I'll leave distance from one middle to another middle for others to handle as that's nowhere near as complicated.
     
    #16
    dahlys likes this.
  17. vico

    vico Veteran Veteran

    Messages:
    160
    Likes Received:
    18
    First Language:
    Portuguese
    Primarily Uses:
    RMMV
    Is possible to add in your script a simple extra frames module? Because the only other plugins i've know to add this kind of funcionality are another pixel movement plugins, and i'm afraid obviously none of them are compatible with yours or would interfere with its funcionality.
     
    #17
  18. dahlys

    dahlys Meatbun Veteran

    Messages:
    91
    Likes Received:
    87
    Location:
    California, USA
    First Language:
    English
    Primarily Uses:
    RMMV
    Ahah, I had wondered why there were different types of colliders in the code, now I see. I've only done testing with characters and they were all circles so I kinda...assumed. I thought the polygons were only for the map tiles and all events were round. I was experimenting with changing the collider size and wondered what went wrong, but I get it now. The plugin is also pretty much something I wrote only for myself. I will eagerly await the API!
     
    #18
  19. microck

    microck Veteran Veteran

    Messages:
    45
    Likes Received:
    10
    Cool plugin. But if we use the Galv's character animations plugin with Altimit pixel movement, the character isn't animated. :(
     
    #19
    vico likes this.
  20. xilefian

    xilefian Veteran Veteran

    Messages:
    117
    Likes Received:
    171
    First Language:
    English
    To address both of these posts; I'm actually planning on making an extension Plugin that adds these features. I haven't seen Galv's character animations Plugin, but what I'll be doing is adding an optional extension that enables 8-direction movement, sprinting frames and idle frames.

    It is currently planned as an extension right now, but it may end up being merged to be a core part of the Plugin. At the moment I think I want it to be an extension, so the "core" Plugin exists as a "vanilla" pixel-movement Plugin (no fancy features, everything acts as expected) then extra features that aren't in vanilla MV are added as extensions.

    A lot of character-related Plugins are highly likely to be incompatible (movement Plugins, obviously, but things like 8-direction movement, extra animations, foot-steps) as the logic is completely different to default MV (there's hardly any default MV logic related to movement left). If people want to add compatibility for Plugins; this is an open-source Plugin so everyone is welcome to do it. I'm not going to accept Plugin-specific hacks into the master-branch but I will definitely accept modifications that gain compatibility with Plugins without hacks (hacks being a branching if-statement detecting if specific Plugins are installed, that kind of code is very unhealthy for MV Plugins).


    EDIT: Beta 0.10 is now here. The API for the beta releases are not final and will be in-development until the final beta version is complete.

    Plugin Parameters

    I have added parameters for configuring all the default colliders. Eventually I'll be removing the "shared" collider system in favour of these default colliders. Collider presets is on the todo-list (to match a feature of QMovement).

    All API objects will be XML; JSON support may be added in the future, but from experience I've found that XML is easiest for modders to use who are not familiar with code structures.

    Rectangle (this example makes a tile-sized square)
    <rect x='0.0' y='0.0' width='1.0' height='1.0' />

    Circle (this example makes a tile-sized circle)
    <circle cx='0.5' cy='0.5' r='0.5' />

    Line (this example makes a line from top-left to bottom-right)
    <line x1='0' y1='0' x2='1' y2='1' />

    Polygon must be convex and clock-wise-winding (this example makes a triangle)
    <polygon points='0.0,1.0 0.5,0.0 1.0,1.0' />

    Regular polygon (this example makes a 5-pointed polygon; a pentagon)
    <regular cx='0.5' cy='0.5' rx='0.5' ry='0.5' p='5' />

    You can use multiple colliders to create complex shapes (this is how convex polygons would be made). Already you can see that this is more powerful than the options for other movement Plugins that also feature custom colliders.

    Bugs fixed:
     
    Last edited: Oct 30, 2017
    #20
    Tea's Jams and vico like this.

Share This Page