Help with massive open-world text-based thing (MOWTBT)

'Sup, Internet. You look nice today.

Not going to screw around, here’s what I kind of want to make. I want to make a game about exploration. I want to make a game where the whole point is just to go places, and find new things, and have new experiences. I want to make the whole world as wide open as possible. Like, you can go into the city, OR, you can go off into the woods and live off the land. You can build a house and live there. You can punch a guy and steal his stuff. You can eat a weird plant you found on the side of the road. You can be elected president. You can abuse the power of being president, and bomb another city into smoldering rubble. You can throw rocks at people, for no good reason. You can make a sword, then sell that and use the profits to buy a sweet hat. You can swim out into the ocean and drown. You can make more swords, buy a better hat that allows you to breathe underwater, and walk under the ocean until you come out on a different continent. You could not do that and just make a boat, like a sane person would. You could set your boat on fire. Whether or not it is a good idea or a bad idea is irrelevant. As long as it is internally consistent, YOU SHOULD BE ABLE TO DO IT. You want to find the key? Great. You want to pick the lock? Okay. You want to bust the door down? Sure. You want to just go in though the window? Yeah, why not? You want to burn down the house and everything in it? DO THAT.

Now this would be mostly one player, with a few multiplayer parts thrown in, mainly just to stop the inevitable tide of players burning and pillaging literally everything just because they can. But if YOU want to scour the globe completely clean of every living thing in existence, then YOU get the satisfaction of doing that because someone else didn’t beat you to it first.

I want the scale of open-worldness to basically match that of any big-budget commercial game. And I want to make it. Using the Internet, my brain, my computer in front of me, and my own two hands. Because I am crazy person.

First of all, I know that this will take a stupid amount of effort. Like, a really, REALLY crazy stupid amount of effort. Also, the odds of me actually making something anything like I’m envisioning, let alone something on this scale, is about obscenely-large-number to one. But for now, I’m going to ignore that, in favor of trying to do it anyway. People have done this before. Dwarf fortress was made by a dude and his brother.

Oh, and this is the crucial thing.

It has to be made of words.

It has to be text based, through and through. Sure, there will probably be graphics here and there, layouts, inventories and whathaveyou, but it’s going to be mostly words, and the reason for this is simple: I can make words. I have no great skill for drawing or voice acting or animation or whatever else, but I can write, so that’s what I’m going to do.

Anyway, enough ranting, here’s what I actually need to ask you fine folks of the internet: HOW IN THE HELL DO I DO THIS.

I know about stuff on a smaller scale, I’ve used twine, inform, and a little bit of JavaScript to make a few serviceable half-games, but absolutely nothing on this scale. So any and all recommendations for how I might feasibly do this, MUDs, platforms, design tips, tutorials, examples, advice, and whatever else you can think of, I’d love to hear it.

Stay gold, Internet

  • possiblySerious

P. S. Also, yes, I am aiming WAY too high, thank you for noticing, especially considering my complete and utter lack of skill, practice, and focus, but guess what. I DON’T CARE. I’M GOING TO TRY ANYWAY. I REFUSE TO ACHNOWLEDGE FAILURE AS AN OPTION.

You’ve made it very clear that you don’t want to reduce scope. So my best recommendation is…

Design it.

If you’re building something this large, you can’t afford to get partway through and then realize that your infrastructure is a tangled horror show. Because then you’ll have to start the whole thing over again.

Get ALL your features down on paper. Draw the ENTIRE map. Plan out how EVERY system works - you’ve named at least 10: unarmed combat, basic NPCs, fire/burning, swimming/drowning, barter, food/hunger/special effects, elections, military combat, vehicles, ability-altering equipment. Break all of those down. Document everything in enough detail that you could hand it to someone else and that person could write the program from your notes.

Multiplayer will complicate everything exponentially. Look extra-hard at this part of your game idea. Have a solid plan for exactly where the multiplayer sequences should be and what the player experience there should be like and how the mechanics there do (or don’t) differ from single player sequences.

Once you have your design ready, then you’ll have a much better understanding of what you’ll need from the tech.

As someone working on their own stupidly big project, I salute you.

cvaneseltine’s advice is very good; I would also do some prioritizing (or at least ordering) of features. What aspect rests on what other aspect? Which of those aspects are you most excited about? Can you prioritize an experience and then work your way out from there?

I usually try to tackle chunks that a) have had a solid design for a long time, b) will actively improve the experience I want, and c) are design challenges that I understand. I save big technical challenges, like graphics, for afternoons where I just want to play with things.

For a thing that you’re talking about, you’re probably going to need to think about procedural generation. So think about the kinds of descriptions/actions/circumstances you want, and then write a series of them. (For example: six descriptions of a specific location in the forest.) Look at the kinds of imagery you want to use, and add that to your design spec. Heck, start writing a transcript, or at least a story of the kinds of experience you want to be possible. Update this, or read it back to yourself, fairly often - it’ll help you keep a consistent tone and vision.

Document, document, document. Comment your code like it’s going out of style, because it may be months before you find that bug you need to revisit, and you are not going to remember your weird hacky workaround that you cobbled together from three extensions and a coat hanger. Make lists of things implemented, bugs you’ve found, features or tweaks you want to implement, things you want to do but don’t know how to yet. Keep your documentation carefully up to date (and track those changes and why you made them).

I found by doing this that there was a core game inside the bigger experience, so I’ve started there. It’s still big and complex, but I understand the vision well enough that I know what goes into it and what doesn’t. Most features I write similar to extensions: I start with a (fairly) blank slate, and then write the code outside of the game, and test it. Then I add that code to the game, and test it again. Then I hook it (carefully, carefully) into my existing extensions, and test it again. There it sits, but I try to make the connections clear in case I need to rip out the beating heart of my clothing rules and replace it. This also lets me easily experiment with changing variables - for example, do I want to determine what activities are possible on the basis of how much light the player has? (Answer: Yes, in theory, but in practice it’s just a joyless slog of pain, so . . . not so much these days.)

It sounds like Fabled Lands has already covered some of this territory handily; you might want to have a look at the app (FLapp).

Gravel! Good to hear from you!

Yeah. Umm, sorry for disappearing off the face of the earth. PhD program + family emergencies sort of murdered my free time. Can a family emergency last 3+ years? At some point it should become the status quo, but it still acts like an emergency. There’s probably something exceedingly deep about that.

I try to circle back in after IFComp each year, to press my face to the window and inhale deeply of all the finished work and play a few games. Though, holy moly, everyone was really busy this year. Which is awesome, but kind of daunting. If I can just manage a game a week, I should be done sometime after the next IFComp ends.

Sorry to hear about that… sounds rough. Hope the PhD is going well.

I am so far behind on IFComp you wouldn’t believe.

I’ve been thinking of making something like this too, using procedural generation.

A new world every time you hit new game. Different places to go, dungeons that change every time you play, new names for new places in new locations near new landmarks, and all of it a working, functional digital economy/social structure.

Like how you could steal a bit of food in Oblivion and it would end up getting some dude killed in the forest by a monster because he went out looking for food. I’m not sure if that was a hoax or not but that’s what I’m going for - all of it designed by the game itself off my constructs.

so good luck to you! you got any pointers, you let us know. I’ll let you know the same. I already got some cool I7 code to make cool sounding town names and make about 2’000’000 different NPCs by name only (so if i introduce age, occupation, social standing, appearance, etc, that’ll just climb exponentially).