Mabaet's Forum Posts

  • That clear things up, thanks all.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I don't think you have any control over which badges are displayed. If you registered here with a different email address to the one used to buy the licence then no badge will be shown...

    I don't see a License badge on you but you have a submitted game on your signature, so you have another account that has the License Badge.

    1. Give me a profile link to your other account that has the License badge.

    2. Why would you need to separate account? You didn't like the name of your first one but already bought your License with that acc? What's the reason?

  • Does having the C2 License will force you to have the badge at the side of your avatar that says, "[user] owns a Construct 2 License! Hats off!", or is it something just optional to have when you got your C2 License?

  • TiAm

    IMO, the tendency of most C2 users is to adopt a WET approach by merely copy/pasting events to replicate logic in different contexts. It's a lot faster than modularizing into a function, and it's acceptable for a prototype, but breaks down for projects exceeding a few hundred events.

    And that makes it hard to maintain. If I change 1 little thing from something, I would have to find every many other lines that has something to do with that 1 little change which can take up to hundreds, and that is a pain to manage. It works, but to me isn't practical.

    //======

    However, you can often fend off this kind of design with a good use of families and functions.

    Yes, the family and functions. The function is fine, but the family I can't say for sure as I can't play around with this. Reading some guides about the Family and how it works, I think it's still limited. I'm not suppose to say that it should cover everything, but the thing is that there are still simple things that the Family feature should be doing but isn't.

    //======

    One of the places where I still run into trouble, though, is in cases where I want to pick objects of different types in one go. For example: we can't go "pick all objects where X > foo" if some of those objects are sprites, some are spritefonts, some are TiledBG, etc. Even if we just want to pick all sprites where X > foo, we still have to add every sprite in the game to a family, then refer to that.

    It would be great to be able to have a pick function that could cross object type lines and pick thru every object that shared the same kind of parameter (X, Y, Opacity, etc).

    The first time I played with how the event pick its objects had me down. The picking system is a huge role and needs to be smarter. It's a pain to deal with.

    //======

    BTW, that example you link to: what, exactly, is the advantage of such an approach to multiple objects added to a family? The problem I see, in a real world scenario, is that every animation frame for every troop would be loaded with that object, which would take up a lot of unnecessary memory on layouts where you would only be spawning certain types.

    This isn't the general idea of what I'm trying to show there. It's still all in the Event Sheet, how it should be easily managed.

    //======

    And...what if you had multiple animations for a given troop?

    Can get around with Animation's folders and tabs but gets complex. But like I said, this isn't the general idea of what I'm trying to show there.

    //======

    Here's a version implemented with families; if anything, I think this approach is more elegant, as adding new enemy types only requires adding a couple new actions, and all stats can be set in one go thru the enemies family:

    I can't test that as I don't have a C2 License; Family feature requires C2 License. And this is why I demonstrated my logic using the Animation. But if what you say is what it is, then great. But I know that you know that the Family needs more work.

    //======

    Jayjay

    there are many cases I've run into where copying and pasting events was the only bug-free way to make things happen (else statements, or statements, and for loops all seem to get buggy in sub-events and sub-groups, etc).

    So, it's a lose-lose situation where relying on things that *should* work but *don't* is bad, and you also do still get bit by the copy paste method later on. It's hard to isolate individual examples of this though, as our game was already a huge number of events (many types of enemies, different playable characters with different movement types, etc). The general experience is that anything deeper than one layer of subevents breaks.

    Speaks for itself. The C2 Event system wants to be easy to understand but done in an unproductive way. And that's pretty much about it, C2 wants you to work like a factory, it works but is a pain to manage. All in all, it all boils down to user preference; Well of course, this is completely fine to users who are cool with that. And I think isn't much of a big deal to those who make small mobile games like a Flappy Bird rip-off.

    //======

    Can you please answer my question:

    Does having the C2 License will force you to have the badge at the side of your avatar that says, "[user] owns a Construct 2 License! Hats off!", or is it something just optional to have when you got your C2 License?

  • Welcome to HTML5. If you absolutely want flawless performance on Mobile Devices, no questions asked. Then you should probably learn how to code.

    Construct 2 is a impressive program for non-coders and the performance I get with on Mobile devices is actually impressive to me.

    I gave C2 a try before, the performance wasn't my issue because I was just trying to make a simple test game.

    The thing that I didn't like is how it handles events; the Event System was a big turn off for me, it isn't a DRY solution but a WET one, a real WET mess that's much messier than a WET programming code. That's maybe another reason, why the performance is slow.

    I once tried to work my way around this:

    scirra . com /forum/how-do-i-create-an-array-for-sprites_p890045?#p890045

    Reference of DRY & WET principle: http://en.wikipedia.org/wiki/Don't_repeat_yourself

    There's also some important things that C2 is NOT covering in their manuals and I feel like they intend to hide this crucial element.

    See this: scirra . com /forum/what-are-all-the-event-conditions-that-uses-fake-triggers_t124875

    I have an off-topic question, can someone answer.

    Does having the C2 License will force you to have the badge at the side of your avatar that says, "[user] owns a Construct 2 License! Hats off!", or is it something just optional to have when you got your C2 License?

    Edit: Fixed URL cuz' of fancy forum rules.

  • Edit: Deleted.

  • Edit: wrong thread post. My bad.

  • Mabaet go for license your money will be well spent on C2

    I hope so, I only have my spare times to get my hands on with C2. I will try to acquire license soon late next month where I'll have much more free hours/days and some fund for it.

  • > Thanks for the replies, I've figured out on how to make an array-like for sprites, this would totally ease up my work.

    >

    >

    Mabaet, would be nice if you could tell us how you solved it?

    By using a nice neat trick with animation tabs which really, for me, makes the Family feature just bland. Maybe I'll write a tutorial of it soon.

    I only used 1 object for all types of enemies & 1 object for all types of towers. I'm trying this out on a Tower Defense and it works well, I don't know for other type of game but I'm sure they can adapt the principle of this idea.

    I just hope that a dedicated feature for this kind of logic be added soon.

    In this example, I provided different bullets for a single tower(got lazy to make sample towers, but you'll get the point) and a bunch of different creepy crawlers as 1 object. This example is in its simple form, study it and play with it. I added comments at the events to explain. Hope you will like it.

    It works like this: Remove spaces

    youtu . be/mQSnXou8nn4?t=45s

  • 1. I always start with 720p. I am nearly always developing for web browser with letterbox scale, I just find it appropriate.

    2. The browser object has 'ScreenHeight' and 'ScreenWidth' values, so if the screen reslution is 1280x720, then you could work out that 1280:720 = 16:9 etc.

    3. x= viewportleft + windowwidth/2

    y= viewporttop + windowheight/2

    Thank you.

    How about the 4th question sir?

    Edit: NVM about the 4th question. Thanks again! (btw, it's a yes.)

  • 1. Is it good to start with HD 720p/1080p project? And how is that going to affect the performance of users with a lower resolution device?

    2. How to detect/calculate the user's device aspect ratio? Example, I'm working on a 16:9 project. When my game is played on a tablet which can be 4:3, how can I know that by event sheet?

    3. How do I spawn an object at the middle of the current window/camera location/xy?

    Edit: [Okay, I worked out this one, but please I'd like to know how you'll do it.]

    4. Settings rotations of objects takes some performance as says so in the performance tutorial. Is the turret behavior's rotation as intensive as manually setting rotation via action in the event sheet?

  • Do you mean inverted? (events with an X next to them?) That just means to only trigger in the opposite case (eg: if myVariable = 1 when inverted becomes the same as "If myVariable is not 1"). You can right-click an event and invert it.

    Not the inverted condition.

    There is a 3rd type of event, which is the FAKE triggers.

    See: scirra [.] com /tutorials/598/optimization-and-tle-top-level-events/page-2

    '->On Collision' is a fake trigger for example.

    See: scirra [.] com/forum/better-to-use-collision-or-overlap_p575390?#p575390

    Ashley I think this matter is crucial to know specially for mobile performance even if it's just a fraction. This might alter/rework current worksheets for those who want to deal with false triggers and want more optimization, which is not a worry to those who are willing. Simply retain or improve. It's good to know, it's already in the tutorial, it just needs more exposure. A dedicated advance article or a mention in a more technical section of the manual will be nice.

    I still have a lot of speculations about this, I'll just save it for now. I'd like to know your thoughts.

    Edit: I can't post links yet, need 300 rep. I apologize.

    Edit+: Grammar.

  • After reading some performance tips, I learned about these fake triggers. I'd like to know all of the event trigger conditions that are FAKE. While we're on it, I'd also like to know the REAL trigger events.

    Thanks in advance!

  • I guess the 'else' method is the natural way, but the subtracting trick is awesome to know. Thank you all.

  • When I press 'G', the NumberTest instance variable is always set to 0. I understand it reads from top to bottom, so how do I get this thing to work? Supposed to happen is: Press 'G', set NumberTest to 1, when pressed 'G' again, set NumberTest to 0.