Hacker News new | past | comments | ask | show | jobs | submit login
The One Man MMO Project (onemanmmo.com)
274 points by larksimian on Sept 27, 2019 | hide | past | favorite | 117 comments

love it! i spent YEARS playing and coding for MUDs and ran a few games as a solo admin/coder. imo it is so very satisfying to watch the global chat channels after a new feature/area/weapon/mob gets rolled out...and what the community thinks of it. i can recall more than one occasion where a well planned quest resulted in interesting dynamics after players started interacting with it. an example; one quest would add an "invisible" token object to a player's inventory. quest stages would check for and modify the state of the token when it was "present". in this particular MUD there was PK...and eventually someone decided to carry the corpse of someone on the quest into an area where you must have the token to enter...and they "walked" right in. none of us had thought of that potential "use-case"...and it exposed a really interesting game play mechanic that we never knew existed...the equivalent of cutting off the guards finger to pass biometric locks in a spy story...

...damn...its hard not to want to start another MUD...

EDIT: i know this post is NOT a MUD project...but the solo-MMO dev story just struck a nostalgia chord in me

On the topic of MUDs.

There's a 1 man developer who wrote not only his own MUD but tools to create and find MUDs to play[0].

It's all written in Elixir and open source[1]. He's given a couple of talks[2] about it and does some living code on Twitch.

I have no affiliation with the author but I did watch some of his talks just for fun.

[0]: https://grapevine.haus [1]: https://exventure.org/ [2]: https://youtu.be/Ef_fG5pd5TY?t=36

Another one person MUD project is Bo Zimmerman's CoffeeMUD. It's been around for some time. See http://www.coffeemud.org/

I always felt that a MUD would be a fantastic design approach for a graphical MMO. Specifically, start by creating a text (MUD) version of your world and the basic interactions, and only when you've created a compelling story and experience with words do you translate that into visuals.

It also would be pretty intriguing to create a MUD that could work in multiple media: text, 2d graphics (think point and click adventure), and perhaps 3d graphics. Theoretically it would be doable. A pretty interesting advantage would be that an MMO with a text option would really open it up from the perspective of accessibility.

There's also some good interviews with him on the various Elixir podcasts. I'm blanking on the one he was recently on, but I suppose listennotes.com(?) might help out.

Any suggestions on protecting credential transfer in a MUD? I have been wanting to build one but honestly I'm used to the convenience of HTTPS and the passing of credentials over a socket is preventing me from starting.

SSH? Server-side implementations exist in Python, Go, Java, and other languages. You can have a plain-text, telnet-style listener that informs people that they should use SSH instead.

if you ran it over a websocket it seems like that could help the situation you mention. back in the day, honestly, as mostly 14-16yo kids....we really didn't think about that!

mbedtls is a bit annoying at first but the windows build process is less painful than openssl.

```powershell New-Item "temp" -ItemType "directory" -Force $client = New-Object System.Net.WebClient $client.DownloadFile("https://github.com/ARMmbed/mbedtls/archive/mbedtls-master.zi..., "temp\C:\temp\mbedtls-master.zip") Expand-Archive -Path C:\temp\mbedtls-master.zip -DestinationPath C:\temp\; Move-Item C:\temp\mbedtls-mbedtls-master\ C:\mbedtls\ MSBuild.exe C:\mbedtls\visualc\VS2010\mbedTLS.sln /p:Configuration=Release /p:Platform=x64 MSBuild.exe C:\mbedtls\visualc\VS2010\mbedTLS.sln /p:Configuration=Release /p:Platform=Win32 ```

Mudlet and a number of other maintained clients now support TLS!

You can wrap a telnet session in TLS pretty easily which then protects the plain text password floating by.

I've also been playing around with OAuth inside of a telnet session, but it's a little wonky as you might guess. If you're signed into Grapevine (mentioned above as well) this link will have you auto signed into a telnet session: https://grapevine.haus/games/Spigot/play

This is my draft spec (it's not completely filled in but the idea is there) https://gist.github.com/oestrich/1fc022a448c36ac2aa5a099f4ca...

Spigot and Grapevine are also open source if you wanted to poke around.

Make a small api in whatever language for the login in https and return a token or something.

> ...damn...its hard not to want to start another MUD...

docker run -it --rm -p 4000:4000 -p 4001:4001 -p 4002:4002 --rm -v $PWD:/usr/src/game evennia/evennia evennia start -l

docker run --name dreamland -p 8001:9001 -it dreamland/local

curl https://raw.githubusercontent.com/ClockworkSoul/dead-souls-d... > docker-compose.yaml

docker-compose up -d

"...damn...its hard not to want to start another MUD..."

Or you could just play the best MUD there ever was, and still is.


RoD absorbed an absurd amount of my early teenage life. Wouldn’t trade it for anything.

I can thank RoD/smaug for my coding career. I had some fun on the star wars MUDs too where you got the xyz coords of your ship on the prompt to know where you were.

rod??!? wow! yes!

edit: i spent many hours on genesis[0] and did my first lpc scripting (area building) there

0: https://www.genesismud.org/

Awesome...I also spent years playing/coding/admining MUDs, though the one I was writing never got very large.

The mechanics you mentioned are interesting; what kind of MUD was it? I got hooked on DIKU MUDs in 1990 or so, and still play https://mume.org:4143/ from time to time.

i did a good amount of work on merc/rom based games...but it was lpmud that i really got into!

> lpmud

Yes, I remember those, and played with them a bit. They were a far more flexible, dynamic environment, but 'back then' (in the early 90s), as I recall, the performance hit associated with LP MUDs (inherently dynamic) vs. DIKU MUDs (inherently static) was pretty large, and available memory/CPU cycles were at a premium.

Mostly though I think I preferred DIKU MUDs because I happened to start with them, just by chance.

Good times, thanks for sharing!

An LPMud was my jams as well. I actually had reason to go back to DGD and it's technically a really interesting project.

Embedded text editor (a modified version of ed), live code reloading, JIT compilation to a VM byte code, translating data automatically between old objects and their new freshly compiled code...

dgd was a cool project. i remember when dworkin was talking about persisting the world state to disc. i was pretty sure that ldmud also supported `ed`. super fun stuff!

Maybe you should have used monads instead of mutating inventory state

A number of years ago I completed an MMO project by myself (art, programming, marketing, etc). It was fun! Real-time server was in Python Twisted, lots of Cython to speed up the deepest parts of the game loop. Django for the main website. The client was Flash (this was back in 2013, when it was still kinda a thing), which meant anyone could jump in really quickly, but technically that was challenging for a real-time 2D Zelda-style game because you were limited to TCP rather than UDP and the server has to be 100% authoritative since opening up Flash swf's or sniffing packets is so very easy. The server could support 250 people, and I had some fun tooling that let me spin up virtual players to stress-test it. Fun to remember!

The thing with MMO projects that really gets you is, even after you've got a mature client and server you still need to put together enough content, which if you're level designing/writing/painting everything yourself, is an enormous quantity of work. If you don't want players to run out of quests and whatnot you've probably got to lean towards a sandbox experience, and this MMORTS is a particularly interesting way to go.

Even teams with hundreds of developers aren't able to put out enough content to keep players satisfied without resorting to artificial limits. Maybe it's a problem with how these games and the tools are designed, but I've always believed something like EVE or Second Life is the only real viable paradigm for MMOs. Give players the tools to build their own experience.

I recently had some time off and ended up burning through nearly all of Destiny 2's content inside of 2-3 weeks. Hell, I can jump into WoW and be raid ready inside of a week or two, and just go straight into the latest raid. I think there's something fundamentally very wrong with how modern MMOS are designed, but it doesn't seem like anybody is interested in properly exploring the solution space.

Older MMOs still have a ton of stuff to do, outside of grinding - EverQuest 2 and Lord of the Rings online are two I can always find something to do in..

I think a large part of the problem can be solved by adding more 'sub-systems' - housing, fishing, cosmetics, titles/deeds, playable instruments, farming, whatever...

Seems like newer games just want to focus on combat and gear progression, which has people burning thru content.

The thing is: people want to play but most will not like all your sub-systems. Many will just play one or two of the different game modes, and now you have to create new contents for players IN ALL THE DIFFERENT PARTS OF THE GAME!

If people want more PVE combat, I think the solution will probably comes from automatic creation of new content. With the advance of AI, we'll come there eventually, but don't hold your breath.

that's why you need lots of sub-systems...so everyone can find a few they enjoy. The effort to implement a sub-system is a one-time cost, as opposed to the on-going cost of content creation. Also, a lot of players in full MMORPGs (as opposed to looter/shooters with gear grind..) dislike random dungeons, raids, etc. Seems like developers can't win!

It's true, and it's why so many MMO's find themselves leaning into adding that grind to leveling, or a repetition in the end-game loop. The days of every developer taking a crack at creating a 'WOW killer' (and all of them failing) have thankfully past, I'm sure there are a bunch of traditional MMO's that are still trucking along nicely (Final Fantasy 15, Black Desert Online, the new Maple Story) but that sort of Quest Content driven game isn't so predominant nowadays (outside of nostalgia trips like WOW Classic and Runescape Classic). I can't say I miss them too much?

The dynamic gets really interesting - I play Final Fantasy 14, and looking at content you can tell the moment they switched the core of their monetization strategy from subscription fees to optional cosmetics. The game got tighter and way less grindy and repetitive; the later expansions are significantly better games for it (so much so that the devs are actually talking about going back and cutting out a bunch of the earlier grind for newer players, since it's notorious for putting people off).

I find Lord of the Rings Online to have some of the best story driven questing. The story line is interesting, the quests are fairly varied and the 'ohh...' factor when you walk into well known places like Moria is awesome!

I played LOTR Online when it first came out! I think the only MMO I've paid for. Sadly, I don't think I was as much as fan of it as you were, I bounced off it by lv25. Probably much has been added in the last 10+ years though!

I have just started playing LOTR Online a few days ago after getting completely burnt out in WoW, and I'm finding it to be much more fun than I was expecting. The game engine is a bit less slick than WoWs, as it clearly has not been as updated as often as WoWs has been, but the environments and heavy story based questing more than make up for it.

I thought the Mines of Moria was the most atmospheric zone I've seen in an MMO. Really captured the creepy, ancient ruins feeling...Oh! Give monster play a try! Its a rather unique take on PVP where you can actually play as the heroes or the monsters!

Just a heads up, you mean to say Old School Runescape; Runescape Classic refers to the first version of Runescape that was superceded by Runescape 2 (in 2004) and is now defunct.

Warframe is a quest driven mmo. It's framed to feel like an expansive singeplayer game, but it's an instanced mmo.

I really admire the determination of the One Man. Scrolling to the oldest updates reveals that his has been a passion since at least 2010. What a mark of constitution and fortitude to keep this passion burning. It is remarkable what his 2010 self knew and what his 2019 has learned in those years. This is his opus. Keep up the good fight!

Especially all the dev log updates with zero comments. It takes a strong will to keep pushing in the face of perceived apathy!

I always knew I was building a cool thing. And a MMO by one guy is a hard sell until it is finished and amazing looking. People have always been supportive, they just don't post on my blog much.

Thank you.

MMOs are happily two orders of magnitude easier to write today. Before game engines you can license or get for free really existed, it was just you, the compiler, and a text editor, which rapidly turned into many people, the compiler, your editors, and pain.

I worked at Turbine off and on from 2001-2012, and was the MMO game engine tech lead in the time period up to when Lord of the Rings Online and Dungeons & Dragons Online shipped (2003-2005). Both were based on the same game engine core, which was a more or less complete rewrite of everything in the game engine (client and server) from the original Asheron's Call. Many of the concepts carried over, but the implementation was completely different. To this day, I still think this "G2" engine got many things right in its internals that many other game engines (MMO or otherwise) didn't really get, probably because everyone who worked on it was crazy but actually pretty nice and reasonable to work with. Some friends who ended up working at Unity or Epic from Turbine that I've talked with think the same. It certainly made many questionable assumptions as well.

I got quite burned out from the rewrite (well over 1 million lines of C++ redone between 5-6ish people) and went part time/remote in 2006, left in 2007, came back in 2009 part time/remote again to help port the stuff to PS3 and Xbox 360 for projects that eventually got cancelled. My last six months (I stopped giving a shit at this point) was doing nothing but porting much of the client code to Mac OS X, which consisted of fixing endless compiler errors and patching up library/API differences in hundreds of thousands of lines of client code. This was actually kind of therapeutic because much of it was mindless.

I do smile a bit when realizing that code I wrote on ~16 years ago is still plugging along in some datacenter somewhere and on people's PCs, long after the company and the people who worked on it have scattered to the winds. Many of the core team that worked on it back in that time period went on to found some companies (game or otherwise), are working at places like Google and Facebook, or remained in the industry at Epic Games and Unity and various game studios.

Thanks for this. You may have heard that some time after AC was shut down, an AC server build somehow leaked and the community has now got a basically true/pure emulated server setup now. I can now go back to my first MMO safely whenever :)

The AC1/2 code was a pile of poo to be honest, but it still managed to do many things light-years ahead of other piles of game code poo at the time. Great concepts, but questionable execution (many people, many of whom were brilliant but this was really their first software job of any sort, came and left over the 90s, leaving their code behind. The AC1 software-only (i.e., pre-DirectX/OpenGL/GPUs) renderer and physics code were in large part incomprehensible, but they worked.)

That’s all anyone’s code ever is. Just a pile of poo trying to be better than someone else’s pile of poo.

tru dat

Dungeons and Dragons Online is one of my favorite MMOs. (Granted I haven't really played since before the Forgotten Realms expansion.) It's so different from anything else out there, and the dungeon experience is truly unique. I really like how it makes you depend on different, diverse roles and uses them for all sorts of noncombat things.

I played through the F2P beta for LOTRO too. That was a bit rough at times, but fun.

An interesting story about a one man MMO project (well, he enlisted help of his wife along the way), is the postmortem for Eternal Lands. It was a popular read on now defunct Devmaster.net website.

It's available through Web Archive here: https://web.archive.org/web/20110303214710/http://www.devmas...

It's an interesting throwback to the era before common availability of production-grade game engines like Unreal or Unity, back when everyone worked on their own Direct3D/OpenGL engine.

Odd that http://theimperialrealm.com/index.html and http://theimperialrealm.com are two different destinations. The former is the home page which contains an intro video and more information about the game itself, while the latter is the blog.

He has two index files; index.html and index.php. The server sends index.php by default, which is where the blog is.

It doesn't do that for me...

I remember ages ago it was common to see the advice "don't try to create your own MMO" as they were one of the most complex game dev projects you could do.

Are MMOs any easier to make now given the libraries and cloud services that exist today?

Realm of the mad god proved it's possible to make a miminalist MMO game

The difficulty is building a MMO that is appealing and fun to play, so you have to think about multiplayer game design, which can involve a little bit of game theory, economics, reward systems...

A mmo is not difficult to make by its strict definition, once you have a large open world, the spatial partitioning to manage network traffic, things work. What is hard is to populate such a large world with "life", activities, things to do, and especially rewards in a persistent world.

MMO are amazingly interesting, world building is a vast subject, but building a quality MMO is also enormously expensive.

Honestly, this is the appeal (to me) of building a private World of Warcraft server.

This way, the user-facing artsy stuff is mostly done. You just need the backend stuff, although admittedly some fun is removed since you have to work with the network protocols the pre-existing clients expect. You'd undoubtedly learn about how and why various aspects of the game were implemented the way they were.

And yeah, there's already a project for private WoW servers, but if I ever get a few months off work, that's something I'd like to look into doing separately. Maybe after enough time, Blizzard would open source the clients so we can hack on those, too. Although WoW still brings in good money, so that'll probably be a while.

It's easier to make a 2010-era MMO today than it was today. The problem is that "MMO" today now means a 2019-era MMO. Player expectations rise in sync with technology advances, faster even. So if you're targeting a AAA, tech-heavy genre like an MMO, it never gets easier.

I agree. I have a long time design of an MMO resting in my computer. It is a text-based game that runs presidential elections in a corrupt country in Latin America. There are 4 parties competing and the winner, of course, it the one whose candidate is finally elected. The biggest design problem it had was: how to implement massive voting, programmatic. So maybe today, the 2019-era as you mentioned, using AI somehow could be the solution.

Would you be willing to share it? As a latin american this really interests me.

They're definitely easier now. Msot of the "don't try to create your own MMO" advice comes from mid 2000s. People were amazed by the concept of games like World of Warcraft (and the $$ they brought), so they wanted to make their own WoW without being aware of how complex such games are. And this was in times before Unity and other game engines.

It's easier to create a game like this. There are even MMO middlewares available. Still, when people say MMO, you can never tell whether they just mean a persistent online world, or literally a world that can fit thousands of players in it at the same time.

As you suggest, there's much more legwork already done on both the technical and design fronts that people can leverage.

But there's a wide difference between making a proof of concept and making something that scales+people want to play.

The former is much more tractable these days, and the latter - ignoring the difficulty of competition - is a bit easier but still a hard problem. Content is somewhat easier to create, but still hard to scale (and quality demands are higher to match the improved general capabilities and expectations).

This is a great example of marketing the dream of game development. You can make the argument that Star Citizen is a completely different version of the same thing-- I mean in that it is not the game you love it is the making of it. This guy is tapping into what we (on this forum) all love about game design, all the projects people have started or tried in our lives. It is such a drag to make games with huge teams, with marketing and technical compromises, design by committee. It drains the joy of developers and it bores a lot of the audience. This is the dream of one person pursuing their passion.

How do MMOs maintain and update state for tens of thousands of players and then push those updates from the server back to clients efficiently?

As said before, different type of MMO use different technologies. I used to work on the server part of a (yet to be released) MMO game; we described the technology a bit in the following video [1].

A few things to consider:

- the amount of information to be sent from the server grows quadratically with the number of clients (eg. if 100 players all 'see' each others, you naively would have to send 100*100 updates per server tick); the data received by each client only grows linearly, though

- obviously these are kept in memory, and persistent data is flushed if needed to a permanent storage

- one can reduce the quantity of information by:

+ distance: when a player (an object) is far away, it may get invisible (too far) or degraded (updated only every N ticks, low quality version of the assets sent/displayed)

+ number of entities around: when a lot of players are grouped closely (think a crowd), you can also degrade the information for those further away, even if they are close to the viewer in absolute value, since they are 'hidden' by others.

+ compression tricks: send deltas instead of absolute values for position (smaller numbers can be compressed more than larger ones), don't include the properties that did not change, etc.

- at some point, you (may) need to split the work on several servers, and have an efficient algorithm to split the game space, and synchronise your servers

[1] https://www.youtube.com/watch?v=QeZtqoydXpc

Depends massively on the type of game. In general the two techniques are heavily compressing the data format sent over the wire (e.g. using 16 bit floats instead of 32 bit where it doesn't matter, sending 3 element quaternions instead of 4 and recalculating w), and only sending what the player needs to know based on a radius or some other criteria.

Eve Online slows the entire simulation down when huge battles are happening, but they also split simulations across servers based on which system you are in.

Modern WoW shards plays heavily within zones, which is why you will almost never run into the same people while adventuring. They also attempt to limit how many players will be in the same shard at the same time. However there are ways around that through grouping, so when larger battles start happening things get laggy. You press buttons, they are queued up, and can take upwards of a second to show their effect in-game (they must go to the server and back).

Will this change with technology like Google Stadia? Could a massive compute farm calculate all of the state for all players, and then just stream video data down?

My guess is no - you'd want the rendering to happen on the edge close to the player, but with a sufficiently advanced compute topology maybe some tasks can be farmed down the graph?

My understanding is that the client-side isn't generally the bottleneck for MMOs, it's all the server-side computation that has to happen to make it all run. Calculating behaviors, physics, etc for hundreds or thousands of players simultaneously is really hard, and Google Stadia doesn't change that in any meaningful way.

Edit: Well, now that I think about it, it depends entirely on the game; PlanetSide 2 is an example I can think of off the top of my head that brought my computer to its knees during big battles. But most MMOs aren't exactly pushing the envelope of graphics quality or physics simulation, so it's not as big of an issue.

Sharding, and many other finer (game and architectural) design and implementation details. Few MMOs actually have millions of simultaneous players in the same instance of the world or boss or raid at the same time.

The MMO-lite I worked on was made to be as horizontally scalable as possible, and had extreme incentives built into the gameplay to push players towards actions and areas of the game universe that would more fully leverage benefits of the scaling trade-offs we made.

Being able to segment and slice the outbound data from your clusters (and/or what the client requests) - that is, the data and game state equivalent of occlusion culling - goes a long way.

In memory. MMO servers store all world state in memory, and each server has a capacity usually in the 10,000 player range.

You'd be impressed how fast computers actually are -- 10,000 objects isn't actually that many. Since the server knows where all clients know, the server knows what the client can see, and the server only has to update the client with relevant information, like the 100 closest players to it.

Generally the server does not in fact know what all the players are doing. They're sharded at the most granular possible level (typically a zone or instance) so any server instance knows about no more than 50-100 players.

> 10,000 objects isn't actually that many

Yeah but these 10k objects are containing themselves many more objects (item inventory, proximity mobs etc).

Not just that, but you have to do physics and other calculations on each object and even between objects many times per second. So if your server handles 20 ticks per second, you only have a budget of 50ms per tick. Even on a beefy, many-core server, that's a lot to do in not a lot of time, and you can't afford to have any inconsistencies with performance (like GC stalling for several ticks).

Clients in MMOs don't need the entire state, just the state in a small area around the player's location. Some times it works like chat channel with a limited number of maximum players. When the limit is reached, player are put into different channels, so the state of one channel doesn't need to communicated to other players.

Same way you don't render the whole world each frame: https://en.wikipedia.org/wiki/Potentially_visible_set

Also 3D data structures, which http://realtimecollisiondetection.net/ is still my go-to book.

Usually, you keep all the state in memory and save at specific points/actions to a database. Then, not all state is shared with all thousand players, but only within a visible range. And then, not every kind of state is shared with other players. In the end it’s manageable with simple TCP or custom UDP connections.

Not a game dev but I guess you could go quite far with just an IRC server. Crosshatch your world in chat rooms, with a bot in each one.

A player sends a command to his current chat room; the bot validates the player position and current action.

Other players listen to bot responses in all nine chatrooms around them.

Payload trimming is always the answer. Only update state that has changed...

You can do a lot with the right, simple architecture and a programming language at the right level of abstraction.

I bet you could answer 99% of Stackoverflow questions with this generic answer ;-)

Indeed ;-) But I bet 99% of those wouldn't need to be asked if people hadn't overcomplicated things in the first place...

Multiplexed sockets. Dead reckoning.

I remember a lot of dead reckoning happening in the old Runescape, once upon a time. Many moments of your player running in a direction then getting rubber-banded back because they got interrupted or something.

What actually happens in Runescape is that certain animations override the running animation. When the animation then ends, the game compensates by making your character move much faster than usual, which can look like zipping all over the place. This is all client side of course; server side your character moves as normal.

Extreme example of someone using this in PVP: https://www.youtube.com/watch?v=kIFWSMW6Lzo

Dead reckoning is a bit harder when your game isn't using a perspective based camera (2D or orthographic). Otherwise you can use visual tricks to hide the rubber banding from a distance. Though when in 2D the solution is to interpolate between waypoints.

I also made not one, but two "almost" OMMMOs (One Coder MMO?):

2001! http://www.rupy.se/raywalk/magequest.html (the graphics/sounds are "borrowed")

2011. http://aeonalpha.com (my neighbor made the music/sounds in exchange of a 960Ti for his Hackintosh)

Both use Java, the first one is a mix of Applet/Application that you can try by running this file:


The second is Application only so you download it here:


I'm working on my third OCMMO:

2021? http://ahoy.rupy.se

I like the intro water texture, is it procedurally generated or artistic?

Ah, that's artistic and "stolen", so I guess it's not going to be a One Coder MMO: https://medium.com/@gordonnl/wind-waker-graphics-analysis-a0...

Actually it won't for sure because the skin mesh animation code was also "stolen" from a former colleague (they will all get mentions though) but I'm a bit ashamed to discover that I'm not good enough to do anything from scratch... at least not the first time around, is this what they call impostor syndrome?

Also make sure to implement your own programming language & OS for the game to run on. While you're at it you should figure out how best to craft transistors to create your own CPU. But don't make use of anyone else's ideas, you should figure this all out on your own. In fact, don't read this comment, it might give you ideas

Haha, way ahead of you on that one, bought a C64 and learning assembly/soldering and looking at how to make my own computer on FPGA (async. CPU) with my own OS/programming language and in parallel to that my own P2P radio internet: http://radiomesh.org

Even looked at making my own gerber editor and print my own PCBs with my AxiDraw plotter.

On the subject: https://www.youtube.com/watch?v=5ODzO7Lz_pw

I looked at your github but nothing is playable out-of-the-box, you could make something presentable?

Hello Hacker News, I wondered why my traffic went all bonkers today. To answer some of your questions:

Yes, it is difficult to keep up with modern game tech, but I have lots of friends in the AAA industry who let me know what's going on at the bleeding edge, and I pick my battles.

No, you couldn't make a game like Miranda with any off-the-shelf game tech I have seen. Game engines usually only allow one avatar per player, Miranda can have hundreds, theoretically thousands. Miranda is also seamless and single-sharded.

The renderer does have soft shadows, but you're right they don't always show up really well. I'll take a look at that.

The next update is coming pretty soon with a whole lot of gameplay additions, I just started the playtesting and debugging phase today.

Thanks for visiting.

This is very cool. In the same vein, I recommend Project Gorgon from Eric Heimburg and Sandra Powers -- a two person MMO, but still pretty cool. Check it out here: https://projectgorgon.com

Their game is cool, but their old blog had a lot of great stuff on it, although it's now only available from the wayback machine. https://web.archive.org/web/20160311212030/http://www.elderg...

Thank you for finding that! I was looking but failed. It's great stuff. (Disclaimer: I used to work with Eric and Sandra.)

Looks nice! MMO RTS nonetheless!

A word of advice: if you want to make an easy immense graphical update, add shadows to your vehicles. Even just a dumb, circular flat alpha gradient under each vehicle. You would not believe the amount of immersion this adds.

This reminds me of Shattered Galaxy http://www.sgalaxy.com/ which is a game I played 20 years or so ago which was way ahead of it's time.

Looks awesome! I actually created a MMO prototype before, just by myself. A lot of people told me not it's impossible to do, but it was actually fairly easy.

I used Babylon.js for the 3D game/controls, and I imported free 3D assets from various asset stores for the content. The backend was a simple socket server written in Node.js with socket.io connected to the web frontend via JS using the standard WebSockets API. I got realtime character movement, turning, & jumping implemented pretty quickly. Content became a bottleneck so I stopped developing, but I hope to finish it up sometime in the near future.

Good luck!

> A lot of people told me not it's impossible to do, but it was actually fairly easy.

A weekendware prototype isn't what people are talking about when they say gamedev/MMOs are hard. It's 0.001% of the work, it's trivial.

Just as you, too, stopped at the actual hard part: building the game.

I'd also observe that an "M(ultiplayer)ORPG" isn't too hard anymore; not trivial, but something the tooling has gotten a lot better for over the years and something a lot of people could put a prototype together for fairly quickly. In fact we've seen a number of "Show HNs" over the years that amount to this.

But the "Massive" can be a real killer. Even if there are to some extent off-the-shelf tech that can handle fairly "massive" communications, it still takes a lot of skill and effort to use them correctly.

This is where the fakery in most MMOs kicks in - they are not really 'Massive'. Most of them have sharded servers where only a few hundred players are actually in the same world together. Players think there are a lot more as the underlying chat system (originally just IRC in a lot of cases) runs on a separate server for all the players.

content is almost always the bottleneck in any form of gamedev

Well until you hire an army, then it's quality, and tooling to manage content, then it's back to creative direction as the blocker.

that's why I find self-limiting forms of gamedev more interesting than AAA games.

I'd rather play a half-finished roguelike, gamejam games e.g. itch.io or Ludum Dare , indie games, concept games.

You feel the creativity more.

I don't care for a scripted piece of entertainment.

I want to explore different game mechanics and explore ways of interacting.

AAA games almost never give you that.

Wow, looks like he's been at it for a decade. I'm curious how much game development technology has changed over this time and if it outpaces development.

Probably some Unity3D starter pack and something like Improbable will get you there in few evenings.

You vastly underestimate the amount of work it takes to build a game, even with all the excellent tooling out there.

The toolkits are getting complete enough to allow individuals or very small teams to roll out an MMO, if you're willing to pay the bills for Spatial OS. Full VR support, even. Big-world support. Powered by Expensive Google Cloud.

One of the first: Community Garden.[1]

[1] https://www.youtube.com/watch?v=h2XEbJOWkxc

I think a mmorts is pretty unique. If you manage to spice up those menus a little bit and get the balance right (some) people will buy it for sure

I used to play a now-defunct MMORTS back in the day with Warcraft3-looking graphics: Ballerium (https://www.youtube.com/watch?v=WgIk8HQPnP4).

Shattered Galaxy is also MMORTS and is still alive: https://www.youtube.com/watch?v=HBY-WGFQk98

Really hard game concept to get right, though. Something that was cool about Ballerium was that it was one big open world. I think Shattered Galaxy was a lot more instanced, but I didn't play it much.

Definitely room for more exploration in the space.

I played in the Shattered Galaxy beta and it was a fantastic game. I haven't thought about that game in a long time. Glad to see it's still running.

I also played this game.


Back in the day, I used to play a MMO called Faldon, which was developed mostly by one developer. I'm still astonished by such projects being done by one person, since game development requires so many skills; MMOs takes this to the next level.

for those interested in 'one-person' MMO projects, check out Xenimus.

It's a long-running MMO (from around the Ultima Online era of games) that is developed and ran by a single person.

The amount of effort involved in such an ordeal is mind-boggling, personally.

I was just about to mention Xenimus. I used to play it after high school every day, the game has been around for over a decade (maybe 2 decades at this point?). It's amazing EJ Thayer has kept it going all this time while going back and forth with having a day job. The graphics may not be AAA but the game play was always pretty fun and the networking code, especially for a single person, ran pretty well.

I kinda miss my old character that got de-leveled well over a decade ago. I let the account expire and when I tried returning some years later I couldn't get back into it.

RIP Mythical Mage III

Super cool, I've had plans for games I want to build out over a long period of iterations percolating for a while now. I will keep following this project for sure.

This guy remembers the old gamefaqs boards and probably luelinks


Lovely to see Blender in a screenshot for the top link :)

krunker io Is good example of one man building mmo game

My favorite one-man (I think?) MMO was Cursors.io: https://news.ycombinator.com/item?id=8477124

The genius of that game cannot be overstated. Its ludicrously simple mechanics somehow resulted in emergent gameplay that was deeply affecting.

Great thread , looking for more threads like this one

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact