My Highschool class is making an MMORPG...

Lastly, the engines mentioned here (as far as I know, I might be wrong) only provide the raw framework. You still need to add your own code to get a game, these engines aren’t “add sprites, add sounds, add story, game finished” engines. They provide the mechanisms for loading graphics, rendering, collision detection, etc. If your course focused on making a good game then using an existing engine is the obvious choice. But it appears that the class is more concerned about doing the low level stuff done in an engine? If so, then it would be much better to do a simple engine with a good game to showcase the engine than a big engine that doesn’t reach its potential. If the game doesn’t matter, then you need only do the engine in a theoretical way and let the teacher suffer :-).

The class is focused on the programming of the games, so using an existing engine won’t fly. However, none of us are ever going to give up. You may be right, we may suffer horribly and have a shit game. We’ll still have learned a lot about JOGL and Java3D in the process, and we’ll still be better off. I’m just not going to give up on making this game. I’m a good programmer, just a noob when it comes to JOGL and 3D graphics programming because I’ve never taken a class on that. I’m doing it solo for the first three months (aka the summer) because we won’t have class then, and the rest of the year will be with my teacher and classmates.

Having thought hard about this, I think we’ll make the game using jME, and once we’ve taken the full class and learned about JOGL, we can write our own Game Engine and convert the game back to being on our GE so it’s 100% ours. Thanks for all of the advice.

Is jME just a library of methods and classes?

[quote=“Trussell,post:43,topic:31710”]
Here

Harken to my words: DO YOUR RESEARCH! Every hour spent researching at the start saves a week panicking at the end.

I followed the install guide here that was supposed to “install” jMonkeyEngine into my NetBeans IDE. I followed all of the directions, but when I get to the last step which says to run a file in the jME-Physics_2 project, it doesn’t work.

I attempted to run the file TestChooser.java under com.jmetest.physics. Any idea why it’s not working? The error I get is this…

java.lang.NoClassDefFoundError: and
Caused by: java.lang.ClassNotFoundException: and
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
Exception in thread “main”
Java Result: 1

The above post really sums it up well ::slight_smile:

The error you have is a classpath issue - one of the most common - and easy to resolve. You are probably “missing” two quotes in your command line and you are executing from within a folder that contains a ‘and’ with spaces in it. ie. c:\documents and settings\me\desktop\jme-test needs to be “c:\documents and settings\me\desktop\jme-test”

I’m executing from Netbeans, so where would I go to change that?

EDIT: Wow, I’m an idiot. I put my library arguments (-Djava…) in VM options instead of in arguments.

Now I face a NEW problem. New and exciting, how about that.

I tried to execute a demo (generate terrain, specifically) and I get this error. I may be an idiot, but didn’t jMonkeyEngine have LWJGL in it’s libraries already?

java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at org.lwjgl.Sys$1.run(Sys.java:75)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:68)
at org.lwjgl.Sys.loadLibrary(Sys.java:84)
at org.lwjgl.Sys.(Sys.java:101)
at org.lwjgl.opengl.Display.(Display.java:111)
at com.jme.system.lwjgl.LWJGLPropertiesDialog$ModesRetriever.run(Unknown Source)
at com.jme.system.lwjgl.LWJGLPropertiesDialog.(Unknown Source)
at com.jme.system.lwjgl.LWJGLPropertiesDialog.(Unknown Source)
at com.jmetest.physics.SimplePhysicsTest.getAttributes(SimplePhysicsTest.java:63)
at com.jme.app.BaseGame.start(Unknown Source)
at com.jmetest.physics.TestDomino$1.run(TestDomino.java:163)
BUILD SUCCESSFUL (total time: 6 seconds)

You have to download and install LWJGL seperately. I think the JME 1.0 uses LWJGL version 1.0. Go to www.lwjgl.org and follow the download link. On souceforge you can download the 1.0 version. The dll files must be in the “current directory” of the application. Or set up Djava.library.path. Or put it in the lib/ext folder of the runtime. The jars you include like the jme jars.

BTW, LWJGL is an opengl binding, just like jogl.

no no, lwjgl is in the lib folder of jME.

The problem is that:

-Djava.library.path=… must go into VM options. By putting it into the program arguments you created an additional error and did not solve the former one. As Matzon said, your runtime classpath is misconfigured or another possibility would be another exception (before the posted one), which hinders class loading.

I’m in two minds about what to say in this thread as I twiddle me thumbs waiting for Chaz to put the finishing touches to Droid Assault…

On the one hand, this project I can say with absolute certainty will probably deliver almost nothing like a MMORPG. In fact it’ll be nothing short of a miracle if it even gets the G part done let alone the RP or the O, M and M. Just writing a 2D shooter using OpenGL and Java would be a reasonably ambitious project for a green team at highschool. (However it would definitely fall into the realms of possibility that such a 2D shooter would in fact be a) finished and b) even very good and c) well documented coz you won’t get any marks for just dumping a pile of code on the examiner’s desk!!)

But on the other hand it will be a brilliant and probably fun way to learn about how not to do a bunch of stuff. The question is, as it will certainly not work out, what are you going to be able to hand in at the end of it to pass the course?

Cas :slight_smile:

Given that a single teacher is going to be hearding an entire “team” of inexperienced programmers creating an MMO, I’d be surprised if the teacher has any sanity left at the end for marking. :slight_smile:

One thing you can do is limit your scope a bit. You should maybe go for a MOFPS(Multiplayer Online First Person Shooter). Forget massive and go for just 8-12 users. You will still have the online multiplayer part, which is hard enough. Doing an FPS requires a lot less content and level design than an RPG. Make a Quake/Half-Life type game and that will still reach your goals. It should also be more satisfying, because you would have a better chance of completing it.

I suggest making a MOFPS like CaptainJester suggested. The book killer game programming in Java even contains a working example that you can build upon.

I don’t follow, why would you want to write things from scratch? should we drop some 64 bit assembly code tutorials on you so you can write the os on which your game run’s first?

I would recommend taking whatever there is and use it, as soon as stuff wears you down swap it out and swap into new stuff. Then you’ll come at a point where the avail stuff doesn’t fit your needs and you can implement it yourself. Even if you where to write everything from scratch at the relevant level’s of the system you would still need place holders for parts you haven’t written yet; you can’t test parts by them self. Sure you can start working on everything at the same time but then you won’t get finished cause your not focused. (just look at any engineering job without fixed constraints.(time, monney, etc) there are ton’s of case studies on this.)

Ok before I get to actual technical stuff, a tip: Ask your(or a) teacher if he knows a teacher at collage/uni so they can open up the university’s online databanks for you. It turned a smile on my face to see a twenty year old theory being described in a dusted piece of paper and while I was reading though it, described pretty much the UT99 bullet prediction/ network code.

On a more technical note your server side stuff: from the brief amount of information you gave I can only guess that your way off track. Leave the databases alone and work on non persisted java objects. By the time you actually worked towards a game that needs to run longer then 5 min for testing, you should have had enough headaches that you can make better decisions on all that.

Anyway good luck, doing this while in high school is probably the best idea as you don’t have bills to pay and a lot of free time. But as you noticed access to information is a big obstacle.

p.s. a big team isn’t always a blessing, things might actually take longer.

I copied and pasted from a website and for some reason they were using two ’ signs instead of a single ". That was the problem.

[EDIT]
Sorry, a lot of this may be redundant for you – I didn’t see the last 3 pages of posts for some reason.
[/EDIT]

I second Kev. When I was in high school, I started work on tons of projects. They were never finished, but I learned an incredible amount in the process. Although everyone here is being a bit overly frank with you, the only real reasons for that are two: 1) tons of new users come in asking how you make an MMORPG (hmmm… MMORPG + Me = $$$$), having little to no idea what they’re getting into. 2) It seems like you want and are expecting a complete and working project, which makes you seem like someone from #1.

If you’re not like #1, then prove it by being fully aware of your limitations. Don’t expect to get your project done. Expect a lot to go wrong. But, expect to learn mountains. The more difficult a project, the less likely you are too succeed, but the more capable you will be afterwards.

All that being said, here’s a bit of advice.
• Don’t use JOGL, use LWJGL. The latter also has useful things like OpenAL and JInput attached.
• Try jME (J Monkey Engine) for your 3D scenegraph (if you are willing to go for 3D). It can load many different types of models.
• I would use straight-up MySQL queries rather than Sockets. Although this gives you a bit less freedom because you can’t have a server app, it’s way easier. Sockets can lead to tons of inexplicable freezing and game-breaking. And because your game probably won’t ever be too popular (like thousands of players), this should be modular enough for you.
• Buy or find a book on database design before you make your database. This is something you can not do intuitively. You’ve got to learn it.
• Create a series of “tech demos” to get the different aspects of the game working rather than trying to put it all together right away.

And another moment of warning: I was in almost the same situation as you, only I was with college students rather than high school ones, and I was the instructor. With me, a co-instructor (who handled the artists), and 15 students, we made an MMORPG. This was last semester. I spent the entire semester before planning – creating development schedules, writing pseudo code, deciding on the classes we would need, etc. That means 4 months passed before any team members ever even knew what they were making. I must stress the importance of proper planning.

And we made the game in… what language? LSL. Linden Scripting Language. In SecondLife. Because I knew that in 4 months there was no way in hell we would be able to create a capable 3D engine, networking engine, physics engine, etc. So by making it in SecondLife all that was already provided. And yet, at the close of the semester, the game was incomplete. Don’t get me wrong, an incredible amount was done and it was very close, but there wasn’t enough time to fix bugs or do QA.

My conclusion? A year is way shorter than you think, especially if you’ve got no prior experience with a lot of this stuff. And, once again, I’m really not trying to dissuade you, I’m just revealing the gritty truth of it with a real-world example. A team of 17 people with (likely) more experience than your team, making an MMORPG within SecondLife, with 4 months of prior planning, still wasn’t able to get it all done.

But, do it! Just be realistic.

I’ve already started using jMonkey Engine.

Make your mind up. ::slight_smile:

Trussell, you really seem to have a big problem with the scope of your project. In any computer science, be professional or not, scope is the critique aspect that can completely make the project fail.

Here’s a bit of realistic, anecdotal scope: each of our games Titan Attacks, Ultratron, and Droid Assault took five months full time with a developer and an artist working on them, plus about another month of tweaking and bugfixing and patching, plus some amount of time outsourced to others to make the music. So basically 12 man months to do really simple little 2D games from concept to sale - and although there’s actually a surprisingly large amount of content in these games, we’re also very experienced and have a smoothly oiled toolchain. And we didn’t have to document any of it.

Cas :slight_smile: