MMORPG Roadmap Needed
Like many of you, I''m a single programmer that dreams day-and-night of building a 3D MMORPG (or more-likely just a MORPG). Ideally, this would be an open-source project, which would allow many people from all over the world to contribute. Leads would have to be designated and would have to maintain final control over design and implementation. All of this would be managed via a web-based interface providing CVS, forums, chat, etc.
Personally, I have many years (3) programming experience in C & C++, but am just starting in 3D game development. I''m also very knowledgeable with relational database design and web scripting (PHP, ASP, etc.) My question is, can anyone offer suggestions for the best way to achieve this dream? I work a full-time job (web developer) so most of this will be done after work and on weekends.
Here''s my tentative plan (currently on 1 and 2):
1) Study common, fundamental 3D structures, functions, and algorithms (matrices, vectors, quadtrees, etc.) and learn to apply them to Direct3d and OpenGL (4 months)
2) Develop a flexible terrain generator including water, trees, dynamic weather, texture mapping, etc. (2-3 months)
3) Develop a demo which models an X file (from 3DS Max) and features multiple animations (running, sitting, swinging, casting, etc.). The model should also allow skins to dynamically be changed to accomodate different clothes, armor, etc. (2 months)
4) Develop a particle system which can be used for spell affects, water effects, combat animations, etc. (1 month)
5) Develop or find flexible OpenGL/Direct3D UI objects for use in the game''s interface (sliders, textboxes, spinners, etc.) (1-2 months)
6) Develop a workable client/server UDP demo (Winsock based). The server should be able to be ''fed'' from a SQL database (mySQL)(2-3 months)
7) Develop or find an auto-update system for propagating a revised client and its data. (1 month)
Obviously this isn''t enough to create the entire game, but I''m hoping it will be enough to get me to a point where I can start my engine with a minimal amount of rewrite. Am I leaving out any major components or under/over-estimating their complexity level?
Please feel free to email me if you have suggestions/comments or if you''d be interesting in working on something like this. Keep in mind that it will probably be at least a year before I actually start coding the engine unless I team up with someone much more further along than myself.
Brian Popp
bpopp [at] midsouth.rr.com
http://www.bpopp.net
bpopp - My Gamedev Journal
Another existing MMORPG project is Arianne. It doesn''t look like it''s that far yet, but anyway...
I''m sure there are many more projects like this. Just have a look around on freshmeat and SourceForge.
cu,
Prefect
Return to the Shadows
I''m sure there are many more projects like this. Just have a look around on freshmeat and SourceForge.
cu,
Prefect
Return to the Shadows
Widelands - laid back, free software strategy
Thanks. I have seen those. Arianne is a UO-like 2D RPG if I remember right. I can''t see investing the time in a 2D engine when 3D is doing such amazing things. Worldforge does look pretty interesting, though. The idea of having multiple clients for the same server is very cool, but the project seems a little disjointed. Another one I found that looks the most promising is Planeshift @ www.planeshift.it. It''s a 3d/OpenGL MMORPG using an API called Crystal Space (open source OpenGL API). Both of them are on Sorceforge.
bpopp - My Gamedev Journal
May 17, 2002 05:31 AM
Arianne is not 2D, but has a 2D Client. The whole Engine is build on 3D Spacial system. Arianne is also a game ( using Arianne engine )
But Arianne is in *really* development, although basis are already there.
But Arianne is in *really* development, although basis are already there.
May 17, 2002 06:12 AM
I have been reading your "scheduling" and I personally think it is pretty fantastic. The main problem on creating a game is not the graphical side, but create all the logic in such a way that is flexible and easy to modify, then the second big problem is to link all that logic with the graphical technology.
Also you need to spend a HUGE amount of time on design, and if you pretend to develop in in Open Source model also expect a lot of re-designs.
Even when you are happy with the actual design a new idea appears that improve it in such a way, that makes the change a MUST.
In weekend mode, if you have experience, and you have a clear idea of the design, you can code all the logic and such in around 4-5 months.
This just IMO, but usually it is better to start creating the net framework and then do the graphical side... both Arianne and WF has done in this way...
Regards,
Miguel
Also you need to spend a HUGE amount of time on design, and if you pretend to develop in in Open Source model also expect a lot of re-designs.
Even when you are happy with the actual design a new idea appears that improve it in such a way, that makes the change a MUST.
In weekend mode, if you have experience, and you have a clear idea of the design, you can code all the logic and such in around 4-5 months.
This just IMO, but usually it is better to start creating the net framework and then do the graphical side... both Arianne and WF has done in this way...
Regards,
Miguel
hi,
if you are going to spend that kind of time developing stuff.. throw it back into the community. the engine below is open source but seems to me like it will have a future.
it needs some of the things u talked about but is really cool (seemingly to me) besides.
http://www.nevrax.org
"..no matter where you go, there you are.."
buckAroo BonZai
if you are going to spend that kind of time developing stuff.. throw it back into the community. the engine below is open source but seems to me like it will have a future.
it needs some of the things u talked about but is really cool (seemingly to me) besides.
http://www.nevrax.org
"..no matter where you go, there you are.."
buckAroo BonZai
No matter where you go, there you are -Buckaroo Bonzai
I can definitely relate to your dream. Making an mmo would satisfy my ultimate ambition as a game developer/player.
I''ve only glimpsed at some of the open source MMO''s out there.
The WorldForge stuff sounds really amazing.
I worked for several months on a school project - a 2D MORPG. It was far from finished but it gave me a good understanding of the types of technologies and capabilities you''d need to have in an MMO as well as the likely problems you''d need to solve.
I think the more of an idea you have about the design the better off you''d be.
Once you have a rough idea of what data is critical, I''d recommend that you start working on implementing the networking model.
Load balancing, packet profiling, and data security are all very critical.
I''d really be interested in working on the project. If you''d like to find out more about me visit my site: www.frost-bytes.com
Brian Bradshaw
frost-byte
brian@frost-bytes.com
"Remember, wherever you go, there you are."
You mentioned a MMOxxx game somewhere up above, then went on to discuss the schedule for a 3D graphics application, not a MMOxxx. As someone already said, you haven''t addressed the actual "game" at all, only a client application that displays some small portion of the game state...
You might consider planning more time for Networking (incidentally, the topic of this forum!). I work for a commercial MMORPG company, and my full time job is creating/maintaining networking libraries. And it turns out to be more than an 8 hour day quite often...
You left out AI, which is not a light subject.
And then there is game content, the most important and challenging portion of a MMORPG, hands down. Between creating unique places/people, and then balancing it all to be fun, you have a huge task at hand. There are several really cool MMORPGs "live" on the market, but EQ continues to dominate in large part due to the massive amount of content that Sony has put into the game. In my own side project, I randomly generate large amounts of the content, then tweak it by hand to make sure that it fits the theme and general balance of my game (sort of a massive multiplayer Starflight).
You might consider planning more time for Networking (incidentally, the topic of this forum!). I work for a commercial MMORPG company, and my full time job is creating/maintaining networking libraries. And it turns out to be more than an 8 hour day quite often...
You left out AI, which is not a light subject.
And then there is game content, the most important and challenging portion of a MMORPG, hands down. Between creating unique places/people, and then balancing it all to be fun, you have a huge task at hand. There are several really cool MMORPGs "live" on the market, but EQ continues to dominate in large part due to the massive amount of content that Sony has put into the game. In my own side project, I randomly generate large amounts of the content, then tweak it by hand to make sure that it fits the theme and general balance of my game (sort of a massive multiplayer Starflight).
Hmm, well, I would say it partially depends upon the quality of the engine you want. But, if you are intending to make anything of decent graphical content in 3D, you would need to double, treble or even quadruple some of those time figures.
Possibly the biggest problem is the sheer complexity of 3D programming now. No matter how good a coder you are, the thing really boils down to maths. And I don''t mean just fancy trigonometry, but hideously complex calculus and the like. If you go looking for a technical paper to help you out with some particular aspect, something from Siggraph say, chances are the whole thing will be incomprehensible unless you have taken several months to give yourself a serious grounding in the maths.
You can, of course, try using various libraries to do certain aspects of the engine, but that is not without problems. Firstly, they often take up a huge amount of space, but more importantly they are frequently bug-ridden, and there is little you can do to get around it. And probably the most important thing to have in an engine is rock-solid performance. You can''t be worrying that the thing is going to crash every five minutes.
A team of people would certainly be essential, but that takes serious management too. Once more, bugs can creep in unless the project is being very carefully looked after by an overall controller. It is awfully difficult to go back and understand one''s own code a few months after writing it, but trying to unravel that written by somebody who has dropped out of the project unexpectedly would be far worse.
Going back to time, though, one only has to look at the afforementioned WorldForge. Time ticks away, but not a great deal changes, and the whole site now seems a good deal less organized than when I first visited it a couple of years ago. That is no criticism of WorldForge, by the way, it''s just the way that such things work.
Re-writes are an absolute essential part of the business, too. You just have to budget on ripping up various major bits and rebuilding them again a few times, no matter how carefully you plan ahead. As your experience grows you realise that what you wrote six months ago is just not quite right, or has a fundamental flaw that will cripple you later if not addressed. Alternatively, with graphics hardware changing at an alarming rate, a major change may be necessitated to take advantage of the latest vertex shaders, or whatever.
However, as far as the general engine-first, game-second approach you have taken, I fully commend that, and think it is much better than the ''I have a great idea for a game, all I need is someone to code it for me'' method. Designing the game is the fun part, but first you need something to make it work.
Anyway, although this whole post is somewhat downbeat, I fully support your dream. It is my own dream, and has been for the past fifteen years since the time of early MUDs, and is the only thing that really gives me much pleasure these days. But I don''t expect it to seriously get anywhere.
As a final depressing thought, our own effort, which has some screenshots of the engine at www.gscape.com, has been in development now for two years just for the terrain engine alone, albeit an ambitious one. We are only now starting on character animation, which is even harder, and is the thing that will probably finally kill us off.
Possibly the biggest problem is the sheer complexity of 3D programming now. No matter how good a coder you are, the thing really boils down to maths. And I don''t mean just fancy trigonometry, but hideously complex calculus and the like. If you go looking for a technical paper to help you out with some particular aspect, something from Siggraph say, chances are the whole thing will be incomprehensible unless you have taken several months to give yourself a serious grounding in the maths.
You can, of course, try using various libraries to do certain aspects of the engine, but that is not without problems. Firstly, they often take up a huge amount of space, but more importantly they are frequently bug-ridden, and there is little you can do to get around it. And probably the most important thing to have in an engine is rock-solid performance. You can''t be worrying that the thing is going to crash every five minutes.
A team of people would certainly be essential, but that takes serious management too. Once more, bugs can creep in unless the project is being very carefully looked after by an overall controller. It is awfully difficult to go back and understand one''s own code a few months after writing it, but trying to unravel that written by somebody who has dropped out of the project unexpectedly would be far worse.
Going back to time, though, one only has to look at the afforementioned WorldForge. Time ticks away, but not a great deal changes, and the whole site now seems a good deal less organized than when I first visited it a couple of years ago. That is no criticism of WorldForge, by the way, it''s just the way that such things work.
Re-writes are an absolute essential part of the business, too. You just have to budget on ripping up various major bits and rebuilding them again a few times, no matter how carefully you plan ahead. As your experience grows you realise that what you wrote six months ago is just not quite right, or has a fundamental flaw that will cripple you later if not addressed. Alternatively, with graphics hardware changing at an alarming rate, a major change may be necessitated to take advantage of the latest vertex shaders, or whatever.
However, as far as the general engine-first, game-second approach you have taken, I fully commend that, and think it is much better than the ''I have a great idea for a game, all I need is someone to code it for me'' method. Designing the game is the fun part, but first you need something to make it work.
Anyway, although this whole post is somewhat downbeat, I fully support your dream. It is my own dream, and has been for the past fifteen years since the time of early MUDs, and is the only thing that really gives me much pleasure these days. But I don''t expect it to seriously get anywhere.
As a final depressing thought, our own effort, which has some screenshots of the engine at www.gscape.com, has been in development now for two years just for the terrain engine alone, albeit an ambitious one. We are only now starting on character animation, which is even harder, and is the thing that will probably finally kill us off.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement