jobel's Forum Posts

  • Honestly I would LOVE for it to be my bad programming, but if I disable all of my code the fps doesn't really change much. Unless, however, disabling is different from actually deleting it.

    Not only "bad coding" but misuse of budgeting graphics/effects/particles/objects/collisions/force texture or anything that has a behavior etc..

  • I am a full time Construct 2 freelancer and I've completed many projects for browser, desktop and mobiles. Apart of making games from scratch I also had many requests from my customers to finish/optimize their game.

    After several years with C2 I can clearly say that the most common performance issue with C2 is not a GPU but the C2 developers (or I should rather say their code). Of course GPU, CPU, your machine and C2 itself also takes some part in the performance issues but the majority of issues I saw was the C2 code (I mean the events of C2 devs projects).

    C2 is pretty much like JavaScript or PHP or any other language that is not very strict from architecture perspective. What I mean is that it is very easy to make a simple things with C2 (like in JS for instance) but it is really a big challenge to make a big projects the right way.

    The problem is (as mentioned above) the architecture freedom. So while making a big game people tend to use the same coding approach as for small games and in the end they are lost in the messy code which is totally unoptimized as you don't really need to care for optimization in small projects.

    With big projects it's different. There's much more code/events so much more operations for CPU and therefore you must use the best coding practices so each feature uses the least CPU as possible. And next to that you need to keep your code architecture very organized to not get lost in your big project (and that is also not very easy with C2).

    It also depends on what you call a big project. I worked with projects made of several thousands of events and after optimization they worked well on majority of modern desktop devices. Still the bigger project, the bigger challenge.

    So to wrap up, in my opinion it is possible to make a big project (not sure about a huge one) in C2 in a way to make it work very well, but it's not an easy task. Definietely not a task for a C2 newbie. It needs experience and deep understanding of how the memory managament works in C2, which conditions are the real triggers and which are fake triggers, what takes the most CPU, how to make workarounds for high CPU intensive parts etc. Without all this knowledge you will probably fail in making a big game in C2 as C2 is simply difficult for such projects.

    From the other hand if you pick Unity or any other engine you also need to learn how to use it properly.

    EDIT: Just a clarification as I received some PMs. Please note that I'm not saying that performance issues are not related to the C2 itself at all, I'm just saying that the most common issues comes from the bad coding.

    I agree 100% with all of this...

  • Blaming the only ways to export games for poor performance is highly disingenuous, since they're the only way to export and sell C2 games. I can't even imagine the gaps in logic that allow someone to arrive at your performance comparison conclusions.

    You've hitched Scirra's wagon to HTML5, and that's fine. But let's not pretend it's even close to a mature technology, from a software/development standpoint all the way through hardware support, for the creation of medium-large games. The performance simply isn't there, and you're flat-out wrong to suggest it's remotely close to performance of native with anything more than a very, very simple game with absolutely no bells & whistles.

    This response seems pretty harsh. So you think Ashley is being purposefully deceitful in order to sell more product? If so, to what end?

  • yeah SF+ just saves the step of doing the array.. so if you don't mind the array then you are better off since SF+ is 3rd party and not officially supported.

    the only annoying thing about not using SF+ is that you can't preview how it will look in the editor, where SF+ shows you how it will look before you run it.

  • It works amazingly..

    but you have take the JSON array that is provided in the Text File output from GYFM. Then copy and paste that into the SF+ properties.

  • you should use SpriteFonts.. it s bit of a pain, but that way you know they are seeing the font you intended.

    also, I would think about downloading and using both SpriteFont+ and GYFM (Give Your Fonts Monospacing)

    https://www.scirra.com/tutorials/629/sp ... when-where

  • sounds like your object count could be the culprit. Or a particle system who's lifetimes are too long.. etc..

    How long does it take to slow and then stop?

    An exclusive for existing users if there are any objections from Scirra.

    this is a no-brainer and it's crazy missed opportunity if Scirra does NOT do this...

    they should absolutely grandfather-in all their current C2 licensees and give them a discounted rate for life, or until they cancel. Going forward with a new product and such a dramatic change to their finances, they need to make sure their user-base is strong. What better way than to give incentive and benefits to solidify your current userbase? They would instantly have a fleet of C3 advocates, spreading the word of positiveness.

    The mantra should be: take care of your customers and they will bend over backwards for you.. even if it means at a cost to you in the long run. Success does not happen with using the "nickel and diming" method. Take cues from successful companies and think.. would they do this? doesn't matter how small you are, it still applies.

    just my .02

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Hey, once the game is running with Pad control and I have a demo level I’ll let you know. If you have the time maybe you can take it for a test run

    sure thing... make sure to notify me with the

  • very cool.. good transitions, nice short iterations (although the Get Ready is kind of tedious after a while). I like the weapons and teleport/slow downs, and level design a lot. Looks like you can probably get really advanced levels...

    At first really didn't like the mouse control, but after a bit I got used to it. In general, mouse games don't feel like games to me - I don't know why. I mean, to use a mouse as a way to interact with the interface, sure. But to make my space ship be wherever the mouse is? feels like the ship is really just my mouse.. I don't know, something is weird about it. But like I said, I got used to it.

    The WASD keys should rotate the ship in the direction rather than it just popping to exact right-angles...Honestly, I think the whole game should use a GamePad.. I think I would actually buy this game. But of course that would probably change almost all the level design..

  • onClick on Object (Sprite)

    if Sprite.AnimationFrame = (Sprite.AnimationFrameCount-1) then

    set frame to 0

    else

    set frame to self.animationframe + 1

    *The -1 is because frame numbers start at 0

  • > well for a work-around you'd start the fade and set a flag and then in your OnFinished, just check the flag as well and that's how you'd manually figure out which fade had finished. You'd create a bool for each Fade.

    >

    Yeah that's what I did, it's just a little confusing to manage that for each one in a big project like mine, haha.

    it's not too bad though, 2 extra Actions and only one extra Event Condition.

    Start Fade

    Set fade1 to true

    OnFade Finished AND fade1 is true Then

    reset fade1 to false

    but I guess it depends on exactly how many objects you have fading and watching, then trigger when finished. I almost never use onFadeFinished usually for me it's fade and forget.

  • well for a work-around you'd start the fade and set a flag and then in your OnFinished, just check the flag as well and that's how you'd manually figure out which fade had finished. You'd create a bool for each Fade.

  • Man, this whole array stuff is soooo confusing

    Hmm, lemme try another example.....

    So, if I want to set (7,5) to "5" (which is basically its Y axis)

    What expression would I put down?

    something like..... Array | Set Value at (7,5) to..."Array.CurX"??

    it's not a "Y axis", once your array has more than 1 column you need X/Y coordinates... if it just has 1 column, you only need X. You would need to do: Array.At(7,5) = "5". The CurX is the loop variable, meaning it starts at 0 and increments by one with each loop - up until there are no more array elements.

    with one column:

    here you use only X

    Array [0] = "john"
    Array [1] = "fred"
    Array [2] = "mary"
    [/code:13h8jrcr]
    
    with more columns... (first name, last name, age)
    here you use X and Y
    [code:13h8jrcr]Array [0][0] = "john"
    Array [0][1] = "smith"
    Array [0][2] = 25
    
    Array [1][0] = "fred"
    Array [1][1] = "smith"
    Array [1][2] = 21
    
    Array [2][0] = "mary"
    Array [2][1] = "smith"
    Array [2][2] = 28[/code:13h8jrcr]
  • maybe I'm backwards, but isn't it more like.

    (7,5) = (x,y) = 58 = (Array.curX, Array.curY)

    so the x value of 58 is 7

    the x is always the row.. so it really depends on the data and how you format it. If it's laid out like Excel, the X is horizontal.. that's how it is in other programming languages. With C2 it's weird to me how they say Y is height or rather horizontal rows.

    I think of arrays storing data like this:

    John   123  y 
    Mary   392  n
    Fred   495  y[/code:1qsr2m7k]
    
    instead of this:
    
    [code:1qsr2m7k]John Mary Fred
    123  392   495
    y    n     y[/code:1qsr2m7k]