How I can start?
Hi all!
I want to develop an MMRPG, but I've never programmed anything on a net. What do all you that I need to start? Are any good article to start and do anything good? I want to code in c/c++.
Thanks to all!
[edited by - spanishman on May 28, 2002 7:59:50 AM]
Pick up a book or a tuturial somewhere (on this site perhaps) and start with something smaller than MMRPG.
-------------Ban KalvinB !
You should know that developing a MMRPG is a very big undertaking. I you haven''t worked on a large scale project before, then i suggest that you start with something smaller.
I''m not trying to discurage you or anything, but creating a MMRPG is a very complex task.
However, as an answer to your question, you should find some articles on the subject here on GameDev. There''s also some articles that discusses varius networking topics, such as WinSock, multiplayer programming, etc. Just browse through the Articles and Resource section.
If your looking for books, i think theres a book called Multiplayer Game Programming( not sure about the title), which is supposed to very good. Just take a look in the Books and Software section.
I hope this helps you out! Good luck!
I''m not trying to discurage you or anything, but creating a MMRPG is a very complex task.
However, as an answer to your question, you should find some articles on the subject here on GameDev. There''s also some articles that discusses varius networking topics, such as WinSock, multiplayer programming, etc. Just browse through the Articles and Resource section.
If your looking for books, i think theres a book called Multiplayer Game Programming( not sure about the title), which is supposed to very good. Just take a look in the Books and Software section.
I hope this helps you out! Good luck!
"You should know that developing a MMRPG is a very big undertaking. "
Only if you think Everquest is the only MMORPG there is.
I wrote an MMORPG in 10 days (mostly design) called "Gang Wars" just because I wanted to see if I could. If you''ve never done an MMORPG before it''s about the quality of something that would take serveral months to do from not knowing anything to having a complete (but pretty simplistic in the number of stats) game. So no, there''s no reason you shouldn''t be able to do this in a real amount of time. Gang Wars is also designed to be infinitly expandable. It''s only small because of the time restraint I gave myself.
What you need to know how to do before starting an MMORPG, is how to write an RPG. Tying in the MMO part to the existing Tombstone RPG engine took about a week having never used DPlay before. Gang Wars was started from the ground up using the same general concepts.
The only book available on the topic I''m aware of is "Multiplayer Game Programming." Other than that you either need to pick up a book on Winsock or look through the SDK docs for DPlay. I used DPlay for Tombstone and Gang Wars but Winsock (TCP at least) is shaping up to be a better choice. It''s what I''m using for my current project which is moving along really well.
Yes you can do it. All you need to do is stop listening to the "experts" and break down the components into bite size chunks. MMO and RPG.
Forget the RPG part and get messages going back and forth between a client and a server. Once you have that, you have everything you need to make any game MMO.
Ben
IcarusIndie.com [ The Rabbit Hole | The Labyrinth | Programming | Gang Wars | The Wall]
Only if you think Everquest is the only MMORPG there is.
I wrote an MMORPG in 10 days (mostly design) called "Gang Wars" just because I wanted to see if I could. If you''ve never done an MMORPG before it''s about the quality of something that would take serveral months to do from not knowing anything to having a complete (but pretty simplistic in the number of stats) game. So no, there''s no reason you shouldn''t be able to do this in a real amount of time. Gang Wars is also designed to be infinitly expandable. It''s only small because of the time restraint I gave myself.
What you need to know how to do before starting an MMORPG, is how to write an RPG. Tying in the MMO part to the existing Tombstone RPG engine took about a week having never used DPlay before. Gang Wars was started from the ground up using the same general concepts.
The only book available on the topic I''m aware of is "Multiplayer Game Programming." Other than that you either need to pick up a book on Winsock or look through the SDK docs for DPlay. I used DPlay for Tombstone and Gang Wars but Winsock (TCP at least) is shaping up to be a better choice. It''s what I''m using for my current project which is moving along really well.
Yes you can do it. All you need to do is stop listening to the "experts" and break down the components into bite size chunks. MMO and RPG.
Forget the RPG part and get messages going back and forth between a client and a server. Once you have that, you have everything you need to make any game MMO.
Ben
IcarusIndie.com [ The Rabbit Hole | The Labyrinth | Programming | Gang Wars | The Wall]
I agree fully with KalvinB.
Your game doesnt have to be in a scale such as Everquest in order to me an MMORPG.
I guess i assumed that you wanted to create a game of that size,
because i have seen alot of people that thought they could create such game with no prior experience or knowhow, and i am sorry if i put you in that catagory.
Its just that RPG's in general tend to be very big projects,
so i just wanted to give you a heads-up.
But ofcourse you can create a smaller RPG without to much trouble. Just because you dont create an RPG ala Baldurs Gate/Everquest doesnt mean its not an RPG
PS:
About the books, theres a book called Programming Role Playing Games with DirectX. If i remember correctly, that book discusess multiplayer programming with DirectPlay. It might have just what you'r looking for.
Later!
[edited by - JackRabbit on June 1, 2002 12:38:31 PM]
Your game doesnt have to be in a scale such as Everquest in order to me an MMORPG.
I guess i assumed that you wanted to create a game of that size,
because i have seen alot of people that thought they could create such game with no prior experience or knowhow, and i am sorry if i put you in that catagory.
Its just that RPG's in general tend to be very big projects,
so i just wanted to give you a heads-up.
But ofcourse you can create a smaller RPG without to much trouble. Just because you dont create an RPG ala Baldurs Gate/Everquest doesnt mean its not an RPG
PS:
About the books, theres a book called Programming Role Playing Games with DirectX. If i remember correctly, that book discusess multiplayer programming with DirectPlay. It might have just what you'r looking for.
Later!
[edited by - JackRabbit on June 1, 2002 12:38:31 PM]
Sorry about the time to contest!
Thanks to all to write to me!
Well, firtsly, I''ve done all the design and very advanced on the proyect, I''ve developing the server. But my problem is the sockets : I''ve developing finally in C++, and VisualC++6.0 don''t allow to have a conversion between sockaddr_in and sockaddr by default (when I''m calling read(something,something, &sockaddr_in, sizeof (sockaddr_in)); it says to me that it can''t resolve the conversion between C/C++, or something similar. Do anyone knows a class to research a conection in C++?
Well, the mmporg that I''m developing, by now only suports around 20-40 players and I was thinking ... a very hard task ! ... and I think that, when all the players were online, the time waiting that their packets arrive to the server, be processed and returned to each player, can be very big!
As some of you say, I need a good book, but I haven''t very enough cash, I''m only an student without work!! But I promise that when I have a bit of money I''ll buy one .
Thanks to all to write to me!
Well, firtsly, I''ve done all the design and very advanced on the proyect, I''ve developing the server. But my problem is the sockets : I''ve developing finally in C++, and VisualC++6.0 don''t allow to have a conversion between sockaddr_in and sockaddr by default (when I''m calling read(something,something, &sockaddr_in, sizeof (sockaddr_in)); it says to me that it can''t resolve the conversion between C/C++, or something similar. Do anyone knows a class to research a conection in C++?
Well, the mmporg that I''m developing, by now only suports around 20-40 players and I was thinking ... a very hard task ! ... and I think that, when all the players were online, the time waiting that their packets arrive to the server, be processed and returned to each player, can be very big!
As some of you say, I need a good book, but I haven''t very enough cash, I''m only an student without work!! But I promise that when I have a bit of money I''ll buy one .
Sorry about the time to contest!
Thanks to all to write to me!
Well, firtsly, I''ve done all the design and very advanced on the proyect, I''ve developing the server. But my problem is the sockets : I''ve developing finally in C++, and VisualC++6.0 don''t allow to have a conversion between sockaddr_in and sockaddr by default (when I''m calling read(something,something, &sockaddr_in, sizeof (sockaddr_in)); it says to me that it can''t resolve the conversion between C/C++, or something similar. Do anyone knows a class to research a conection in C++?
Well, the mmporg that I''m developing, by now only suports around 20-40 players and I was thinking ... a very hard task ! ... and I think that, when all the players were online, the time waiting that their packets arrive to the server, be processed and returned to each player, can be very big!
As some of you say, I need a good book, but I haven''t very enough cash, I''m only an student without work!! But I promise that when I have a bit of money I''ll buy one .
Thanks to all to write to me!
Well, firtsly, I''ve done all the design and very advanced on the proyect, I''ve developing the server. But my problem is the sockets : I''ve developing finally in C++, and VisualC++6.0 don''t allow to have a conversion between sockaddr_in and sockaddr by default (when I''m calling read(something,something, &sockaddr_in, sizeof (sockaddr_in)); it says to me that it can''t resolve the conversion between C/C++, or something similar. Do anyone knows a class to research a conection in C++?
Well, the mmporg that I''m developing, by now only suports around 20-40 players and I was thinking ... a very hard task ! ... and I think that, when all the players were online, the time waiting that their packets arrive to the server, be processed and returned to each player, can be very big!
As some of you say, I need a good book, but I haven''t very enough cash, I''m only an student without work!! But I promise that when I have a bit of money I''ll buy one .
June 14, 2002 04:10 AM
"I''ve developing finally in C++, and VisualC++6.0 don''t allow to have a conversion between sockaddr_in and sockaddr by default (when I''m calling read(something,something, &sockaddr_in, sizeof (sockaddr_in)); it says to me that it can''t resolve the conversion between C/C++, or something similar. "
If i udnerstand your problem correctly...you have to actually explicitly cast the sockaddr_in to a sockaddr. ie. (*sockaddr)&sockaddr_in
So you would have for instance
connect( mySocket, (*sockaddr)&mySockaddr_in, sizeof(mySockaddr_in) );
"Well, the mmporg that I''m developing, by now only suports around 20-40 players and I was thinking ... a very hard task ! ... and I think that, when all the players were online, the time waiting that their packets arrive to the server, be processed and returned to each player, can be very big! "
This all depends on two things. The amount of data you need to send, and how you represent that data. Most mmorpg''s around atm that i''m aware of work on a ration of allowing a maximum (peak) of 3k/s download to the client, and 1k/s upload from the client. As long as the client has a decent connection they shouldn''t experience any lag, even in peak times. So you need to do two things. Only send the client what it NEEDS to know, no more. Keeping the client down to 1k/s isn''t too hard, prevent chat flooding, and simple sending actions to the server and simulating them on the client means as far as actual commands go, it would be doubtful you''d be having to send more than a 100 or so bytes/second even in busy periods. The majority of client upload data will probably be taken up by chat messages. As for the server, only send data to the client about things that it has to know. Don''t send data about some monster over the other side of the map, or people who are so far away they can''t affect the client. Once the client comes in contact with another entity, temporarily store that entity on the client so that you only need to send data when that entity actually changes.
Look at the article about grouping on this site for some more ideas maybe.
Finally, how you represent data. Don''t use an int if a value can onyl range between 0-100, use a char. this cuts your bandwidth usage for that value by 75%! Group data changes and only send them once every 0.2 or more seconds. If using unreliable data, send absolute values, rather than delta values. (This simply means if say a character has 100 health, then takes 20 damage, you send "char health = 80" rather than "char health change -20".
Realise that large MMORPG''s such as EQ etc. do use server farms, that is they don''t host 1000 players on a single server, there are many servers, usually one for each zone (newer systems use different techniques).
Hmmm, thats all i got i think.
June 18, 2002 02:11 AM
You may want to like at CommonC++2:
http://www.gnu.org/software/commonc++/
http://www.gnu.org/software/commonc++/
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement