Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (494)
Games in Android Showcase (114)
games submitted by our members
Games in WIP (563)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  MMORPG of another kind...advice?  (Read 3339 times)
0 Members and 1 Guest are viewing this topic.
Offline ZaBlanc

Senior Newbie





« Posted 2005-04-04 21:09:59 »

I find it funny that I just read an article that made fun of people who post "I am going to write the best MMORPG ever, what language should I use?" and then the thread below this one does it. ;-)

OK...I'm planning on writing the CRAPPIEST MMORPG ever!  I've done C/C++, and I'm converting from J2ME game development...so technically I'm new to Java game development.  So, a couple questions if anyone can enlighten me. :-)

1) Is it possible for a single server to manage hundreds of connections at once?  I've heard that you might use multiple servers, in separate "rooms", to manager it.  I'm going to have "rooms" to keep down the info people get, but one Java server process will manage everything.

The system won't be huge...but there could be hundreds of people on at a time.  Could i run into an issue? (Bandwidth won't be excessive...just movement, chat, and some other details...no fighting, etc.)

2) If you were to make an MMORPG that *only* tracker a player moving in a 2D environment, what might be a simple way of accomplishing it?

I've seen lots of articles that talk in generics about more complicated, real-time systems.  My system doesn't have to be pinpoint real-time, there could even be a delay like Maplestory.  Anyone know of any simple tutorials on the topic on the net.

Google fails me. :-)

3) What's the best Java graphics book for 2D work.  Are there any for Java Internet/MMORPG gaming? (aside from the one on Java 1.0 I had years ago :-) )

Thanks in advance...hope the questions aren't too vague!
Offline CaffeineOverdose

Senior Newbie




Java games rock!


« Reply #1 - Posted 2005-04-04 22:17:58 »

These article (it's part of a large Java tutorial) might be helpful in explaining the basics of advanced I/O over networks and servers. However they are very basic, so don't be surprissed if you know everything in them.

http://math.hws.edu/javanotes/c10/s4.html
http://math.hws.edu/javanotes/c10/s5.html

1) I could only offer a educated guess...

2) First determine how often you want data sent and received. If you want gameplay to be smooth then send/receive this data more often. If you want it to be laggy (which may be part of the design of your MMORPG based on the description you provided) then send/receive it less often, preferable at not at a constant rate to give players a feeling of true lag. This actually sounds like a good idea, you could add a lag zone to your game in which players try to play with extreme lag.

The number time data needs to be sent/received is also dependent on the game speed. If it were a fast paced game then you obviously need to send/receive it more often.

I assume that you also want keypress to be data send from the client and that you want the server to send back client locations. The old MMORPGs used to have problems with hacking because too much stuff was done client side. If you want teleport/movement hacking in your CRAPPIEST MMORPG make character location determined client side. If you want to avoid this have only keypress sent to the server and let the server calculate the next position, sending the new player location to the client.

3. I think I saw two books on Java MMORPG design on Amazon once. However both of them were quite old, out dated, and recieved less than praisworthly remarks from people who purchased them.
The solve this problem you could look for books on Java Networking and books on general MMORPG design.

The Java Networking book will help you understand how to send data to and from your server.

The general MMORPG design book will help you understand what kind of data you need to be sending, how often, and to whom. It will also cover aspects of MMORPG and it might tell you things to avoid (which are valauble for you considering that you are making the CRAPPIEST MMORPG, when it says "Make sure not to" cross out the "not" and program away.
Offline ZaBlanc

Senior Newbie





« Reply #2 - Posted 2005-04-05 00:09:35 »

So what you're saying is to send date once every minute, do *everything* on the client, and pass on MMORPG or networking books? :-)

Seriously...in making the CRAPPIEST MMORPG ever, I'm a newbie.  I've spent the last week swimming ideas in my ahead about how to handle basic player movement, sync'ed clocks, and just how much will my server be able to handle?

I'm thinking of implementing turn-based walking just to make things easy...and cement my game as the crappiest ever forever.  But, then, I do want people to play it. :-)

Anyone can recomment an MMORPG book specifically?  I'll check Amazon now I guess...

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #3 - Posted 2005-04-05 09:12:36 »

Quote

Anyone can recomment an MMORPG book specifically?  I'll check Amazon now I guess...



There aren't any. The neartest you can get is Charles River Media's "MMOG Gems" books (1 is out, 2 probably is too, or is about to be published, becuase they solicited me for it about a year ago).

malloc will be first against the wall when the revolution comes...
Offline monkeyget

Senior Newbie





« Reply #4 - Posted 2005-04-05 19:27:23 »

"CRAPPIEST MMORPG". I like your quest  Smiley . Don't stop till you reach that wonderful goal.
Offline ZaBlanc

Senior Newbie





« Reply #5 - Posted 2005-04-05 23:58:42 »

My MMORPG will allow 2 simultaneous clients to connect at once!

OK, well, I hashed out an algorithm for handling input today.  I will just keep my eyes out for any literature I can find on the topic.  I'm just glad the demands of my system don't include the words "real" and "time" in it.

:-)
Offline Jeff

JGO Coder




Got any cats?


« Reply #6 - Posted 2005-04-17 05:32:38 »

(1) Sure, web serves handle hundreds of conenctiosn at once. Written in Java.  The big issue isn't handlong conenctions.  Write good NIO based socket code and decent thread pooling and this is more ro less a no-brainer.  

The issue you are REALLY getting into when you start talking about "rooms" is communciation scalability. Its not the linear "100s of connections" that the issue, its if everyone has to talk to everyone else-- now you've got N-squared data paths and n-squared (ie 200x200 == 40000) potential packets of data flying around.

Rooms date back to MUDs, which were all on one server but still had to sovle this problem.  Its a divide-and-conquor strategy.  

I gave a whole talk on this at the last Java One, including the architectures typical today in on-line games.  I can try to dig up the slides for you though Im not sure how much help they will be without a lopt of text that walks you through the "talking" section.

I'll see what I can dig up though.





Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!

http://wiki.java.net/bin/view/Games/JeffFAQ
Offline ZaBlanc

Senior Newbie





« Reply #7 - Posted 2005-07-20 19:37:56 »

As opposed to some other MMOG posts, I've actually gone forward with this project as promised.  :-) Thought I'd give you all an update as a nod to the help provided.

Right now...after tons of design, thought, and not a lot of free time to get it done that quickly...I have a working system that allows users to log in (a random name is assigned, no authorization), move around a screen, and that movement is seen on all the other clients' screens.

Pretty simple, but exciting if it's your first ever implementation of that kinda functionality. :-)  I'm not using any libraries except NIO and Log4J to accomplish it all.  I studied under Dave Brackeen's book to figure out the graphcis and such.

To accomplishment the movement on this simple, Utima 3-esque type world, I've used a simple concept.  It works like this:

* Report all stoppages and single-vector movements to the server.  With each command, the current X/Y of the player is passed.

* The client doesn't process any movements of the other players for 1 second.

With this system, the data is kept to a bare minimum, and the movement is smooth because I don't have to worry about over-corrections...that's what the 1-second is.  Since the game doesn't involve on-screen interaction between characters (fighting, etc.), it doesn't need to be absolutely real-time.

I'm pretty excited by it all.  I'm moving on to "rooms" and optimizations next.  I am using Tile Studio to do my screen layouts, very cool tool! (Much better than Mappy!)
Offline woogley
« Reply #8 - Posted 2005-07-20 21:38:40 »

as far as books go, David Brackeen's "Developing Games in Java" does a great job in explaining the game programming concept, and has an entire chapter on networking (client/server) using NIO. It is very psosible to handle 100s of clients at once.

Also the book teaches you how to write a 3D engine from scratch.. which isn't particuarly useful in a polished, complete game since hardware-based engines are used 99% of the time, but it helps to understand the inner workings of a 3D engine. I definitely recommend this book if you already know some Java but want a boost in the game programming area.
Offline Jeff

JGO Coder




Got any cats?


« Reply #9 - Posted 2005-07-23 04:25:03 »

Hey!  Congrats!

Your on your way!

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!

http://wiki.java.net/bin/view/Games/JeffFAQ
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Dwinin (19 views)
2014-09-12 09:08:26

Norakomi (54 views)
2014-09-10 13:57:51

TehJavaDev (63 views)
2014-09-10 06:39:09

Tekkerue (31 views)
2014-09-09 02:24:56

mitcheeb (53 views)
2014-09-08 06:06:29

BurntPizza (37 views)
2014-09-07 01:13:42

Longarmx (23 views)
2014-09-07 01:12:14

Longarmx (27 views)
2014-09-07 01:11:22

Longarmx (27 views)
2014-09-07 01:10:19

mitcheeb (35 views)
2014-09-04 23:08:59
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!