Hi everybody! Need help for a mmorpg.

Started by
31 comments, last by Hybris 23 years, 1 month ago
First I want to say Hi to everybody since this is my first post Ok, we are 3 programmers, 1 storywriter and 1 graphic artist (friends irl) who thought it would be cool to create a mmorpg in our sparetime. One coder is really good in c (he works as a programmer for Eriksson the swed cellphone company) and the other is quite good in c++, the third (me hehe) don''t know c++ at all but im very good in ADA language. And I''m going to learn c++ now. Well that was the introduction now the questions 1. Does anyone know a good c++ book for a n00b? 2. What kind of server should we use if we want to make a mmorpg that allows approx 2-3000 players at the same time? 3. How should we construct the main game loop? I mean im having a hard time believing we could loop between the players like this: plr1->plr2->plr3->plr4->...->plr3000->computer turn->plr1.. 4. Does anyone know how the big companys (like eq,ac,ao) saves char stats? Do they use sql or do they use hommade databases and what would you reccomend? 5. What kind of info should be on the server and what info should be with the client (We planned map, monsters/player stats on the server: Graphics in client) any other suggestions? 6. Do you guys think it would be possible to use collision detection in the fights or will that just be a HUGE waste of cpu power? 7. Awhole lots of other questions but I ask them later this is enough for now Well if you have any tips you can think of I''d apriciate it Sorry to ask all theese questions makes me feel like a real lamer but I had to we are really eager to start this project and i thought this would be a great place to start out This is no commersial game but we are interested in making a good game that we enjoy playing. We planned to realese it as freeware or shareware. (probably shareware so we get atleast some money for server maintance)
Advertisement
Oh yeah one more thing what compiler would you prefer I have borlands visual c++, but I think msoft v c++ seems better when working with direct x. Any other suggestons?
LOL you need help with an MMORPG lol don''t we all :D
Anyways here are the best answers i can give!

1)Not sure about a c++ book you saying you''ve never used c++ before? If so you should really hold off a little bit on a game in general and learn the basics and how it works etc.. (and how to print messages and such). Also tho if you want a free 3d engine for your RPG me and my friends are using www.genesis3d.com and if you want a 3d game i suggest you use it(though the commands took my friend a while to learn!). Also remember you''ll have to get a book for winsock(if your using winsock) and if you do DON''T GET ON BY MICROSOFT! I''m seroius i made that mistake and now my server doesn''t work and i have to pay another $50 to get another books. I''m going to try a networking for dummies book as those are usually helpful. If your using directplay, well can''t help you with that.

2)I don''t understand what you mean by "what kind of server." Please elaborate.

3)I really need to know this also!

4)I don''t know how they save their stats but I''m pretty sure (not totally now) that UO player-run servers use regular files but i could be wrong. I''m using SQL for mine.

5)It really depends on what your doing. You doing it for fun but then again people will come to your game, realize a lot of stuff is client side, and will have fun themselves hacking the program which really doesn''t make it fun for you! But what you siad was basically that all info stays on server and almost nothign on client (because graphics HAVE to be on the client ) Here''s what a proffesional game developer (who''s helping us out :p aren''t i special lol ) told me. "If you have everything client side then it''s easily hacked but your server goes fast. If you have everything server side it''s very hard to hack but you loose server speed. You have to find the perfect balance for your game." And so should you

6)What, do you mean collision detecting server side? Well we''re doing it client side because genesis3d woudl be fine client side and they''re so way (without running the engine) we could test it server side!

Also another thing you should think about ASAP or very soon. You should think if it''s going to be a pay game. I know it''s for fun (same for mine) but if it becomes popular then you''ll need to upgrade your connection, and if you wait too long noone will pay (a game once was free they won''t suddenly pay). That is why we''re making it a pay game. but do whatever you want just a suggestion you should think about.
ALL YOUR BASE ARE BELONG TO US!!!!

1) One that college students learn from... I swear by "Object Oriented Programming in C++" by Waite Group Press. It covers a great deal of C++ programming, and newer releases should have development environment notes too.

2) Plan a multi-server architecture, running on an NT based OS, that heavily relies on multithreading. (Despite nay-sayers) it''s a very stable OS.

3) Run each client in a thread, that only does stuff based on incoming events. DO NOT check each client each loop, that''s just a waste of CPU time.

4) POL (a UO server program) saves data in text files. Head over to http://vulpin.burdell.org/pol/ and download and check out their program. Try running your own server to understand how each part of it works with the rest of the game. (This point is particularly important, I believe... nothing beats experience).

5) Clients should only play ''mother may I'' with the server. Let the server do all the work. This is important for large player-base games (2000-3000 as you mentioned) because of hackers that ruin the game for others.

6) Certainly, just learn fast/dirty ways to do it. It doesn''t need to be impressive or perfect.

7) Certainly.
- People WILL pay for something that has been free for a long time, that you suddenly give a price tag to. (I have proof of this, I work for a large company that only recently started selling their product that had been free for years.)
- You also need to listen to player feedback on those sorts of things. If you want to add a feature to the game, consult the players first. Always remember that they are your customer base, not your lab guinea pigs.
- Don''t try to overwhelm yourself the first time that you write a game. This sounds like your first venture into game programming. Make a small roam-the-world online game first, then add features to it as you see fit. Design your game engine before programming it, and design it modular.

GOod luck!


MatrixCubed
http://MatrixCubed.org
Thanks for all the info we really apriciate it
Well we figured since this will be our first game we''ll just make a small game just to figure out how to do stuff. Like a small rpg game seen from above (2d) with 10-100 plrs and a map of 15x15 screens or something. Our goal is to make a mmorpg in the future but for now were just learning the basics and we think its more fun making a game than some programs that writes "Hello world" on the screen :p

Hmm Kalldrex if you check for collisions on the client wont That be easy to hack?
Do you guys think its wise to start with a small simple game first or is it better to start making a good game from the beginning and then perhaps rewrite some early code?

If you do collision detection server-side only then you will have alot of problems. People will be walking through walls on the client and get de-syched on the server. Unless your going to wait for server-side confirmation before moving the player (which will be very sluggish unless you have less than 50ms or so latency) then you need to do collision detection client-side and server-side. That was, the server will keep track of where your client is and your client wont end up walking through walls or going through impassible objects.
CorsairK8@Fnemesis.comLinux Debian/GNU RulezThis is my signitory!C Is Tha Best!
Um, guys... You rarely seem to know how to create even the most basic complete game, some of you are just learning C++ and you don''t seem to have an idea of basic network / multiplayer programming... And you want to create an MMORPG ??? c''mon, that''s a joke... Better do something you can really complete. This way you''ll have more fun and learn more... Believe me.

Tim

--------------------------
glvelocity.gamedev.net
www.gamedev.net/hosted/glvelocity
Tim--------------------------glvelocity.gamedev.netwww.gamedev.net/hosted/glvelocity
I use server side collision detection and it doesn''t add any lag. It''s just a matter of how you write it. The server completes the entire move checking for collisions before sending it to the client. This way the server can''t be outrun and "who was there first" isn''t an issue.

You should start simple and then add features and improve code as you go.

Just start with being able to connect more than one person and be able to walk around the world.

Ben
http://therabbithole.redback.inficad.com






tcs yeah I''m inexperienced in c++ but the other two coders are not. I have made some small single player rpgs in other programming languages and so have my friends. I am quite good in ADA programming which is an OO language and I heard if you know ADA c++ won''t take too long to learn (learn not master that is) Yes it is true we don''t know much about network programming but thats why we want to make this game to learn how you do that. my question about the main game loop was because in our previous multi-plr games we had max like 4 players and then it works with plr1->plr2->..->computer but I figured it wouldn''t work in a mmorpg. As I said in my previous post our 1st game wont be a mmgame we plan to start with one player and get the world working and then another player and then add more.
I study masters in electronics and my other friend master in theoretical physics and the third guy work as a c programmer and he has good knowledge in assembly language.
My best friend is a network technician and he promised he''ll help us if he can be the first beta tester I will learn c pretty soon since next month my course in compilator construction starts and its in c. I can understand c code when im looking at it (well maby not all optimized-dirty-trick-code) but anyway. All of us are hardcore gamers and we played alot of mmorpg uo eq ac and soon ao. WE all wan''t to work proffesionaly as game programmers in the future so this is just the first trembeling steps
Thanks again for all your help and im sorry for asking such basic (general) questions. We are currently working on our game document so we won''t start with the actual coding yet were only trying to find what features we shall have in the game and what we can learn from them. (Its not a big point in making a game based on stuff we already know, then we won''t learn anything new..hehe except me who will learn a new programming-language, but Im a fast learner (Learnt ada in two weeks and been programming it for some years now)

quote:Original post by MatrixCubed
2) Plan a multi-server architecture, running on an NT based OS, that heavily relies on multithreading. (Despite nay-sayers) it''s a very stable OS.


I will have to agree with you here... NT with service pack 6 is rock solid. Of course, NT and Windows in general is very dependent on the hardware.

On NT here''s the equation:
poor hardware = poor performance;
good hardware = good performance;
great hardware = great performance;

You get the ideal




Game On,
David[Dak LozarLoeserElysian Productions, Inc
Dave Dak Lozar Loeser
"Software Engineering is a race between the programmers, trying to make bigger and better fool-proof software, and the universe trying to make bigger fools. So far the Universe in winning."--anonymous

This topic is closed to new replies.

Advertisement