Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (576)
games submitted by our members
Games in WIP (498)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1] 2
  ignore  |  Print  
  Developing Java Gameservers  (Read 5389 times)
0 Members and 1 Guest are viewing this topic.
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Posted 2004-04-04 16:45:37 »

As I've mentioned a few times before, over the last year I've been putting together notes for a book on developing java gameservers.

If I'm to find someone to publish the book, one of the things they need is evidence of what people want from the book, and what kinds of people would buy it (so they can check it fits with the audience they normally aim their books at, and can work out how they are going to market it).

If you're interested in seeing this book get published (because you'd use it), you can help by answering the poll questions. If you'd be willing to give me some additional information (e.g. demographic data on things like your general experience with java, why you write games, why you'd find such a book useful etc) please contact me on ceo at grexengine.com - just to avoid clogging up the forum with lots of similar posts. None of your personal details will be kept, I just want statistics e.g. "80% of people have less than 2 years commercial java experience" and if I get enough responses I'll post a summary of the data.

If you have ANY things you'd like to see in the book that are not included above, just post and I'll add them as options!

Thanks!

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

JGO Knight


Medals: 7
Projects: 1


Current project release date: sometime in 3003


« Reply #1 - Posted 2004-04-04 17:48:47 »

I personnaly can't wait for the book Smiley

As someone who writes games for fun (but who does by books to feed my addiction Smiley), i'm interested in all but the business side of it Smiley. Especially interested in NIO, partly because my special interest is in networks, and partly because I find blah3's documentation on NIO brillimerent Smiley. If the rest of the book is as good then it's one for my shelf asap.

Cheers

Endolf

Offline Herkules

Senior Member




Friendly fire isn't friendly!


« Reply #2 - Posted 2004-04-04 18:45:13 »

A classification of game server types could be useful.

I often have the impression that talking about MMOG automatically implies gametypes like adventures, RPG or RTS. Jeffs new stuff again seems to go to that direction.

But there are other aspects like the more dynamic one necessary for the free simulation stuff, imitating systems like DIS or HLA. For games like Warbirds.

HARDCODE    --     DRTS/FlyingGuns/JPilot/JXInput  --    skype me: joerg.plewe
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Jeff

JGO Coder




Got any cats?


« Reply #3 - Posted 2004-04-04 22:27:07 »

Quote
A classification of game server types could be useful.

I often have the impression that talking about MMOG automatically implies gametypes like adventures, RPG or RTS. Jeffs new stuff again seems to go to that direction.


Actually not at all. Unline many oher systems otu there it is NOTa  game engine but merely an execution environment.  It is very purpsoefully game design neutral.

Any simulation that needs the proeprties of persistance, scalability and reliability can benefit from the logic layer.  Even a P2P game that just needs to do organized communciation can benefit by going thorugh the comm
layer.

Its just the easiest and msot complete examples to explain are typically the RPGs  Wink


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 blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #4 - Posted 2004-04-05 08:54:43 »

For those that voted for it, what do you understand by "Game Server Architectures"?

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

JGO Kernel


Medals: 85
Projects: 25


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #5 - Posted 2004-04-05 09:27:49 »

For me, the next step up from object design. A discussion of the different places that the module boundaries could be drawn.

E.g.
a) Whats a good way to split the code out?
b) Single thread vs Threading Pooling vs Thread per client.
c) Handling input (Polling, Event Based)
d) Client <-> Server synchronisation considering
e) Maybe even the dreaded TCP/UDP/Mixture/Other protocol debate

Maybe some case studies of certain types of games and there respective suitable architectures (Tradition RPG, Flight based, stats based).

Kev

Offline endolf

JGO Knight


Medals: 7
Projects: 1


Current project release date: sometime in 3003


« Reply #6 - Posted 2004-04-05 09:38:36 »

Hi
 I read it the same was as kev pretty much

HTH

Endolf

Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #7 - Posted 2004-04-05 11:08:46 »

Quote
Hi
 I read it the same was as kev pretty much


Great; that's the same definition I'd been working to Smiley. But I realised that there are other quite different interpretations - like focussing exclusively on low-level aspects, or focussing exclusively on particular genres, e.g.:

"For an MMORPG, you do *this*. For an RTS, you do *that*. For an FPS, you do *something else*".

...which is almost suicidal for an author, given how meaningless such boundaries are in practical, technical terms.

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

JGO Coder


Medals: 1


http://t-machine.org


« Reply #8 - Posted 2004-04-05 11:10:25 »

Quote

Maybe some case studies of certain types of games and there respective suitable architectures (Tradition RPG, Flight based, stats based).

Kev


Just to be clear: in the context of a chapter which has already concentrated on the other bits Kev outlined, a discussion of how those apply to particular genres works well: they become illustrative examples, instead of proscriptive rules (which is what I was referring to in my previous post).

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

Junior Member




Hola, Paco.


« Reply #9 - Posted 2004-04-14 18:48:21 »

As someone who's new to game development in general, I would say that every one of the items in the poll would seem important to treat in a Java game development book.  The game architecture stuff I've had to mostly figure out on my own by looking (from the player's perspective) at how other games work and then trying to deduce how that would work.  Networking protocol issues are important too, both for in-game performance as well as for reducing bandwidth costs if you run a game server.  I imagine that NIO would be an important component of that though I've not used NIO yet.  So anyway, yeah, sounds like an outstanding book.  If you decide to put parts of it out for public comment and feedback I'd be very glad to read it and help out in that respect.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline javawillie

Junior Member




Hola, Paco.


« Reply #10 - Posted 2004-04-14 18:53:26 »

p.s. At least some of us are interested in game development for profit.  (I know I am.)  So even though the business model item isn't strongly represented, for some such as myself it would be great to have.
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #11 - Posted 2004-04-14 20:25:42 »

Quote
p.s. At least some of us are interested in game development for profit.  (I know I am.)  So even though the business model item isn't strongly represented, for some such as myself it would be great to have.


Thanks. All feedback at this stage is really helpful. I'll probably take the final results of the poll in about 2 weeks time, when I put together the full pitch for publishers. I think it's now pretty obvious that the demand exists and what things people are looking for Smiley.

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

Senior Member




Giving Java a second chance after ludumdare fiasco


« Reply #12 - Posted 2004-04-23 23:48:40 »

I'm a bit late on this one, but I would be very interest in scripting languages for a game server.  I assume all game logic and events would originate at the server so basically the server is where most of your actual game play would be handled.  I'd also prefer something/language other than xml.
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #13 - Posted 2004-04-24 00:47:51 »

Quote
I'm a bit late on this one, but I would be very interest in scripting languages for a game server.  I assume all game logic and events would originate at the server so basically the server is where most of your actual game play would be


EDIT: it's dependent on the architecture, but yes it's often the case.

The chapter starts IIRC explaining how and why over time the majority of your dev time is spent on game-logic, which implies that this is where you should be most careful to save yourself time and difficulties.

Quote

handled.  I'd also prefer something/language other than xml.


Thanks for the info.

Rest assured, I will be assuming XML (by which I assume you mean XML + Xpath + XSLT) is not a viable scripting language. IIRC I was planning to cover:
- Jython
- beanshell
- java (since so many people try it), and exotic stuff like using multiple JVM's at once
+ a few others, briefly

However, until I get a working PC and all my files back, I can't check Sad and I can't remember all that well.

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

JGO Coder


Medals: 1


http://t-machine.org


« Reply #14 - Posted 2004-04-24 00:49:51 »

Frankly, I'm a bit surprised how many people want to know about protocol design & impl; I'd assumed most people these days used 3rd party solutions rather than roll-their-own.

Any comments on this? Are people more interested perhaps in the impl side (which includes implementing famous standard protos) or in the design side (which is more interesting and exposes various important high-level design issues in your game)?

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

Junior Member




Hola, Paco.


« Reply #15 - Posted 2004-04-25 01:06:08 »

For my own part, I'm interested in protocol design and implementation because I haven't yet taken the time to look at existing third-party solutions.  (We're talking application-level protocols, right?)
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #16 - Posted 2004-04-25 11:19:18 »

Quote
For my own part, I'm interested in protocol design and implementation because I haven't yet taken the time to look at existing third-party solutions.  (We're talking application-level protocols, right?)


The plan was to cover both wire-protocols and app-protocols, since more often than not they are merged into one (inextricably linked) protocol, despite what the OSI 7-layer model might suggest.

I was also intending to cover some of the most common app protocols, and go into some detail on how you can re-use them in novel ways, and get the benefit of all the existing tools and clients/servers that can help you avoid spending months just debugging your own protocol. One particularly obvious example is HTTP, which can be put to lots of interesting uses without actually breaking the protocol, or twisting it much. It may seem strange to think of using HTTP as a low-level protocol for a game, but it can save a lot of money/time.

Perhaps I should have asked whether the protocol interest people have is more towards wire prots or app prots? (or both, if you're not sure of the difference Wink)

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

Junior Member




Hola, Paco.


« Reply #17 - Posted 2004-04-30 08:14:32 »

Yeah, I was thinking that it would be pretty straightforward to use HTTP for communicating with a login server (log into server, get announcements, terms of use, list of lobbies, whatever) because those operations are all client-initiated request/response, and the model for doing such things over HTTP is pretty well-defined.  (Game client can accept cookies, have a servlet on the server, can use HTTPS to hide password if so desired, etc.)  I think talking about that a little could be useful.

I have very little experience with game development, so pardon me if this is amusingly noobish (it isn't intended to be), but would anybody really want to implement a wire-level protocol?  (You mean on top of IP, right?  I guess it has to be on top of IP if you want to support Internet games.)  Aren't TCP and UDP good enough?

Willie
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #18 - Posted 2004-04-30 08:30:46 »

Quote

Aren't TCP and UDP good enough?


See the sticky thread. Neither is good enough for most online games, although you can often "just about get away with" one or the other. What gamers want is something that lies exactly halfway between both, hence the proliferation of protocols that are UDP with a few extra things layered on top. In C/C++ there's no need to roll your own, you can just get 3rd party (free) libs for it, but it's not so easy in java.

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

JGO Coder


Medals: 1


http://t-machine.org


« Reply #19 - Posted 2004-07-13 15:53:11 »

*UPDATE*

Submitted proposal to publishers, had some good responses, and it looks like one of them might be about to pick it up.

If you have any more requests, comments, etc, then now would be the time to get in touch! Wink

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

Senior Member




AFK


« Reply #20 - Posted 2004-07-27 12:48:45 »

all i can hope for is you dont write a book that just  
flashes over things without the in depth detail these  
things tend to need. please dont make it a 'starters  
guide' to network programing!  
 
I'd go with what Kev has listed- sounds great. but start
neat and go hard. it would also be cool to have info on
implementing clustering, load balancing along with
database managing for mmpog servers. love to get your
insite on that jazz Smiley

where do i pre order?
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #21 - Posted 2004-07-27 13:05:13 »

Quote
all i can hope for is you dont write a book that just  
flashes over things without the in depth detail


Me too. I assume the reader is already a competent or intermediate or expert java programmer - no way I'm writing 5 chapters on "OOP" and "what is a class" Wink.

I also assume they are developing a serious game, or would like to know how to - at least you will probably try to develop one eventually. Goes into details of things like how to design secure servers, which would be left out of any beginner/introductory book.

FYI I'm currently estimating 300-400 pages, and will have a complete NIO-based network game written through the book, probably via "next part of the game" chapters interleaved with the main content chapters, so you can easily skip the game, or concentrate on it, according to whim. Then again, it might turn out very differently Smiley so no promises.

PS publishers want precise page counts, but I'm really suspicious of such estimates. I'd much rather say "it'll be at least 300, and no more than 600" but they want a ten page range Sad.

Quote

it would also be cool to have info on
implementing clustering, load balancing along with
database managing for mmpog servers.


That would be a separate book. Trust me, if I put it all in one book it would be too heavy to lift Wink. i.e. somewhere around 1000 pages and too enormous for anyone to be brave enough to read Smiley.

Also have to wait for some patent stuff to run it's course before I knew what I could and could not include re: MMOG servers.

Quote

where do i pre order?


Words to put a smile on the face of any publisher Smiley.

Haven't signed the contract yet - still trying to sort out my dead PC and get back to normal with work etc - although expect to imminently. I'm aiming to have the book completed in around 6 months, and in stores 1-2 months later.

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

Senior Member




AFK


« Reply #22 - Posted 2004-07-27 13:31:58 »

well 1000 pages is cool with me- i have one of them
kids pull trollys around here someplace Smiley if it saves me
a few years on running around like a headless chicken
i up for reading it  Grin

i've done a number of books dude- little tip for u:
say the page count is 600- u can always add more of
that needed source code examples we all lover to see.
and screen shots of server console look so cool- with
comments under them saying "see it works"! Smiley

main problem i have found over the years is that publishers
tend to panic that the contence of the book maybe wrong
and when u go hardcore its harder to get someone to
check it over and edit it. thats when the fun starts Smiley

it would be a top book and im sure it will go down very
well- shit put me down for 2 copys!
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #23 - Posted 2004-07-27 13:35:48 »

Quote

i've done a number of books dude- little tip for u:
say the page count is 600- u can always add more of


Smiley but if I only ended up with 350, then that would be 250 pages of source code examples! And if you're providing a CD anyway...

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

JGO Knight


Medals: 7
Projects: 1


Current project release date: sometime in 3003


« Reply #24 - Posted 2004-07-27 13:44:44 »

You forget blah3, that we have seen your posts on here, I think that you reaching 600 pages will be no problems Smiley

Endolf

/me waits impatiently Smiley

Offline aNt

Senior Member




AFK


« Reply #25 - Posted 2004-07-27 13:47:27 »

HAHAHAHAHA! CLASSIC...
Offline Chris Duesing

Senior Newbie





« Reply #26 - Posted 2004-07-28 22:23:42 »

Quote
Are people more interested perhaps in the impl side (which includes implementing famous standard protos) or in the design side (which is more interesting and exposes various important high-level design issues in your game)?


Both, perhaps break the book into two sections, the first covering architecture and design and the second showing some examples of the tricker coding aspects. Thats just my opinion of course.  Wink

Also, I don't know if this is covered in your categories, but I am currently working through designs for scalability that include instancing, distributing data(protocols), data integrity, datastore design (#dbs? in mem obj caching?), etc. All of the issues you face when you go from MUD to MMO on the server side, ie out of one box/jvm and into many... There just are not a lot of references for this kind of information, especially as it pertains to games. The people who are working through it (you, Sun, etc.) arent really sharing the details of their solutions, understandably. Perhaps you want to break the trend  Grin If you do you are welcome to my $49.99.

Chris
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #27 - Posted 2004-07-29 02:08:56 »

Quote

All of the issues you face when you go from MUD to MMO on the server side, ie out of one box/jvm and into many...


As mentioned above, that's a separate book in it's own right. For a start, it needs to cover quite a lot of history to justify why the more unusual things are done later on (otherwise it won't make sense to anyone except the people who've written and maintained 500+ player MUDs before Sad).

Secondly, most of the advanced stuff (I say advanced not necessarily because it's difficult - although it often is, very much so - but because it's specialised and not really used outside a few niche industries) is pretty complex/tricky and takes some serious explaining. Unless you're already a specialist, in which case you probably don't need the book Smiley. For reference, the main book on TP systems (transaction processing) weighs in at 3-4 inches - and that's just one small aspect of MMOG development! Granted, it was written for a specialist audience, and I could extract the most relevant data for games devs into a mere 50 pages, but that's a taster of what an overarching MMOG book needs to do.

Quote

There just are not a lot of references for this kind of information, especially as it pertains to games.


The main problem is that there are very few people who actually know what they're doing! My opinions on those that do and don't are either well known or easy to infer from my various articles and postings, but as a rough guide I estimate approx 25% of those making a living working in MMOG's still don't really know what they're doing. And if you include all those who are working on MMOG's that aren't yet published, that goes up to more like 50%. And if you include all the wannabe's, like most of the open-source engines, you probably reach 60% ignorance. Many people have merely tried to jump on the gravy-train, often convincing themselves that their enthusiasm and knowledge of other games will make up for their ignorance. Unfortunately, it usually doesn't Sad.

Last time we evaluated it, we reckoned that about 40%-50% of the companies offering / developing MMOG middleware didn't really know what they were doing either. Doesn't mean they weren't smart people doing good work - it's just that there were several "solutions looking for a problem" and trying to convince themselves and the world that the problem in question was MMOG's. Optimistically, all those that are left as serious contenders have now worked out what they're doing, and have good strategies in place. But I'd still be very wary about picking a middleware provider...It's not helped by the fact that no-one has a big-name game to point to using their engine Sad.

Quote

The people who are working through it (you, Sun, etc.) arent really sharing the details of their solutions, understandably. Perhaps you want to break the trend  Grin If you do you are welcome to my $49.99.


Probably 12 months after this book I'll go for it.

Then again, from what I heard, Jeff was planning to write a book on this himself - so maybe you should pester him Wink. I asked him about it to see if we could collaborate or at least co-ordinate - discuss ideas etc (it seemed we were probably going to be writing quite dissimilar books anyway), but never got a response back.

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

JGO Coder


Medals: 1


http://t-machine.org


« Reply #28 - Posted 2004-08-12 09:44:02 »

Some contentious questions:

 - How would you feel about an entire chapter devoted to re-inventing TCP using UDP? The purpose being to provide a worked example of a TCP replacement where the two features which game devs hate become optional.  This would be:
    - an object lesson in how hard this is to do
    - a detailed explanation of why you need close to 22 states rather than the 4 or 5 that many people assume they can get away with
    - the basis for everyone to make their own replacement wihtout having to do most of the work from scratch; it would act as a common, highly-documented, base for any game devs to make a java equivalent to eNet, RakNet, etc (all of which are still C++ only).

- ...which could be followed by a chapter on how to make a "better than TCP TCP". e.g.
    - Implementing TCP Vegas (which IIRC no OS does by default at the moment, but it always provides better performance than TCP)

- What about a chapter on the client aspects of game development that  directly affect gameserver development? e.g.
    - How the choice of input events is critical to the success of the c/s protocol (e.g. difference between registering events as "player is moving...player is moving...player is moving" and "player changed direction and will carry on moving until I tell you he stopped; I will not send any more messages until then")
    - Interfacing a java server with the common C++ client-side gaming network libs (eNet and RakNet for example)

- How valuable would it be to build several networked games during the book, rather than just one? The only game I was intending to do was a multiplayer racing game (which conveniently uses a lot of the theory of protocol design etc, whilst being simple to build up iteratively into a full game). But perhaps it's worth also doing a completely different game, e.g. a peer-to-peer game that uses a DOA (RMI or Herk's HQ or CORBA or etc) - although in most cases that's undesirable it tends to be quicker to get your basic game going (because the DOA acts as a partial 3rd party network layer)?
    - ...and what would you want to see in the other game(s)?
    - NB: Only the first game would be built completely in the book; for any other games the book would only have snippets covering the use of features unique to that game; no time to duplicate all the code.

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

Junior Member




Need to write more games


« Reply #29 - Posted 2004-08-12 10:33:33 »

re multiple examples: personally just from an interest point of view it would be good to see examples of how different genre's of games require different network stratagies.  Problem I see is that it might end up with a few examples that are pretty superficial or one that covers the topic in more depth.   Ok i just re-read and saw your NB Smiley

Would you really be able to cover re-writing tcp in just one chapter? and would the conclusion to the chapter be 'don't do it'?

Don't really know much about the rest though so I can't comment.  Sorry.

<silly question alert>DOA? the acronym esacpes me at the moment </silly question alert>
Dan.

edit typo - theres probably more...
Pages: [1] 2
  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.

xsi3rr4x (18 views)
2014-04-15 18:08:23

BurntPizza (15 views)
2014-04-15 03:46:01

UprightPath (28 views)
2014-04-14 17:39:50

UprightPath (13 views)
2014-04-14 17:35:47

Porlus (29 views)
2014-04-14 15:48:38

tom_mai78101 (54 views)
2014-04-10 04:04:31

BurntPizza (111 views)
2014-04-08 23:06:04

tom_mai78101 (212 views)
2014-04-05 13:34:39

trollwarrior1 (181 views)
2014-04-04 12:06:45

CJLetsGame (187 views)
2014-04-01 02:16:10
List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:05:20
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!