TiAm's Forum Posts

  • This is really a great help! Thanks!

  • delgado

    What Ashley is saying is that you need to post a capx.

    If you are uncomfortable putting up your whole capx -- understandable -- then disable events until you find out what is causing your cpu drain, and make a simple capx without your assets or any unneeded code, and upload it.

    Otherwise, there's nothing we can do.

    Cheers, T

  • Take a look at this. Basically, if you are targeting desktop, one third of your players can expect everything to run like sh!t now.

    http://en.wikipedia.org/wiki/Usage_shar ... ng_systems

  • Wow, this is...terrible. I mean, there are a LOT of people still on xp/vista. I know they are old OS's, but to call them 'exotic'...I mean, it's just BS. And chrome is overall the best browser, performance-wise(at least in my tests it has been, firefox might be faster for a physics based game).

    Wish microsoft would just cave and say to all current XP owners: hey, if you have a legit license, we'll upgrade you to windows 7/8 for $25-$50...just, please, ditch xp already.

    Wonder where/how we can pester google about this?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Ashley

    It works fine...except for collisions. I was trying to break up my collisions over multiple ticks. At first I just assumed it wouldn't work, given what I read here (specifically, "Caveat 2: picking in events"):

    https://www.scirra.com/blog/ashley/6/co ... on-in-r155

    But I did end up trying it anyway...and it doesn't work. I have the capx somewhere, I'll post it when I find it.

    Anyway, for what I'm working on now, I've come up with an alternate solution that's working fine.

    Cheers, T

  • delgado

    Might be able to help. Sent you a PM

  • Actually, scratch that. It seems like it only uses up cpu in debug mode. On export to node webkit, it registers virtually no cpu usage. Same for active and inactive groups.

    Arima

    If you export to node-webkit or html5 page, does your cpu still lag down w/ 1000 empty groups?

  • Arima

    Hey, thanks for that comparison! Really interesting...what is up with groups? It might be insignificant on desktop in most cases...but on mobile...

    What happens if you have a 1000 inactive groups?

    Ashley

    Why do empty groups use up CPU?

  • I think there is no one thing that makes a game great. There are great games that have earned that distinction solely thru their content, not their gameplay...and vice-versa.

    I'm thinking, for example, of one of my favorite games, Final Fantasy X. The gameplay may appear to be deep on the surface, but looking at it now...well, it just isn't. If I'm perfectly honest with myself, it's just a simple set of rules, and a lot of grinding.

    That being said, it's an incredibly rich and imaginative world, and has excellent artwork, music, and a moving tale that still stands as one of the few successful attempts in gaming to tell a love story. The gameplay is used to involve you. That's it. I don't regret a minute spent with it.

    THAT BEING SAID...gameplay is still important, and is more often overlooked. I see final fantasy as somehow different from, say, advance wars, or quake live, or even bioshock. It's not anything less or more, just...different.

    It seems like many indie devs aspire to recreate a feeling, an atmosphere, thru art/music/controls/design, that reminds them and their audience of the games of yesteryear that they loved the most.

    But, ironically, that often requires a lot more work than something a bit off-the-wall, innovative, or different. It might be more straightforward, but people's expectations are high, and you have to meet them.

    The strength of being an independent developer is that you can make whatever the hell you want. It does not have to be art-by-consensus, nor does it have to recreate something extant.

    But...often that's what we WANT to do; to recreate something, to rekindle that magic. It feels...safe, nostalgic. And often, it's a whole hell of a lot harder than it looks.

    Or, you can try to build something novel. It's harder, because the guideposts are...well far apart, if in sight at all. But the advantage for a resource-limited indie -- what, you can't afford voice actors, an orchestra, and John Kricfalusi on pen and ink? Pfff... -- because it can be simple, but still involving.

    However, it's also harder to know what's good and whats shi...er, not...

    Anyway, that started good and got all rambley...story of my life...

    P.S.

    I didn't quite use every smiley. Sorry.

  • Yes, unfortunately, you do. There is a search function though, and there are some good shortcuts(like, replace object, for example).

    For repetitive, non performance critical tasks, it's best to use functions to minimize the tedium of having to edit redundant code.

    Event sheet modularity is supposed to be coming at some point, which should really help.

  • Whoops, didn't see your edit til now. I have noticed groups have a non-trivial impact on performance, which has always baffled me...I mean, even a few THOUSAND groups shouldn't have hardly any overhead...or maybe that's just my intuition leading me astray. I always try to clear them out when I don't need them -- ie., I'm just using them for sorting, not logic.

    P.S.

    For giggles, could you upload that 1000 group capx? I could do it myself but...wellll...

  • jayderyu

    Well, I'm no C2 expert, but can't you get around those kinds of problems by using groups to disable/enable code chunks as needed?

    Another thing that I have just implemented in my game is a scheduling system. I've found it really helpful, and in a more complex game I think it would be invaluable. This is basically just a global var that cycles thru X number of steps in an endless loop. Then I can place scheduler=x as the top level condition to an event. This way I always know what parts of my code are going to be running when, even if they are intermittent.

    In contrast, going 'every x seconds' over and over means I never know when a bunch of periodic events are going to align and cause dropped frames. And if I use a proxy for my comparison, I can even change the way things are scheduled depending on the game conditions.

  • Ashley

    Thanks for the explanation; now it begins to make sense to me.

    I've already decided against the duplication approach; too awkward, too prone to errors. However, to clarify, using instance variables to identify a set of objects does not work for collision testing...at least, not in my tests (and not according to what I've read on collision cells). That's why I was attempting the duplication approach, ugly as it appeared.

    However, I still managed to gain an appreciable improvment in performance by implenting a scheduling system. So now I have a global var that cycles thru three steps, and I distribute my operations amongst them to balance things out. Like:

    step 1. check bullet cols

    step 2. spawn bullets

    step 3. check for offscreen bullets, destroy them.

    1...2...3...1...2...3...etc...

    It's not a massive optimization, but it does seem to reduce jank when everything is running full tilt (intermittent demanding operations don't end up aligning on the same tick).

    Cheers, T

    Looks really neat, though it sounds like the documentation and stuff is not quite there yet. That being said, it be lovely to one day have a really good open source 2d/3d game engine. I guess there is the blender game engine, but, well...it is what it is...

  • Put your slideshow in as an animation for a sprite. Then

    Global var foo = 0

    Every X seconds (X being the interval between images):

    1. Set SlideshowObject.AnimationFrame to foo

    2. foo + 1