How do I recreate this in Construct 2?

0 favourites
From the Asset Store
Casino? money? who knows? but the target is the same!
  • Does anyone know how to translate MMF2 events into Construct 2?

    I would do it myself but it's too bloody confusing, I can't seem to find any reference or anything.

    If you know how to do this but can't be bother, can you tell me how to do it? What symbols mean what etc

    [attachment=1:3mx8rqxe][/attachment:3mx8rqxe]

    Basically that should end up looking like this (this was made in Construct2 but it's the same as the one in MMF2)

    [attachment=0:3mx8rqxe][/attachment:3mx8rqxe]

    It uses lerp and lerp clamps(?), this is a direct qoute: "Samus & associated objects utilize the persist behavior so she retains her exact state between rooms. They are positioned after a room transition based on paired door IDs, as is the camera."

    I'd really love to know how to recreate that for my own game, currently I use a zone based camera from this tutorial https://www.scirra.com/tutorials/747/zone-based-camera-movement

    Can anyone please help me? This has been tormenting me for months on end.

  • Unfortunately it's hard to describe how I did all of that without showing any code. I did my best in the video description.

    I am thinking about making a "Metroidvania Game Kit" to put on the Scirra store that will help people develop such games, but it's going to take some time.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Oh wow I didn't expect you to show up here (mostly cause I PMed you about it and never got a reply),

    Any chance you might privately send me a .capx with an example of the doors or possibly the whole thing? I could paid if it's not expensive.

    I'm a real big fan of your games, I tried to find Minitroid but it's impossible.

    Thanks for the reply!

  • lol oh, sorry. I don't check my PM's often.

    As I mentioned in the description, I don't think sending the .capx would be helpful. There are numerous systems tied together to make this work, and even I had a hard time doing anything with it. This .capx in particular is not very well commented either, as it was not meant to be shared. If I decide to do this game kit it will be very well commented and include a video demonstrating how the layouts, rooms, mini-map, HUD, subscreen, save data, etc. work together.

    Sadly these layout-based systems like C2, CC, MMF, GM, and Stencyl have simply aren't good for metroidvanias or open-world games. You really need to make custom editors for them to dynamically manage chunks of the world. I discussed this with Ashley and unfortunately he expressed little interest in anything of the sort. Layouts are too ingrained in the editor anyway.

    Also there is a new link for the Minitroid tech demo in the trailer description.

  • I honestly wouldn't mind getting it without comments, if you do eventually release it as a kit I'll buy it faster than humanly possible. At the very least I'd like to be able to study it, maybe I might even make sense of it. Construct 2's events aren't illogical. Also I could always systematically turn event groups on and off to see which does what.

    If you do send it, if you want I can put you in the credits as co-developer of the game, because right now I'm getting nowhere.

    Even though Construct 2 has no "programming" in the form of script writing, I still think that you have to have knowledge of scripting. From what I've seen all of the games so far that are being showcased and held up real high are by people who have experience writing code. Out of the engines I've tried (Unity, Game Maker, Stencyl, some other really weird one and MMF 2.5 free) Construct 2 has been the only one where I've actually made progress yet I'm still limited by not having knowledge of scripting. But there is a difference between actual scripting and these events, if you look at code and have no prior knowledge of code you'll never get it but with events its not that extremely complicated. Construct 2 is literally the only engine I've tried and used where I didn't have to constantly look at tutorials and youtube explanations (at least until now for a specific thing) as opposed to say Unity where every single thing I wanted to do had a 40 minute tutorial with extra 30 minutes explaining C#.

    Tried Stencyl for a few months, not the most user-friendly engine out there.

    I just really need some help, please?

  • Any chance at all?

  • I wouldn't bother trying to translate MMF2 events over to C2. Try to recreate it from scratch. Start a new capx with a few placeholder sprites, do as much as you can, post it here and tell us which particular thing you're stuck on. I'm sure you'll get a quicker response.

    In the gif I see:

    Run into door

    Fade to black

    Slide door across screen

    Load next layout

    Fade in

    How much of that can you do?

  • Thanks for telling me to not waste my time trying to translate MMF2 events.

    I'm currently making the .capx

    From the list you showed I can do;

    Run Into Door

    Load Next Layout

    I look at a tutorial for fading out and in to layouts but it uses effects, it also means that the game will keep going on while it's taking place so I can't use that.

    I'll post the .capx here when I'm done.

  • This was the best I could do.

    [attachment=0:3bumwccb][/attachment:3bumwccb]

    If I remove the fade in and fade outs I can get the player to spawn as a new object on the next layer.

    But then it's something like this;

    On Player Overlap Door | Destroy Player - Go to LayOut2 - Spawn Player

    (I set up instance variables to have him appear in front of the door)

    I'd really like help with this if possible. Currently I think that Tokinsom is my only real hope of solving this, mostly because he has the answer to it.

  • Ok here's a start:

    I used a sprite with fade behavior instead of effects for the fading. I put a detector sprite inside the door so that the player has to go all the way in before the layout change triggers. I gave the door bullet behavior to move it. And I made the player global so it appears on the next layout.

    Still to do:

    Position the player correctly by the door at start of layout

    Go back in the other direction

    [attachment=0:k0y718xj][/attachment:k0y718xj]

  • -Don't move the door. Instead, make a dummy object and set its timescale to 1 at the start of layout. Then, set the game time scale to 0 at the start of a room transition, and move scroll x/y by 120 * Object.dt during a room transition. This will allow the camera to move while the game is frozen.

    -You position the player after room transitions based on door ID's. In your example, both doors would share the ID of 0. If there were 2 more doors, they would share the ID 1. This way the player knows which door to come out of, and which door the camera should focus on immediately after the transition.

    -Without a mini-map defining room/layout connections you'll have to tell each door which layout to go to.

    Anyhow, not to be discouraging but I stand by what I said about C2 not being good for metroidvanias. Using separate layouts for each room means you have absolutely no "world reference" unless you draw out your map beforehand and label each room, or create a mini-map like I did. However, the mini-map only shows you so much. It is also extremely difficult to collaborate on the world map as everything in C2 is completely internal. Multiple people working on hundreds of rooms via SVN is truly a nightmare.

  • a cheap and dirty way to do it would be to use an additional layout, one that is simply a black background and the tube would move from one side to the other, you could think of it as a transition layout

    • run into the tube.
    • transition out the first level
    • load the transition layout
    • transition finishes
    • load next level.

    I would use LiteTweento move the Pipe across the level

    As for the screen fading to black, I normally use a layer that has a black background and transparency turned off, then just set the opacity. Yet again, you can use LiteTween to do all the dirty work on this task as well.

    Hope that helps

  • I meant no world reference for you, the developer. All you're going to have is a gigantic list of layouts with no idea where each one is placed on the world map, and no idea what they look like since you can only view one at a time.

    And sorry, but no, I am not giving out the .capx to anyone. Too much time and effort went into all of that to just hand it out. It also uses a fair amount of custom art that we don't want other devs using. I don't mind giving tips and pointing you in the right direction to build your own. This is only the first few steps in building a metroidvania anyway so it's best to have your own engine you fully understand.

  • And to get him back the other direction but I can't get the door animating working that way, no idea how you made it do what it does.

    How are we supposed to fix placing an initial spawn point? Also this seems like it would be incompatible if we put in save points.

    Well you have "Go Right" and "Go Left" for the door directions, that's ok. 0 degrees is right, 180 is left. You just need to check when the door reaches the edge of the screen. ViewportLeft(layername) gives you the x position of the left side of the screen and ViewportRight(layername) gives the right side.

    As for the initial spawn point maybe give the player an instance variable that tracks which door he came through.

    • Player has an initial door id = -1
    • Connected doors have the same id
    • Player goes through door and stores door id
    • On next layout, player is positioned next to the door with matching id, unless id = -1
    • At a save point you can set the player door id to -1

    I've never played Metroidvania so I don't know if you have multiple doors per level or what else you need.

  • Your code is wrong.

    -Set Scroll X to ITSELF + 120 * dummy.dt. You were basically setting it to 120 every tick.

    -You got the lerp() parameters mixed up: swap x and b.

    -Remove the scroll-to behavior from the dummy object.

    -Make the dummy object global.

    -Make sure both layouts are using the same event sheet. Better yet, make every layout use a "GameRoom" event sheet and "include" a room transition sheet in that one.

    https://dl.dropboxusercontent.com/u/105 ... ing_1.capx

    This should get you back on track.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)