Yet Another ORPG Project

Everybody knows that it is impossible to develop an ORPG on your own, in your free time - yet some people are stubborn enough to insist to try. I am one of them :smiley:

Here's what I have so far, I'd love to hear from you if, how fast and under what conditions it runs on your machine!

Just start the Singleplayer option for now, the multiplayer server will not be running. If you get any problems, try setting other options under Settings. The same applies if you have no troubles, maybe you can provoke some issues with different settings! :evil:


http://krabien.googlepages.com/gamepreview



Requirements:
Java 5, a GLSL capable graphics card, and Win/Linux/*hopefully* OSX, possibly with Substance LnF turned off in the settings panel.
The starter script should work on linux, no idea how to make a starter scritp for mac, sorry!

(Java scripting api is also required, so if you don't have java 6, you might have to wait until I have a version with proper scripting support for 2.5 in place. Thanks to duenez for pointing that out!)

For libraries used, see http://www.jmonkeyengine.com/jmeforum/index.php?topic=5641.0.
The plants and trees are from http://www.loopix-project.com/, the dwarf is from http://www.psionic3d.co.uk/, and the ground textures are from http://lemog.fr/

Thank you for the feedback! Some very valuable input there, all of this will go straight to my todo lists (if not already there).



I am not really sure what you mean with 1). Could you give me more details? What kind of controls would you prefer?



2) will be among my next big projects, I am currently evaluating if I want collision checking or some kind of 2d "walkability map". The 2d map would be a lot easier on both cpu and my own work time - but it can not do line of sight checking and stuff like that



3) That's some really poor performance, on a similar system but with GeForce Go 7400 I get well above 100 fps! But I think I recall you had bad performance with my texture splatting shaders before on your 5200, or am I mistaken?



4) the animation system is a hack hoepfully to be replaced by skeletal animation soon, so I didn't care much about that



5) Thanks for the tip! That will be another shader project some day. shouldn't be too hard to do.



6) I hope actual world design instead of some random distributed trees and shrubs and auto generated splat maps will help with that, but I haven't had the time yet (and might be missing the talent too)



7) that must be the system native LnF kicking in. I guess I'll roll my own display settings dialog at some point anyway, but for now I can try and reset LnF after closing the display settings.



8) I know. Does automatic scaling actually cause any issues on any system, or could I -theoretically- leave it like that for now?



9) looks like z fighting to me - I'll try and see what could cause that. Might be a little tricky to find since it doesn't happen for me :confused:



10) That's the catch with that Substance LnF skin - you don't get to set your own progress bar colors :frowning:

Well, it crashes with this error:


INFO: Found Ports 3300 and 3301
[TopLink Severe]: 2007.11.27 12:51:29.622--ServerSession(872752095)--Local Exception Stack:
Exception [TOPLINK-0] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.IntegrityException
Descriptor Exceptions:



Exception [TOPLINK-168] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.DescriptorException
Exception Description: Problem in creating new instance using the default constructor.  The default constructor triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.NoClassDefFoundError: javax/script/ScriptEngineManager
Descriptor: RelationalDescriptor(model.NPC --> [DatabaseTable(AFFECTABLEOBJECT)])

Exception [TOPLINK-168] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.DescriptorException
Exception Description: Problem in creating new instance using the default constructor.  The default constructor triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.NoClassDefFoundError
Descriptor: RelationalDescriptor(model.WorldObject --> [DatabaseTable(AFFECTABLEOBJECT)])

Exception [TOPLINK-168] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.DescriptorException
Exception Description: Problem in creating new instance using the default constructor.  The default constructor triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.lang.NoClassDefFoundError
Descriptor: RelationalDescriptor(model.Body --> [DatabaseTable(AFFECTABLEOBJECT)])



I am using

java version "1.5.0_12"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_12-b04, mixed mode)



Nice initial menu, however  ;)

Thanks for the info! looks like there's a problem locating javax/script/ScriptEngineManager.

I thought the scripting API was part of java 1.5, but it might require the JDK, not JRE. I'll have to read up on that, as it will be important for the system requirements specification.

Anybody with some basic java scripting api knowledge around to shed some light?

I think they are a Java 1.6 feature, and perhaps optional for 1.5… If you can include them as a jar, you should not have a problem.

I'm downloading it to try here and give you the feedback.



BTW: Nice screenshot. Can we know where did you get/modeled those nice trees?



I've been using arbaro and NCPlant for now.

duenez said:

I think they are a Java 1.6 feature, and perhaps optional for 1.5... If you can include them as a jar, you should not have a problem.

Of course you are right. I'll put up a version with scripting support for 2.5 later today.

perick said:

BTW: Nice screenshot. Can we know where did you get/modeled those nice trees?

I've updated the initial post to give more info. Thank you for helping me with testing!

OK, a version that should support scripting on 2.5 is up now. I haven't been able to install 2.5 to test it yet, so it'd rock if you could take the time to download it again, duenez :slight_smile:

hevee check your email!



:stuck_out_tongue:

Runs fine with all effects on.

Win XP / nvidia 7600 gs about 30 fps @ 1280 1024.



The hills and trees look pretty nice.



The mobs just need a death animation and some loot now  hehe :slight_smile:

Core-Dump said:

The mobs just need a death animation and some loot now  hehe :)

They have in the online version, you just can't loot them yet :) I never bothered to fix the lack of dying in the singleplayer version because that is meant to test for hardware issues, not programming errors on my part :D
If this preview proves to run on more than one machine I'd be more than interested in arranging a multi-continental online test. BTW, what java version and OS did you use?

Looks kick-ass, reminds me of WoW. 8)



Things you might want to fix:

  1. Controls/movement is wierd
  2. You can go through the trees and up on steep cliffs
  3. The game plays at 10 fps with all effects turned off on my pc (WinXP SP2, Java 1.6, 2.5 GHz, GeForce FX 5200)
  4. The dwarf's axe jumps in the air when he walks
  5. Water doesn't fade in the shores, looks sorta wierd
  6. Terrain is somewhat repetitive, you might want to use more vegetations 
  7. The menu changes colors after changing display configuration:


  8. Nov 27, 2007 5:55:49 PM com.jme.scene.state.lwjgl.LWJGLTextureState load

WARNING: Attempted to apply texture with size that is not power of 2: 119 x 58

Nov 27, 2007 5:55:49 PM com.jme.scene.state.lwjgl.LWJGLTextureState load

WARNING: Rescaling image to 128 x 64 !!!



9) screenshot of water with all effects off:



10) screenshot with animate water set to on, also notice that the health/mana/etc bars are dark now that substance L&F is used:





I know it seems like a lot but most of those are trivial issues, or maybe it’s just my pc…

Got a question for you:



I'm trying to do something exactly like your playername - with a colored bit of text floating above each character's head - how are you doing it?



I've attempted to get a billboarded Text2D to work, but have serious issues with it not actually following my characters around. Might have something to do with "screen coordinates" vs "world coordinates" and the like, but I thought there'd be an easier way. Like a quad with some sort of text-generating texture on it or something.



Anyways, your game looks great. Keep up the excellent work!

I got it working under Java 1.6 however I got the following problem at my second attempt:


[TopLink Warning]: 2007.11.27 09:30:18.923--UnitOfWork(7081592)--Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Access is denied: Session is closedError Code: -33
Call:UPDATE AFFECTABLEOBJECT SET BASE_HEALTH = ? WHERE (ID = ?)
        bind => [23.383991, 20]
Query:UpdateObjectQuery(model.NPC:Player[nick=Mob11628383, id=20])
Ooops!
obid: 137
dbob: Player[nick=Player, id=137]
DBID: 137
DBOB: Player[nick=Player, id=137]
[TopLink Warning]: 2007.11.27 09:30:19.281--UnitOfWork(21105487)--Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Access is denied: Session is closedError Code: -33
Call:UPDATE AFFECTABLEOBJECT SET BASE_HEALTH = ? WHERE (ID = ?)
        bind => [22.951992, 20]
Query:UpdateObjectQuery(model.NPC:Player[nick=Mob11628383, id=20])
Ooops!
obid: 85
dbob: model.NPC:Player[nick=Mob4247984, id=85]
DBID: 85
DBOB: model.NPC:Player[nick=Mob4247984, id=85]



That seems to be related to the Shadow Volumes, however... and the Substance look does not lok that nice... everything is gray... Finally, the sound sometimes play, and sometimes it does not. Other than that, it plays good (50-60 on low settings, and 30 on more top-end ones).

Oh, well, enough criticism... Good job. :D
ninjaboyjohn said:

I've attempted to get a billboarded Text2D to work, but have serious issues with it not actually following my characters around. Might have something to do with "screen coordinates" vs "world coordinates" and the like

That's exactly how I do it. However screen coords have nothing to do with billboards, billboards are for 3d and screen coords for ortho. If you have more questions, I am happy to help, but please don't use this thread :)

@duenez: The output you posted contains only symptomatic errors, there must have been a causing exception further up. I'll see if I can produce the same error here.
duenez said:

and the Substance look does not lok that nice... everything is gray... Finally, the sound sometimes play, and sometimes it does not.

Hmm. You are running linux, I assume? Coud you give me more details about the system you're running this on? I had the same sound issue with linux, but hoped it to be specific to my intel onboard sound chip.
The substance problems on platforms other than windows will eventually force me to use FengGUI or roll my own UI, maybe using swing for text rendering.

Nice!



When i turn on Bloom, i get the following error:



28.11.2007 11:28:43 class _main.JMEApp start()

SCHWERWIEGEND: Exception in game loop

java.lang.RuntimeException: OpenGLException caused before any GL commands by LWJGLImageGraphics!

at com.jmex.awt.swingui.LWJGLImageGraphics.update(LWJGLImageGraphics.java:174)

at com.jmex.awt.swingui.ImageGraphics.update(ImageGraphics.java:92)

at com.jmex.awt.swingui.JMEDesktop.draw(JMEDesktop.java:1107)

at com.jme.scene.Spatial.onDraw(Spatial.java:235)

at com.jme.scene.Node.draw(Node.java:504)

at com.jme.scene.Spatial.onDraw(Spatial.java:235)

at com.jme.scene.Node.draw(Node.java:504)

at com.jme.scene.Spatial.onDraw(Spatial.java:235)

at com.jme.renderer.lwjgl.LWJGLRenderer.draw(LWJGLRenderer.java:1173)

at com.jme.renderer.pass.RenderPass.doRender(RenderPass.java:52)

at com.jme.renderer.pass.Pass.renderPass(Pass.java:90)

at com.jme.renderer.pass.BasicPassManager.renderPasses(BasicPassManager.java:89)

at tests.SimplePassGame.render(SimplePassGame.java:82)

at com.jme.app.BaseGame.start(BaseGame.java:82)

at _main.Singleplayer.<init>(Singleplayer.java:76)

at _main.Singleplayer.main(Singleplayer.java:84)

at _main.Starter.main(Starter.java:36)

Caused by: org.lwjgl.opengl.OpenGLException: Out of memory (1285)

at org.lwjgl.opengl.Util.checkGLError(Util.java:53)

at com.jmex.awt.swingui.LWJGLImageGraphics.update(LWJGLImageGraphics.java:172)



I am using Windows Vista and a ATI Radeon X1300

bugs out on when attempting to start single player mode mac os x (intel 10.4.11), java version "1.5.0_07"…



SEVERE: Exception in game loop
java.lang.UnsupportedClassVersionError: Bad version number in .class file
        at java.lang.ClassLoader.defineClass2(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:719)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:160)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:254)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        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:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at _main.JMEApp.simpleInitGame(JMEApp.java:202)
        at com.jme.app.BaseSimpleGame.initGame(BaseSimpleGame.java:503)
        at tests.SimplePassGame.initGame(SimplePassGame.java:98)
        at com.jme.app.BaseGame.start(BaseGame.java:69)
        at _main.Singleplayer.<init>(Singleplayer.java:76)
        at _main.Singleplayer.main(Singleplayer.java:84)
        at _main.Starter.main(Starter.java:36)

Vardamir said:

Caused by: org.lwjgl.opengl.OpenGLException: Out of memory (1285)

Does anybody know if that refers to graphics card or system memory?

ncomp said:


java.lang.UnsupportedClassVersionError: Bad version number in .class file



Sorry, I really left 2.5 users out in the rain initially. I have finally installed 2.5 (on win32) here, and tested the program on it - seems to work now, I only get some JMEDesktop repaint issue with substance LnF on, but that is unlikely to work on mac anyway. Would you mind to try again?

Loaded here… Since I own a macbook white (crappy OpenGL 1.2 IGP Intel GMA950), the game and also the editor ran at only 1 or 2 fps… As expected since it needs GLSL. But at least loaded fine.



Basic specs:

Macbook white

Core 2 duo 2GHz, 1GB DDR2 667, Intel GMA950 IGP

Mac OSX 10.4.10

Java 1.5.0_07-87

OpenGL 1.2



I'll test at home in windows Xp and Vista under a ATI X800 and report more detailed results.

Good to know it's finally loading in OSX! Thanks for the info.