:: The story of a lone developer's quest to build an online world
:: MMO programming, design, and industry commentary


The One Man MMO Project

By Robert Basler on 2012-12-18 00:19:10
Homepage: www.onemanmmo.com email:one at onemanmmo dot com
I'm not a great artist. I did some drawing classes a few years ago which I quite enjoyed, but I didn't produce too many masterpieces -- although I liked this one:

chalk.png


I am decent with a camera -- I was working the macro lens a couple weekends ago shooting some kitchen items to try as textures. Sugar looks like diamonds, and icing sugar looks like weird rock formations. Shortly afterwards I found cgtextures.com which is an amazing resource for textures.

You may be able to tell, I've been having a whole lot of fun the last few weeks. As a programmer I was surprised at how wonderful and satisfying it is to put art into a game engine. It's not something I really got to do working on game engines at EA. With the new art in place, a couple weeks ago I took the first screenshot where I excitedly thought "I could show this to people and they wouldn't laugh!"
By Robert Basler on 2012-12-01 19:32:35
Homepage: www.onemanmmo.com email:one at onemanmmo dot com
If you haven't already, check out Part I.

Things have been quiet on the blog the last couple of weeks but there has been lots of exciting progress behind the scenes. I purchased World Machine and modified my terrain import tool to read the beautiful World Machine height maps as well as its flow, deposition and wear maps.

I've increased the terrain heightmap resolution from 10 metres to 2.5 metres, and the improvement is startling. There is now lots of fine detail on the heightmap which makes it much more realistic and interesting. The rolling hills are officially retired.
By Robert Basler on 2012-11-28 23:22:55
Homepage: www.onemanmmo.com email:one at onemanmmo dot com
I'm working on optimizing my terrain processing program a bit. I figure with the current process it goes through it will take a whopping 9 days full-tilt to process my terrain data. So I got out AMD CodeAnalyst to see what was taking the time. I was shocked that CodeAnalyst reported that my app was spending 91% of its time waiting on spinlocks.

I didn't believe it. But that didn't mean I wasn't going to check.
By Robert Basler on 2012-11-05 21:02:09
Homepage: www.onemanmmo.com email:one at onemanmmo dot com
I was debugging a texture settings bug when I got this cool looking result:

PsychedelicBug.png

Read more... (0 comments)
By Robert Basler on 2012-11-04 01:04:26
Homepage: www.onemanmmo.com email:one at onemanmmo dot com
It's a milestone. I'm working on my final rendering feature! With gamma correct Ambient/Diffuse/Specular throughout the world, hardware particles for effects (got those working a couple weeks ago) and some lovely shadows, I have but one big rendering issue left to address: Terrain 2.0.

My current terrain is a 300x300km USGS heightmap with 10m between samples and wang-tiled splatted textures, and it makes for beautiful rolling hills. But that isn't super-interesting as a play-space.

I took a couple days for hard thinking -- the hard thinking primarily due to the one big requirement I refuse to give up: a 300x300km terrain. It is amazing how many features go from simple to unwieldy when you scale them up.
By Robert Basler on 2012-10-16 12:11:56
Homepage: www.onemanmmo.com email:one at onemanmmo dot com
Despite the hype, there's no doubt that Windows 8 Metro is just a regular Windows Desktop application. I was playing around the Windows 8 Consumer Preview and I tried Aurora Suite 2005, which is an accessibility program for Windows, when this happened:

MetroIsJustADesktopAppOneManMMO_small.jpg


Made me laugh seeing a standard Windows Desktop app running on top of Metro. I can click on the icons, and bring up the Aurora Suite menus, but as soon as I open a dialog, it switches back to the desktop. Aurora Suite uses Windows' HWND_TOPMOST feature.
Read more... (1 comments)
By Robert Basler on 2012-10-14 00:21:07
Homepage: www.onemanmmo.com email:one at onemanmmo dot com
I've known for a while that my graphics renderer wasn't gamma correct. Up until a couple years ago, this wasn't an issue, then somebody noticed that we've all been doing lighting calculations wrong for the last 20 years. You've probably heard of gamma. In effect it is a brightness adjustment. Without gamma correctness everything renders a little too dark.

Textures typically are in a color space called sRGB with a gamma of 2.2, lighting is done in linear space (gamma of 1.0) and the screen most likely has a gamma of 2.2. The idea with gamma correctness is to make sure that the input textures and colors are converted to linear space before they are processed with the lighting in the shader, and that the result is converted back to gamma 2.2 when it is sent to the display.

Thursday evening I discovered this excellent OpenGL tutorial which explains most of what is needed to implement this in OpenGL. There were some details missing, so I'll fill those in here.
By Robert Basler on 2012-09-26 14:34:29
Homepage: www.onemanmmo.com email:one at onemanmmo dot com
The software particle system is running. Here's a screenshot of the oil fire effect I've been using to debug the particle system. It looks quite good when it is moving although there are still a few things I want to add to it. Particles at the bottom go from yellow to red to gray so if you cover the bottom quarter inch so you can't see the particles appearing (which will be done in the game,) it looks like a pretty convincing fire. It was fun finding reference video on the internet. Looked at a lot of oil well fires.

MMO-1 - Particle Oil Fire.png


I can't believe how many adjustments are needed to make a particle effect. I would get one thing looking good, then something else would look bad. First there was popping when particles hit the end of life, so I added a fadeout. Then it didn't look very realistic with just one particle texture, so I added animation. Then there was visual popping as the particle textures transitioned between animation frames so I added fading between animation frames. Then I noticed that particle creation was sort of "clumpy" where there would be a lot of particles created and then a pause, which made the bottom of the fire look like fireworks, so I had to distribute that more evenly. And on and on.

Soft particles are working, I implemented a simple depth check linear fade, not the fancier function from the NVidia paper, but they don't come into play in this screenshot.

Shadows are working, however it looks odd when particles disappear since there's no alpha in shadow mapping so where a particle fades out, it simply pops out in the shadow. I should be able to mitigate that with higher numbers of smaller particles so the popping isn't as obvious.

I haven't done any lighting on the particles yet but I'm going to tackle the hardware accelerated version of this next.
Read more... (0 comments)
By Robert Basler on 2012-09-20 23:23:04
Homepage: www.onemanmmo.com email:one at onemanmmo dot com
Today there was a bug. A bad one. I was trying to use a 4-byte RGBA color value as a vertex attribute to tint the particles in my new particle system. It worked if I set the value manually, I tried a bunch of different colors: red, green, blue, black, white. Those colors worked perfectly. The real color values were supposed to lerp from one keyframe to the next. That totally did not work. If I didn't set the color, the particles were magenta, or sometimes cyan. I checked the lerp calculation, that was good. I checked the conversion from 64-bit color to 32-bit, that had a bug so I fixed that. I looked at the vertex and pixel shaders. They were super-simple so nothing there to be messed up. I checked the color data in the game versus the data in the VBO on the video card with GDebugger and Windows Calculator. The data was identical. I was at a loss.
By Robert Basler on 2012-09-11 18:53:26
Homepage: www.onemanmmo.com email:one at onemanmmo dot com
Really interesting talk on the graphics in Battlefield 3 by Johan Andersson, the Rendering Architect at DICE. Parts 2, 3, 4 have the most "meat". There are sections on lighting, post processing, terrain, particle effects and more. For those not entirely into rendering, he breaks down all the passes that go into a single frame in part 4 (there are a lot.)

Parts: 1 2 3 4 5
Read more... (1 comments)

More Posts

Project Line Counter in Visual Studio 2010 - 2011-06-04 00:01:45 (3 comments)
A Chrome UI - 2011-04-07 10:28:46 (3 comments)
Happy MMO Easter - 2011-04-22 16:17:59 (1 comments)
Looking for a Fast Square Root - 2012-03-29 11:19:56 (4 comments)
Shazam! - 2010-01-15 12:58:21 (0 comments)
Elevator Pitch & Entitlements - 2014-09-15 01:54:43 (0 comments)
Happy Anniversary! - 2014-11-11 16:52:54 (2 comments)
City of Fire - 2014-02-15 17:59:05 (0 comments)
Windowed Fullscreen - 2014-08-07 13:26:33 (0 comments)
New Screenshot: In Search of Prey - 2014-05-12 13:56:13 (0 comments)

Recent Comments

Enabling NVidia GPUs on Optimus Laptops - 2015-04-21 11:36:42 (3 comments)
// For AMD Enduro this should do it on 13.35 and later drivers.
__declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
A Chrome UI - 2015-04-21 01:33:26 (3 comments)
Berkelium isn't maintained anymore, might want to consider Chromium Embedded Framework instead. I'll probably switch at some point since drag and drop is broken in Berkelium.
Combat Debugging - 2015-03-17 15:01:24 (1 comments)
Signed up for the email list, still very interested in this project
Hiding in the Flowers - 2015-03-15 15:06:47 (2 comments)
Hey Tripleskit, your answer is here.
Hiding in the Flowers - 2015-03-15 13:01:43 (2 comments)
When will this game be accessable for open/close beta/alpha
|<      <<      4      5      6      7      8      (9)      10      11      12      13      >>      >|

Admin Log In



[The Imperial Realm :: Miranda] [Blog] [Gallery] [About]
Terms Of Use & Privacy Policy