Results 1 to 10 of 48

Thread: Cheb's project will be here.

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Thanks for sharing . Although I didn't grasp the details, despite Google's effort to bridge the gap, I think the conclusion is reasonable.

  2. #2
    Argh. [headdesk] Argh.
    Corrected google's translation by hand. In so many places it raises questions: why even bother using it. It's much better than 10 years ago but there are still so many things it fails to understand and convey.
    Whom am I kidding. Correcting is so much easier than translating 100% by myself.

    Reproducibility is important for me, since my multiplayer model will be an evolved lockstep:
    Code:
    TLayerRole = (
        lro_Bottom, {
          In multiplayer, runs at -500ms using perfect inputs finalized by the server.
          This is also the only layer that can be serialized. }
        lro_DeepUpwell, {
          Propagates changes from the bottom to the thermocline, thus lazily correcting for late inputs }
        lro_Thermocline, {
          Holds steady at -150ms, assuming most inputs arrive *above* it }
        lro_FastSurfacing, {
          Bubbles the changes from the thermocline to the surface thus doing the bulk of lag compensation }
        lro_PresentSurface {
          Runs on local player inputs }
      );
    As always, lots of stuff distracting me (mainly work at work) leaving me no time to move the project further. Frustrating.

  3. #3
    Quote Originally Posted by Jonax View Post
    Although I didn't grasp the details, despite Google's effort to bridge the gap
    Don't be hard on yourself if you don't understand all the details. Google translate seems to have done quite a good job. But the topic that Chebmaster is talking about is very complex.

    He is talking about hardware-level optimization and making use of extended CPU features for accelerating specific processing. This is a very complex stuff especially if you take into account that some of these extended features might be vendor specific (proprietorially owned by Intel or AMD). This means that if you want to make use of some Intel proprietary feature on AMD CPU or vice versa, the specific feature might not be directly supported by that CPU so a fallback methods which is usually slower is used to at least get the desired results. Otherwise such code would simply break.

    Another important thing is to make sure that you feed the CPU with data in the correct format that is required by the specific extended feature. Failing to do so could also result in CPU resulting in the use of some fallback methods and thus hurting performance.

  4. #4
    Quote Originally Posted by SilverWarior View Post
    Don't be hard on yourself if you don't understand all the details. Google translate seems to have done quite a good job. But the topic that Chebmaster is talking about is very complex..

    Yeah, my problem is not the quality of the translation. Which I can't comment on other than the sentences seems to have good spelling and structure.


    It's good to see some high tech acitivity in the pascal game making field. I, on the other hand, still try to familiarize myself with the basics. There is still a lot of unexplored possibilities for me in the world of 2D standard pascal components. Though I admit the audience potentially interested in my stuff is pretty limited.

  5. #5
    Quote Originally Posted by Jonax View Post
    Though I admit the audience potentially interested in my stuff is pretty limited.
    Well main reason why not many people are interested in your games is because you can find similar games all over the internet in WEB format. So many people may think in a way: Why would I go and download his game if I can find same or similar game on one of those online-games web page.

    But don't put to much thinking into this. We all have to start somewhere. At least you are finishing and publishing some games.
    Me on the other hand have been probably learning game development for far longer (over 15 years now) but since I'm always aiming for to big if ideas I still haven't published any game so far. It is not that I would not have any ideas or knowledge. I have to many ideas but still not enough knowledge to make one of my big ideas into reality.

  6. #6
    Indeed an interesting discussion. It's quite a challenge to reach and please an audience. However I'm afraid we're close to hijacking the Chebmaster Cheb's project thread. Sorry Cheb



    How about starting a new thread somewhere with some general how-to-become-a-successful-game-creator theme? Maybe the last few posts could be a good starting point.

  7. #7
    I, definitely, want to push Free Pascal to its limits and achieve the impossible.

    Here's the determinism check as a standalone project
    (note you need to make sure your browser doesn't correct http into https since I still haven't corrected my server's Let'sEncrypt and the https has invalid sertificate)
    pure source http://chentrah.chebmaster.com/downloads/determchk.zip (7Kb)
    with binaries compiled for x86 and x86-64 using both Free Pascal 3.2.2 and Free Pascal 2.6.4 : http://chentrah.chebmaster.com/downl...thbinaries.zip (199Kb)

    As you can see, the lion's share of processing time goes to calculating those md5 sums.

    A reminder: determinism is required for my planned multiplayer code to work at all. If the checksums do not match between platforms, those platforms wouldn't be able to play together and you'd need a separate server for each of them.

    My friend who is working in in the game industry full time, had to deal with lack of determinism in Unity. Namely, you cannot count on monsters behaving identically if present with identical player actions. He had to improvise, adding a distributed server of sorts where each of the clients in a multiplayer game acted as a server for a fraction of monsters and just broadcast the behavior of those monsters to all other clients.

    Full determinism, on the other hand, allows sending *only* the player inputs over the network. This is MMO-grade stuff: no matter how many monsters are there (even a million) or how massive the changes to the game world (i want the ability to reduce the whole map to a huge crater) the network traffic would remain zilch.

  8. #8
    Have you perhaps considered using some other Hashing algorithm instead of MD5. CRC32 hashing algorithm is way faster but might result in more clashes where different input results in same hash result. On the other hand many modern CPU's have hardware support for SHA based hashing algorithms which could mean that they would be much faster than MD5 which if my memory serves me correctly is rarely hardware accelerated.

    Any way there is a good thread on Stack Overflow about comparison between various hashing algorithms. https://stackoverflow.com/questions/...st-performance
    Granted question poster was interested in performance difference in .NET environment but some people that provided answered have done their own testing in other programming languages even Delphi.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •