Pixophir get behind C++ concurrency and at least the basics of the available semantics

This is very tough. I've been programming in C++ probably like 15 years, and concurrency is still very confusing. I understand the basics now, and have done some small tests, but scaling that to a full app is difficult. Also, the bugs are madness and it's almost like programming with quantum physics, because it makes no sense. But you can learn it.

This is one of the only modern books that is decent on the topic. Much of the other material is super outdated compared to the current C++ standard. C++ Concurrency in Action by Anthony Williams.

However, I didn't fully understand things until I did the course at my school for Computer Science. So you may not get it, even after reading that book. But it's the best place to start.

Okay, the game that I'm working on is basically finish; I've even created additional levels and have 14 levels in total. Still, there is one little change that I need to make to the game; I need to find a way to change to logo and I don't know how. I'm reading about this issue in the documentation right now. If I'm able to get in done this week, I'll start putting on promotional information about next week. I'm feeling tired again but, I'm glad I'm close to the final stretch. 🥱

Yep, got the Williams on the table and I too find it confusing. It is not a didactic highlight.

There is a German book I find more on the point: R. Grimm, Modernes C++ Concurrency meistern, Hanser 2018. The first chapter introduces C++ memory models , atomic operations and data types, sequential consistency, acquire/release semantics, relaxed semantics, and so on with simple examples one can understand without too much abstraction. Will come to the multi-threading chapter in the coming days.

Edit: I see there's an English version apparently on packt pub:
https://www.packtpub.com/product/concurrency-with-modern-c/9781839211027

While quality on packt pub has a broad spread, this one I can recommend.

This was the book they had us read at school that allowed me to understand. It's about operating systems, but you kind of have to understand the full stack to understand how to use threads properly. You might want to check this one.

cybereality I really recommend everyone read this book if you want to be successful.
GAMEDEV: 10 Steps to Making Your First Game Successful by Wlad Marhulets.

Okay, I just checked out a digital copy from the local library. Only the audiobook edition was available.

KanataEXE Cool! I am just starting making a Udemy course! Would love to know more about how you're going about it

edit: in other news, crossing my fingers to see if unity crashes and burns. I'm happy just learning godot and unreal for now.

    Erich_L

    Currently making one for Shoot 'Em Up game.

    I want to claim one since there's none on Udemy.

      I mean, I dont want Unity to fail. I think it's decent technology (the engine itself), but John Riccitiello doesn't know what he is doing and took the company in the wrong direction. They might still survive, but it will require new leadership and a new direction. And it would be nice to get some refugees coming to Godot, but at the same time Godot isn't quite a 1:1 replacement for Unity (it's better in some areas, worse in others) so it may be too soon to declare victory.

        KanataEXE very cool! Hope it does well!

        In doing the prep for my own course, I just realized you can define your own inner classes within a regular script class! My mind? BLOWN!

        Megalomaniak That's a big if tho...

        Possibly the biggest if ever. But there are still games with smaller success on Steam and also a huge potential. It is not the case that you need to develop on consoles. Look at these stats from 2020.

        • Over 50% of indie games never make more than $4,000. These games never generate enough revenue to cover the development time and other costs. Learn more
        • An average indie game makes $3,947 (this is actually median, average is not a good measure as it’s significantly distorted by top earners).
        • Over 2/3 of the games don’t cross $10,000 in life time earnings.
        • However, the top 1/3 of the indie games are doing pretty well. Almost every 1 in 5 indie games makes more than $50,000. Still, this might not mean the game is profitable or a good investment. If the development team was any bigger than one person and took over a year to make, chances are these people would have been better off as full time developers for a big studio.
        • Top 9% cross the $200k line. Most of these games are probably profitable and a proof that indie games can survive.
        • The top 1% of indie games make over $7,000,000!

        https://vginsights.com/insights/article/infographic-indie-game-revenues-on-steam

        You can also see here that indie games make up 95% of Steam.

        https://vginsights.com/insights/article/indie-games-make-up-40-of-all-units-sold-on-steam

        So if you do the math, you have a 50% chance of losing all your money. And about a 67% chance of not making over $10K, which probably means it does not cover development costs. However, if you get in the upper 33%, you will be doing okay. The top 20% are going to make over $50K. If your game takes under a year to make, and it's a solo project, this is enough to live off of, even in America (and may be much more lucrative overseas since you're making USD). Granted, you could get a normal programming job and make more, but it's still a livable wage to work for yourself and make art. If you are in the top 9%, then you're making over $200K, so a game that took one person 2 years (or 2 people 1 year) you'd be making in the 6-figures. And if you get lucky to get to the top 1% you will make over $7 million. Honestly, this seems like a good gamble, provided you have a good quality game you have faith in.

          cybereality I don't want to see Unity fail, either. I actually got more assets on their store than I want to admit, and I don't know if I ever would be able to make up for that possible loss. The marketplace here is lacking (no offense) and needs a ton of new stuff on it. It's not that it's bad, it's just very small ATM. The game engine itself? It seems okay, I think it will be better once Godot 4 is out of alpha stage.

          Unity is going to be under my radar, as Godot was for a long time.

          Now, let me be so bold as to suggest this and am curious on your thoughts. Would a bigger marketplace make Godot more attractive? I suspect it will for Unity devs.

          On another note, does anyone know a good place to get animations that run well with Godot and humanoid characters?

            Tomcat Thanks. I'm not using Makehuman, but I know both softwares somewhat and they are nice... assuming one ever figures out Blender. It was fun to play with, but had a very deep learning curve.

            I miss the old Blender versions that I understood.

              Nerdzmasterz assuming one ever figures out Blender. It was fun to play with, but had a very deep learning curve.

              I tried to make it as clear as possible. If something is not clear, you can ask, clarify and I will try to improve the tutorial.

              C++ is really a pile of steaming bovine waste 💩 and should never be used to write safety critical systems. And the more I learn about it the more I understand why the Linux kernel guys do not want it in the kernel.

              Example, who would remember if they not made that error before that indexing with an operator[] into a map for instance actually changes the map if the key is not found, thus provoking ub in a concurrent environment just with supposed concurrent reader access (that actually is no reader access), if not taken special care of ? And who knows what else is hidden as an error waiting to be made 🦶 🔫 ?

              What did Linus say "... and if it is only to keep out the mediocre C++ programmers" or so. Right he is. I would certainly have made that error, wasn't it mentioned as an example in an exercise.

              grumblegrumble

              :-)

              But in C++ you can use cool but obscure expressions such as:
              ***i++