Little Timmy's first MMORPG
Bruce Malt GameDev DK30 New Year 2023 1 1
Description
How do you make an MMO? If you’ve been paying a little of attention, the answer usually is, you don’t. The past two decades are littered with the remains of failed projects, promising the world and delivering nothing or very little. But what if I just promise nothing and offer a demo from day 0, and we’ll see how it goes?
Recent Updates
Another picture of the stuff I built. The red dude is my NPCs, the squares are waypoints.
I can reference the waypoints and the associated tasks independently of the units.
So I can plan an approach first, and then select a unit or a bunch of units or players that have to follow that plan or list of tasks.
To have something to show off, I recorded two videos showing what I built.
Updates!
Time’s nearly up and I won’t finish, but that’s fine.
Basically I reached the goal for week 2 and I came back to the conclusion, that I still have to show the basic controls and interactions that I built, in game. Even if it’s trivial and follows convention, I need to have a tutorial that shows that I am following conventions.
So, the question was, how do you as a programmer check that a tutorial task has been done by the user, to make sure people don’t get stuck? Well, most of the functions are mostly like the checks I’m using for the NPCs anyway. Like “go here”, “do this”. So I rewrote a few bits and pieces and introduced tasks and goals for the player. That I can check for, follow and complete and get the next, and so on.
Which is also in many ways like the “data” part of quest checks. Gathering mcguffins, talking to people.
So I am happy that I can say, that it mostly works. There are a few kinks to iron out, but the “basic figuring out” step is done and I can start working out what to put in, rather than how to do it at all.
I will finish things up and post a little demonstration video of what works so far. And the state is that it’s… “mechanically turing complete”(?) for the kind of game I want to make.
I can describe areas, check whether actors are in them or not, for effects and attacks, but also loading and unloading things. I have collisions for clicking, the ground and walls. I have sort of usable items I can pick up, put down, transfer to other places and some basic interactions with objects on the ground that I can use to trigger gaining items or displaying text or whatever.
It did take longer than expected to do these rather basic tutorials that merely means there was still more stuff wrong than I thought, but I would have had these problems eventually anyway.
So, it’s square one, and no longer square zero.
It’s coming together time. I fixed some pretty bad performance mistakes on my part, also placing collideable things and interactable things work now.
Next step will be creating an interface to order an NPC to act as a shopkeeper and perform certain tasks. All the bits and pieces exist now and work separately, so it shouldn’t be too difficult to put this into action.
Let’s see what were my goals again?
I did manage fetching the steam id last week.
Then it really sunk in that it makes no sense to upload anything where there is actually nothing to do. Not just nothing interesting but actually nothing. So now I’m working on integrating some UI and systems that I already built into this.
I managed to do some very rudimentary monster spawning:
Basically I have these cells and they have some abstract danger level, that influences how strong the monsters are. Neighboring cells can at most be 1 above the lowest neighbor, which gives me a nice gradient. Periodically I can tick and increase the value for every cell where the monsters didn’t get defeated last turn.
The idea is that unlike other MMOs that have some “node” system where the resource nodes spawn in unrealistic locations and regenerate, instead the resources spawn in fixed locations like a mine and the limitation that keeps the economy in check is the available labor, the actual space inside the mine, e.g. it only fits five dudes, and as an external pressure, monsters. Because the monsters regenerate and players can only cover so much area, I have a natural limit of how much resources will be produced per active player.
Regarding combat, I have area checking system that looks like this:
Resource extraction works, you walk next to those thingies and press F :)
I have also prepared a work scheduling system:
(it’s a smooth drag and drop system)
That will allow me to define “jobs” for players. The idea would be to have regularly passing time and your classic survival needs that need to be met. Actually working the mines or fields isn’t particularly interesting, so the idea would be to hand wave this away and pretend like the time you’re logged in is during your free time.
This scheduling also allows me to define groups of NPCs that can be hired to do the work for you, resulting in relatively easy computations. Simulating lots of individual NPCs is a lot of effort. But assuming I have 5000 NPCs and they worked 8 hours a day, 5 days a week 300 days a year is just one multiplication.
So that’s not too far out.
There are two really important things that remain, one is trading. That’s what I’m working on right now.
The other is having the “buildings” you plop down affect combat in a way where there is an incentive to build e.g. a castle or a city on a river island. When that’s done, I would consider it “turing complete” not actually interesting yet, but the interesting part depending on values, balance and other system design.
Estimated Timeframe
Mar 1st - Apr 1st
Week 1 Goal
What I have so far wouldn’t count as a game. But that’s fine. The hard part is not coming up with MMO mechanics or classes or anything like that, the hard part is the technology and convincing people this is not a scam. (It’s not, I promise.)
Setting the Steampage live, providing a demo for linux and windows. I have managed to get a build on steam already, but it’s a most basic of test versions. I will have to see how things work with the steamworks API, integrate the SteamID into my system and make sure everything plays along with my server. Dev streams on twitch?
Week 2 Goal
A test world level that contains some demo objects to test with, testing, debugging whether things work nicely with the steam ID and things get saved per user. Dev streams on twitch?
Week 3 Goal
Putting some info about the project on the steam forums, to compensate for a lack of a real website. Dev streams on twitch?
Week 4 Goal
No idea. There will be something to do. If everything works, which I don’t expect, maybe I will do something with terrain. Otherwise there are only hundreds of things that need doing. The real end goal is to have basically an elevator pitch build that works and some material to read to make sure anyone who does find the project gets an idea what I’m aiming for and an accurate idea of what the state is. Dev streams on twitch?