• Building a 2D MMO game in Java. Which libraries could be helpful?
    13 replies, posted
  • Hey everyone, My partner and I have decided to build our online game in Java. The reasons being that my partner knows it, I am learning it, we want it to be platform agnostic, and we are huge Minecraft fans. (If this is an awful awful decision for an MMO, we'd really appreciate the insight.) Anyway, we were wondering what could be helpful packages to base our game on considering: * There needs to be some kind of login system. * We need a server-side database with user information (in-game character details that is, not payment details or anything). * It'll be fully 2D (no crazy graphics or physics of any kind really.) Most of it is text based, with the graphical interface stuff happening on the client side. * There'll be constant calls and checks with a main server (or servers? It's our first game, so I'm not sure.) We'd really like these calls to be secure, and are not in any way experts on the subject. Sorry if some of these things sound dumb. I'm not that much of a coder, and my past experience has been in web development so I'm not sure I'm using the correct terms. I know this may be advanced, but my partner is much more advanced than I am, and we are willing to go through painful trial and error. Thanks! :D
  • Making a MMO as your first programming project ever is plain impossible. I recommend you learn basics of Java before you even try to make any kind of game.
  • Avatar of BlkDucky
  • MMO is stretching it, yeah. Aim for something smaller. If it absolutely must be a multiplayer RPG (or whatever), just go for a 2 player version or something.
  • Thanks guys. I understand how hard it is, and we're planning on creating it as a solid single player game before converting it into an MMO. We'd just like to have the appropriate architecture in place so we won't have to go about rebuilding everything. It isn't my first programming project (though it will be at this scale). I've built a system in Rails, a bunch of projects in Processing (which is based on Java) and Arduino, jQuery, etc. Not all exactly related, but I have a firmer grasp on a lot of the concepts than most beginners. I really appreciate your feedback, but we're absolutely set on this (our walls have been full of post-its for months) so I'm thinking this is going to have to be my practice and if it comes out awful, we'll start over having learned our lessons both conceptually and technically. Seeing as I'm this stubborn and bullheaded, I'd love if you guys could ignore my lack of credentials and help me out as though I could actually accomplish this (here's hoping, huh? :)
  • Avatar of blaze_r20
  • Building an MMO, shy of being a major studio, is destined to fail. Games, even crappy single player games, are expensive to build - not financially, but you need a lot of sounds, background music, images, and just a lot of coding. Building a game to be single player, and then transforming it to be multiplayer, unless it's the most generic menu based RPG in the world, is also a terrible idea. You can't just "make something multiplayer", it's something that needs to be designed from the ground up. MMOs (and large scale multiplayer games in general) also require there to be a server. That's an entire software project in itself, not to mention the costs associated with getting a dedicated server, making it stable, deploying your software, maintaining databases, etc. How are you going to handle downtime? You're also not going to find what you need in cute little packages you can string together. There is no magical "login library". You're going to need to write a custom solution. Processing and Rails and JQuery are definitely not Java. Java is a hardcore object oriented language. While Rails is OO, and JQuery can be OO, it's just not the same scale. You're talking at least 4k lines of coding. At least 30-50 images. At least 3 background music loops, and a dozen sound effects. Don't waste your time trying to build an MMO. There's a reason that every MMO which has ever been successful was built by a Studio. Not a partnership, not a small business, a studio. Go for something easier. Make a nice single player game. It's a lot harder then you think. Hell, make a basic, polished, self updating utility application that's stable. That in itself is at least a solid week.
  • Avatar of neos300
  • [QUOTE=blaze_r20;34134124]Building an MMO, shy of being a major studio, is destined to fail. Games, even crappy single player games, are expensive to build - not financially, but you need a lot of sounds, background music, images, and just a lot of coding. Building a game to be single player, and then transforming it to be multiplayer, unless it's the most generic menu based RPG in the world, is also a terrible idea. You can't just "make something multiplayer", it's something that needs to be designed from the ground up. MMOs (and large scale multiplayer games in general) also require there to be a server. That's an entire software project in itself, not to mention the costs associated with getting a dedicated server, making it stable, deploying your software, maintaining databases, etc. How are you going to handle downtime? You're also not going to find what you need in cute little packages you can string together. There is no magical "login library". You're going to need to write a custom solution. Processing and Rails and JQuery are definitely not Java. Java is a hardcore object oriented language. While Rails is OO, and JQuery can be OO, it's just not the same scale. You're talking at least 4k lines of coding. At least 30-50 images. At least 3 background music loops, and a dozen sound effects. Don't waste your time trying to build an MMO. There's a reason that every MMO which has ever been successful was built by a Studio. Not a partnership, not a small business, a studio. Go for something easier. Make a nice single player game. It's a lot harder then you think. Hell, make a basic, polished, self updating utility application that's stable. That in itself is at least a solid week.[/QUOTE] 4K lines? Yeah, if it's a text based mmo that does almost nothing. Maybe you meant 4 million? Also there is no ballpark way to estimate the number of images and sound effects needed, there are great games that use 1 or 2 images to make up an art style.
  • Avatar of robmaister12
  • 4k is nothing when it comes to games... just the base graphics code and network code for a game I'm working on with friends is ~6500 lines.
  • Thanks again guys. We don't mind the time and lines of code it'll take or the costs that'll go into running a dedicated server. We're not building this for financial success, we're building it to make a game we really want to make. We're both seasoned designers, and my partner is a musician and can also handle the sound effect design. We at least have the advantage of not needing to outsource anything. I honestly get that building an MMO is a crazy, impossible thing for a partnership. We're talking about a fully 2D game, though, with minimal data being sent between the server and the client (there isn't even a player position on a map. There isn't even a map. It's something in the region of Uplink if you've ever played it.) But I respect your experience, so let's say that as practice, what we want to do is build this game as a single player experience against a computer and try and build it from scratch once we've learned our lessons (this is really what we're probably going to do). Which graphics and game libraries would you recommend for such an undertaking? Thanks again :)
  • There are a slight few MMOs that aren't studio-run that manage to have a solid playerbase. Keep in mind that an MMO isn't necessarily WoW or Runescape sized. Check out [url]http://www.realmofthemadgod.com/[/url] for an example of an indie MMO
  • You can't really judge things by number of lines of code, though. Those big studios have the manpower to plow through problems by writing more code, but many can be solved just as easily with some creative design. But, yeah, starting with an MMO is generally a bad idea. I'll list a few of the pitfalls I can see: [b]Players[/b] - MMOs are built around people. Without a large playerbase, there is no game. The small independent dev generally cannot attract a sufficient number of players unless they have some sort of personal marketing hype machine or have won the favor of the fickle gods of internet popularity. [b]Content[/b] - MMOs are generally large-scale projects that demand a lot of talented artists and designers to construct a vast and intricate world. Possible workarounds: 1. [b]Procedural Synthesis[/b] - Generate the world randomly, using simple agorithms. This alone will never make an interesting game, and I recommend it be combined with the solution below it. Minecraft, for example, uses both techniques, generating a sort of 'canvas' for players to build whatever they can think of. 2. [b]Crowd-sourcing[/b] - Let the players make the game's content, as part of the game. See Second-Life, Minecraft, Wurm, et al. This, however, all goes back to the [i]players[/i] issue above. If you need players to make their own game, then the players issue becomes doubly important. [b]Technology[/b] - This is a big one. You can't forget the 'massive' in 'massively multiplayer'. It takes powerful hardware, smart software design, and a fat, reliable internet connection to make it all work. This requires [i]experience[/i] and money. Possible workarounds: 1. [b]Instancing[/b] - The Guild Wars approach. Build the game like it's a regular multiplayer game, rather than a true open-world MMO. The server doesn't need to deal with all the complexity such a game would have, and the load can be easily distributed to whatever hardware is available.
  • I think that if its fun, your game will get popular. Minecraft is a good example. Notch wasn't that famous before minecraft and look at him now
  • Avatar of Electroholic
  • I'm currently developing a MMO that has been in development for ~3 years [B]on and off[/B], and we barely have a login screen, and a basic engine you can jump around and stuff in. Only now are we just adding essential things like inventories and shit. It takes a LOT of work to make anything half decent. I went through about 5 or 6 "mmos" before this project, each one getting slightly better and better as I developed experience and ideas. [B]After [/B] I was fluent in C++, I began work on my current mmo project. I'm using the work MMO loosely, because as other have mentioned, no indie mmo can match a mmo developed by a studio. I'm sure my "mmo" will be full of security issues even though I work my ass off to try and make it as secure as possible. Not to mention the server can't have any bugs that crash the whole server and takes it offline for every player. And no matter how powerful I make the server, it probably wont be able to handle the same amount of players that a professional MMO can handle. Nonetheless, it's still a fun project and I would be happy with maybe 50 people online at once.
  • Avatar of Asgard
  • [QUOTE=thisBrad;34142269] Nonetheless, it's still a fun project and I would be happy with maybe 50 people online at once.[/QUOTE] I'll play it, for sure.