6 ms·
Your long list of desired features and properties, especially cross compatibility, is sucking all the fun out of the project. I also suspect the hobby project y
by NortySpock 4y ago
Your long list of desired features and properties, especially cross compatibility, is sucking all the fun out of the project. I also suspect the hobby project you chose (whatever it is) has so much idealism in it that it implies a lot of toil, e.g. a cross platform messaging app or one-storage-system-to-rule-them-all or The Next Great MMORPG.
The goal is too big and you are but one person with a day-job.
Don't quit your day job.
If you want to finish a project and have fun:
Do not attempt to solve world hunger or censorship or any big problem, because you will find it is big and thorny.
Do: make a list of tiny projects. Extra tiny. Make sure they are fun, e.g. asteroids or Snake or displays-a-random-emoji or something silly.
Make a list of non-goals for your project: e.g. it will not be cross-compatible, it will not be multi-threaded, it will not support multiple users, it
will not be scalable, it will not support multiple resolutions, etc. Try to make it so dang simple you think you can knock it out in 2 days. (It might still take a month)
If you need a framework or library, pick one and only one library. (write the rest yourself) Pick the smallest one you can find that covers the part of the project you don't wanna do, whether that's game physics calculations or databases or whatever.
And then write your project, preferably all in one big ugly file that does not meet anyone's definition of organization or documentation or quality.
That's when it's fun, when the scope is small and understandable, and there is no expectation of having to fix anyone else's bug reports but your own.
(To be clear, these rules are only for personal projects, I do not recommend this level of anarchy on a team or a "real project", just a project where the goal is to have fun.)
I've made snake, asteroids and Galaga clones in JavaScript. I had fun with them, and I threw the code over the wall for other people to look at; but for personal projects I am not promising anything other than that I had fun writing the code and playing the game I wrote.