delete this thread please
Moderators - Reputation: 15732
Posted 29 June 2011 - 06:51 PM
As such, this is obligatory reading.
[Work - ArenaNet] [Epoch Language] [Scribblings] [Journal - peek into my shattered mind]
Members - Reputation: 259
Posted 29 June 2011 - 07:22 PM
With no work at all? None exist.
Is there an engine in the market that would allow to do this? And that could render that amount of objects without suffering? And of course that doesn't cost houndreds of thousands of dollars (although it would be interesting to know also).
You will need to do a large amount of programming/scripting regardless of how flexible or inflexible your world is. The only "game engine" that can simply be downloaded and function entirely on its own to be a complete game, is a complete game. Sorry.
Here I can help you.
Or maybe the most viable option would be to create the engine myself? I wouldn't need fancy state-of-the-art graphics, just a basic lighting and shadows. What i'm more worried about is performance.
Also, the idea i have in mind is an MMO not too centered in combat, rather a sandbox MMO where combat would be one option out of many. I would like to recreate a living world with a basic ecology and some other features not found in traditional comercial MMOs. For instance player freezing under extreme cold.
If you're a C++ programmer, Boost has a few excellent libraries that will help you on the server-side of things (in MMOs, you interact with other people via connecting to a server, in case you weren't aware). Boost.Thread (concurrency) and Boost.Asio (highly scalable network) are the most important of these, but there's also Boost.Filesystem (crawling your hard disk), Boost.Pool (for managing your own memory), and Boost.MSM (useful for any interact-able game objects; such as NPCs, players, and the blocks to an extent).
On the client side of things, there's a few different libraries you could use. Irrlicht, Ogre, SDL+OpenGL, ClanLib+OpenGL, some cheap proprietary engine; it's up to you.
I've done a ton of work with MMO servers, so I'm pretty familiar with those concepts. Boost will save you a crazy amount of dev time there, with little performance hit (in fact, Boost.asio will probably implement the network better than you would yourself -- it's a godsend for anyone wanting to write a scalable server).
Banned - Reputation: 36
Posted 29 June 2011 - 07:57 PM
Members - Reputation: 150
Posted 30 June 2011 - 06:06 AM
As someone said (Raundy Pausch), brick walls are there to separate the people that really want something from those that don't.
Yes, but you have to be realistic. Practice does NOT make perfect, practice only makes perfect when you're practising the right thing. I'm sure you'll learn lots of interesting things by tackling (and, realistically, ultimately failing) such a project, but the things you'll learn most certainly won't be about MMO games. It's akin to repeatedly running into a brick wall to learn that new shoes can cause painful blisters. There's easier and more efficient ways to learn such things. I'm not saying this to rain on your parade, if you have a strong desire to make the game you desire then you'll have the drive to go through the necessary precursory steps (which takes time). Building up your skills and experience in incremental steps takes more strength of character and determination than steeling yourself up for foolhardy challenges such as making a MMO game with absolutely no experience.
Members - Reputation: 259
Posted 30 June 2011 - 03:46 PM
Depends on your own ability as a programmer, how quickly you can learn new APIs and solve problems, and the dependability of other developers you gather.
If nothing of the above works for me then I would have to build it, with something like Boost as you suggested, nfries88. How long would that take me, providing I can work lets say the average 40 hours a week in the project. 1 year? 5 years? 10 years? (I can't spend more time than that ).
1 year is a fair estimate for a basic Minecraft-like MMO. Certainly less than 5 years.
Members - Reputation: 187
Posted 01 July 2011 - 03:04 AM
Members - Reputation: 1331
Posted 01 July 2011 - 03:32 AM
No. You're going to have scalability issues. Why? Because most extant MMOs (and hence their engines) are based around rather static world geometry. Minecraft keeps the geometry local and generates by psuedorandom techniques when required, saving the areas as it does so.
In order that you can have a landscape like that but which can be altered by any of the players, you'll need to store the whole landscape (in the way Minecraft does) but also to send deltas in that landscape to all players who can see the change (and you'll need to determine who can see each change). In addition you not only have to tell players connected now about changed geometry, you'll need to tell all the players who will reconnect later about changes.
It's not impossible, but it's a difficult problem to solve well. Which brings me onto the next part...
" If nothing of the above works for me then I would have to build it, with something like Boost as you suggested, nfries88. How long would that take me, providing I can work lets say the average 40 hours a week in the project. 1 year? 5 years? 10 years? (I can't spend more time than that"
If you are at the stage of referring to Boost as "something like Boost" then you have a number of things ahead of you.
You need to;
1. Get good at C++.
2. Get good at games development.
3. Write this game.
There's a reason why, when I go shopping for good C++ developers, I'm looking for people who've been using it for several years. It takes of the order of 10000 hours to get good at something. There are about 2000 working hours in the year, so 5 years is the point at which people could be good. 5 years does not MAKE a good C++ developer but the chances of someone with a year of it being good are so small it's not worth worrying about. It's not that I wouldn't hire them, but I would be aware that if I hire them I'd be expecting to have a lot of conversations about segfaults.
Games dev is a related but different set of skills. It's about understanding how to handle game loops, to defer doing things, to cache things, to handle inputs in the right way, to look at a set of problems and understand how to solve them not just in performant ways but within the envelopes of games. To understand things like "good enough is good enough", "faking it is cheaper than doing it" and "neither you nor the player needs this". These are skills which also need honing. They're less technical than the development -- they're about psychology, project scope management, product ownership and control. But they still need to be learned and practiced.
I'm telling you all this because "1 year is a fair estimate for a basic Minecraft-like MMO. Certainly less than 5 years" is almost certainly untrue. It's not a malicious lie; it's an untruth born of optimism. But it's still unlikely to be true. And you'll be disappointed. Minecraft's a tricky problem to solve -- and to be clear here, Notch is NOT a beginner. It's not his first released game nor is it his first released bit of software. And it's taken him a year. And an MMO version of it is a step further on.
Why DOES everyone want to write an MMO as their first game? What happened to implementing things like Qix or Pong or Breakout so that you get the hang of the basic principles before leaping straight into client-server software that is complex by anyone's standards?
 Yes, I know everyone here is an EXPERT in C++, and that you all got that way in just a couple of weeks and that you're all exceptional in this. So don't even bother telling me.
 This is a common commercial error in hiring processes.
Moderators - Reputation: 9878
Posted 01 July 2011 - 10:35 AM
No. I'll close it, but you did a bad thing deleting all your questions. Do not do that again on this forum.
delete this thread please
Making games fun and getting them done.
Please do not PM me. My email address is easy to find, but note that I do not give private advice.