Jeremy's blog

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.

The new Ardor3D client

The new ardor3d client

Chase
A chase in the ardor implementation

Mmmm, artwork

It's fantastic what some nice art can do for enthusiasm and apparent quality.

Screenshot from the new model converter.

Lets start again

Well, I've done it again, thrown away the old code and started afresh. There were some big mistakes in the last version. Lesson learned. I'm looking at ardor3d this time as the rendering engine. I'm currently working on the 3ds max converter. I'm managed to get hold of some models from 3drt which has given me some motivation Smiling.

Progress

Well, shield effects are in, which means collision detection is in too. I've also managed to reduce the lag spikes that were happening when using a proper server.

Unfortunatly, I've also managed to 1/2 the frame rate with the addition of then new effects and the collision detection routines Smiling

I've also added 'wasd' controls, just do the same as the cursor keys, but it was requested and easy Smiling. I've also added the stabilisor function. If you are out of control, press and hold 'T' until you feel ready to take control again.

.

Barrel strike sparks the shields
Crashing in to a barrel and lighting the shields up
XML feed