Twitter  Facebook  Google+  YouTube  E-Mail  RSS
The One Man MMO Project
The story of a lone developer's quest to build an online world :: MMO programming, design, and industry commentary
By Robert Basler on 2012-09-11 18:53:26
Homepage: 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)
By Robert Basler on 2012-09-03 00:16:57
Homepage: email:one at onemanmmo dot com
To get things ready to add the new particle system, I've been adding support for additional fields in my vertices. Previously all my vertices were the same Position/Normal/UV format. I've also been removing the use of deprecated functionality when I have the opportunity.

As part of the vertex upgrade, I wanted to replace my existing calls to the deprecated glVertexPointer/glNormalPointer/glTexCoordPointer functions with the more up-to-date glVertexAttribPointer. While reading about glVertexAttribPointer, I discovered Vertex Array Objects (VAO's.) A VAO combines all the calls you would normally have to do to set up your vertices, VBO's and IBO's into one call. I read about VAO's in the OpenGL SuperBible, but there is some hand-wavey stuff in their code that worried me. Looking into it more, I discovered glGetAttribLocation.

Vertex attributes (position, normal, colors etc) are passed to the shader via an array of integers. You can specify the integers yourself which is what the OpenGL SuperBible does - YUK! Or you can just declare your vertex attributes in the shader code and use glGetAttribLocation to find out where the shader compiler put them for you. Much nicer.

Getting the rendering to actually work however, was a huge pain. I spent a lot of time staring at a black screen in GLDebugger. There is a lot of misinformation on VAO's and I couldn't find a single example of how to use glGetAttribLocation like I wanted. So to save anyone else the pain, here's how it goes.
By Robert Basler on 2012-08-30 22:14:19
Homepage: email:one at onemanmmo dot com
I've been following the launch of Guild Wars 2 with some interest. I've played the original Guild Wars quite a bit, and have been seriously considering picking up Guild Wars 2. But not anymore. At least until they work the bugs out.

When I read the reddit thread where people could ask ArenaNet Customer Service the reason they got an account suspension, that was pretty funny - even though the language is pretty colourful.

But today ArenaNet went too far. An in-game vendor was offering one particularly good item for significantly below market value. Apparently a mistake on ArenaNet's part, (given that everything that vendor was selling cost exactly 21 Karma.) Some players bought this item from the in-game merchant. The result, from

We permanently banned 3,000 accounts of players who substantially exploited it, and applied 72-hours bans to another 1,000 accounts of players who mildly exploited it.

People bought items from an in-game vendor and got a permanent ban from their brand new $60 game for it? I'm sorry ArenaNet, that's just wrong. I don't care how many times they did it.

If it was going to mess up the economy, then roll it back, but you can't call buying something from a vendor an Exploit and punish people for it. Take some responsibility for your mistake.

I suspect someone at ArenaNet realized that they'd made a public relations gaffe banning all those players, because they have relented. They're still not taking any responsibility, but if banned players go through customer service and beg for their account back and then delete anything they got from the vendor, then ArenaNet will let them keep their account. You can read the announcement here.
Read more... (4 comments)
By Robert Basler on 2012-08-27 23:02:15
Homepage: email:one at onemanmmo dot com
I've been integrating Variance Shadow Mapping shadows into my full game engine. As expected, that took longer than expected. I have the feeling that I'm going to be tweaking the shadows until the game comes out. There are a lot of adjustments. Shadows are not an exact science by any means.

My first question was "where do I put the sun?" I looked at a bunch of screenshots of other games. It turns out, most games put the sun in the same place - where the shadows are most visible. So behind and to one side of the shadowcasters.

Once the sun was to one side of the camera, I found an issue - looking at the shadow map in GDebugger, the entire visible portion of the scene was rendering at one end of the shadow map with "up" towards the center of the texture - wasting about 3/4 of my shadow map memory. There was however, a surpisingly simple solution!
By Robert Basler on 2012-08-19 16:57:02
Homepage: email:one at onemanmmo dot com
I needed to have a way to take a color and change its brightness but to be sure that the color would remain true as I adjusted the brightness. I've used RGB a lot over the years so I was familiar with scaling the color components by a value, but I wasn't sure that technique would retain the color properly or that it would let me use the full brightness range available.

Researching the problem, I quickly found this Wikipedia article with a description of the HSL (Hue, Saturation and Lightness) representation of color and an algorithm for how to convert to and from RGB. The HSL color space looks like this:


You'll note that one of the axes is lightness -- just what I wanted. And it works like a charm.
By Robert Basler on 2012-08-17 23:50:49
Homepage: email:one at onemanmmo dot com
One of the things I've always liked about computer programming is that if something works, you really don't need to know how it works. Libraries work like this, quite often code samples do as well. I've been working on getting soft shadows to work, and when I started, armed with a great code example of soft shadows using Variance Shadow Mapping I was totally optimistic I wouldn't need to really understand how shadow mapping works.

Well that's out the window. I understand.
By Robert Basler on 2012-08-05 11:36:23
Homepage: email:one at onemanmmo dot com
Wow, been a while. I've been on vacation, playing with my daughter, going out with the wife. First time since my daughter was born that I can say I've seen 5 of the top 8 movies on Metacritic (or any of them actually.) Dark Knight was fun, Prometheus was fantastic, The Amazing Spiderman I saw in 2002 - it was called "Spider-Man".

There has been some small amount of progress on the game, but I tried to take my own advice this year.
By Robert Basler on 2012-07-12 19:33:03
Homepage: email:one at onemanmmo dot com
I was looking into consumer internet offerings this week and I was shocked to find there are still internet services with as little as 15GB/month and with punitive $1.50/GB overage fees. 15GB/month is about enough for email and web browsing, not much more. For someone with this type of account to give some of the popular MMO's a try, check out the cost:

Star Wars: The Old Republic25GB$37.50
World of Warcraft22GB$33.00
Age of Conan19GB$28.50
Lord of the Rings Online14GB$21.00

There's your business case for building a streaming MMO client right there. If you can get players started with a couple hundred megabyte client they'll save money, be able to get playing way sooner, and you'll save the cost of having them download Gigs of files they may never need.
By Robert Basler on 2012-07-05 11:35:39
Homepage: email:one at onemanmmo dot com
I struggle a lot with wanting to share my excitement over how things are going with all the cool things I'm building, and with my internal quality bar which says which parts of the game aren't ready to have people judge them.

Indie games don't get any sort of pass on presentation just because they're put together by small teams. Like it or not, you're competing with AAA. If your product isn't immediately visually appealing you are putting yourself at a huge disadvantage. People won't even give it a chance. Sure you can put out an ugly game and slowly build a following with amazing gameplay, but you're putting up a significant barrier to casual interest. Look at all the big indie game successes of the last few years - can you think of any that weren't pretty in their own way?
By Robert Basler on 2012-06-23 16:32:57
Homepage: email:one at onemanmmo dot com
I've been meaning to talk about some of the software I'm using to develop my game, so first up: Klok Desktop time tracking software.

Working full time on my game I wanted to be sure that I was getting the hours in, and to know how much time I was wasting on things that I maybe didn't need to. I've used a few different tools over the years, none of them were particularly easy to use or provided me with the kind of simple reporting I wanted (how much have I worked on X this week/month/year?)

I've been using the demo for a little over 2 years and I continue to be impressed by it. There's no huge pressure to buy but I finally purchased my copy today. For $15.99, I think I got my money's worth. The program has some little buglets, but they continue to disappear as the author updates the software regularly. The program does charts, and exports to Excel and has some other tricks. Go check out their website to learn about all that.


Read more... (1 comments)

More Posts

Project Line Counter in Visual Studio 2010 - 2011-06-04 00:01:45 (5 comments)
A Chrome UI - 2011-04-07 10:28:46 (6 comments)
Looking for a Fast Square Root - 2012-03-29 11:19:56 (4 comments)
Enabling NVidia GPUs on Optimus Laptops - 2014-12-03 02:31:40 (3 comments)
Full Indie Demo Night 5 - 2016-09-30 02:09:45 (0 comments)
Netgear is Stupid - 2017-01-14 19:48:29 (0 comments)
The 5% Problem - 2017-06-09 17:37:09 (2 comments)
Early Bird Test Weekend - 2017-05-10 12:58:43 (1 comments)
Superweapon Testing - 2016-10-03 23:09:59 (0 comments)

Recent Comments

The 5% Problem - 2017-06-10 13:59:01 (2 comments)
Thanks for the feedback. Ideally at some point we will have enough players that there will be other players available 24 hours a day. I added Nemesis Mode to encourage players to interact with each other since often I see multiple people online who ...
The 5% Problem - 2017-06-10 04:36:06 (2 comments)
The one thing i always wanted was a persistant online world where i could build up forces, build a base and defend it and the resources i hold. Would be good if it persisted through logoff time as well which would give people something to do if not ...
I Had No Idea RTS Multiplayer is So Lame - 2017-06-06 11:05:02 (3 comments)
Since players have to be nearby each other in the world, it wouldn't work to only match leavers with leavers.

Players who play 5 games in a row without ditching will have their timer reset.

I'll think some more about the teenager problem, thanks for ...
I Had No Idea RTS Multiplayer is So Lame - 2017-06-06 05:00:57 (3 comments)
Offenses 4 and 5 - rather than just imposing a timer, which just means regular player X enters queue right now gets teamed with "leaver" player Y who queued 10/20 minutes ago, how about take another page from LoL? LoL actively partners leavers ...
I Had No Idea RTS Multiplayer is So Lame - 2017-06-06 02:58:11 (3 comments)
From Moritz on Murder Party and Claustrophobia sound awesome!
|<      <<      14      15      16      17      18      (19)      20      21      22      23      >>      >|

  Admin Log In

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