December 08

On Thursday, 7 December 2023 at 20:37:17 UTC, ryuukk_ wrote:

>

On Thursday, 7 December 2023 at 19:21:10 UTC, Paulo Pinto wrote:

>

On Thursday, 7 December 2023 at 14:32:26 UTC, ryuukk_ wrote:

>

[...]

Unreal is also full of OOP, and Unreal C++ alongside Blueprints uses a GC.

Their business is doing quite well.

Not if you want to write fast and efficient code

Look at what studios are doing with these engines, they all work around these mistakes

In fact, Unreal is internally planning a ECS/data-driven stack, Unreal isn't a new project, it's multiple decades old, with that comes tech debt and poor design that are hard to correct

https://www.youtube.com/watch?v=f9q8A-9DvPo

The value of Unreal isn't OOP, it's its graphics stack, editor and platforms it can reach

As long as C++ classes, data members, function members, inheritance and method dispatch are used to implement an ECS system, like on that linked video, it is OOP.

December 08

On Tuesday, 5 December 2023 at 21:26:05 UTC, GrimMaple wrote:

>

Contrary, what I've tried to say was: it's extremely difficult (in D) to implement a "good for everyone" solution, because the language contradicts itself. If you design a @nogc library, then GC people are left out. If you design a GC library, then @nogc users are left out.

If you design a Qt library, then GTK people are left out. There's no solution, only tradeoffs. You commit the nirvana fallacy. It's useless to complain that nirvana doesn't exist, of course it doesn't and never did.

December 08

On Tuesday, 5 December 2023 at 21:26:05 UTC, GrimMaple wrote:

>

Contrary, what I've tried to say was: it's extremely difficult (in D) to implement a "good for everyone" solution

This is one of biggest mistakes in dlang's design. They tried to be "everything" (being both garbage collected and not, being both safe and unsafe system language...), it backfired because as you said, you always need to exclude some people or features.
IMO dlang needs to be splitted into two different languages one for system and one for general-purpose safe language, but then this means a breaking change to simply every existing D project.

December 08

On Thursday, 7 December 2023 at 17:23:28 UTC, Paolo Invernizzi wrote:

>

On Thursday, 7 December 2023 at 15:53:35 UTC, Martyn wrote:

>

Even John Carmack has spoken about using Python in recent years. It all depends what they are doing with them, I suppose.

If Mike is still 'doing stuff in C#' like the burst compiler then good for him. Sounds like he put a lot of effort into that project and does not want to walk away from it. Again.. point?

John Carmack, three days ago:

"I was helping with some C code yesterday and got a bunch of errors — I hadn’t put a semicolon on any of the lines. I’m writing too much python code!" [1]

:-P

[1] https://twitter.com/ID_AA_Carmack/status/1731689997688832052

Gave me a chuckle.. needed that.

December 08

On Friday, 8 December 2023 at 07:04:29 UTC, Paulo Pinto wrote:

>

On Thursday, 7 December 2023 at 20:37:17 UTC, ryuukk_ wrote:

>

On Thursday, 7 December 2023 at 19:21:10 UTC, Paulo Pinto wrote:

>

On Thursday, 7 December 2023 at 14:32:26 UTC, ryuukk_ wrote:

>

[...]

Unreal is also full of OOP, and Unreal C++ alongside Blueprints uses a GC.

Their business is doing quite well.

Not if you want to write fast and efficient code

Look at what studios are doing with these engines, they all work around these mistakes

In fact, Unreal is internally planning a ECS/data-driven stack, Unreal isn't a new project, it's multiple decades old, with that comes tech debt and poor design that are hard to correct

https://www.youtube.com/watch?v=f9q8A-9DvPo

The value of Unreal isn't OOP, it's its graphics stack, editor and platforms it can reach

As long as C++ classes, data members, function members, inheritance and method dispatch are used to implement an ECS system, like on that linked video, it is OOP.

You miss the whole point, hence why it's not available today, because they are busy working around these mistakes

This is why people like Acton end up leaving, they get sabotaged by these people

"Me must use hammer on this porcelain, me no care, me like this hammer"

December 08

And seems like Carmack was mentioned

He also left because of this "software" industry, that doesn't understand what the hell they are supposed to be doing, the industry where managers love to promote and reward idiocracy

https://www.theverge.com/2022/12/16/23513622/john-carmack-leaving-meta-virtual-reality-oculus-cto

December 08

D would annihilate the game industry thanks to its type introspection capabilities

    auto view(Includes)()
    {
        return view!(Includes, Excludes!());
    }

    auto view(Includes, Excludes)()
    {
        static if (Includes.args.length == 1 && Excludes.args.length == 0)
        {
            auto storage = assure!(Includes.args[0]);
            return BasicView!(Includes.args[0]).create( storage );
        }
        else
        {

            size_t[Includes.args.length] includes_arr;
            static foreach (i, T; Includes.args)
            {
                assure!(T)();
                includes_arr[i] = type_id!(T);
            }
            size_t[Excludes.args.length] excludes_arr;
            static foreach (i, T; Excludes.args)
            {
                assure!(T)();
                excludes_arr[i] = type_id!(T);
            }
            return MultiView!(Includes.args.length, Excludes.args.length).create(&this, includes_arr, excludes_arr);
        }
    }

How sweeet!

    foreach(view, e; registry.view!(Includes!(CTransform, CVelocity, CNetworked)))
    {
        auto trs = registry.get!(CTransform)(e);
        auto vel = registry.get!(CVelocity)(e);
        auto net = registry.get!(CNetworked)(e);
    }

0 OOP, few lines, only data, maximum performance

Let's promote this, not final public abstract class ECSSystem : Updatable, Syncrhonicable BS OOP propaganda

December 08

Tagged Union, Tuples, Pattern Matching and D will reign as greatest modern non-OOP system language, the best better C and alternative to C++ language

December 08

On Friday, 8 December 2023 at 11:35:15 UTC, ryuukk_ wrote:

>

And seems like Carmack was mentioned

He also left because of this "software" industry, that doesn't understand what the hell they are supposed to be doing, the industry where managers love to promote and reward idiocracy

https://www.theverge.com/2022/12/16/23513622/john-carmack-leaving-meta-virtual-reality-oculus-cto

Nowadays using Python, a deeply OOP based language, and the king of AI research.

Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> type(int)
<class 'type'>
>>> int.__bases__
(<class 'object'>,)
>>> dir(int)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
December 08

On Friday, 8 December 2023 at 07:04:29 UTC, Paulo Pinto wrote:

>

On Thursday, 7 December 2023 at 20:37:17 UTC, ryuukk_ wrote:

>

On Thursday, 7 December 2023 at 19:21:10 UTC, Paulo Pinto wrote:

>

On Thursday, 7 December 2023 at 14:32:26 UTC, ryuukk_ wrote:

>

[...]

Unreal is also full of OOP, and Unreal C++ alongside Blueprints uses a GC.

Their business is doing quite well.

Not if you want to write fast and efficient code

Look at what studios are doing with these engines, they all work around these mistakes

In fact, Unreal is internally planning a ECS/data-driven stack, Unreal isn't a new project, it's multiple decades old, with that comes tech debt and poor design that are hard to correct

https://www.youtube.com/watch?v=f9q8A-9DvPo

The value of Unreal isn't OOP, it's its graphics stack, editor and platforms it can reach

As long as C++ classes, data members, function members, inheritance and method dispatch are used to implement an ECS system, like on that linked video, it is OOP.

There are so many things to unpack.

Firstly, we are talking about C++. Not Java. Not C#. Not Python.. etc.

I am not an expert C++ programmer. I dont think there are many people in C++ land that can really be considered 'an expert' except for those that dive in heavy to figure out what the compiler really does to your code and the C++ tricks needed to bring out the best outcome.

(I am happy sticking with languages like C, not forgetting D and open to Odin or Jai.. and I would say this 1000 times over if I was creating a game)

If I entertain the idea that I HAD to write a game in C++, it will mostly be C-like code, except for some handy features C++ has (over C) as long as it does not come at a cost!

Now could there be reasons to create a class? Sure. However, if I do, I would have to truly understand what the compiler is doing to that code. Could I be adding method overrides or inheritence? Possibly, but I very doubt this code would be part of in-game logic. It is likely part of some editing tools that 'compiles' to raw data for in-game, generally speaking.

As I say - whatever. So you have Unreal engine using OOP. I can assure you they are being vary careful with the usage of classes, inheritence, overloading, etc, based on their C++ knowledge. They likely have extremely skilled C++ guys over there. This is not me blowing their trumpet but they wouldn't be getting average developers in for a tightly skill area. Again, we are talking about C++ that still gives you control compared to other languages.

You also have to remember that the Unreal Engine/Editor are tools for the masses. Unreal engine is avaiable for school kids, small game companies, to large AAA ones. Blimey, even a retired OAP could dabble in Unreal if they wanted to! Different people with different skill levels - so it has to cater to the majority so why not OOP-like? I mean, if they don't provide some sense of familarity, their competitors will.

To me, this could be the driving factor why there is OOP. It may also be because it keeps a level of similarity right back to Unreal Engine 1 days (which, from memory, the scripting language was OOP) - Scripting languages are not been the appeal in gaming for a while, replaced by hot reloading or, as Unreal uses, their visual 'language' named blueprints.

While OOP is used, I don't find this to be a good reason to prove anything against my original post that (kinda) mocks using Java back in 1998.. to having shared views with someone I found on youtube that is respected in his field. (Mike Acton)

Any further reply, as far as I am concerned, it just trolling.