3D Randomly Generated World

This is really cool! Is there any limit in the generated world?

Technically, yes. I think that it is about 2 billion tiles in any direction though, so for all intents and purposes, no.

Edit: Well, if you’re curious, here’s what it does if you stand at 231-1…

You’ll likely run out of hard drive space before that too I’d imagine.

Actually, I don’t save the chunks, so you’re always generating them as you move around :emo: I know, one more thing on the todo list.

If you’re not going to modifying the chunks at all, it may be best to not save them at all, instead just save the seed. Procedural generation has allowed a lot of gamedevs to do some really cool stuff in this way, for example The Elder Scrolls II: Daggerfall had one seed which generated the world which was twice the size of Great Britain and a population of 750,000 spread across 15,000 towns. People often confuse procedural generation with random generation, but you’ve got the chance here to use procedural generation to create yourself a world.

I’d love to try this out but I’m getting this exception when I launch it:

Using Java Version: 1.7.0_55
Exception in thread “main” java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at org.lwjgl.Sys$1.run(Sys.java:73)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
at org.lwjgl.Sys.loadLibrary(Sys.java:95)
at org.lwjgl.Sys.(Sys.java:112)
at org.lwjgl.opengl.Display.(Display.java:135)
at com.base.engine.Window.createWindow(Window.java:17)
at com.longarmx.smplx.Main.main(Main.java:322)
… 5 more

Using the start.sh file with Terminal I get this:
Error: Unable to access jarfile 3DWorld.jar

Get the LWJGL natives for your system and run it with this argument “-Djava.library.path=‘yourNativesFolder’”

You should start it with the provided start.sh. It will link the natives for you. I don’t know why it can’t access the jar file though. What system are you on?

Here’s the startup script for those who know anything about this:

[quote]java -Djava.library.path=“natives/” -jar 3DWorld.jar
[/quote]
It runs for me on windows, with the exact same code in a .bat file. I’ll look around for a solution.

OK, it’s because I wasn’t starting Terminal from the right folder. It launches but crashes straight away and prints this:

Using Java Version: 1.7.0_25
Using OpenGL Version: 2.1 INTEL-8.26.34
ERROR: 0:1: ‘’ : version ‘330’ is not supported
ERROR: 0:3: ‘layout’ : syntax error syntax error

Sorry, you must have opengl version 3.3 or newer to run. That’s weird, it should have recognized that and told you. I might be able to scrape together a 2.1 version if you really want it :slight_smile:

Nah, don’t worry about it. It does seem a bit dodgy though, but it could be my drivers.

Mesa 10 is out for quite some time now on linux, if you care enough to update your Mesa driver you should be able to try this out.

About your game/app: I didn’t give this a whirl yet but it does seem really nice, I will definitely try this out when I have the chance. :slight_smile:

Ah, I should have mentioned that I’m on OS X.

Update 0.0.5.1 is here!

[Latest Update]

  • Game Launcher!!!
  • Separate logs for each run
  • Debug is hidden by default. Toggle with F1
  • Bug Fix: Grass no longer clumps on chunk borders
  • Bug Fix: Now properly checks opengl version and doesn’t run if lower than 3.3
  • Bug Fix: Console now closes after game is started

Let the crashes commence…

Download is in the op :slight_smile:

Edit: Whoops! Forgot to mention that I might change the name to Orbis.

My computer forgot how to run java from a batch file…
This is fun.

I wouldn’t look into Mesa drivers… At least for me, they’ve not had good performance.

When I run the batch as-is, nothing happens.
When I change “start javaw” to “java” this happens:

my previous comment about java not working has been fixed. Java seems to be working for all other applications at the moment.

[edit]
After changing the batch file to run 3Dworld.jar as opposed to your launcher, it opens up just fine :slight_smile:

I get 49 fps; which is quite odd as there really isn’t anything that intensive going on.

Thank you for your feedback.

Could I get your Java version?

About the performance…apparently Display.sync() doesn’t like being called in more than one thread. I fixed the issue and now get a solid 60 fps. This will be included in the next update.

That would make sense, I guess… if Display.sync() makes the render loop wait then lots of calls to this happening concurrently would add up. I was able to launch it under Windows (which makes my issue seemingly OS X-specific) and only get 14FPS. As well as this, the skybox image did not load.

Are you planning on looking into more visual enhancements like anisotropic filtering and anti-aliasing at all in the future?

Thank you for your thoughts.

Could you send me your log? I’m pretty sure I know what happened but I just need to make sure.

I really want to implement antialiasing soon, especially for the grass.