Remember that most of us have little or no MMORPG programming experience, thus why most are redirecting you to PlaneShift.
PlaneShift is a great game, but it isn''t as popular as some of the games we have seen get hacked. It will be a while until we see how Open-Source works.
Coming fom a developers stand point (mine), I am 17 and just learned C/C++ a while ago. For me, reading other peoples source code has always been a challenge, especially optimized code.
I find I either have to read an entire segment (eg; graphics, AI, render etc.) entirely, or I will not understand. I figure most code is designed this way, as they are all puzzle pieces waiting to be assembled.
Now I imagine when you incorperate the entire game around one thing, networking and multiplayer engine, it becomes even more difficult to assemble.
Unless somsone was to be very good at reading C/C++ source, they would most likely have to read alot of the source. After that they still have to understand it, and find a way to break it.
Anyhow, just my $.02
Making MMO Game Open Source == Bad Idea?
January 01, 2004 07:39 AM
what about releasing the source code, but add some kind of "identification mechanism" to the precompiled client that''s just not in the public source??? Maybe some RSA-like identification?
quote:
Original post by Telamon
That would probably be bad if you want to release non-Windows versions. *nix users likes to compile their own binaries.
That problem is not too big with C#, since .NET binaries are multiplatform, but the manual compilation /will/ be a problem.
quote:
Original post by Telamon
The bot-problem is very hard to solve; not releasing the source will not stop it, only make it a bit harder for the bot coder. One suggestion is to take this possibility (that the client might be a bot) into account in the game logic. In this case it might be to do so that a client (human or not) cannot mine for 24/7. Another way might be to implement clever features that only a human can handle, eg. displaying an image with a random question to be answered for the client to be able to continue, would be very hard for a bot to get around (I''m not suggesting exactly this, it is only an illustration; it should be subtle and don''t interfere with gameplay).
The image sounds like a good idea.
Also, RuneScape uses a tireness gauge, when it is totally filled it is not possible to continue mining.
-
CL Game Studios. Probably.
A lot of interesting discussion here :-). I think what I may finally end up doing is releasing the source of the game periodically while I refine it and then keep some kind of "final" version closed-source. If there were enough of a difference in the network interactions between versions, having the source to one wouldn''t really help crack the more recent one (or am I wrong about this?).
The bot question is very interesting to me because I am also using this game as a testbed for different AI entities. They will populate the universe all the time to make the game interesting even if there aren''t other people logged on. These entities might be things like pirates and traders and galactic police, but also more abstract entities like political factions and corporations. Somewhere down the road I want to provide third parties with the capability of writing their own bots (to provide more content for the game universe - everything will be pluggable in some fashion). There are, of course, problems with doing this. For example, it''s hard to write a bot network API/library that provides the information a bot programmer might want. Another type of problem is limiting the bots so that humans can compete with them (I imagine it would be quite easy to write a killer combat bot). These are all very pie in the sky aspirations and I''m nowhere near being able to think about implementing them.
On the issue of cross-platformness... Maybe I''m missing the point, but how would a DirectX game ever run on unix? I was just wondering how it might be a consideration.
----------------------------------------
Let be be finale of seem, seems to me.
----------------------------------------
Coding:
http://www.stanford.edu/~jjshed/coding
Miscellany:
http://www.stanford.edu/~jjshed
The bot question is very interesting to me because I am also using this game as a testbed for different AI entities. They will populate the universe all the time to make the game interesting even if there aren''t other people logged on. These entities might be things like pirates and traders and galactic police, but also more abstract entities like political factions and corporations. Somewhere down the road I want to provide third parties with the capability of writing their own bots (to provide more content for the game universe - everything will be pluggable in some fashion). There are, of course, problems with doing this. For example, it''s hard to write a bot network API/library that provides the information a bot programmer might want. Another type of problem is limiting the bots so that humans can compete with them (I imagine it would be quite easy to write a killer combat bot). These are all very pie in the sky aspirations and I''m nowhere near being able to think about implementing them.
On the issue of cross-platformness... Maybe I''m missing the point, but how would a DirectX game ever run on unix? I was just wondering how it might be a consideration.
----------------------------------------
Let be be finale of seem, seems to me.
----------------------------------------
Coding:
http://www.stanford.edu/~jjshed/coding
Miscellany:
http://www.stanford.edu/~jjshed
Shedletsky's Bits: A Blog | ROBLOX | Twitter
Time held me green and dying
Though I sang in my chains like the sea...
Hi,
When do you plan to release your source code? I just got into MDX and C#, and would like to take a look at your multiplayer code atleast. Or anything that you used to learn it yourself.
When do you plan to release your source code? I just got into MDX and C#, and would like to take a look at your multiplayer code atleast. Or anything that you used to learn it yourself.
--------------------------A good discussion is like a miniskirt; Short enough to pertain interest and long enough to cover the subject..
quote:Sorry. Somehow I have this open-source == cross-platform idea, even though you gave several hints that it wasn''t the case. Either way, it is probably a bad idea with binary checksums. Imagine when you have released several versions of the client, what a mess the check is going to be.
Original post by Telamon
On the issue of cross-platformness... Maybe I''m missing the point, but how would a DirectX game ever run on unix? I was just wondering how it might be a consideration.
On the subject of binary checksums, this topic might be of interest: http://www.gamedev.net/community/forums/topic.asp?topic_id=179731
Although it was mostly focused on the GPL perspective, IIRC it had some discussion about why depending on that sort of "security" is a bad idea. I think we had another, more detailed, discussion about it, but I cannot find that thread. The bottom line is, security through obscurity == no security; never trust the client.
Although it was mostly focused on the GPL perspective, IIRC it had some discussion about why depending on that sort of "security" is a bad idea. I think we had another, more detailed, discussion about it, but I cannot find that thread. The bottom line is, security through obscurity == no security; never trust the client.
It''s good that you are thinking about these vulnerabilities now. The next step is to come up with creative ways to minimize them on the server. With your hydrogen example, for example, you just want to make the client _request_ that the server mine some hydrogen. The server then might check two things. 1) when was the last time this client mined hydrogen and 2) how much hydrogen have they mined in the last hour. If either of these values is unreasonable, you just return a notice to the client that they must wait until later. This way, a bot is limited in the same way an actual player might be.
Another thing that I highly recommend is that you keep very detailed logs on the server (preferably in a SQL database) which can easily be queried for any number of trends. This allows you to run reports which show who is mining how much hydrogen, who are the top 10 grossing players, etc. If you see someone that has 5000% more than the standard deviation of income, you can assume there is a gameplay issue that needs to be addressed (and quickly).
This may seem a little "big brother", but I''m planning a "possession" ability for my project which will allow me to tag along behind any given player.
Another thing that I highly recommend is that you keep very detailed logs on the server (preferably in a SQL database) which can easily be queried for any number of trends. This allows you to run reports which show who is mining how much hydrogen, who are the top 10 grossing players, etc. If you see someone that has 5000% more than the standard deviation of income, you can assume there is a gameplay issue that needs to be addressed (and quickly).
This may seem a little "big brother", but I''m planning a "possession" ability for my project which will allow me to tag along behind any given player.
bpopp - My Gamedev Journal
You may want to take a look at Better Game Design through Data Mining on Gamasutra ( may require registration but is free and gama has a whole lot of really great articles ).
The article basically discusses ways to examine how players are playing the game. So you can spot trends where people are progressing to fast or have unatural growth in some areas.
It''s more directed to spotting badly designed progression systems but could also be used a cheat detection ( though after the fact ).
-------
Andrew
PlaneShift - A MMORPG in development.
The article basically discusses ways to examine how players are playing the game. So you can spot trends where people are progressing to fast or have unatural growth in some areas.
It''s more directed to spotting badly designed progression systems but could also be used a cheat detection ( though after the fact ).
-------
Andrew
PlaneShift - A MMORPG in development.
Heh, I think that's actually where I got the idea originally.
I'd kill to be able to look through Everquest, DAOC, or AC's logs over the last 5 years. You could easily learn more about designing and developing an MMORPG from that than you could from looking at the source (assuming they _are_ logging).
Andrew, do you know if this is something that Planeshift is planning to do at some point? Last time I looked you were just dumping stuff to the server console.
[edited by - bpopp on January 2, 2004 4:06:15 PM]
I'd kill to be able to look through Everquest, DAOC, or AC's logs over the last 5 years. You could easily learn more about designing and developing an MMORPG from that than you could from looking at the source (assuming they _are_ logging).
Andrew, do you know if this is something that Planeshift is planning to do at some point? Last time I looked you were just dumping stuff to the server console.
[edited by - bpopp on January 2, 2004 4:06:15 PM]
bpopp - My Gamedev Journal
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement