Twitter  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 2011-09-13 14:21:43
Homepage: email:one at onemanmmo dot com
Never mix data from more than one code path.

I've had a problem with my lighting for a while - I get ugly bright streaks where world blocks are stitched together. I knew there had to be some problem with the normals (I'm using simple n dot l lighting for the world) but when I looked at the code, I just couldn't see the problem.

Some of the lighting normals are precalculated, some are calculated at runtime. I did this to keep the size of the data down. With all the normals in the data, the size of the world data grows from 363MB to a whopping 1.46GB. Way more than I wanted to have to pay for people to download. Precalculating some of the data ahead of time and some at runtime shouldn't be a problem, however I had two different code paths that calculated those normals. Hmmm.
By Robert Basler on 2011-09-08 19:00:30
Homepage: email:one at onemanmmo dot com
I've had a rendering bug that has persisted for a long time. I've tried a number of times to track the bug down, but no matter what I did, after my game had been running for a long time, the scene geometry would freak out with polygons poking out all over the place. It kind of made the game look like a crazed porcupine.

I use VBO's for my rendering. They contain either indices or vertices. I only had one VBO for each and had coded my renderer so that the VBO's would reallocate and expand whenever they needed to. The expansion code was sort of slow since the VBO's needed to be repopulated with vertex and index data and then transferred to the GPU whenever they grew. My thought was that I'd find out how big they needed to be during development, then set the starting size to that so they would never actually need to expand at runtime.

For a long time I had known that the graphical corruption always occurred shortly after a VBO grew so I figured there was something wrong with the code that did the expansion. I debugged and checked and checked, but no matter what, I couldn't find a problem.

Finally last week I had a breakthrough. I set the VBO's to huge sizes so they wouldn't have to ever grow, and to my great surprise, after a long time running, the porcupine came out to play. My assumption was wrong! It wasn't growing the VBO's that was the problem!
By Robert Basler on 2011-08-22 13:51:47
Homepage: email:one at onemanmmo dot com

I had reason to revisit the games I worked on at EA this week. EA has a policy that defines who gets into the credits for a game. While you can see my work in all of these games, I didn't get credit for all of them. (My first official game credit was FIFA Street 2 - Woo!) Anyway, here's the games I worked on:

By Robert Basler on 2011-08-21 23:02:09
Homepage: email:one at onemanmmo dot com
The summer is a challenge for a home-based entrepreneur. With my daughter home from school, I don't get the several-hours-long block of uninterrupted time I need to focus on development each day.

We did two trips this summer. Since I'm feeling the pressure to get my game out the door, I felt I needed to work through both of these "vacations". That didn't really work out.
By Robert Basler on 2011-08-11 00:12:13
Homepage: email:one at onemanmmo dot com
Today I had my first ever working multiplayer session. Up until now I've been testing all my technology with just one client hooked into the servers. But today, I logged two clients in, then I had guys moving around on one machine perfectly synchronized and moving on the other PC. It is so awesome to finally see it all go. Networking is working, time synchronization is working, replication is working, camera's working, I still need to do some work on interest management, but it finally looks like a real game. Making a 2, 4 or even 32 player game work is challenging, but it is an entirely different thing to see the technology I've built to support 100,000 players running. Whee!

Tonight I got invited to a Microsoft Studios party for a new studio starting up in Vancouver. They're recruiting, and the way they describe what they're doing, it sounds like a whole lot of fun. It seems the new studio is largely populated by my old buddies from Fusion, so it was great to see so many of them. Fusion was one of the most enjoyable periods in my career, so that they seem to be doing the same thing again is really interesting. I also saw a lot of people I know from EA (and who are still working there.) It had an open bar and I got a nice new 343 Industries branded 2G USB drive and a Microsoft T-shirt. They're not saying what they're working on, but I'll bet you're going to play it.

Now if my ears would just stop ringing…
Read more... (0 comments)
By Robert Basler on 2011-08-09 23:44:38
Homepage: email:one at onemanmmo dot com
I haven't really talked about networking at all on the blog. That might seem a bit odd given that I was a 'networking guy' at EA. There's no conspiracy here though, the simple fact is that my networking code was done and dusted before I tackled the blog in earnest and I write about what I'm thinking about. Networking is a big topic, so there'll probably be other articles later.
By Robert Basler on 2011-06-25 01:21:09
Homepage: email:one at onemanmmo dot com

One thing that bothers me about writing a MMO is that one day, it will be gone. SOE announced they will be shutting down Star Wars Galaxies yesterday which got me thinking. So much effort went into developing that game, players played it for years, and as of December 15, it will all be gone. Just like The Matrix Online, FIFA Online, Tabula Rasa, and so many others. Sure, from time to time a MMO comes back, Hellgate, APB, but usually once they're gone, that's it.

I have programs I worked on 25 years ago that people still use today. And nothing is preventing them from running another 25. A MMO is a different beast.

People ask the developers to open-source the servers, but often that isn't practical. The company might be closed with nobody to do the work to get the program ready for distribution. The servers might use licensed code or components that can't be made available and are expensive to strip out and replace. Perhaps the game technology is running other games and security is an issue. In many cases the servers are simply big and complicated and require experienced people with a lot of game-specific knowledge to build and maintain.

I do think its cool when people decide to write their own replacement servers like SWGEmu which brings back the old Star Wars Galaxies.

I'm not sure what I'm going to do about the inevitable future of my game. Something to think about.

Read more... (3 comments)
By Robert Basler on 2011-06-21 00:07:52
Homepage: email:one at onemanmmo dot com

Four weeks. Four-freaking-ever. That's how I'm feelin'. Tooooooo long. But pathfinding is running! It is glorious to finally see things move!

I implemented the A* algorithm which works really well for finding optimal paths. Here are some things you should consider if you are implementing A* pathfinding:

By Robert Basler on 2011-06-04 00:01:45
Homepage: email:one at onemanmmo dot com
Project Line Counter is super handy, but it hasn't been updated since Visual Studio 2005. Here's how to get it to work in Visual Studio 2010…
By Robert Basler on 2011-05-30 12:31:45
Homepage: email:one at onemanmmo dot com
So I drink Coke when I work. That's about as relevent as this post is going to get, but this is so mindboggling I had to share.

I have a case of 24 Coke in my 70 degree crawlspace that nobody had touched in a week. There was no visible damage on the case. It had a 12-pack of Coke Zero on top of it. I'd taken four cans out of it so far. When I went to get a couple more cans out of it on the weekend, I found the case was full of Coke - not in cans. Damn.

Digging the cans out of the Coke-soaked case, I found this can which blew my mind. The pictures are exactly as I found it (other than I rinsed the remaining Coke out of it.) Check out the ends of the vertical rip, those are horizontal tears. This Coke exploded. Yet the top and bottom aren't bulged. I never would have imagined a Coke could burst like this.

I'm glad nobody was holding it when this happened.

CokeExplodesSmall1.jpg CokeExplodesSmall2.jpg

You can click on the images for the full-resolution images.

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)
Enabling NVidia GPUs on Optimus Laptops - 2014-12-03 02:31:40 (4 comments)
Looking for a Fast Square Root - 2012-03-29 11:19:56 (4 comments)
Map Ownership HUD - 2016-08-02 22:49:17 (0 comments)
Early Access Week One - 2017-05-17 19:42:05 (0 comments)
Full Indie Demo Night 5 - 2016-09-30 02:09:45 (0 comments)
UI Updates - 2016-10-04 01:53:36 (0 comments)
Full Indie Demo Night 3 - 2015-12-16 23:55:03 (0 comments)

Recent Comments

Broken WM_POWERBROADCAST - 2021-02-20 22:45:14 (1 comments)
You'll also need this:

So What's Going On With Miranda? - 2020-09-24 10:00:32 (1 comments)
Stay strong my friend!
Automation - 2020-09-21 13:10:33 (1 comments)
Are you still developing this game ?
The Combat Update - 2020-02-12 18:13:30 (2 comments)
Thanks! Much of the work in this update was polish and there are indeed more NPC's.
The Combat Update - 2020-02-12 05:03:40 (2 comments)
Looking good m8, just coming back to this after i bought t some time ago, looks more polished and interesting, are there more enemy mobs now ? do you have a constant onlineplayerbase now so world is more active ?
|<      <<      25      26      27      28      29      30      (31)      32      33      34      >>      >|

  Admin Log In

[Home] [Blog] [Video] [Shop] [Press Kit] [About]
Terms Of Use & Privacy Policy