-->
Recent Projects:
Current Project:

Exceptional Journals (in no order): [Eliwood] [Steve Healy] [Ravuya] [Mark the Artist] [Scet] [Ysaneya] [Mayan Obsidian]
My Personal Website
 Shine! Shine! |
Posted - 3/24/2009 10:10:06 PM | More pretty lights
My main beef with my initial results was that many of the shadows looked kind of blocky, which killed a lot of potential realism (see previous entry). I realized this was because of two factors: the lumels (the 'pixels' of the lightmap texture) were large, and that if the change in brightness between two adjascent lumels is large enough, the blocks will be visible to the viewer. Therefor, my options were either to make the lumels smaller, or decrease the change in brightness between adjascent lumels.
Presently the entire lightmap for a level is stored on one 256x256 texture, and each lumel is 8x8 units. To give you an idea of relativeness, each tile in the world is 32x32 units. I really like how small this keeps the memory footprint, so I didn't want to change the lumel size. Instead, I opted to apply a smoothening algorithm to reduce the sudden changes in brightness between lumels. This was a little tricky, since a lightmap for a level might look something like this:

As you can see, there is no real sense of "adjascency", since no planar relationship between faces is preserved in the final lightmap. This means a simple smoothening algorithm would cause artifacts near the edges, where two faces meet, since the smoothening is done independently from each adjascent edge. And, well, this problem is apparent in some of the screenshots if you look for it. I'll keep an open mind about solving the problem, but failing that, I intend to work around it as best I can. It's an inherently tricky problem to solve, given how the data is presently managed.
Without further ado, here are some shots which showcase the aforementioned features:
  
Other additions include a desk model, a better wood texture, and a coffee-coloured tile texture. Not AAA quality, but it's a level of quality that I'm mostly satisfied with for the project. My current toolset is GIMP, Blender, and KolourPaint; I'm hoping to improve my art as I continuously get more practice.
Until next time. 
| |
 Cyberspawn creeps out from under the bed... |
Posted - 3/23/2009 10:30:53 PM | It's been far too long of a while since I've written here! I feel like I need to get my writing muscles back into shape, so please excuse me if this first entry is a little rough around the edges. 
Cyberspawn? What's that?
A rather long while back, nearly a year ago, I wrote about a small scale first-person shooter project I had undertaken. At that time it was using a renderer I had implemented in software, and it looked sort of groovy:
  
I didn't really discuss it, but the basic premise for the game was to blur a little of the lines between cyberpunk greats such as Shadowrun and Deus Ex. The player was to take on the role of an amnesiac freelancer in a dangerous city, trying to determine what went wrong with his last job, and who he has to eliminate to set things straight. The story might not be entirely original, but it's general enough that I would have a ton of room for artistic maneuvering. My goal was to spruce the storyline aspect up, with elements like Morrowind-styled conversations, and flexible inventory/implant management. Things got busy with Skirmish again, however, so Cyberspawn went to the backburner.
Recently motivated to try and get Cyberspawn going again, I loaded up the ancient code, blew off some proverbial dust, and went to it. My first order of business was to add some more level features. Two such things were sloped floors and stairs, which I'm thrilled about . I also changed the rendering system; I broke it down by making each level a list of sectors, and each sector a list of faces. Each face could then be rendered, with all of the pre-computation (there's a bunch of sector-touching-adjascent-sector logic to make things look right) done on boot-up.
Anyways, the most important part was when I had the level essentially broken down into a big list of faces. Because of the nature of how it works, this put me in a position where a certain feature, lightmapping, would not be a stretch to implement. I won't go into the details of how lightmapping works in this post, but can discuss it later if there is any interest.
The important part is that lightmapping is something I have wanted to implement for a *long* time. Lighting is such a HUGE part of making a 3D game look proper; levels almost look freakishly boring without it. For example, these shots look boring, right?
 
Sprinkle on some lightmaps -- even just these basic ones -- and things start to look much prettier. 
 
The current lighting model is very simple. Quadratic fall-off for light attenuation, and collision detection with the map to create shadows. Radiosity is still out of reach for the moment, but it is yet to be seen whether this model is good enough for the game.
Now, armed with features like stairs and lightmaps, I am very eager to start working on the actual game. This will mean teaching myself to model better, as well as use tools like GIMP more effectively to create game art. While I've always leaned heavily on my artistic comrade, Dean, for artistic assistance, I'm very excited to tackle the game art on my own ground, and try and learn how to create an immersive experience from both sides: the code and the paintbrush. 
Stay tuned for more updates.

(PS. I have erected a small development gallery for Cyberspawn, for anyone interested in gleaning the history of its progression.)
| |
"Good night, Monster Land."
"Good night, brave warrior."
|
| S | M | T | W | T | F | S | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | | | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | |
OPTIONS
Track this Journal
ARCHIVES
August, 2009
July, 2009
June, 2009
May, 2009
April, 2009
March, 2009
February, 2009
January, 2009
December, 2008
November, 2008
October, 2008
September, 2008
October, 2007
September, 2007
August, 2007
July, 2007
June, 2007
May, 2007
April, 2007
March, 2007
February, 2007
January, 2007
December, 2006
November, 2006
October, 2006
September, 2006
August, 2006
July, 2006
June, 2006
May, 2006
April, 2006
March, 2006
February, 2006
January, 2006
December, 2005
October, 2005
September, 2005
July, 2005
June, 2005
|