My high school class is making an MMORPG. I'm kinda the "lead programmer" of the students, and have been doing the most research. So far, from scratch, I have created a "Game Engine" that will connect to SQL servers and download character information (level, what items they are wearing, etc). The only problem is that it is all TUI.

The next step, and definitely the hardest for me, is the GUI.

I bought a book on it, but it's really complicated.

What steps should I take in creating my MMORPG? How do I create a "world" like in WoW? I have investigated TerraGen, but I don't know how I would make a "world" I create there actually appear in a game. How do I load 3DS files into Java, and how do Camera operations work? How will I be able to have an inventory menu open, and what about customizing graphics options for computers with slower video cards? I'm very confused on all of this, and would love ANY advice about making games. Feel free to email me, Trussell.Tyler@gmail.com, with any source code you may have or any advice.

There is one thing, however. I want to write my own game engine, not use a pre-made Java game engine.

I second that. Try making a single player game without 3D, first. Maybe only with a widget-based UI (no animations etc.). If you still have time after that, you can make a 2D graphical UI or add multi player (something like 4 to 10 players, not MMO). When you really manage to do that in less than a year you can start 3D... after another year (or more) you can then start redesigning and optimizing again to get to a MMO...

I still don't understand why there are so many people who want to make an MMORPG. A "simple" RPG is already far too much. You need cubic s-loads of content and some story to boot. Adding one 'M' for "multi player" makes that even harder and adding another 'M' for "massive" makes it downright ridiculous.

You need a lot of experience (in many fields) and lots of resources. Just thinking about it makes my head spin.

I won't repeat what evryone has said already, but what I want to ask is why you want to make this? I seriously doubt that any highschool teaches you the material needed for such a project and even more that they would expect you to submit such a project to be marked.

So if this project is only a hobby then why do you insist on not using an existing engine? You only write an engine when none exists or when the existing ones don't meet your needs. Unless this is going to be for showing off purposes, I would advise you to focus on the game instead. And remember, the engines available for java aren't drag n drop engines where you just drop the sprites and story and bang, you have a game. The engines only provide the underlying structure.

However if the focus is more on having a game and less on the language then you could even consider using a different tool altogether, like Game Maker.

I am determined to pursue this. Just because I am in highschool doesn't mean my programming skill isn't sufficient. Besides, I have all year with a class dedicated to only this. I went to a demo at a nearby college (California Statue University: Sacramento), and saw several students who made games using JOGL in 1 week. Their games didn't have a ton of content, but their graphics were awesome. Then we went to a competition against those same college students and destroyed them in problem solving.

If I can't find any help here, I'll look elsewhere. I figured that there would be people with experience in using JOGL to make games.

It's sad people don't tend to learn from other peoples mistakes... eh?

I can only hope you'll learn as much as possible from what you are about to experience in the upcoming year. You might learn a lot, bot you can not succeed. Realistic goals are the driving force behind projects, so you might want to set really specific goals, milestones you think are reachable, where you actually know how to reach them and when.

You might want to look elsewhere, looking for people that actually are supporting your ideas, but you might also wonder why you got so much warnings from us, it's not like we enjoy telling others to reduce their great plans a bit.

Hi, appreciate more people! Σ ♥ = ¾Learn how to award medals... and work your way up the social rankings!

Trussell, we're all cynical because we've all dreamed a dream and been disillusioned - but I don't think that makes the dream wrong!

Kevglass is right - go for it! In the worst case you'll get loads of experience, in the best case it'll work! What's to lose?I for one will help if I can, and I'm pretty sure that (despite all the unpleasant truths posted here) all of us will. Hey guys?

Look at these: Runescape and particularly Sherwood. Both work well and both were done by one person - you have a team...

It will be a lot of work though, do your research thoroughly, check all the forums but only ask questions of them when you've googled carefully first.

To answer your original question with a question; What 3D engines do Runescape and Sherwood use?

Trussell, we're all cynical because we've all dreamed a dream and been disillusioned - but I don't think that makes the dream wrong!

Kevglass is right - go for it! In the worst case you'll get loads of experience, in the best case it'll work! What's to lose?I for one will help if I can, and I'm pretty sure that (despite all the unpleasant truths posted here) all of us will. Hey guys?

Look at these: Runescape and particularly Sherwood. Both work well and both were done by one person - you have a team...

It will be a lot of work though, do your research thoroughly, check all the forums but only ask questions of them when you've googled carefully first.

To answer your original question with a question; What 3D engines do Runescape and Sherwood use?

We have made an outline of what we want to do. We're not being ridiculous, and we don't expect to have a full-fledge WoW clone done, either. But I have an entire year to do it with a team of highly skilled individuals, and a very highly skilled teacher.

However, I have no idea what engines Runescape or Sherwood use. Our teacher has chosen to teach the class in JOGL, so we'll have to use JOGL to write our own engine no matter what. It's a programming class, so using a pre-made engine is out of the question.

Making an mmorpg in java with almost no prior experience? Go for it.You're almost certainly not going to end up with a massive hit capable of competing with WoW, but you're going to have tons of fun, and you're going to learn more than you though you'd have to.

Just keep in mind that people have a reeeally good reason to advice you to start with something simpler.

The book uses Java3D and not JOGL, but I'm sure you'll be able to apply what he writes to JOGL. He loads 3DS models and TerraGen maps. I think there's some camera stuff as well and there's a section on networking in a 3d world.

What problems are you having with the GUI? I assume you dont want to use swing/awt but your own instead?

*) Never ever trust anything the client says. If the client says "I drop 60 gold coins here", double check that he indeed has 60 gold coins before dropping anything, and remove those 60 coins immediately without waiting for the client to say so. Having this as a base line for all development with really help reduce the amount of possible exploits.Pretend the client is going to end up being open sourced, and assume any code in there can and will be changed by anyone for any reason.This might seem like a bit overly advanced advice at this point, but if you don't do this from the start, you'll be kicking yourself in a year or two.

*) Decide what level of interaction the player should have with the world. Is the world static (players can't build new buildings, chop down trees, and so)? Is the game mostly indoors or outdoors?If it's mostly indoors with a static world, you can probably get away with a simple BSP type renderer (like quake uses), which gives really good performance.If it's outdoors, you might want to consider a plain heightmap. If you want long viewing distance on top of that, you're going to need some form of LOD rendering. This link is worth its weight in gold.For a dynamic world, you'll need to figure out a way to send world updates to players who log in or happen to be around when a change happens. Do you send these changes every time the player logs in, or do you store it in the client? If you store it, what happens when the player logs in from a different computer.

*) If you're going for heightmapped terrain, I suggest using World Machine to generate the base heightmaps, but keep in mind you're probably going to need an artist to tweak it quite a bit. It's a nice and simple way of getting a massive base terrain with plenty of (random) detal, though.

*) Figure out what the core focus of your game is. Pick just one for now, but keep in mind you might want to expand in the future. If it's questing, start by building a solid quest engine that makes it easy for artists and writers to add new quests and content, and get one up and running ASAP. If it's PVP, make sure it's balanced. Make a simple design first, then spend most development time just balancing it. If it's exploration, you're going to need a huge world, and a massive amount of content.

*) When adding something, make sure you ask yourself two questions: 1) Is this fun? If not, why is it needed? Can it be made fun? 2) Does this fit with the rest of the game?

The book uses Java3D and not JOGL, but I'm sure you'll be able to apply what he writes to JOGL. He loads 3DS models and TerraGen maps. I think there's some camera stuff as well and there's a section on networking in a 3d world.

What problems are you having with the GUI? I assume you dont want to use swing/awt but your own instead?

I'm just starting to comprehend JOGL, trying to read his source code and such. I'm fine with using AWT, I think he recommends AWT because there is some problem with Swing and JOGL compatibility??

Anyway, none of his programs run in full-screen, and I distinctly remember reading something about FSEM (Full-Screen Exclusive Mode) and I was wondering if I could get any advice on how to utilize that, and if it would run the same way as a normal GLCanvas.

Im actually working on something very similar to you. Although i am going to be working with 2D and later see if i can work with 2D/3D. I am also trying to find some info about FSEM and Swing, having some problems i made a topic about it hope someone can help =p

Im actually working on something very similar to you. Although i am going to be working with 2D and later see if i can work with 2D/3D. I am also trying to find some info about FSEM and Swing, having some problems i made a topic about it hope someone can help =p

GL with your Project man.

Thank you. Man, trying to get a handle on JOGL without a teacher is difficult, but I'm determined.

I want to start off by creating a full-screen window and loading a simple terrain into it (something made from TerraGen perhaps?). Anybody have any idea on how this could be accomplished?

What you really need to learn is OpenGL. JOGL is a wrapper around it. You should head over to NeHe(http://nehe.gamedev.net/) and do all the tutorials. There are a lot of good tutorials there. They are all in C, but at the end of each tutorial page there are links to ports of the tutorials in other languages. JOGL is one of the ports.

I think the nehe site does contain pre-jsr versions of the jogl code, that cannot be compiled with the newer releases. Please use these ports instead. It is also linked from the JOGL Demos Page

Thank you. I'm still having a hard time, is there a tutorial or documentation that explains all of the OpenGL functionality, so I can get an idea of what I am actually doing?

I don't understand what GLAutoDrawable is or what a context is or any of that. I've never done heavy graphics work before, even though I have 3 years of experience--I did mostly text-based stuff with only simple GUIs.

Thank you. I'm still having a hard time, is there a tutorial or documentation that explains all of the OpenGL functionality, so I can get an idea of what I am actually doing?

The red book is the definitive guide to OpenGL (although it only goes up to 1.1, it covers all the core functionality you need to get started). NeHe is widely regarded as being a bit rubbish and little more than a code dump of bad habits.

Okay. I'm going to try and gather all of my thoughts here, and say exactly what my goals are. I want my game to have...

A server and client.

Server:The server will be the engine. Upon starting, it will load the list of accounts, characters, items, spells, creatures, etc from a MySQL server.The server will accept connections from clients, verify their account information, and allow them to log in to one of their characters. When the character logs in, the client will begin broadcasting a method like "getNearbyPlayers," and the server will respond with locations for each of the players and what model they have, so the client can render it. The server will also handle telling the client how much health the player has, what items the player has in their inventory, and such. The client will simply render all of these. The server is only going to be broadcasting ArrayLists of type Integer to the client, and the client will simply select the appropriate graphic file and render it on the screen.

ClientI want the client to be run in FSEM, and I want the client to have multiple windows that can be closed or open and move freely about the screen. For example, I want the client to be able to open their inventory and move it around the screen, and then close their inventory and have it not show up. I want chat to do the same thing. If a player pushes "enter," a chat window should pop up and allow them to type something to another player. However, I do want what other people to say to be visible at all times. I don't really think a minimap is very important at this time, but I do want a simple HUD that shows the character their health and mana (although we won't use mana, we'll use some other equivalent). I want the client to have all of the 3d models in it's program directory, and I want the world map to be kept in the program directory as well. The client will know which models to load based on what the server tells it is around it.

Tell me if you think I should change the way the game is structured, but most importantly PLEASE help me figure out this JOGL stuff. I cannot for the life of me find a tutorial that goes step-by-step enough, explaining each step as it goes along.

You won't find any tutorial that teaches you the things you want in one go

Leave your game and the FSEM mode aside for a while.

- just try any tutorial you find and looks interesting to you- learn about matrix and vector math, since it is the basis of every 3D API (OpenGL/JOGL included)- find yourself a vector math library (JOGL does not include one)- understand the matrices OpenGL has build-in support for- understand what OpenGL offers (JOGL is "just" a binding, so you won't find JOGL centric documentation)- make some demos to get a feeling for your new knowledge

Expect this process to take at least 1-2 month before you are ready to do something further in your project.

Edit:You will find a lot of tutorials for the old JOGL version which uses net.games.jogl instead of javax.media.opengl for imports and also have some other differences. DON'T GIVE UP on these. Just try to make them run by porting them (you will find helpfull information here: http://www.java-gaming.org/forums/index.php?topic=12817.0)

Same goes with C/C++ or Delphi or whatever examples: TRY TO PORT THEM. You will learn and understand so much more by solving the problems doing this than just copying a ready made easy go tutorial.

Don't fool yourself: you have taken a huge and time consuming task by choosing to learn OpenGL/JOGL/Graphics programming - don't expect this to come easily or fast!

You won't find any tutorial that teaches you the things you want in one go

Leave your game and the FSEM mode aside for a while.

- just try any tutorial you find and looks interesting to you- learn about matrix and vector math, since it is the basis of every 3D API (OpenGL/JOGL included)- find yourself a vector math library (JOGL does not include one)- understand the matrices OpenGL has build-in support for- understand what OpenGL offers (JOGL is "just" a binding, so you won't find JOGL centric documentation)- make some demos to get a feeling for your new knowledge

Expect this process to take at least 1-2 month before you are ready to do something further in your project.

Edit:You will find a lot of tutorials for the old JOGL version which uses net.games.jogl instead of javax.media.opengl for imports and also have some other changes. DON'T GIVE UP on these. Just try to make them run by porting them (you will find helpfull information here: http://www.java-gaming.org/forums/index.php?topic=12817.0)

Same goes with C/C++ or Delphi or whatever examples: TRY TO PORT THEM. You will learn and understand so much more by solving the problems doing this than just copying a ready made easy go tutorial.

Don't fool yourself: you have taken a huge and time consuming task by choosing to learn OpenGL/JOGL/Graphics programming - don't expect this to come easily or fast!

I know matrix and vector already :-)

I guess your right, I'll just have to keep trucking along on the random tutorials until I figure it out.

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