Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

thanks for all the great work #60

Open
bpkennedy opened this issue Jun 12, 2022 · 1 comment
Open

thanks for all the great work #60

bpkennedy opened this issue Jun 12, 2022 · 1 comment

Comments

@bpkennedy
Copy link

Just wanted to give some feedback that I really admire the organization and structure of the project you made here. Great architecture choices, simple to follow - prioritizes readability and understanding over brevity/premature optimization, typed well for ide intellisense, great abstractions - especially of notoriously messy libraries. PIXI.js historically loves globals and didn't play well with es2016+ import/exports for a while ... unsure if it's still like that. Also love that you're using pixi-viewport, too.

I'm impressed at how much this is doing with so little use of promises! Just a couple in the client related to the initial interaction with the websocket.

Yarn workspaces makes dependencies nice and collected in the one place instead of three then managed with Lerna or more customized build scripts. I like that you drew the line during deployment at simple constructing the docker image and not also trying to add in whatever process you do to get/pull down to wherever you host (I like that those are separated concerns, makes the build process simpler).

Altogether, I think this may be one of the best put together javascript/typescript game repositories I've come across. Thank you so much for sharing this via open source software! Now, how can I buy you a coffee or beer or contribute to your Patreon? 😄

@halftheopposite
Copy link
Owner

First of all, a huge thanks for your kind and encouraging words @bpkennedy!

Also, my biggest apology for answering so late as I got carried away and totally forgot about writing a proper answer.

All the architecture and organisation choices you've listed are conscious compromises I try to make during development of open-source projects. I try to keep things simple for the reader as code is read much more than it is written, and having clean abstraction and obvious code execution paths. I spend most of my coding time thinking about how "clean" and "pure" I can make the abstractions I'm working on and find myself rewriting them over and over at least a dozens time (which is not a good practice if you want to move fast I assure you). I find myself happy when others can feel it through my projects and implementations!

My best reward is for people to find what I do useful and inspire them to explore things on their own!

I intend to update this project with a few addition this year, and maybe with one of my most recent project regarding dungeon generation: https://github.com/halftheopposite/graph-dungeon-generator.

If you're interested into reading some of my code, I've tried to make it as clear as TOSIOS regarding code reading and architecture.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants