Massively Multiplayer
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 2015-10-28 23:07:19
Homepage: email:one at onemanmmo dot com
Every once in a while being a programmer is a useful skill.

For years I fought with Pixela's broken ImageMixer software to try to get it to download videos from my Canon Vixia HF S100 camcorder. The software worked about 30% of the time, which was enormously frustrating. Recently the PC with that software had a hard drive failure. I couldn't find the original software CD. Canon's website now recommends CameraWindow, ZoomBrowser and ImageBrowser for the HF S100, but after finding the camera box with the serial number and entering that, downloading and installing the three packages, not one could see the attached camera.

I'd had enough. While watching TV with the wife last night, it took just four hours to write new Windows software to locate the attached camera (or storage card,) download the videos, thumbnails and photos from the camera and copy them to a PC with a naming scheme consistent with what I used to get from ImageMixer. I should have done this years ago.


By Robert Basler on 2015-10-25 12:19:20
Homepage: email:one at onemanmmo dot com
Recording game video is not as easy a problem as you might think. You likely want to record at 1920x1080 resolution, 60FPS so that's 1920x1080x3x60=373,248,000 bytes every second (373MB/s.) My disk drive is pretty quick, it can do around 85MB/s, some newer hard drives can break 100MB/s. My first video recording system wrote every frame as a PNG and I liked to call it the crash-the-game-button. It would record about ten seconds of video before it ran out of memory and crashed, however once I had half a video recording system, I kind of wanted to finish it. Actually, that's not true. The reason for all this work is that I'm not satisfied with the quality of video produced by screen capture programs. The trailer for Miranda needs to look as good as I can make it.
By Robert Basler on 2015-10-16 00:43:51
Homepage: email:one at onemanmmo dot com
I've been working on the first trailer for Miranda pretty much continuously for six days now. Sometimes when you get a good idea, its hard to leave it alone. The first ten seconds took four days, the next five seconds I've got two days in and counting.

The first shot of the trailer is fully CG. I've tried CG work before, but never was really satisfied with what I produced. It was OK, but not good enough to show anyone. I put the new shot together with Blender which I've grown to appreciate is kind of amazing. Blender used to have a terrible, terrible user interface. It doesn't anymore, a change which really surprised me.
By Robert Basler on 2015-10-09 15:38:10
Homepage: email:one at onemanmmo dot com
Today The Imperial Realm::Miranda passed 250,000 lines of C++ code!


That doesn't include other types of source (HTML/CSS/XML/JS etc.) libraries I didn't write, or Chrome (which itself is around 4M lines of code.)

That's an average of around 42,250 lines of code per year. I feel pretty good about that. I'm always amazed at claims that the industry average is around 3,300 LOC/year - that's a lot of overhead.
Read more... (0 comments)
By Robert Basler on 2015-10-08 00:35:05
Homepage: email:one at onemanmmo dot com
There is nothing like trying to get software running in an environment that is actively screwing with it.

[Rolling Strike Force Alpha]

I borrowed a laptop with a 3K (3200x1800) screen from a friend to do some debugging on high resolution displays. Bugs like Windows reporting the 3K laptop's screen resolution as 1067x603?!?! (I wasn't calling SetProcessDPIAware early enough.) There were an assortment of minor issues I was able to quickly fix, but when I went to test them, things really started to go off the rails.
By Robert Basler on 2015-10-01 00:26:21
Homepage: email:one at onemanmmo dot com
I needed some special characters for Miranda and after investigating simply inserting bitmaps inline, I realized it would be better to have a custom font. Tonight I built a font for Miranda using Gimp and Glyphter. It was super-easy. Design characters in Gimp, export to SVG, drag and drop onto Glyphter, name the font, save a ZIP and you're done. Glyphter exports EOT, SVG, TTF and WOFF as well as a CSS file supporting all of them.

My new characters: mirandafont.png
Read more... (2 comments)
By Robert Basler on 2015-09-28 12:05:17
Homepage: email:one at onemanmmo dot com
A new build of The Imperial Realm::Miranda is finally live. It has been a while since the last update, mainly because there were a couple of big changes to the game that I wanted to finish. The really exciting thing for me about this build is that with a full complement of units for the Independents, it is the first one that really tests a lot of the game features I've been building.

Note: The database on the test server has been wiped. Testers will have to create their accounts again using the same Secret Lair Code as previously.


This screenshot shows all the units that can be built from the Independents' default inventory before the player needs to start shopping at vendors or hunting for crates.
By Robert Basler on 2015-09-25 01:15:47
Homepage: email:one at onemanmmo dot com
I hate it when I hit Friday afternoon and I haven't finished what I was working on that week. I like to be able to do demos on the weekend. It looks like that's going to work out for me this week.

Since the end of July I've been working on a full set of units for Miranda's Independents faction. It took an amazing amount of time to figure out just how to get all the game elements I wanted, and put them into the framework I've set up for Miranda. I've worked on lots of other things as well - I can only spend so many hours in a spreadsheet without doing any programming - but an initial full set of units for the Independents was the big goal. After doing a lot of research and game testing and building a stack of messy spreadsheets, that goal is now mostly achieved (although many units' special abilities have yet to be implemented.)

[ATVs on the move, Hover Tanks & a Few of the Independents' New Units.]

By Robert Basler on 2015-09-13 12:27:27
Homepage: email:one at onemanmmo dot com
Friday I had what I believe is the first new feature that didn't require a single engine change: I made a new explosion (the one in the middle.) All that was required to add this was a script file change and some new art. I now have all of the elements I need to make some nice explosions:
  • Animating, color changing particles for fire and smoke.
  • Hot spark particles.
  • Debris particles.
  • Spherical particle emitters (smoke and fire, shockwave rings.)
  • Ballistic particle emitters (sprays of sparks.)
  • Camera shake.
  • Screen whiteout (not shown in these explosions.)
  • Audio propogation delay (farther explosions take longer for you to hear.)

I'm not totally satisfied with these yet, but now it is mainly a matter of adding to and tweaking the art. The plan is to have a few more explosion effects in the finished game.
By Robert Basler on 2015-09-09 09:22:54
Homepage: email:one at onemanmmo dot com
I've been programming for 34 years now. I have never had this happen before.

I was working on a feature for the AI for units in the game. If the AI decides to move to attack an enemy, I want it to return to its original location afterwards so units don't just wander off whenever an enemy comes by.

To implement this, after a unit is downloaded to the client, I save the unit's position so it knows where to go back to. With an existing unit exactly nothing happens then. Just like I planned it.

By happenstance, a brand new unit's Y location isn't actually set to a good value when it is downloaded, (shortly after it is downloaded, some other code sets the Y value to place the new unit at the right height above the terrain.) The first time the AI wakes up and looks for something to do, it sees the change in Y and as far as it is concerned, the unit has moved. The AI then tries to move the unit back to its home location (where it actually is already) however, as part of the process of moving to its destination, it does a collision check to make sure that the destination it is moving to doesn't have any other units on it. If its destination is blocked it will move to the nearest clear location.

I had another feature on my task list which said:

Make new units find a good position to park instead of just appearing on top of one another in front of the war factory.

A bug in the AI does that for me now completely for free!

The first time a unit moved aside after creation I was completely astonished. AI is voodoo.
Read more... (0 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)
Happy MMO Easter - 2011-04-22 16:17:59 (1 comments)
Fauxranda - 2016-05-11 01:16:56 (0 comments)
Progression Progression - 2016-09-12 01:59:38 (1 comments)
Missile Attack! - 2015-12-11 23:31:52 (0 comments)
Full Indie Demo Night 3 - 2015-12-16 23:55:03 (0 comments)
Biggest, Baddest Bugs - 2015-11-23 02:19:06 (0 comments)

Recent Comments

On Balance - 2016-09-27 11:26:41 (2 comments)
Miranda's units can't move on top of one another, but the best strategy is still to have as many units as possible attack a single target because damage does not affect a unit's damage output, only elimination of a unit does. To mitigate this, ...
On Balance - 2016-09-27 06:09:40 (2 comments)
Something to consider is the typical PvP tactics of focused fire. Look at EVE online, or just about any MMO PvP "Battleground" - where the optimum strategy is all (or large chunks) of your forces all hitting one target to death, swapping to the ...
Progression Progression - 2016-09-12 14:27:50 (1 comments)

A Few Additional Details

Level Up Bonus

After you level up the Commander icon will glow. If you select the Commander Icon when it is glowing, as a bonus for levelling up, all of your units will be restored to full health and shields. This can be ...
Red vs Blue - 2016-08-09 10:58:36 (2 comments)
Thanks so much for letting me know of the problem. I looked at the server log and you appear to have arrived from a direct link to page 6, which would account for what you're seeing. Maybe check your bookmark is just
Red vs Blue - 2016-08-09 05:01:55 (2 comments)
I think your web server clock threw a wheel. Suddenly your 2016 posts aren't at the top and 2015 ones are. For a while the IT post was at the top, now on Aug 9th the April 2nd, 2015 post moves to the top as if it were brand new. At a guess, the ...
|<      <<      1      2      3      4      (5)      6      7      8      9      10      >>      >|

Admin Log In

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