My Highschool class is making an MMORPG...

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.

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.

The real world version of the book covers OpenGL 2.0 and shouldn’t be missing in your bookshelf if your take OpenGL serious.
http://www.amazon.com/OpenGL-Programming-Guide-Official-Learning/dp/0321335732

+1
(but this should not mean you can’t learn something from that code :wink: )

Those are still a bit complicated, since they’re not using JOGL, but OpenGL. However, they explain the functionality better than anything so far.

Is there a guide that shows you how to put a world (i.e. Terragen world or an OBJ file) into a window so you can run around?

You gotta walk before you can run. Get a rotating triangle on the screen first, then start looking into the obj file format.

I need a tutorial that shows me how :frowning: I’m a total newb hahaha. I’m doing this solo with no teacher for the first three months :frowning:

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.

Client
I 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!

I know matrix and vector already :slight_smile:

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

http://ak.kiet.le.googlepages.com/theredbookinjava.html

Any idea how to get the source code for the JNLP files there? I click on the examples, it downloads them and launches them in Java Webstart. If I try to open the jnlp file in Filzip, it shows nothing. Any ideas?

Wanted to put in a plug for Xith3D at xith.org and the Java Monkey Engine (JME).

I agree with many of the warnings posted on this thread. My advice is to learn to use a high level API and delve in to the innards if/when you have the time, where it makes sense to do so. EVERYBODY wants their first project to be an RPG, make cool maps, etc. It is this wish that usually indicates a newer game developer, not a bad thing but you may not realize the magnitude of what you want to do… I could go on for pages on just how cool my never completed game was.

Anyways, the xith API is a Java3D like scenegraph, with a well defined HUD (for menus, inventory, conversations, etc.), a neat class for support “first person” movements, collisions, avatar, etc within the scene. Also has a well written intro doc.

Your big advantage with this API, is the huge number of example programs, small java apps demoing a specific aspects of the API… This allows you to identify some portion of your game you need to work on,. find an example similar to what you need, and then extend you game. I personally absolutely need to see periodic progress in my game dev, otherwise I get agitated. The only way to develop a large game is in incremental steps, since you most likely do not have time or the experience to write up a requirement spec and architecture doc. Incremental improvements allow you to change directions as the design of your game changes over time. A strong developer presence also helps.

While I am unfamiliar with the Java Monkey Engine (JME) they also seem to provide higher level abstraction with the ability to get into the innards where you need to, they also have a strong developer community.

there should be a link somewhere on the page. JNLP files can be opened with any text editor they only declare the start process of the app and do not include content.

the Red Book samples + official JOGL demos are also as ready to run projects included in the NetBeans OpenGL Pack.

Look for glredbook-src.rar on the right side

I think that there is no doubt that the project will move along slower and will not accomplish as much technically if you use JOGL rather than say JMonkeyEngine or Xith, but if you persevere you will accomplish more in terms of having a better understanding of OpenGL and 3D graphics (If thats what you are in this for).

I do like the idea of coding all the stuff myself in OpenGL as I feel I would understand exactly what is going on, but I bet if some serious games developers wanted to make a MMORPG they would use something like JMonkeyEngine. They don’t care about how it works - they know how it works and they don’t want to code it again.

Just out of curiosity what class are you doing this for?

The first part is not entirely true imo :slight_smile: - but the second part is. And that’s why Trussell’s class does use LWJGL directly: they do not know how it works yet. Still I would recommend to switch to a scenegraph engine as soon as you are familiar with GL concepts (and can afford it).

The course is titled “3D Graphics and Game Programming,” and we have to write our own engine, like I said, since it’s a programming course, using jME is out of the question. Xith, as I understand it, is simply a library like JOGL is, so it’s possible we could use that.

XIth and jME are both game engines with a scene graph.

I see. We won’t use any premade game engines.

Have you noticed that you are contradicting yourself? The one moment you say that just because you’re in high school doesn’t mean you don’t have the skills and the next moment you say you’re a total noob. Then you say you have the whole year with a talented teacher and class and the next moment you say you’re doing it solo without the teacher for 3 months.

So what will you be doing in those 3 months? Learn JOGL? And how many of the other students know JOGL? You’re the lead developer, but you admit you still need to learn a lot. What does that imply of your team’s skills?

In my university OpenGL for c++ is a 1 year module and that doesn’t even come close to games. So even if you did manage to learn JOGL in the first 3 months, you still won’t know how to load complicated structures and maps. Then you haven’t even started with the rest of the engine. Engine design is a complicated process, that’s why people use existing engines. Suppose you finish the MMORPG engine with a few months to spare, what game do you have at that moment? You’l probably need to have some form of scripting support for the story too. Do you even have some sort of story or is this a free for all? Do you have the artwork and models? Audio? Then you’ll need to test the game, make sure everything is balanced, etc.

And during all this time I assume you have other classes in high school too?

None of us are trying to launch an assault on you as a person when we say you shouldn’t do this. When the people say noobs don’t make MMORPGs and you admit you’re a noob, don’t you think you should take the advice?

A cool idea for a first game could be some sort of Galaxian or Space Invaders but with 3D models and so forth. Then you’ll have a game that uses the basic concepts that you need for a more advanced game like loading models.

But I guess you won’t listen so maybe you should rather post in the JOGL section in the forum. People who see MMORPG in a Newbie section will have a quick head shake and move along. The newbie section is more used for example by people who have problems getting 2d in a Jpanel. But go ahead and ask the questions in a different section and only ask about specific JOGL problems, not how to learn JOGL.

On a last note, I made a side scrolling shooter for my high school project and I had absolutely no experience. I only had KGPJ and it was hard to understand double buffering and stuff like that. And I started reading about that the year before I started the game. And so I struggled forth learning basic techniques for a game engine and how to implements structures we didn’t learn. So eventually (about 2 weeks before the hand in date) I got to the point of actually implementing the game content. My levels weren’t planned, the game itself wasn’t near the representation of the trouble of the engine. I spent too much time learning how to do something. I’m in no way an expert in anything but what I can tell you is this: rather think small and expand along the way, than think big and ultimately not reach your goal.