Jump to content

  • Log In with Google      Sign In   
  • Create Account

Nick's Corner

Quick Update - Texturing Sucks

Posted by , in Pigment, Quick Bits 27 May 2012 - - - - - - · 848 views
Just a quick update to reassure you all that work is still progressing. Unfortunately I'm working on a lot of things at once right now which means very little in the way of screenshotable material has come out in the last week or two. I'm also working on a massive deadline for my PhD, so I've had less free time than usual.

What have I been working on?

Octree space representation and working around floating point inaccuracy

Brightness-based culling method

Combining deferred rendering with procedural textures in a (hopefully) efficient way

Parametric Planet Texture Generation.

But yeah, none of this is at a displayable stage, but expect a load of in-depth and wonderfully graphic dev journals over the next couple of months.

So I created a universe with 10,000,000 stars today...

Posted by , in Musings, Quick Bits, Pigment, Game Programming 09 May 2012 - - - - - - · 1,101 views
mygoditsfullofstars, 2001, space and 4 more...
Surprisingly it actually kept running interactively without stuttering for about five minutes before crashing. According to google our galaxy contains about 300,000,000,000 stars which is only 30,000 times more than what I've got! Not bad, if I do say so myself. Of course, really this is a limit on objects in general, as my universe won't just be made of stars. There'll be planets, asteroids, rings, nebulae, supernovae, etc.

Looking at the stats it took up approximately 12 gigabytes of RAM. I can probably optimize that later a little bit. Not to mention the fact that probably only 1/100,000 of that was on screen at any one time (draw distance was set to about 10,000km), so some sort of off-loading to disk would be best too. Maybe I'll work on that next, I've never done compression before - could be interesting. Anybody out there know any good articles on compression techniques?

Might publish a proper journal entry tomorrow about the gravitation system and the octree, if I have time. I'm also meant to be going to a ball with my girlfriend.

And a video

Posted by , in Pigment, Quick Bits, Media 08 May 2012 - - - - - - · 827 views
pigment, video, orbit, physics and 1 more...
This is a quick video I made of the spheres moving about and gravitating with each other.

I think in my next journal article (not tonight I'm afraid, I'm bogged down with tons of real-life work) I'll go into how I'm calculating them all. For the impatient I'm essentially using Barnes-Hut with my own implementation of an Octree. Each item performs pairwise gravity calculations which each other item in the octree node (each node has a capacity of items, I've set it to 3 currently) and then performs pairwise gravity calculations with the surrounding nodes themselves. The nodes accumulate the total mass of their children, so as to be a rough estimate for the amalgamation of gravitational forces in that region. This means that, roughly speaking, each item gravitates with every other item.

And lo and behold, the video:


Bear in mind, I've artificially forced the spheres to be much closer together than they would be in real life (space, if you might know if you recall your Adams, is big. Really big), this is so that their motion is noticeable.

I'll talk about some of the issues present in the video (such as motion stuttering, a couple of LOD meshes with inverted normals and a bit of flickering here and there) in the next journal entry too, rest assured - I am aware of them.

Hello Universe

Posted by , in Pigment, Quick Bits, Media 08 May 2012 - - - - - - · 702 views
graphics, pigment, hello
I figured Hello World was a bit of a cliche these days, and since I'm working on a procedural space game, I figured Hello Universe would work better.

So I'll start by introducing you to my game. I call it Pigment.

Pigment is a game in which you fly among the stars, mining asteroids, trading, building factories, upgrading your ships and meeting interesting AI. I haven't gotten anywhere near AI yet (it's still a scary blob in the future), but I hope to make characters that you'll actually want to play with and keep alive. And I'm going to try to make those procedural. We'll see what happens along the way.

I'm also very new to games programming in general. I did a course on Graphics Programming two years ago as part of my BSc in Computer Science, but it was at an unfortunate time when everybody seemed to be translating from fixed-function to shaders, and we got taught the dying art. I have a long history of loving games, I used to make amateur levels for Unreal Tournament and UT 2003, and 2004 and did a bit of level design for the mod UnWheel (if there are any really ugly levels in there - you can bet I made them). Since then I've come to realize that design just isn't my thing, and so I've set out to create a graphically simplistic universe although it will be filled to the brim with pretty shaders because I love shiny things.

So, what's the story so far? I have a system which creates approximately 10,000 stars in random positions. I'm organizing them with an octree and I calculate gravity for each of them and move them all about in relation to each other using newtonian physics. In this game, there are no static objects.

I have just finished my post processing framework so I can add and remove shaders on the fly. It's based off of this, but a little more simplistic and specialized for my engine (although so far it works incredibly well, and is fantastically flexible).

And now that the framework is finished and working, I've begun writing some nice post-process effects. Currently I have bloom and depth of field blurring in there (although I want to modify the latter to use bokeh) and I have the following on my to do list:

Motion blur
Lens flare
Color aberration

Then after that I hope to put in fog volumes to simulate atmosphere and work out a better distribution algorithm for stars. Currently my stars are just placed randomly, I need them organised into galaxies.

So, what are my influences? Dwarf Fortress, Infinity: The Quest For Earth, the X series, Minecraft, Lego, Tribes: Ascend, Freelancer and, naturally, Elite.

So I present the culmination of approximately 1 year's worth of on-off work:


Attached Image