Switching from GMS to Construct2 ?

  • Ashley

    Just to throw in two cents, I get several crashes in C2 and I noticed it's usually when switching between different system windows, like if I finish editing a sprite then close the window, the whole program will crash sometimes , or if I switch from events to layout screen. IT's rare enough to not be a serious off putting issue, but enough that I save pretty much before clicking anything.It seems like CS2 does sort of "secret loading" in the background after some operations and if you overload it during that process it will crash...if that makes any sense.

  • Aurel

    glad it was helpful. After posting I thought of a few other things that maybe of use.

    1. C2 executes events top to bottom so organize well. or you may not get the results you expect No "begin step" "step" "end step" "draw step" it's just all one step.

    2. draw_gui C2 equivalent is a top most layer with scalerate=0 Parallax=0,0. then placing your GUI objects on said layer.

    3 Parent object. is exactly like a Family in C2. But you can only have one object type in a Family. Both can have overlap. GMS Parent objects can themselves have parents. and an object in C2 can exist in many families

    4.Sure you noticed by now. you can edit scale and rotate objects on a layout without the fear of everything going to hell. unlike in Rooms.

    5. Nothing like surfaces built into C2. some 3rd party plugins give you some of these functions back.

    6. Sound in C2 is less buggy then GMS and more responsive in the editor.

    7. no "switch" statement in C2. get used to lots of IF statements and use a local variable as your break.   

    8. you can't store objects as variables in C2. you will need to use a variable as a switch to choose the object instead of directly calling it.

    Example, not practical to spawn an enemy each tick but just pointing out the difference.    

    GML

    //step event, or some other event

    NewEnemy=choose(obj_enemy1,obj_enemy2,obj_enemy3);

    instance_create(x,y,NewEnemy);

    C2

    // create variable. global in this example.

    "Newenemy"=0

    each tick-- Newenemy=choose(1,2,3)

    sub event

    if Newenemy=1 -- system create object obj_enemy1 at layer,X,Y

    if Newenemy=2 -- system create object obj_enemy2 at layer,X,Y

    if Newenemy=3 -- system create object obj_enemy3 at layer,X,Y

    you can see how this could become lengthy if your spawn system was complex.

    9. scirra forums don't have a collapsible/expandable code tag. I wish they did <img src="smileys/smiley2.gif" border="0" align="middle" />

  • Onzephyr, you know you're like an gamedev angel for me right now, you know that?

    I've been playing with C2 all day, and I'm really thinking about recreating my game in C2 to finish it. (I'm 50% in dev, 7 months, but I can re-import all the assets in C2). That's a huge waste of time, but it could worth the effort as I look to all the C2 strenghts and how quick I progress here.

    Tried to add my core gameplay, works like a charm in 2 hours.

    Added gamepad support, works like a charm.

    Particles effects and shaders, 1 hour, works like a charm.

    And I don't mention parralax, that was effortless. I figured the GUI thing already because of that.

    The whole IDE is brilliant, just brilliant.

    For now, regarding the events, I feel like everything easy in GMS will be much quicker in C2, but complex conditions will be a bit harder to handle. As you said. We'll see if I miss GML too much. Maybe, but for now, I don't think so.

    I miss my paths, too, but waypoints should do the trick, I found one pretty good example on this forum.

    I mostly have to stop searching for begin step / end step, and it should be fine. And understand how to make solid controllers.

    If I read you well, my mains controllers have to be a kind of "permanent" sheets. Or do I have to add it manually to each level?

    Anyway, you've done enough for me, I will figure it out anyway if it's as well made as the other C2 features.

    Thanks again, and again, the transition is very smooth thanks to you.

    Heart symbol with my fingers and everyting.

    ------------

    BONUS !

    ------------

    No crash today! ;)

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Welcome to the forum, Aurel <img src="smileys/smiley4.gif" border="0" align="middle" />

    I got so much knowledge after reading this whole thread. Thanks everyone for the help. Before I was also thinking like you Aurel means to say what is good for me. After some time I found the answer C2 is my darling and I loved it. Thanks C2 Team.

    I don't want to compare them right now as I don't have so much knowledge like you guys have. But there is one good thing that C2 is getting better & better day by day. I think that in less than a year it will be the best for all the platforms from Mobile phones to Desktop computer. That is the performance will be increased.

    One more thing Aurel, if you put symbol before the name of any user , than that user will get one notification about this post, it is very much helpful to tell a person that you have replied to there post or question.

    Hope this helps.

    Thanks in advanced.

    Bye bye take care.

  • Aurel

    I forgot about Paths. Yeah nothing exactly like them. Waypoint system is the way to go. glad you found an example that works.

    C2 does have really nice pathfinding, but that's overkill for what a GMS path did.

    Glad your switch is going well. Pretty crazy you already got your game ported over that fast.

  • I will try to keep this as short as possible <img src="smileys/smiley1.gif" border="0" align="middle" />

    Construct 2 is the first software I bought in a long time (and I don't usually buy software).

    First of all, most of us are hobbyists and in best case Indie. What we need ? We need easy software (less coding) and tools as cheap as we can get. Quick comparison of 3 engines that I tested before:

    In the performance order (the things you can do with the engine):

    Unity3D > GameMaker:Studio > Construct 2

    Features/price ratio:

    Unity3D > Construct 2 > GameMaker:Studio

    Construct 2 for nice 2D games done fast, available in browser and almost on all platforms. A disadvantage that I see is that exports only HTML5 and in order to port your game on other platforms, you will need 3rd party tools.

    Unity3D for better quality games but you need coding skills (C#, Javascript or Boo) and more time to spend. Also for Indies is free until they reach 100.000$ if they put Unity3D logo at the start of their game.

    But if you want to make a decent commercial game you will need at least one good programmer and one graphical artist (it's very hard for only one person to make a good game).

    GameMaker:Studio if you want to spend more money, learn a proprietary programming language and have headache using the Layout editor. With Unity3D bringing default support for 2D there will be dark days for GameMaker:Studio.

  • Yeah, I'm a huge fan of GMS, but the more I use C2, the more I love it even more :)

    It's so easy and joyful to develop with, I'm having a very great time.

    Thanks again thehorseman007 and onzephyr for your advices.

    I think there will be no turning back to GMS, even if I own and paid all of the exports packs.

    That said, as a beginner in C2, I'm a bit confused on how to do the 2 followings things I easily made in GMS.

    Any pro-user hint welcomed :)

    Particles angle: I know how to set the angle of the particle emiter, but I'm looking for a way to set the image angle for each part (so, not the spray, the images in the spray).

    I got glowing strokes for the trail of my ship, and I can't figure how to orient the parts at their creation so it looks clean.

    Automatic dropped shadows: I'm looking for a way to create shadows of my top view road on the sublayer for a great depth effect.

    I tried a lot of things, but I can't figure how each instance can create their specific shadow at start, each at their own position +n and angle.

    Well, I guess it means I suck at create events for now ^^!

    (for now...)

  • Oh, nevermind, just saw the other topic about particles angles. It can't be done, I'll find another way, no problem.

    And I'm sure I'll find this shadow thing by myself, I shouldn't ask too soon, let's search a bit more.

    This topic can be closed if someone want to :)

    Thanks again everyone! Wish you the best for your games!

  • Thanks for the reply Aurel, glad to help you, and yes C2 is something like a trap when you use it , you cannot come out of it. So I got stuck in C2 and now you are. <img src="smileys/smiley4.gif" border="0" align="middle" />

    But don't panic hahahahahahaha, since you got stuck you will come up with something good creation of your own. <img src="smileys/smiley1.gif" border="0" align="middle" />

    TGeorgeMihai I don't think that the GMS has the dark days now because Unity is now 2D or so, as we all have the different taste and the one who likes GMS will not buy or go for Unity2D. Just my point of view. <img src="smileys/smiley1.gif" border="0" align="middle" />

    Thanks in advanced.

    Bye bye take care.

  • Aurel

    yeah no particle rotation, but you found that.

    for the drop shadow. There are a bunch of ways to go about it. Kind of what's nice about C2. Here are the ways I do it based on movement needs.

    The shadow casting object does not move. and you want the shadow on it's own layer.

    // two objects. obj_road, obj_shadow

    obj_road on created

    ---- obj_road spawn obj_shadow on layer "thislayer",imagepoint"0" // have each obj_road on create , spawn a shadow on a diff layer.

    ---- obj_shadow set position (self.x+offset,self.y+offset) // set position by adding offset amount

    The shadow casting object is going to move and the shadow need to stay "pinned" at a specific distance/angle to obj_road

    Do the same as above but give the obj_shadow the PIN behavior. and pin it to obj_road at the end.

    The shadow casting object is going to move and the shadow needs to dynamically move in relation.

    example player shadow needs to position its self based on nearest light source. Using containers for this is great if you have many of the same object needing complex shadows.

    /* two objects. obj_player, obj_shadow.   obj_shadow is in the obj_player's container. " this makes selecting the right object just work when you have many instances"

    if there is only one obj_player and only one obj_shadow then you don't need a container.

    obj_shadow has two instance variables offsetx, offsety. you could do the following in one "set position expression". but using vars makes it easier to figure out what's going on.

    */

    each tick // or however often you wish to update.

    ----obj_shadow.offsetx= (expression to figure out offset from obj_player goes here) // calc offset the container will make sure the right object is picked

    ----obj_shadow.offsety=(expression to figure out offset from obj_player goes here)

    ---obj_shadow set position (self.x+self.offsetx,self.y+self.offsety) // place shadow to correct position.

  • onzephyr So.Much.Love for you.

    I figured this morning how to do it, but I had mixed results with it.

    I just made it your way, and now it create shadows on a sublayer with a parrallax effect, giving a great dynamic illusion. Simple and lovely.

    I own you one, once again!

    thehorseman007

    Sorry, I can't reply to your PM, as a new member it's not an available option :)

  • Ho bienvenu Aurel!!!

    I'm glad you appreciate so much C2. :)

    Can't wait to see what you're making with it! (probably a killer app)

  • If I read you well, my mains controllers have to be a kind of "permanent" sheets. Or do I have to add it manually to each level?put global stuff on an Event Sheet, and IMPORT them to other Event Sheets (right click, add Event sheet)

  • KaMiZoTo Hey, you there! Thanks for the kind words. Hope you'll like it :)

    ghost Thanks, I'm doing it like this and it works perfectly.

  • cool

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