Events and more events..

About Monkey 2 Forums Monkey 2 Development Events and more events..

This topic contains 39 replies, has 6 voices, and was last updated by  cocon 1 year, 3 months ago.

Viewing 15 posts - 16 through 30 (of 40 total)
  • Author
    Posts
  • #12726

    PhatPeter
    Participant

    @ethernaut I think too that SDL(2) had something to do with it because that is what changed at that time, I tried to look through the development branches to see what it could be.

    #12727

    PhatPeter
    Participant

    I use M1 compiler as a reference to prove that it *is* possible (I use a machine with Intel HD 6000 Intel and Sierra). Not a single stutter for hours I promise. The last time I had that was in 1990s, so this was (IS) a huge happening for me. I’m not updating that MacBook ever again to keep this amazing setup.

    No High Sierra, no Monkey2

    Monkey2 on the other hand on that same computer works average. Don’t take me wrong it’s really good but nothing spectacular. You feel like you’re back in the nineties/noughties with microstutter now and then. I spend lot of time to create an equivalent one-to-one source code to make a fair comparison without mistakes. I did this for several months.

    But I found out it’s not about putting the right code in M2, it’s simply isn’t *possible* to reach the same level of smoothness. It’s not.

    iMac with dedicated GPU (an old ATI 4670 256MB, DDR4) performs worse. It’s not a bad card.
    With Sierra and M1 this too performed amazingly perfect, for a while (until HS and M2 happened). The HS changes firmware so you can’t easily get back, and M2.. you know.. of course you want to use M2 instead of M1, right?

    I know there’s a lot of development changes going on right now, OpenGL – OpenglES – Metal1 – Metal2 – SDL/SDL2 etc, some changes comes from OS’es itself, some comes from Monkey2, some might come from libraries that are used.

    And I know that with High Sierra the beauty of Monkey1 died a terrible death, while Monkey2 kept working the way it always has. Which is interesting? Everything else in the world died with HighSierra but M2 works exactly the same before and after. I’m thinking metal2 and SDL now.

    But of course this also tells me that dedicated graphics are abs not a must to reach super smooth graphics. I’m so very happy with my “meager” Intel HD 6000. Apple MacBook air GPU’s I guess uses DDR3 as they share the main memory, but it seem enough for getting what I would call; an amazing baseline GPU performance. Not a great one, but A *reliable performance*, and that’s way more important.

    #12728

    PhatPeter
    Participant

    Actually for me it is a great permance.

    I’m sick of everyone telling that you need to be able to run the newest 3d games with all bells and whistles to be “good”.

    For me good performance is to be able to have the power of a few Neo Geo’s inside, maybe throw in couple of SNES as well, and to have them going and going and going as good as the machines themselves without hiccups. THAT’S good performance. That’s what I have with M1 and a MacBook Air (Sierra Intel HD 6000).

    Why o why.. not with M2?

    I need to be able to AT LEAST be able to touch the screen without hiccups for upcoming game.

    #12729

    PhatPeter
    Participant

    I’m also doing a big project to see how technology e.g. microstutter etc introduces stress in people’s everyday lives. If anyone wonders 🙂

    #12730

    abakobo
    Participant

    you can run/play with the sdl2 banana to see if it’s mojo related, if you still see your micro stutter then you’d probably have to play with xcode and try to get something working out of pure opengl without GC (or sdl2+opengl too)…? I doubt mx2’s GC does those stutters though. I think it’s probably sdl2 too..

    Then when you find the source of the hiccups PLEASE make a Pull Request to the corresponding community and enhance the world of game dev!

    #12731

    PhatPeter
    Participant

    Yes of course, I will do my best.

    I tried the example using the latest compiled version, 1.1.09 (actually I found out it was precompiled while compiling the development version so i downloaded the precompiled one while compiling instead).

    The code just gives me a black window is this a template meant to be that way? I’m looking at the Render method and am thinking it should give some colour changes like vertical bars or something?

    Screenshot

    #12733

    PhatPeter
    Participant

    Commented out one line and got it working.

    Screenshot

    #12734

    PhatPeter
    Participant

    Made a simple test and it’s easy to see if you look for a while that it’s still not always smooth.
    I thought it was for a second there. Next step will be to find out why.

    #12735

    PhatPeter
    Participant

    Of course things like this looks smooth for most pp but I don’t have time to make better examples in openGL yet and I already clearly can see microstuttering somewhere there. Of course in this kind
    of examples they are very small but you can see hints already of it if your good.

    Instead I need to put all my time into finding out why. I think I know now.

    #12736

    nerobot
    Participant

    Look at this

    https://github.com/blitz-research/monkey2/blob/34825f8b197c9dfa721888d21193ba93ac0b5728/modules/mojo/app/app.monkey2#L593

    There is a WHILE loop that grab all events. Maybe we need to grab by portions or every second frame or … ?

    I didn’t test how much millisecs are needed to dispatch holded keys. And maybe the bottleneck isn’t here.

    #12738

    PhatPeter
    Participant

    @nerobot I think you’re might be on to something there worth trying. I would be glad if somebody wants to try those changes. I’ve seen at least two instances where ppl solved their problem of CPU usage by two means in exactly that kind of loop.

    Either they change while(SDL_PollEvent(&event)) into (SDL_PollEvent(&event)) like you said
    or change SDL_PollEvent() into SDL_WaitEvent()

    EDIT
    “SDL2 actually generates key repeat events automatically. You need to manually filter repeated key events out by checking the repeat member of a SDL_KeyboardEvent. This is something that did not automatically happen in SDL1, so that’s why the behaviour is different. See SDL_KeyboardEvent for more info.”

    #12739

    PhatPeter
    Participant

    This is related. Re-arranging this very dispatch to be FIRST instead of LAST has been a thought up fix for having a faster mouse aswell. It makes the mouse in Mojo as fast as the SDL one. The Mojo one are always one (or two?) frames behind SDL and it’s very visible if you need a well performing mouse.

    Mojo Render Lagging

    #12754

    PhatPeter
    Participant

    I will see what I can do, I have much faith in Monkey2 but it has become a struggle to keep my sanity while trying to solve this issue. We’re 15 additional people working on the project as a whole but I’m the single person that currently use any Blitz’s products and I do it because of the nostalgia it brings me and what I saw Monkey1(together with Mojo2, not regular Mojo1) was capable of.

    It’s actually painful to see how Monkey1+Mojo2 produces perfectly smooth games on all the platforms (Except Android which always has some minor minor jitter but that’s Androids own fault I’ve condemned that forever they will probably need to change their OS they can’t fix it but god knows they’ve tried since JellyBean).

    Sadly Monkey2 are still behaving exactly like Monkey1+Mojo1 on all machines I’ve seen it working on.

    Windows and Mac behaves the same btw so this is not an MacOS-isolated issue.
    Actually these two platforms are perfectly in sync with how different versions of the compiler behave etc, that’s a good thing in a way.

    I can see how people miss it though because it’s such minor differences.

    But there’s a long long way from 99.9% to 100% for people like me ^^

    #12755

    PhatPeter
    Participant

    Also of course, when things like these mouse/touch/keyboard issues enlarges the effect it gets to the point that it needs to be fixed to get something that is practical. This shows how you should never leave a problem laying around unfixed. It will bite you.

    Things working *just almost* are dangerous stuff.

    #12758

    abakobo
    Participant

    I’d be happy you could find how to get mx2 supper fluid. But it’s becoming too technical for me, I’m affraid I can’t help on that.. And I must say for now I’m not disturbed buy the micro stutters. Doesn’t have SierraHigh though.

Viewing 15 posts - 16 through 30 (of 40 total)

You must be logged in to reply to this topic.