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

### Anecdote

By Robert Basler on 2018-04-12 23:45:12
Homepage: onemanmmo.com email:one at onemanmmo dot com
I was going to tweet this, but it turned out a bit long.

Programmers like the sizes of things to be powers of 2 (1,2,4,8,16,32,64,128,256...) The reason for this is that computers handle those sizes more efficiently than other sizes.

Miranda's terrain is a height map. Every 2.5 metres on a grid the game stores the height of the terrain. To render the terrain, the game draws rectangles (actually two triangles) between those points. There are lots and lots of points, so to make things manageable, the terrain is split into blocks. When I built the terrain, I decided terrain blocks should be 64 height samples across. My programmer brain was happy with that. The thing though, is that means that each terrain block is actually 63 squares across (because it needs heights on both sides to draw a piece of the terrain) or 157.5 metres.

This weird number has been a nuisance ever since. Just one example is the flowers. Flowers are placed on a one metre grid. (They are randomly shifted so you can't see they're on a grid, but they are nonetheless.) The problem was that there was a visible half metre strip at the sides of each terrain block where flowers didn't cover. So flower coordinates had to be multiplied by 157.5 / 157.0 to get rid of the gap.

This week I finally increased the block size to 65 (64 squares across) or 160 metres and it was astonishingly almost as simple as changing a single number.

The two differences players will notice is that map squares are now 320 metres instead of 315, and that the weird flat spots on the east and south sides of the map are gone.

The funny thing was, about 2 weeks after I settled on 64 as the size of the blocks, I realized that I needed one extra sample around all 4 edges in order to calculate the terrain normals so the blocks have actually always been 66 samples across.

### Terrain Detail Models

By Robert Basler on 2018-03-25 02:03:28
Homepage: onemanmmo.com email:one at onemanmmo dot com
I coded the shader for ambient occlusion on Friday all hopped up on cold medicine, so I'm really looking forward to seeing what I get on Monday. Ambient occlusion adds dark areas in crevices where the ambient light from the sun has trouble reaching. This helps anchor vehicles to the terrain by making a dark area under them, and I'm hoping it will help sell the new rock formations by enhancing the lighting in crevices. I'm implementing SAO which apparently gives good results and fast performance.

Thursday I finished the micro-prop system which places tiny detail models (rocks, sticks, tires etc.) on the terrain near the camera.

### So Many Glitches

By Robert Basler on 2018-03-05 01:35:44
Homepage: onemanmmo.com email:one at onemanmmo dot com
I've been working on procedural generation of cliffs and rock formations. Previously Miranda had a heightmap terrain with rock models (made by artists) placed on it by the terrain generation utility. All of these standalone rock models are placed based on a complicated set of rules. To help players identify impassible terrain, rock textures are placed on areas where vehicles can't navigate. I was never very happy with textured cliff faces, particularly at the map limits.

[It's so wrong, but sort of beautiful.]

I started with a bunch of research, looking at all the different types of rock formations in nature. That was wonderful. I saw chalk deserts, volcanic glaciers in Iceland, and sandstone formations in Arizona among many others. Nature is amazing.

When I researched procedural rock generation algorithms, I was rather surprised to discover that nobody else seems to have done this before for games. I found a few articles on modelling individual stones procedurally, but nothing on a larger scale.

### Return of The Fallen Test Weekend

By Robert Basler on 2018-02-08 12:02:04
Homepage: onemanmmo.com email:one at onemanmmo dot com
I got so busy with the graphics upgrade that I forgot to do a test weekend for everyone after the Return of The Fallen update, so it's happening this weekend! Anyone who has purchased any of The Imperial Realm::Miranda Early Access packages will be able to play this weekend from midnight Friday to midnight Sunday GMT. Support the development of this one-of-a-kind RTS and check it out at the same time with Early Access packages starting at just \$7.

[Will you encounter the rarely seen Fallen Missile Commander this weekend?]

### Calculating the Day of the Week

By Robert Basler on 2018-01-27 13:17:57
Homepage: onemanmmo.com email:one at onemanmmo dot com
Figuring out the day of the week from a date is a frickin' nightmare. Back in 2009 I got an algorithm from Wikipedia, and apparently that algorithm was wrong because they've removed it. Since then, the editors for that page have evidently gone insane, because their new page is a mess of incomprehensible tables, messy algorithm descriptions and magic numbers.

### DXT Texture Compression in 2018

By Robert Basler on 2018-01-21 23:41:22
Homepage: onemanmmo.com email:one at onemanmmo dot com
Two weeks ago I knew exactly zero about DXT. I was surprised to find a lack of resources on the topic and spent two days researching to get where I am. It's been ten months since I've written anything really technical and I've been missing that.

The goal is to reduce the amount of GPU memory required for textures. The reason for that is that I am going to be drastically increasing the amount of textures in the game in the coming weeks as I do a major overhaul to Miranda's rendering and art, and according to Steam, 14.48% of gamers still have only 1GB of VRAM. The two weeks adding support for DXT texture compression are for those people. For the 2.76% of players with less than 1GB of VRAM, Miranda isn't going to work any longer after the next update.

Up until today, Miranda only supported run-time compression (using GL_COMPRESSED_*) which it turns out isn't really a solution since it can take seconds per-texture for the GPU to compress them on load. The GPU VRAM savings of run-time compression is alright, but not great.

[Miranda with DXT compressed textures - it looks the same!]

### The Imperial Realm::Miranda 0.0.16.5

By Robert Basler on 2018-01-04 12:38:33
Homepage: onemanmmo.com email:one at onemanmmo dot com
A new build of The Imperial Realm::Miranda is available now. The focus of this update is bugfixes.

After their initial confrontations with the Independents and the Empire, The Fallen have retuned their weapons and increased their armour, although the first players in will face some pretty banged-up Fallen.

A problem where sometimes a single Fallen unit would appear near a base, then disappear shortly after has been fixed.

The perk which allowed teleport while in combat looked like it unlocked when players selected the perk for cheaper teleports. It actually wasn't available at all.

14 crash bugs fixed.

Bug Alert: Some vendors are selling Vendor units. The icon is a large V. If you buy one, it will make your force unplayable.

### Three Steps Forward

By Robert Basler on 2018-01-02 01:54:36
Homepage: onemanmmo.com email:one at onemanmmo dot com
2017 was the year that The Imperial Realm::Miranda, my multi-year game development odyssey, actually shipped out to paying customers. Yay!

I have really enjoyed talking to everyone about the game this last year. Having people interested, who want to talk about the game, and are enthusiastic, is pure oxygen for a lone developer like me. I can't emphasize enough how great that feels or how much it helps.

[Combat with The Fallen]

There were a lot of great accomplishments this year, although with the game out now you already know about many of them. I was particularly thrilled to finally have not one, but two trailers. The two big themed updates Nemesis and Return of The Fallen were also very cool. I even took a few weeks of summer vacation where I sat in the sun, ate ice cream and went to movies with my family. That was really nice.

By most measures, the first eight months of Miranda's Early Access campaign has been really successful. People are having fun playing with the game. I have gotten a lot of great feedback which has really helped me figure out what sort of game Miranda is going to be. I've also received lots of helpful bug reports. The only real problem is that there just aren't enough of you lovely people yet.

This is my favourite blog post of the year, mainly because I was really happy with the way the poster turned out. So much so that I got it printed and framed for my wall. Eventually I am going to get it printed poster size.

## Goals for 2018

Make Miranda Prettier - The most common negative feedback I get is that the game looks like something from the '90's. It's ok, that doesn't really hurt my feelings. Just as many people have told me they like the art, or that they don't care about the art. But the reception the game has gotten so far leads me to believe that people are immediately dismissing it based on looks, and so I need to address that. Part of the problem is the technical abilities of the renderer at this point in time, part of that is the art.

The renderer is the easier part of the equation to fix, it actually isn't missing that much, it's more a matter of using what's there with a more modern sensibility. The really tricky part is finding art, or more specifically, finding pieces that work together. Buying assets from artists on places like the Unity Store is an imperfect process. Nothing is usable as-is. Some things end up not working at all. I think the difficult solution is going to be making more Miranda-specific art.

More Gameplay Variety - I thought Miranda could be successful as a PvP game so I focussed first on building out that gameplay. Unfortunately it turns out I wasn't able to attact enough players to make the PvP systems work the way they were intended to. After much thought, I've concluded that the key to having more players playing is giving them more activities to choose from. I've already started down this road by adding PvE and map discovery. In 2018 I will be adding more individual activities, expanding the AI, and adding more unit types to play with.

Marketing - I have not put as much energy into marketing as I need to. For my current five prong strategy: Twitter is alright, the blog is good, press reach is minimal, Facebook is a disaster, and Google+ is totally dead. Miranda's marketing strategy is getting two new prongs this year: The first is advertising, the second is going to be a surprise.

[The Fallen Await]

Here's some numbers for 2017:

309,463 lines of C++ code.
197 bugs fixed.
34 blog posts.
1 release.

Happy New Year everyone!

### Return of The Fallen Release Notes

By Robert Basler on 2017-12-21 15:07:24
Homepage: onemanmmo.com email:one at onemanmmo dot com
Miranda now has a PvE enemy, The Fallen, returned after being gone for nearly 40 generations.

## PvE in The Blue Zone

The Empire and the Independents have forged a temporary truce. Within the Blue Zone, players cannot attack units owned by other players, but they will always need to be on guard against The Fallen. Miranda's new Blue Zone offers a pure PvE RTS experience. Players who have bases within the Blue Zone cannot participate in Nemesis matches.

## Discoverables

Miranda's map now features three types of discoverables: Vendors, Points of Interest, and Monoliths. Once discovered, these items will stay on the map for easy reference. Vendors allow players to buy and sell extra inventory. Points of Interest are places players may find interesting. Monoliths are - interesting. In-game sensors have been improved to reveal interesting locations nearby players' bases on the map.

## New Mission

"Find a Vendor" for new players to encourage them to locate a vendor.

## Perks & Attributes

Due to a technical issue, all player-selected perks have been reset. Perk points have been refunded, so players just need to reselect their perks. There are several new Perks to choose: Fallen Monoliths, Tranquil Glyphs, Fuel-Air Explosives, Orbital Bombardment Satellite and Ore Purification.

## Other Notable Changes

• New forces will be given many more Attribute points to allocate than before. In addition to stat bonuses, Attribute points give a boost to the level of specific Perk categories. The minimum level requirement for earning XP in Perk Categories has been eliminated.
• New Achievements: Stalwart Explorer, Bargain Shopper, Mono-Maniac. Sadly, the Build a Building achievement has been retired.
• Unit weapon effects now support weapons with multiple barrels, Quadlasers!
• Loading screens during fast camera movement via the map and keyboard controls have been eliminated or greatly reduced.
• Vendors now have different prices and inventories, make sure to shop around for the best deals. Happily, the original four vendors in the north-west corner have retired after many years of dedicated service to Miranda's shoppers.
• New Audio for loot crates, missiles, teleportation.
• One of the most-asked-for feature requests for Miranda is new in this build: Saving of unit selection (Ctrl) groups.
• With the new challenges present on Miranda, initial force inventories have been increased to reduce the chance of a dead force early in the game.
• The disappearing UI bug has finally been reproduced and vanquished.
• Some players noticed that powerplants, satellite tracking, and silos took effect as soon as they were built, before they were positioned. That problem has been eliminated.
• Players will no longer lose their shroud progress in the event of a server crash.

## Known Issues

Movement Desyncs - occasionally unit positions are going out of sync between client and server. Symptoms of the problem include: in-combat teleports, discoveries for items which are still invisible.

The problem that resulted in duplicate inventory accounts has been fixed. Any players with duplicate inventory accounts can get rid of the bonus accounts by selling components until only one account remains.

### Return of The Fallen

By Robert Basler on 2017-12-18 00:42:51
Homepage: onemanmmo.com email:one at onemanmmo dot com

Emperor Cauto I was hailed as a saviour when he single-handedly ended years of pitched warfare with The Fallen. Now, forty generations later, the price of his treachery is finally coming due.

"When the explorer ships of Emperor Paine CXC came upon Miranda, it was not devoid of intelligent life. The indiginous species were unlike any creatures the Emperor's Ridiit had previously encountered. All attempts at communication were a disastrous failure. The Ridiit were unable even to determine what the natives called themselves. Reporting to the Emperor after an entire season of effort, the Ridiit described what would come to be known as the language of The Fallen, as the 'most subtle and complex form of communication ever encountered.' The Emperor took this as a personal affront to his divine nature and ordered the immediate extermination of The Fallen. Every one. The Fallen would not go so easily however, and a bitter conflict raged for nearly seven seasons as the Emperor's elite troops repeatedly failed to execute their Emperor's command. Then the Emperor was assassinated. And on the same day, The Fallen simply vanished from the face of Miranda. For a few days there were rumours that his successor, Emperor Cauto I had engineered Paine's demise and made some sort of deal with The Fallen. Then the rumourmongers mysteriously disappeared as well."
- Excerpt from The Mystery of The Fallen, 10681 Y.O.E.

The Return of The Fallen is the second major update to The Imperial Realm::Miranda, an open-world real-time strategy game now in Early Access on PC.

The Fallen are a new AI faction which adds to the two existing player factions: the Empire and the Independents. The Fallen provide new PvE challenges throughout Miranda's 400 square kilometer seamless map.

"His Divine Eminence the Emperor has in his unlimited benevolence accepted the Independents pitiful pleas for mercy during this unprecedented period, and decreed the immediate establishment of the Blue Zone, temporarily suspending hostilities between Imperial and Independent forces in a small area of His realm. May His enemies hide there and prepare for their obliteration."
- Excerpt from The Record of Royal Decrees, 19 Painedays, 30696 Y.O.E.

The Blue Zone is a new map area where players can engage in PvE battles, safe from attacks by other players.

With the Return of The Fallen, Miranda's mysterious Monoliths have suddenly come to life, providing fast travel across Miranda for players who can discover their secret. Miranda's huge map also now features vendors, monoliths and points of interest to discover.

This update also adds Quadlasers, a new Mission, new Perks, new Achievements, new audio, larger initial component stocks, 40 bug fixes and 47 other changes.

The Return of The Fallen update will be available to play on December 22. Buy your copy of The Imperial Realm::Miranda today at itch.io or sign up for our mailing list.

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 (4 comments)
What I CAN Tell You - 2017-10-08 15:00:08 (0 comments)
8 Years of Development - 2017-11-04 15:53:48 (0 comments)
31C in the Office - 2017-08-06 14:19:23 (0 comments)
Calculating the Day of the Week - 2018-01-27 13:17:57 (0 comments)

Enabling NVidia GPUs on Optimus Laptops - 2018-04-05 00:18:12 (4 comments)
NOTE: the nVidia steps 1-5 above take approximately 4 seconds to complete. I've pulled them out and only call them once.
So Many Glitches - 2018-03-21 16:44:35 (2 comments)
Hey Kurt, nice to hear from you. The new version is getting a major render tech and art update and I'm still working on the render tech.

I've added support for new hi-res terrain textures, the new rock formations are in, the shroud has lost its ...
So Many Glitches - 2018-03-21 15:47:08 (2 comments)
Any updates on new versions ?
DXT Texture Compression in 2018 - 2018-02-03 18:51:49 (1 comments)
Got some feedback on other codecs:

Hardware support for BC6H and BC7 (BPTC in OpenGL) is pretty wide now, all D3D11 hardware supports it, which means almost every NVIDIA and AMD GPU made in the past 6 years, BC7 is a very good replacement for DXT5 ...
The Imperial Realm::Miranda 0.0.16.5 - 2018-01-06 10:45:07 (2 comments)
Awesome work rob. Nice one!
(1)      2      3      4      5      6      7      8      9      10      >>      >|

[The Imperial Realm :: Miranda] [Blog] [Gallery] [About]