Darkvoid flight mechanics demo

WIP demo for DarkVoid: Star fighter.

Installer page

http://bob.newdawnsoftware.com/~jeremy/files/screenies/GLSLbumpanddiffuseandspecularandilluminationmapping-scaled.png

Thanks for looking in

Endolf

Feels nice and smooth.

I personally prefer using a WASD setup for maneuvering though, as my left arm doesn’t like to have to move all the way over towards the mouse and stay there. Now, if my wife would let me use the mouse left-handed, that would be a different story. :stuck_out_tongue:

Also, your camera controls seem to be reversed for your X-axis look-pivot.

pretty cool.

I cannot wait for the real deal :)(yeah I know it might be awhile)

fails to start for me (linux 64bit).

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ardorManager' defined in class path resource [config/spring/dvsfclient.xml]: Invocation of init method failed; nested exception is java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1401)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:512)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:557)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:842)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:416)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
	at org.newdawn.darkvoid.client.DVSFClient.main(DVSFClient.java:12)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1468)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1414)
	at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1225)
	at com.sun.javaws.Launcher.run(Launcher.java:114)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1689)
	at java.lang.Runtime.loadLibrary0(Runtime.java:823)
	at java.lang.System.loadLibrary(System.java:1028)
	at org.lwjgl.Sys$1.run(Sys.java:72)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.lwjgl.Sys.doLoadLibrary(Sys.java:65)
	at org.lwjgl.Sys.loadLibrary(Sys.java:81)
	at org.lwjgl.Sys.<clinit>(Sys.java:98)
	at org.lwjgl.opengl.Display.<clinit>(Display.java:129)
	at com.ardor3d.framework.lwjgl.LwjglCanvas.setTitle(LwjglCanvas.java:247)
	at org.newdawn.darkvoid.client.ardor3d.DVSFArdorManager.initManager(DVSFArdorManager.java:57)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$7.run(AbstractAutowireCapableBeanFactory.java:1516)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1513)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1468)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1398)
	... 21 more

looks like you’ve setup the jnlp file to only work on 32bit linux systems due to this line

<resources os="Linux" arch="i386">

both ardor3d and lwjgl should have no problems running on that configuration, just cut out the arch=“i386” bit.

I’m a big fan of space shooters (‘Freespace 2’ being one of my all time favorite games) and this looks really good, will have to keep an eye on this. :slight_smile:

Also fails to start on Mac OS X 10.6 Snow Leopard (with Java 6).


com.sun.deploy.net.FailedDownloadException: Unable to load resource: http://www.darkvoidonline.com/dvsf/dvsf-natives-0.0.1-SNAPSHOT-osx-natives.jar.jar
	at com.sun.deploy.net.DownloadEngine.actionDownload(DownloadEngine.java:1347)
	at com.sun.deploy.net.DownloadEngine.getCacheEntry(DownloadEngine.java:1487)
	at com.sun.deploy.net.DownloadEngine.getCacheEntry(DownloadEngine.java:1465)
	at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1568)
	at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1496)
	at com.sun.deploy.net.DownloadEngine.getResource(DownloadEngine.java:217)
	at com.sun.javaws.LaunchDownload.downloadJarFiles(LaunchDownload.java:920)
	at com.sun.javaws.LaunchDownload.downloadEagerorAll(LaunchDownload.java:803)
	at com.sun.javaws.Launcher.downloadResources(Launcher.java:1362)
	at com.sun.javaws.Launcher.prepareLaunchFile(Launcher.java:841)
	at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:309)
	at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:186)
	at com.sun.javaws.Launcher.launch(Launcher.java:107)
	at com.sun.javaws.Main.launchApp(Main.java:405)
	at com.sun.javaws.Main.continueInSecureThread(Main.java:252)
	at com.sun.javaws.Main$1.run(Main.java:111)
	at java.lang.Thread.run(Thread.java:637)

Thanks, fixed :), I wanted to make sure the libs are not loaded under linux on sparc or ppc for example. I missed the amd64 version out :), the libs are there. I’ve updated the jnlp.

Cheers, fixed, I managed to screw up the jnlp putting .jar in twice on the file name :slight_smile:

Thanks

Endolf

P.S, the controls will be configurable at a later date, this is just to see ‘how she flies’.


java.lang.IllegalStateException: Display must be created.
	at org.lwjgl.input.Mouse.create(Mouse.java:266)
	at com.ardor3d.input.lwjgl.LwjglMouseManager.init(LwjglMouseManager.java:38)
	at com.ardor3d.input.lwjgl.LwjglMouseManager.setGrabbed(LwjglMouseManager.java:114)
	at org.newdawn.darkvoid.client.ardor3d.PlayerShipController.<init>(PlayerShipController.java:41)
	at org.newdawn.darkvoid.client.ardor3d.Sector.setScene(Sector.java:175)
	at org.newdawn.darkvoid.client.ardor3d.DVSFScene.setSector(DVSFScene.java:87)
	at org.newdawn.darkvoid.client.DVSFClient.main(DVSFClient.java:17)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.javaws.Launcher.executeApplication(Unknown Source)
	at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
	at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Damn, you’re the second person to report that. I can’t reproduce it, but apparently it always happens for the other person who sees this. Guess it’s a real issue.

Thanks for the bug report.

Endolf

In that case I’m the third…

hmm, looks like Ardor3d is calling Mouse.create() before the Display is created, it shouldn’t even need to call that since Display automatically calls that when the Display is created.

And one more :

java.lang.IllegalStateException: Display must be created.
	at org.lwjgl.input.Mouse.create(Mouse.java:266)
	at com.ardor3d.input.lwjgl.LwjglMouseManager.init(LwjglMouseManager.java:38)
	at com.ardor3d.input.lwjgl.LwjglMouseManager.setGrabbed(LwjglMouseManager.java:114)
	at org.newdawn.darkvoid.client.ardor3d.PlayerShipController.<init>(PlayerShipController.java:41)
	at org.newdawn.darkvoid.client.ardor3d.Sector.setScene(Sector.java:175)
	at org.newdawn.darkvoid.client.ardor3d.DVSFScene.setSector(DVSFScene.java:87)
	at org.newdawn.darkvoid.client.DVSFClient.main(DVSFClient.java:17)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.javaws.Launcher.executeApplication(Unknown Source)
	at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
	at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Windows XP, Intel G43, Java 1.6.0_13

Jan 19, 2010 12:56:58 AM class com.ardor3d.framework.lwjgl.LwjglCanvas initDisplay()
SEVERE: Exception
org.lwjgl.LWJGLException: No support for WGL_ARB_multisample
at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)

Laptop with Mobile Intel 945 Express, GMA950 chip, XP

Ok, looks like I screwed up somewhere, the display should be created before the sector details are added. I’ll probably not get to looking at this till the weekend, but thanks for the responses.

As for the graphics one, I’m not sure what’s happening here, other than the obvious in the message. I’ll see what the Ardor3D people make of it.

Cheers

Endolf

It works fine here (Linux CentOS 5.3, 64 bits) but I get this:

java.lang.UnsatisfiedLinkError: /home/gouessej/.java/deployment/cache/6.0/25/25657619-75ff9d50-n/libjinput-linux64.so: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by /home/gouessej/.java/deployment/cache/6.0/25/25657619-75ff9d50-n/libjinput-linux64.so)
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1758)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1667)
	at java.lang.Runtime.loadLibrary0(Runtime.java:823)
	at java.lang.System.loadLibrary(System.java:1028)
	at net.java.games.input.LinuxEnvironmentPlugin$1.run(LinuxEnvironmentPlugin.java:66)
	at java.security.AccessController.doPrivileged(Native Method)
	at net.java.games.input.LinuxEnvironmentPlugin.loadLibrary(LinuxEnvironmentPlugin.java:58)
	at net.java.games.input.LinuxEnvironmentPlugin.<clinit>(LinuxEnvironmentPlugin.java:101)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:169)
	at net.java.games.input.DefaultControllerEnvironment.getControllers(DefaultControllerEnvironment.java:156)
	at org.lwjgl.input.Controllers.create(Controllers.java:71)
	at com.ardor3d.input.lwjgl.LwjglControllerWrapper.init(LwjglControllerWrapper.java:88)
	at com.ardor3d.input.PhysicalLayer.init(PhysicalLayer.java:209)
	at com.ardor3d.input.PhysicalLayer.readState(PhysicalLayer.java:90)
	at com.ardor3d.input.logical.LogicalLayer.checkTriggers(LogicalLayer.java:72)
	at org.newdawn.darkvoid.client.ardor3d.DVSFArdorManager.updateLogicalLayer(DVSFArdorManager.java:185)
	at org.newdawn.darkvoid.client.ardor3d.DVSFArdorManager.update(DVSFArdorManager.java:172)
	at com.ardor3d.framework.FrameHandler.updateFrame(FrameHandler.java:65)
	at org.newdawn.darkvoid.client.ardor3d.DVSFArdorManager.run(DVSFArdorManager.java:141)
	at java.lang.Thread.run(Thread.java:619)

Hi

Oh the joys of building for linux. JInput is not currently used (but will be), and it looks like JInput is expecting Glibc 2.7, no idea what CentOS has. JInput should be buildable from ant. Not sure how I can make JInput build so it works with CentOS, not without statically linking glibc, which I’m not about to do.

Endolf

Works fine on my Vista system.

I notice that if you try to turn too quickly, then it ends up jumping back 'round the other way. I have the same problem with my own camera, as it happens. It’s a really minor problem, it has to be said.

Will you have a non-fly by wire mode for us I-WAR fans? 8)

Been working on a shader based procedurally based background generator recently. See here. Framerates suck though on my system. Guess I’m going to have to render to texture then stick that on the skybox.

Endolf

I’ve redone the distribution mechanism, using launch4j and getdown. I still need to sort out registering shortcuts, but for now, installers and then .sh or .exe are installed.

Please give it a try and let me know of any bits that don’t work, or aren’t smooth. This test is the installation user experience :).

Endolf

Works here.

Cheers,

Kev

The Windows installation works here too.

Really good looking btw! Runs at 1500-2000 FPS at 1920x1080 and 8 samples :slight_smile: