{% extends "../../../layouts/post.html" %}
{% block article %}
## Preface
I'm an indie game dev that has an interest in making tools that I think would improve my life as a game developer in the hopes that it can help others. I'm not an expert in any of the topics that this article covers. I have no formal education in game engine development or architecture, systems programming, or anything else. I went to university for Computer Science with a specialization in game design & development when I was in my early 20s and the only thing I learned is that there are better ways to spend tens of thousands of dollars.
Everything in this article is drawn directly from my experiences working in game development.
## A Solution?
something something game state as a database, expressive querying
https://ajmmertens.medium.com/why-it-is-time-to-start-thinking-of-games-as-databases-e7971da33ac3
## Going forward
continued evolution of ecs which can broadly respond to specific use cases and needs
### What I'm looking for
* constructive feedback and discussion about the general direction i'm putting forward
* potential implementations and data structures that allow ecs to perform as outlined
* potential pitfalls that ecs may not be able to answer
### Not on topic but will still accept
* improvements and specific optimizations to my prototype
* constructive feedback on the specific contents of this post (eg. code examples)
### What I'm not looking for
* criticism and discussion about my specific prototype implementation
* paradigm, language, and coding style debates
* i'm not interested in debating the merits of one paradigm or language versus another
* i'm extremely not interested in K&R versus Allman indentation style arguments. [yes i am a monster](https://youtu.be/raQ3iHhE_Kk?t=1093) (but that's not a secret)
* as stated in the preface, all of these are approaches that have worked best for me and how i think. if OO or whatever else works for you, you should use that!
* criticism about the code examples in this post
* how best to solve a problem via OOP is not the point of this post
* any feedback on how to better demonstrate solutions to the example problems are ok though. i want to fairly represent the alternatives
{% endblock article %}