Elder Scrolls Explorer

This is a project I’ve worked on in my spare time for about ten years now. It is approaching a level where I think people might be interested in seeing what I’ve done; specifically what can be done in pure java, and possibly the code might help someone.

It is a pure java, open source project.

It uses Jogamp’s Java3d for the scene graph and Jogamp’s Jogl for the render bindings https://jogamp.org/
It uses JBullet for physic simulation http://jbullet.advel.cz/
I’ve relied heavily on the NifTools team for decryption of models. http://www.niftools.org/
I am enormously grateful to the above teams/people for what they have done and the entire modding community generally are just awesome.

The video:

MIdjuFqE-dE

The binaries:


(you need to have access to the game data files)

And finally the source code:

I would love to try this, but it doesn’t seem to work for me. I tried it with the skyrim data files and it seems to process them just fine, but there’s no render output. Just a blank rectangle in the size of the selected resolution and neither disk or cpu activity. Here are the logs, if that helps:


VERSION: ElderScrollsExplorer-2-25
LWJGL added to class path
BSA File Set loading F:\Programme\Steam\SteamApps\common\skyrim\Data\Skyrim - Animations.bsa
BSA File Set loading F:\Programme\Steam\SteamApps\common\skyrim\Data\Skyrim - Interface.bsa
BSA File Set loading F:\Programme\Steam\SteamApps\common\skyrim\Data\Skyrim - Meshes.bsa
BSA File Set loading F:\Programme\Steam\SteamApps\common\skyrim\Data\Skyrim - Misc.bsa
BSA File Set loading F:\Programme\Steam\SteamApps\common\skyrim\Data\Skyrim - Shaders.bsa
BSA File Set loading F:\Programme\Steam\SteamApps\common\skyrim\Data\Skyrim - Sounds.bsa
BSA File Set loading F:\Programme\Steam\SteamApps\common\skyrim\Data\Skyrim - Textures.bsa
BSA File Set loading F:\Programme\Steam\SteamApps\common\skyrim\Data\Skyrim - Voices.bsa
BSA File Set loading F:\Programme\Steam\SteamApps\common\skyrim\Data\Update.bsa
organising resolution...
FOV set to  80.0
setAnisotropicFilterDegree=16
setSceneAntialiasingEnable true
Persistent Records loaded in 288 WRLD count = 37 CELL count = 590 record count = 41433
med
low
med
high
[0x7FFA10014450] ANOMALY: meaningless REX prefix used


VERSION: ElderScrollsExplorer-2-25
Nov 19, 2015 12:06:14 AM java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
3D [dev] 1.6.0-pre12-daily-experimental daily

AL lib: (EE) alc_cleanup: 1 device not closed

This is on Windows 10 64bit using a Radeon R9 290X…

Unfortunately I haven’t seen error before
Googling
ANOMALY: meaningless REX prefix used
shows lots of Java Windows 10 graphics driver issues, including JavaFX and minecraft

The high med low lines are mine.

Can you run the ResolutionTest.bat file in the launch directory? And send what it outputs to me?

I suspect it will show the same thing. In which case it’s update drivers/update java/cross fingers…

Can you also tell me what version of java it’s running using Check java.bat

Finally if it’s the java version casuing trouble you can drop a jre folder (and the jre) into the same folder as the ElderScrollsExplorer, in which case it will use that.
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
EDIT: don’t use teh above it’s for paying Oracle customers only, use the link below /EDIT

I also notice that a number of people mention disabling AVG antivirus software can fix it
and one mentions un-installing “gaming evolved/raptr” whatever that is from AMD

The resolution test just outputs this into the console:


C:\Users\EgonOlsen\Desktop\ElderScrollsExplorer v2.25\ElderScrollsExplorer>java  -Dsun.java2d.noddraw=true -cp .\ElderScrollsExplorer.jar;.\lib\jogamp\jar\gluegen-rt.jar;.\lib\jogamp\jar\jogl-all.jar;.\lib\java3d\1.6.0-pre12\j3dcore.jar;.\lib\java3d\1.6.0-pre12\j3dutils.jar;.\lib\java3d\1.6.0-pre12\vecmath.jar;.\lib\j3d-org-java3d-all.jar;   tools3d.resolution.ResolutionTest
3D [dev] 1.6.0-pre12-daily-experimental daily

organising resolution...
[0x7FFA0F614450] ANOMALY: meaningless REX prefix used
setAnisotropicFilterDegree=0

But it works just fine. Java version is 1.8.0_25, driver is the latest and greatest. I’ve no problems running anything else with them and that includes a lot of Java/OpenGL related stuff. I’m not using AVG antivirus. Disabling my antivirus doesn’t help anything either.

Ok, if you’re seeing the spinning triangle then you are definitely past the hardest issue, the one where I give you that awful advice to update everything and hope. (sorry about that).

I’ll put a new version up on the download page later today with more debug output.

I’m wondering if it’s a stencil or depth buffer issue somehow.

Can you do me another favor?

Java 1.7 and 1.8 is troublesome for Java3d/JoglPipeline, can you unzip this jre


into the ElderScrollsExplorer folder
edit the ResolutionTest.bat file so on the second line the starting java becomes jre\bin\java

Then run ResolutionTest.bat and click the Props button and send me the output

(That button will crash with Java 1.8 )

If you want you could give ElderScrollsExplorere.jar another go too, it will use the 1.6 jvm.

Thanks for your patience on this…

Now I think about it perhaps I’m asking the wrong questions entirely!!!

I’m so used to 3d problems I didn’t even check where you are up to.

Once you click Skyrim the bsa files and the esm load up (as can be seen in your output)

Are you then looking at a screen like this? Possibly behind the display window.

If not then the problem is not graphical (woo hoo), and I’ll still be making a debug version

If so did you click one of the items in the table?

I’ll try with the older Java version later today. And yes, I’m seeing this table populated with all that stuff. I don’t remember if I’ve clicked on anything inside it though.

Cool, it loads up the Cell you select, generally an INT cell is a lot smaller adn faster to load.

Don’t bother with JRE 1.6 until you’ve seen what happens when you click a cell.

The 5 labels at the bottom light up based on what it’s doing so if any of them is red then it’s still loading.

Wow, this is really impressive, and great job! ;D It’s also really nice that it’s opensource as well.

OK, clicking these entries does…something. It renders a scene now, but I’m not sure if it’s looking correctly. No matter what I click, it looks more or less like this: http://jpct.de/download/tmp/es.jpg. Depending on the clicked entry, I can see some model in the center of the scene. But I’m placed inside of it most of the time, so all I’m seeing are some polygons’ backsides.

That fantastic, it looks like it working as it should.

However you have to be somewhere sensible for the world to look right. Generally it’s best to use doors to change from one cell to another as they place you at the exit door.

So the best place to start is Cell 60 (Tamriel). If you click that and you at at 0, 0, 0 you’ll be in the sky above some giants able to see white run.

First click on the display and pres tab to enable mouse look (tab again to release your mouse).
You can look around.
Now press F to freefly ( allow up/down and go through walls) and hold Z until you are very near the ground (Q to go up again)

Once you are down near ground press F again and the physics will drop you happily onto the ground.

Use the same system whenever you are behind the walls etc.

Then you can walk around and open doors and gates and generally look around. (use E to move fast).

There’s more info in the user guide available from the menu bar.

Thanks for sticking with it, I’m pleased it works on your machine.

Egon,
Thanks for the feedback, I see now I’ve been coding it too long and assume a lot.
I’ve made a small update so it automatically loads the primary cell and puts you some where interesting, if it’s the first time you’ve run the engine (code?).

Didn’t work for the first time, but seems to work somehow now…I’ll test it some more and report back.

Yep, works fine now! It’s a little choppy and I had to increase the mx to 1800mb to be able to travel a littel further without running into constant garbage collection stalls, but apart from that it was fine. I remembered quite a few locations from my Skyrim playthrough from 4 years ago and I walked around until I found the birch tree woods, because I liked them so much in Skyrim.

Just out of interest: What’s the actual purpose of this? Is there any apart from having fun doing it? Is this a tool for something?

That’s good to hear.

I’m surprised you managed to up the memory, what with my convoluted bootstrapping system (so it’ll run on OSX out of the box, and do auto updates).

I love game design, but I discovered many years ago if you didn’t have the source code for the engine and a massive pile of art assets game design is just pencil and paper. So I embarked on making and engine to allow me to make a game.

Now I’ve got it this far my plan is to turn my attention to the actual game-play.

But I wanted to offer my code to other devs in case it helps some newer (or older?) coders to get past the thousands of brick walls one faces.

Anyway thanks again for checking it out, please do send through anymore thoughts/problems.

really really interesting and opensource, well done!

JOGL works flawlessly with Java 1.5, 1.6, 1.7, 1.8 and 1.9. Java3D is to blame. Please be accurate.

Edit.: Some virus scanners wrongly report an executable used within JOGL 2 as a virus, sorry for the disturbance.

A fair point, modified for accuracy…

This looks so cool!

Sadly, I don’t have any Bethesda studio games, but, this is incredible!

Thanks dentmaged. I’m working hard to make the Fallout 4 world exploreable and nice looking.

You really should play the Bethesda games ;D especially Morrowind (though these days it looks to awful to play)

I think they’re great and the old ones can be bought cheap these days, sometimes.