Massively Multiplayer
Seamless Open-World
Real Time Strategy

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 2014-03-29 14:55:31
Homepage: email:one at onemanmmo dot com
If you're not happy with the quality of your screen capture, just write out the frames as bitmaps then put them together after with a video tool.

Half day coding this up, tried it, crashed, then I did the math. 30FPS * 1920 * 1080 * 3 bytes per pixel = 178MB/s. That's a lot more than the 40MB/s my disk drive can do. Tried a few different things. The best I could do is about 15 seconds of video using PNG with fastest compression and 512K chunk disk writes before it runs out of memory and crashes.

Oh well, at least the game can take its own screenshots now. And I have a shiny new "crash the game" button.

Looks like libavcodec is the way to go with this.
Read more... (2 comments)
By Robert Basler on 2014-03-15 17:37:04
Homepage: email:one at onemanmmo dot com

"I've seen [formations] done really well ... but the guy did spend something like 4 to 6 months on a 2d grid working on just that problem all by itself. And he had done it before." - TheMartian

The one thing you really need to nail with an RTS is unit movement. Unit movement has a surprising number of elements that all have to come together brilliantly to produce smart looking unit behaviour on the screen:
  • Long-distance pathfinding
  • Short-distance pathfinding
  • Collision avoidance
  • Collision resolution
  • Formations
  • Steering & Animation

The Imperial Realm :: Miranda - Formations

This screenshot shows Miranda's new unit movement systems in action. I still have some work to do on collision resolution, but it is already looking pretty sweet. First, you will notice that the tanks are moving in a square formation. There are some units that are out of position because they've just gone around those buildings (you can tell from the dust trails,) but they'll all eventually get back into a neat grid layout. In the bottom left corner is the formations flyout menu ready to select one of the available formations. Once one is selected, the menu shrinks to display just the selected formation.
By Robert Basler on 2014-03-01 15:16:21
Homepage: email:one at onemanmmo dot com
I'm feeling a bit snarky this weekend since I haven't been able to try The Elder Scrolls(R) Online beta. The up-side is that I've learned a whole bunch of things about how to run an MMO Beta program that will be really helpful for Miranda.

After all the time I spent playing Skyrim, I was really excited when I saw PC Gamer was giving away beta keys on Thursday, so I hurried over, signed up for a PC Gamer account and lucky, lucky -- I got a key in the email a few minutes later. Hooray!
By Robert Basler on 2014-02-28 09:23:22
Homepage: email:one at onemanmmo dot com
For whatever reason, Ctrl-Tab in Visual Studio 2010 has been broken for a long time. You have to press Enter to select the new window to switch to it. For ages I hunted for a solution to this problem, enduring the frustration of an extra keystroke but no longer. The problem seems to involve Magnifier, but Magnifier isn't really the problem. I've read "solutions" that involve completely removing Magnifier (doesn't work.) But here is the solution I've gone with (since the problem comes back after every reboot.)

  1. <Windows Key> +
  2. Click on X to close magnifier.
  3. Profit!

Read more... (1 comments)
By Robert Basler on 2014-02-15 17:59:05
Homepage: email:one at onemanmmo dot com
[City of Fire]

I'm working on the trailer for Miranda with G'Mic and GIMP. This is a reject, but a really cool one.
Read more... (0 comments)
By Robert Basler on 2014-02-15 15:00:13
Homepage: email:one at onemanmmo dot com
I had need of a good spatial searching data structure. I found a pseudocode example for a quadtree on Wikipedia although it had a few key parts missing which is sort of inconvenient, so I've filled those out and decided to post the full C++ template code here.

This is a leafless quadtree as opposed to a quadtree which has both internal (points to children) and leaf (contain all data) nodes. I'm not yet sure what the performance implications are of the two types other than that the leafless quadtree is going to do more data comparisons than the traditional quadtree during deletion.

This is still somewhat a work in progress and there are some things I'm not entirely happy with. For example, Move could be made faster by avoiding a second search if QuickMove fails. Also see the comments above the Combine method. That said, I've run unit tests against this and can't find any more bugs in it.

The only code missing from here is my vector template used by Query. You can replace that easily enough with an STL vector or the equivalent.

If you are here looking for answers to your homework - go figure it out on your own!
By Robert Basler on 2014-01-29 11:45:48
Homepage: email:one at onemanmmo dot com
It has been a little quiet on the blog the last month. Back at the start of January I came up with a really smart solution to my movement/collision/formation/pathfinding issues which also has the gigantic benefit of reducing the bandwidth needed for unit movement almost to zero, so I've been super-busy getting that put together. I've also been thinking a lot about the viability of Free-to-Play as a business model for Miranda...

Since I started development, I've been planning for Miranda to be Free-To-Play (F2P). F2P makes a lot of sense for smaller developers. It has really solid economic theory behind it (if you're not already familiar, read up on "demand curve" and "consumer surplus") and by making a game free, you can get a lot of people to try your game who probably wouldn't if they had to pay for it.

That's the theoretical upside, but lately I've been reading a lot of articles about failed F2P games. They all had good reasons why they failed, so there is something that can be learned from them, but the statistics shared about those failed games has got me thinking that there are other forces at work in 2014.
By Robert Basler on 2013-12-31 12:18:10
Homepage: email:one at onemanmmo dot com
It's time for my third annual look at the past year.

Looking at my work log, the biggest part of my year was spent getting systems that kind of worked into final working condition, adding features, fixing corner cases, bugfixing, polishing and improving performance (I did a lot of work on loading and rendering performance.) While I thought I was mostly done with rendering last year, I still put a lot more effort into making the game pretty this year. I added more normal mapping, distance fog, smoke to damaged units, dust to moving units, a sandstorm effect, two factions worth of buildings (21 of them,) 23 rocks, fields of flowers, the sky, distant terrain rendering, a rusty container-ship setpiece, color correction and heat refraction post-effects and at long last: rubber-band rendering for the mouse. Adding Object culling was the biggest rendering performance win.
By Robert Basler on 2013-12-12 11:41:49
Homepage: email:one at onemanmmo dot com
For some time now I've suffered with abominable build times on my optimized builds. A full rebuild of just the client in Debug takes 160,825ms but in Release it takes 371,462ms. So for less code, that's a whopping 231% increase in build time just for optimization!

I build three different configurations of my game. Debug is a build with all debugging features enabled, ASSERT's on and debug trace output. Release has full optimization, no ASSERT's or trace output. I also have an Abort built which is fully optimized with ASSERT's and no trace output. I use the Abort build often, but the 6 minute build times even for a one-line change make it super-inconvenient to iterate.
By Robert Basler on 2013-12-08 11:29:44
Homepage: email:one at onemanmmo dot com
The interview I did last week has been posted: Interview: Robert Basler, One Man MMO and The Imperial Realm: Miranda.
Read more... (2 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)
Test Weekend Feedback - 2016-11-30 00:50:18 (0 comments)
Load Testing by Day, Features by Night - 2016-08-08 11:54:08 (0 comments)
The Imperial Realm::Miranda Test Weekend 3 - 2017-02-23 13:08:23 (7 comments)
So Many Good Bugs! - 2016-12-17 18:29:48 (0 comments)
Fixin' Bugs - 2016-08-14 11:29:43 (0 comments)

Recent Comments

Things To Do - 2017-03-18 19:57:04 (2 comments)
Thanks, I'm still looking for ideas of what people think could be fun to do in an open world RTS.
Things To Do - 2017-03-17 14:23:37 (2 comments)
Sounds awesome to me, i like the idea of NPC encounters/quests etc,one thing i found when i played was you are right once you build a base and get harvesters running etc, if noone is there to fight you kinda float about waiting. Dont know what you ...
So Much Fun - 2017-02-27 18:31:54 (3 comments)
I had an absolute grand time playing this weekend. Thanks for helping me out whenever you could, Rob!

Looking forward to an awesome future
So Much Fun - 2017-02-27 11:01:54 (3 comments)
Hey Dondergod, what firewall program, and what did it complain about? It's not BitDefender is it?
So Much Fun - 2017-02-27 08:32:45 (3 comments)
I tried to get in, but my firewall kept blocking it.
Unfortunately I did not have the time this weekend to look further into it. Probably an easy fix, but I had too much to do.

Hope I will be able to enter the next test!
|<      <<      8      9      10      11      12      (13)      14      15      16      17      >>      >|

Admin Log In

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