Distribution method

I keep getting messages about lwjgl not being present in the java.library.path, so I've decided to drop webstart. This weekend I've been investigating options. I've decided to use getdown, it's been used by others and seems to work. It's just a download/update manager really, but it's nice and customisable and a small initial install (obviously you already need java installed).

Then I looked at how to launch the thing. I've decided on a shell script for unix and a windows exe, this means I need an installer for the download/updater, so I've got izpack working. I'm not totally happy with that as it doesn't create shortcuts on anything other than windows, so I might change the installer, but the rest seems to be working.

About time

Well I've finally updated the main playable demo (Executable jar installer), it has all the ships and guns loaded, with some movement, and allows the player to move around inside the scene. More work to do yet though.

Another update

Wow, 2 updates in a month :)

The webstart demo now loads all the ship models, keys 1-4 enable/disable features of the shader, if shaders are not supported it should fall back to normal fixed pipeline rendering (diffuse only).

If it crashes, it should send a stacktrace so issues can be fixed nice and quickly.

Jeremy

May 2011 Update

Well, it's been rather a long time since I've posted, but here is the news.

I've done a lot of work on the background generator, completely rewriting it to not us shaders, it now uses CPU only, but will work with multiple threads. I think the new backgrounds look quite nice.

I've also been playing around getting GLSL shaders working for normal mapping, specular mapping and illumination mapping.


This is the basic model with normal mapping


Normal mapping plus diffuse map


Added specular mapping


Added in the illumination map.


This one shows some more of the details in the specular map


More of the detailing in the specular map.


Obligatory moody shot with the illumination map highlighted.

That's all for now :)

Jeremy

Starfield demo done

I've tweaked the starfield demo so that it renders everything except the point and billboard stars to texture and places then inside a sky box. This brings the framerates back to something useful Smiling.

Feel free to watch endless randomly generated starfields every 20 seconds here Smiling

Backgrounds coming on.

Well the backgrounds are coming on nicely. I've done some tidying up of the shader and parameterised a chunk more. This means I can pseudo randomly generate more of the content. I've posted a demo that changes sectors every 30 seconds. With the current framerate I guess I'm going to have to render to textures, then splat that on the skybox. Some of the generated backgrounds look kinda nice Smiling

Mmmmm, generated backgrounds, now what was the seed for this one....
 

First layer of nebula.

Well, it's been a very frustrating 10 days or so. I've gone from knowing nothing about perlin noise, simplex noise, GLSL, pixel and vertex shaders, to knowing more than I wished to and still being totally confused.

First layer of noise for nebula
View of the whole universe (you'll be inside looking out)

I started trying to get generated content in to darkvoid with some simple stars as noted in my last blog entry. The next step is to add in some nice nebula effects. I knew I would need some noise for this, a lot of complex generated content uses noise somewhere in the algorithm, clouds, water and even whole planets.

I had assumed this would be fairly easy. Ardor3D has noise classes in it. I first tried to use the 3D simplex noise, but found that creating 3D textures to apply to spheres failed. I knew there were GLSL shaders around that did what I wanted to do, so I figured it was time to learn something new (which is why I do this!!).

I managed to find a few examples of shaders for generating noise, but they were either broken, in C, or had issues in the maths that caused odd artefacts in the output.

I eventually managed to persuade a shader I found from the author of simplex noise demystified , unfortunately I didn't understand it and I got several problems with the output.

I spent a few days playing and finally managed to come up with a solution, so I now have Java using Ardor3D and GLSL to produce some noise, added a bit of fbm and I'm now happy with layer 1 of the nebula. Watch this space Smiling

Progress

It's been a while since I updated this dev blog. Since then I've been working on a few things, I have a shiny new error reporting system, so all exceptions should get reported automatically online with debugging information. Secondly, I've been working on a procedurally generated starfield. I uploaded some new backgrounds. To get a good resolution they were coming in at around 30meg each, so I decided it was time to generate my own.

I've done a lot of reading, on starfields, coordinate systems, noise generators, randomness and pixel/vertex/geometry shaders.

I've got an early prototype up and running, currently it just has some background stars and a few brighter ones, next I'm on to generating nebula and masks to give some more interesting looks.

Starfield
First prototype from generated starfield

This shows the starfield from the inside, as it will appear in game.

Starfield zoomed out
All stars showing

This shows the starfield zoomed out so the whole thing is visible

One key thing is to make sure each sector has a different starfield generated for it, but that each visit to the same sector gets the same starfield generated.

We'll see how it goes Smiling

New flight mechanics demo

Fleet
 

 
Well I finally got it playable. This is just a little demo of the flight mechanics (no shooting, no multiplayer, no collision detection). There are some other ships and a few weapons (to look at) as examples of the art work I've got to play with. The controls are all detailed on the play now page.

Enjoy Smiling

Progress

Made some reasonable progress today. Players can now move about the scene. It's not flying yet, lots of physics to do first, but it's movement. Got a little location readout on the screen too, it's easy to get lost if you don't know where you are Smiling.