Ok, Xuri is aware my desire to do a bottoms up UOX based on c++17. So no surprises here. I will keep it in this forum so not to be "un UOX3" related *grin*.
I have dabbled with different components, (sockets in c++17, text parsing, threading, etc). Inching my way to figuring out all the small pieces of putting it all together to be something larger.
Regardless, I do have some guidelines:
1. Yes, still c++, and keeping it at c++17.
2. Yes, unix based at least, and I guess windows as well. Other then network and maybe console output (if we want color), c++17 should be sufficient to address any other
platform issues.
3. I normally don't like a lot of libraries. Just complicates it all and more decencies to keep up to date, more to build on different platforms, etc. But I am toying with either a JSON header file,
or maybe something else. I don't know, QT keeps looking interesting. ZLib will be required just to do compressed Gumps. And then of course, whatever scripting engining makes sense.
Just some initial stuff, will ramble some more later as it occurs to me.
Thinking out loud
Moderator: punt
Ok, so what else:
1 think the focus is on maintainability. I don't see the current base as maintainable, and some things done for convince (like standard header includes) make the codebase harder to
understand dependencies. So I believe that should be the focus, making it easier for others to pick up and work the code. That doesn't mean one can't use full c++ capability, and that
people learning c++ may have some areas of challenge for understanding. Just the general focus of the project.
2.There are at times a desire to hosts hundreds if not thousands of players. And UO is clearly designed for 3-5 thousand or more. But realistically, I think these days, if a shard gets twenty or 30
players online at one time, they are doing well (doesn't mean that shards don't have more, but they are probably not going to change emu's either). Why is this important? It adds in the
decision tree if it comes to performance over maintainability. Doesn't mean one shouldn't strive for more players online, but sort of a weighting to keep in mind.
3. Base machine. I think a quad I7 is what should be the base (or perhaps I5). Regardless, I think something that has the ability to have about 8 machine threads in hardware. In terms of memory, it should be capability of loading all things in memory, so effectively unlimited (which would translate to a Gb or so I believe).
Ponder time.
1 think the focus is on maintainability. I don't see the current base as maintainable, and some things done for convince (like standard header includes) make the codebase harder to
understand dependencies. So I believe that should be the focus, making it easier for others to pick up and work the code. That doesn't mean one can't use full c++ capability, and that
people learning c++ may have some areas of challenge for understanding. Just the general focus of the project.
2.There are at times a desire to hosts hundreds if not thousands of players. And UO is clearly designed for 3-5 thousand or more. But realistically, I think these days, if a shard gets twenty or 30
players online at one time, they are doing well (doesn't mean that shards don't have more, but they are probably not going to change emu's either). Why is this important? It adds in the
decision tree if it comes to performance over maintainability. Doesn't mean one shouldn't strive for more players online, but sort of a weighting to keep in mind.
3. Base machine. I think a quad I7 is what should be the base (or perhaps I5). Regardless, I think something that has the ability to have about 8 machine threads in hardware. In terms of memory, it should be capability of loading all things in memory, so effectively unlimited (which would translate to a Gb or so I believe).
Ponder time.