2 questions, coding MMORPG in Java

Hello! First post.

  1. First of all I wanna ask you guys (I am newb, beware) if would you code a game in Java without using any game engine or thats absolutely stupid idea.

  2. Secondly, what do you think about JavaFX for gaming? I know theres libgdx but thats third party.

  3. Do you think its possible to create single player game and then change it for MMORPG? Or I will need to start from a scratch while creating MMORPG? Which way is less troublesome?

Thank you!

  1. Yes, but with lots of things you’ll just be re-inventing the wheel, which isn’t necessarily a bad thing if you’re trying to learn how stuff works.

  2. Not sure, never used JavaFX.

  3. By the time you have the experience to create an MMORPG, that single player game you made first wont cut it. You will probably want to start from scratch. I say this because by the time you get to where you need to be to make an MMORPG, your single player game code will look horrible to you anyway, and you will want to code better.

Thanks a lot buddy! means a lot. Do you think its hard to code MMORPG? right now I have a game with enemy and player objects and thats it :expressionless:

Yes, it would be incredibly hard to program an MMORPG.

  1. It’s a silly question to begin with – why restrict yourself arbitrarily?

  2. Same as 1.

  3. Most likely not. Possibly. Definitely the other way round. Net code is hard and can’t simply be slapped on.

Also, as a tip, since you’re way out in the water swimming with sharks – why not try something a bit more tangible first – make 2d multiplayer game with HTML5 for example with the backend in NodeJS/Socket.IO – relativiely easy setup into networking with the tools to draw stuff on the screen.

1, 2. I don’t know

  1. Okay I see.

I coded in game maker when I was 17, it was easy but I had to stop because gamemaker is not something that employers wants, because its limited to games, etc. Im 22 now.

Well Ive chosen Java from all languages because its desired worldwide and because its cross-platform. In case my abilities will be big enough to get a job, It will be possible to do because employers like applications that can run on android, linux and windows at the same time.

So probably the answer to points 1 and 2 is that learning game engine doesnt help me to get a job (unless its a job in gaming company but these are rare,especially in my small european country).
But If I learn core and main java components that are used for everything (instead of learning an engine just for games) then I will successfully improve my skills that i make use of in job + maybe I will even code a game with them

Do not try to create a MMORPG.
Really.

If you want to build skills for finding development jobs, look into web application development, databases, J2EE, SQL and all that stuff

Why not? I wanted to create something simple like 2D mmorpg with up to 1k players

How do you plan to find a job by building a game? There are many things not right with this;

  1. If your goal is to get into the game industry then this is not the way to do it. It’s hard to get into the industry in the first place. No offense, but building a small MMORPG is not going to make you employable. You’re going to need a degree and know your math very well.

  2. If you want to get into a “regular” development position (like web development) then, again, this is not the way to do it. Spend your time actually working on projects/technology that your potential employers also work on/with. Why would a web development shop hire you if you don’t know how to build websites?

But don’t take this all the wrong way, you can absolutely become a professional game developer. You just need to do some research and figure out the proper way to learn and become employable. It can be a fun career, but there’s going to be a lot of stress, you’ll be paid less than you’re worth and it’s hard to get into. You just need to take a serious look at the job and figure out if it’s for you.

The hardest part of creating an MMO is getting people to play it.

  1. i s*ck at math,im a dropout, im not from uk nor usa. im from small european country that has no gaming industry or a very small one. and im NOT trying to get in gaming industry. but i like to learn java through making games. otherwise i have no motivation to learn. its what drives the disk in my cdrom

  2. I dont know about web development shops. I know theres desire for Java. Im gonna learn the most common things employers will want me to do. As I said, coding games is just to masterize the basics and get it rollin, and if I be successful with making a mmo on a side, then thats even better.

if 10 out of 100 players(total amount) will buy monthly subscription of premium account for 10 dollars/month then im verry happy with it. thats my aim and thats it.

thats not problem im v. good in internet marketing. my websites are daily visited by hundreds of NEW people and I was just doing it for a while. if there will be hundreds of NEW people visiting my website with game download then 70% of them might download it (or even more if its targeted traffic).

Thanks for all replies! :slight_smile:

Recommended reading: http://yourgameideaistoobig.com/

Start small. Start with Pong. Get that working before moving onto the next thing.

  1. Developing a game in Java without a third-party game engine like jMonkeyEngine or LibGDX (framework) and creating your own basic game engine is completely fine, but it depends on what you want to learn. Do you want to learn Java by making games, or learn how game engines work? If it’s the former, then I suggest you use an existing game engine/framework, like jMonkeyEngine (mainly for 3D games) and LibGDX (primarily for 2D games). If you’re a beginner, I say start with 2D. 3D introduces several complicated concepts and there’s a bit of linear algebra (vectors, matrices, etc.) that you need to be familiar with.

  2. JavaFX is mainly a GUI library. It’s not a game engine, which means there’d be a lot of stuff you’d have to do yourself (collision detection, etc.).

  3. When creating a multiplayer game, it’s usually easier to develop the game mechanics first and test it on singleplayer, then start learning some network programming so you can develop the multiplayer side of things.

However, even though it’s good to think big, an MMO is far too big for a beginner. In fact, a good MMO is too big for any single person, working alone. Even if you weren’t, based on what you’ve mentioned in your earlier posts, you’re new to the programming scene, so I think you should start with something relatively simple: a text-based game. After that you can try developing simple 2D games, like Pong, or something similar. Trust me, they sound simple to create, but when you start off it’s actually pretty challenging, but it strengthens your foundations.

Hi

Please don’t even try to create a MMORPG before having a huge experience in game programming and a good team (it’s not doable alone except for a proof of concept). If you start something too big, you’ll fail and it will probably discourage you.

If you do proceed, why i don’t recommend, then it helps to have a model. That is, you should copy a standard mmo.

If you want to have even a slim chance of getting this anywhere, you not only need an idea or a model like tariqbroadnax said, but you need every detail planned out; everything from gameplay to graphics to how your engine is built internally needs to be carefully thought out beforehand, otherwise your progress will at some point come to a violent grinding stop, with you doing refactoring and engine work all day with no time left for actual progress and burning construction sites everywhere.

Believe me, I’ve started a project this way. Not having a clear plan that you can execute step by step will fuck you in the back real good with something as big and functionality-rich as a MMO.

That you even have to ask about whether you should start it as a singleplayer game and then convert it to multiplayer or build it as a multiplayer game from the start tells me that you are not yet capable of bringing a project this big anywhere near a playable state, you lack the experience to plan this out beforehand and this will kill your project and your motivation at some point (as some here have said already).

[quote]something simple like 2D mmorpg with up to 1k players
[/quote]
Heh.

[quote]if 10 out of 100 players(total amount) will buy monthly subscription
[/quote]
Oh nononooo

[quote]70% of them might download it (or even more if its targeted traffic).
[/quote]
Pffffftt

Take all of your estimates and divide them by something between 100 and 1000 :smiley:

You better start with something simple, you have no idea what you’re getting into.
Or try building a MMO, it’ll be a good (and maybe painful) learning experience, idk.

And don’t let this discourage you, making games can be fun and nobody’s saying you shouldn’t do it. It’s just that, if all you did create yet were simple prototypes with some moving thingies on screen, that’s not the foundation on which you can realistically build an MMO. Especially if you still have a lot of game related technical stuff to learn (and you need lots of math, computer architecture and other technical knowledge to pull this off).

Just get going and do something, but don’t expect it to be overwhelming or something you can get hired for yet.

Despite what everyone has said, I don’t see a reason not to try, and good luck to you. It will be a very good learning experience whether it succeeds or not. My other advice would be to learn about Entity systems; they make writing complex games a lot easier, especially when there’s no clear final spec (which there never is).

1.- if you use a game engine will help you to create a game faster without know much about how things work internally, once u are decided to create a game using pure java you will learn how things works and how and most probably you will learn.
2.- javaFx for gaming is ok, if you want to create PC game, libgdx is to create the game for diferent platforms, but using JavaFx will help you to understand how java works and how games can be crated
3.- it is possible but is not recomented when you don’t know how to create games, after you have been created a game you have to learn about networks and protocols and after that read a lot of how to crate them, online game is far more difficult.

I think you should do this: Use straight java to create pong. That will give you practice with java and how it works. Then, create pong again using either JavaFx or LibGDX, whichever you prefer, so you can learn about that. Then, make a 2d platform type game with what you prefer, because if you didn’t like JavaFx, you can try LibGDX and you will have a better understanding of what it’s doing based off your previous awt/javafx/libgdx knowledge. Then, try your MMO.

Why it’s hard to make an MMORPG:

  1. MMO means multiplayer, multiplayer means networking. You will have to buy and manage servers, while writing complicated code to talk to them about what players are currently doing. You also need to worry about doing lag compensation for players with slow internet and of course hackers. Companies usually have entire departments with dozens of teams dedicated to managing servers and finding cheaters.
  2. RPGs usually have huge amounts of content. Companies spend lifetimes worth of man hours creating assets like swords, armor, towns, castles, dungeons; writing the code that makes them all work and writing the scripts that make storyline events happen. They also hire teams of writers and voice actors to create storylines and add depth.

But don’t let that discourage you. I recommend watching 2kliksphilip on youtube about his game making experiences. You will learn a lot of things about setting maintainable goals and the cost of not doing so.

Think about it this way: Notch spent years making the first versions of minecraft, which are nothing compared to the game that exist today.

Tl;dr
So, start small, start simple. When you start coding, you will constantly learn how to write better code. Once you have built up a set of skills, try joining a team of people. You will get things done much faster.