Both. I was specifically reading the skill rating update code. They had a bespoke algorithm, and their code was all architected with ECS (Entity-Component-System). The guy who wrote the algorithm was almost as insane as I am. It took me a full week to piece together the actual calculations it was doing to update each player's skill rating after each round.
"Composition over inheritance (or composite reuse principle) in object-oriented programming (OOP) is the principle that classes should achieve polymorphic behavior and code reuse by their composition (by containing instances of other classes that implement the desired functionality) rather than inheritance from a base or parent class."
Jesus flying spaghettimonster.
This is Magic: The Gathering as a software design philosophy.
Should have been deleted on sight. I'm so fucking tired of running across code that the author didn't bother to comment. The fact that someone would do that with a particularly complex piece of software is frankly inexcusable. I don't care that you're an autistic software savant, other people have to be able to decipher your code after you get hit by a bus.
It's what happens when a solo engineer is siloed off and doesn't need to get code reviews while writing complex systems. I've seen it way too many times and it's always awful.
Both. I was specifically reading the skill rating update code. They had a bespoke algorithm, and their code was all architected with ECS (Entity-Component-System). The guy who wrote the algorithm was almost as insane as I am. It took me a full week to piece together the actual calculations it was doing to update each player's skill rating after each round.
Jesus flying spaghettimonster.
This is Magic: The Gathering as a software design philosophy.
I've built a simple game using an ECS engine before, and it can actually be pretty cool and elegant. It can also be a total train wreck.
Should have been deleted on sight. I'm so fucking tired of running across code that the author didn't bother to comment. The fact that someone would do that with a particularly complex piece of software is frankly inexcusable. I don't care that you're an autistic software savant, other people have to be able to decipher your code after you get hit by a bus.
It's what happens when a solo engineer is siloed off and doesn't need to get code reviews while writing complex systems. I've seen it way too many times and it's always awful.