1
Design / OOP, ECS, Roguelike, and definitions
« on: February 11, 2016, 03:51:49 PM »
These days we're bombarded with one liners, "OOP is bad!", "ECS is the way!", "New Roguelike game!". Definitions, its all about definitions.
OOP.. which OOP? which part of OOP? which application of OOP? Like any other part of programming, there are good and bad uses. I'm not even going to try to enumerate them here, much less address them. OOP has a place, it fits some things, doesn't fit others. Misuse of pattern classifications and concepts are a similar, related, even coupled, issue - to me, patterns are for review and refactoring purposes, *not* for up front design. But hey, good uses, bad uses.
ECS... again which ECS? The ECS as used in Unity3D? The ones described here: http://entity-systems.wikidot.com/? Maybe the one in this paper http://www.dataorienteddesign.com/dodmain/? None of them are the same. Some include OOP concepts, some are rabidly anti-OOP. Which variant fits which problem space? What are the costs and benefits? Good uses, bad uses.
Roguelike - fooled you, not even going to touch this one.
Personally, I recall years ago, in another conversation, practically another lifetime, saying "it's all about the data", and when it comes to OOP, ECS, and Roguelikes today, I'm saying "it's all about the data". As an experiment or proof of concept I'm taking 50+ years of relational database theory and practice and using that - I mean if they haven't gotten it right after all this time, no one has. No, not sticking SQLiteDB ::memory:: in my game and running SQL against it, but organizing, structuring and accessing my game data in an equivalent manner. Advantages, disadvantages, we'll see. No, I'm not calling it ECS, its RDM if you need three letters (Relational Data Model). And *gasp* it uses OOP in places!!
Anyhow, just had to hop on the bandwagon,
Have a good one,
Brian aka Omnivore
OOP.. which OOP? which part of OOP? which application of OOP? Like any other part of programming, there are good and bad uses. I'm not even going to try to enumerate them here, much less address them. OOP has a place, it fits some things, doesn't fit others. Misuse of pattern classifications and concepts are a similar, related, even coupled, issue - to me, patterns are for review and refactoring purposes, *not* for up front design. But hey, good uses, bad uses.
ECS... again which ECS? The ECS as used in Unity3D? The ones described here: http://entity-systems.wikidot.com/? Maybe the one in this paper http://www.dataorienteddesign.com/dodmain/? None of them are the same. Some include OOP concepts, some are rabidly anti-OOP. Which variant fits which problem space? What are the costs and benefits? Good uses, bad uses.
Roguelike - fooled you, not even going to touch this one.
Personally, I recall years ago, in another conversation, practically another lifetime, saying "it's all about the data", and when it comes to OOP, ECS, and Roguelikes today, I'm saying "it's all about the data". As an experiment or proof of concept I'm taking 50+ years of relational database theory and practice and using that - I mean if they haven't gotten it right after all this time, no one has. No, not sticking SQLiteDB ::memory:: in my game and running SQL against it, but organizing, structuring and accessing my game data in an equivalent manner. Advantages, disadvantages, we'll see. No, I'm not calling it ECS, its RDM if you need three letters (Relational Data Model). And *gasp* it uses OOP in places!!
Anyhow, just had to hop on the bandwagon,
Have a good one,
Brian aka Omnivore