Please state your personal preference is and what the motivations for that preference are...
I would love to have a game loop supplied. It would make prototyping so much quicker because I'll be able to jump into actual gameplay code instead of worrying about frameworks.
Thanks for bringing up target audience. I think part of the problem here is that we haven't yet defined that crisply enough. Two key audiences are currently under consideration:
Our current thinking/hope is that other audiences can be served by building higher-level, more specialized templates on top of this one. These templates would necessarily be more opinionated and perhaps less flexible.
I do like the point that an event loop is simple enough that it may be possible to thread this needle by including one with appropriate comments (or maybe commented out?).
I'm very curious to see if other folks are in fact interested in buildling higher-level templates on top of this one...
I'd vote for including it. Even if it doesn't do much of anything, it's universal enough that there's more gain in adding in than loss.
I personally don't see a whole lot of value in several high-level custom templates. I feel like a bigger win would be creating components that can be combined using the base template; instead of an MMO template, you could have a library for sharing state between games, plus other libraries for the gameplay that can be shared across other game types.
The added benefit is that libraries can be adapted for situations outside of gaming, whereas a template with included MMO code is harder to pull into another project.
Yeah, the modularity of the library approach has a lot to like about it. One concern I've had with that is that it doesn't given you existing code to modify, which I think is one of the great things about templates from a developer experience standpoint. That said, I could imagine figuring out how to make volo overwrite app.js (or install something next to it) as part of doing "volo add" on that library.
Good point about modifying libraries, although the OSS hopeful in me says "Oh, they'll just upstream their changes, right?" :P
Oh, I meant something slightly different. What I was trying to say is that if you start out with the event loop in front of your eyes and you get to place your code directly in it, it's very easy to see how to do that.
On the other hand, if you're handed a library and told "do this thing to be sure that your event loop gets called", the startup involves reading docs and implementing, rather than just directly modifying an existing artifact, which tends to be much more obvious and less work. It also means you're starting with less structure, which concerns me that it could trigger the "blank page paralysis" effect.
That said, these are all things that can be tested with experiments, I think.
Oh, okay, that makes sense. I was focusing more on things from specialized templates that fit into a library better, but there's obviously stuff that fits into both.