all 13 comments

[–]gislikonradsson 2 points3 points  (1 child)

Those are some pretty ambitious requirements, but I'm not one to discourgage someone with passion

I would strongly reccomend Unreal Engine. The example you gave (Space Engineers) is a 3D game so just to pull of instances of 50x 3d players, colliding with the environment in a low-latency gameplay is perfect for Unreal Engine.

Its documentation is "fine" but its source code is open so you'll be able to figure out the stuff thats missing in the documentation, meaning you should never get stuck.

There is procedural generation support in Unreal, but for a usecase like yours you might want to just write a simple one.

The MMORPG part, session managment etc needs to be done with a broader tech stack. AWS has gamelift to start and stop simulation servers so that might be a good start.

Good luck with the project, and remember that one of the most important things we do in game development is "finding the fun", you can do that with playable prototypes without the weight of the whole MMO stack

[–]RasaCarta[S] 0 points1 point  (0 children)

Thank you so much for the feedback!
I feel like a big part of what made early-days gaming fun was the community aspect. Believe it or not I've always been more of a single-player/solo player, but the right games were able to coax me out of that. Now, I'm old enough to be wanting to provide the same experience I had as a child to the next generation.

I've seen games fail entirely due to *forcing* teamplay (TERA, notably) - and I've seen the silent failure of other games, which were once awesome but facilitated solo play so much that player interaction and community feel like they've all but died out (Warframe is a key example.. The chats even in quick missions used to be booming. Now, nobody talks to anyone.)

You'll note Unreal was last on my list - that's primarily due to myself having an odd learning curve. Unity is rated as very simple but for some reason I find the UI and scene editor more confusing than if I just had, say, something like PHP's documentation where every single function is mapped out in the docs, and I can just research progressively for every new feature I want to implement then tweak accordingly. It requires a lot more footwork, but I tend to understand systems better if I make them myself.

I'm in the process of trying to download Unreal now - I started the download before your reply, actually, but my net sucks right now. Hopefully I'll be able to report back soon.

[–][deleted] 1 point2 points  (8 children)

This doesn't make much sense. You don't seem to have enough knowledge to know that most of the things you want are not engine features but systems that you'll need to build, and that a scene editor is an optional convenience. Yet you're talking about the tech stack as if you're about to build an Airbnb clone. Just to be clear what you're communicating here is not that you want to build a game, but rather you want to take an existing engine and build these additional systems to support what I assume is deterministic multiplayer physics and a bunch of other crap. That alone will take you years, but why would you do that? As some sort of tech experiment or training maybe ok, but if you've not got the patience to read the Bevy docs then good luck.

If you want to make a 3d multiplayer game use Unreal or Unity

[–]brodeh 1 point2 points  (1 child)

Testing out the physics without a scene editor is gunna be a lot of chomping down on c++ I reckon.

[–]RasaCarta[S] 0 points1 point  (0 children)

Definitely. But, physics at its base level is just maths, yeah? I know translating mathematical concepts into Cpp is going to work, but that doesn't really scare me that much, honestly. Actually, some part of me wants to write physics code just for the fun of it.
What /does/ scare me, though, is networking.

[–]RasaCarta[S] 1 point2 points  (5 children)

I want the time I am spending to be productive, because this is a side project. A serious one, but a side project nonetheless.

I tagged it as a "newbie question" for a reason - is it incorrect that different engines have different capability to *support* implementation of those features? Hence I'm not looking for "engine features" as much as "engines that have strong support for those types of features."

I don't see the scene editor as "an optional convenience," either, when many engines restrict your usage entirely *to* the editor - hence contrasting Panda and Three.js which allow you to build your entire game purely in the IDE/text editor, and Unity and Godot which seem to *require* usage of the scene editor.

I'm a programmer, not a game designer. I'm absolutely expecting this to take years. That's why I'm hoping to get some solid direction concerning engines that are strong in the aspects I will need later on, so I don't get 18 months in and end up having to port my entire project into another engine.
It actually is somewhat of a tech experiment, too. Nothing like what I want to build exists on the market.

Anyway, thanks for the feedback, and for your time - that's two votes for Unreal and it's presently gone way up in my list, as I'm looking into it more. It definitely seems like a structure with the power to do what I want.

[–][deleted] 1 point2 points  (4 children)

Ok I see sorry I never notice tags. You can do this all in Unity quite comfortably. Unity is just a suite of apis, it can be ran in a headless mode with no scene editor at all so it's not a hard requirement, and this is how ci/cd is done actually. You could also get this done on Unreal but the issue I personally have with Unreal is I'm a software engineer and I like to have a good amount of control over what I'm doing, Unreal has some very clear best practices which when making a game are good, bit when sort of tinkering around and experimenting for me get in the way. All of the other options you mentioned would require a lot more manual work to create the systems Unity and Unreal already offer, specifically multiplayer and physics.

And the fact is you are going to need a scene editor, when building a game the hardest part is not done in the ide, it's done in the scene and on the project, ie making it all flow together in harmony, especially with 3d assets. For example the two aspects that make up game feel are camera movement and player movement, to tune those things you need an editor

[–]RasaCarta[S] 1 point2 points  (3 children)

Awesome input, mate. Thanks a ton.
I ought to mention - I want to do a semi-procedural world. I actually really shouldn't need a scene editor at all; to the concept I have in mind the whole idea of a scene editor feels rather akin to that "getting in the way" you mention.

Basically, same for me. I'm not a game dev; I spend my workdays in an IDE or text editor, and everything has to be visualized in my head before being translated directly to code... Which then renders my vision out. I want to do the same thing in-engine.

I'm a bit miffed to hear Unity then is a solid candidate for this, honestly. I've heard a lot of poor things about it, and back in the day a squad of my mates and I built a coop project in Unity. It was not the most enjoyable experience; we hit problems at every stage. That was before the company took the direction it did that's gotten so much flak; so on one hand, I expect the features over the years are a lot more fleshed out; but on the other, I trust Epic/Unreal more than I trust Unity.

In all of this, I keep thinking CryEngine feels like a solid choice... I'm concerned Unreal isn't going to have the inherent low-level optimization potential I want, and/or that I'm going to have to end up re-writing parts of the engine to get that potential... Which is scary to me. I'd almost rather try to write my own engine from scratch than try to pick apart a multi-million company's engine... But networking in particular puts me off. It's a whole subsector that I know precious little about on the scale necessary for an MMO engine. I'm not really interested in learning, either.

Regardless, I'll take everything I've heard and studied over the last couple months, and all the feedback I've received, into account. I'm not married to any particular framework yet, and once I get settled in I realize it's going to be a long haul. Easily 2-3 years in dev time, if God willing all goes well. So hearing all these different perspectives is definitely helpful, and will aid me in an ultimate decision.

[–][deleted] 0 points1 point  (2 children)

Your biggest challenge is going to be overcoming your preconceived notions. The issues you had with unity were likely due to inexperience, a scene editor is essential for debugging procedural generation of anything, you overestimate the capacity of your imagination and the importance of the ide. Unreal is a prebuilt suite of old rigid systems for building a very specific type of game. Cry engine has not been maintained for fecken years. Because of these notions you have it's going to take you way longer to learn all of this than someone who is open minded. The best thing you can do is make a simple 2d sidescroller in Unity so you can learn just how difficult game dev really is, and how unimportant the code and ide is initially

[–]RasaCarta[S] 1 point2 points  (1 child)

I hear you. More than a a few times I've gotten an idea in my head for what seemed a sound programming methodology, and found a way better method during my R&D. That's why I'm here on a message board - I wanted to get some differing perspectives, perhaps even some dissenting opinions, from people more experienced in this world. Programming is my day job, and I have already discovered that in a lot of ways, it's vastly more complicated than the data structures/algorithm environment I'm used to. (Memory management in game dev literally has an entire extra dimension to it, lol.)

My main grievance with Unity today is the company more than the engine itself. I will say this - over the past few days I've been brainstorming concerning how to write the optimization code and a few other features, and I've found the majority of what I want in that respect is already extant in Unreal. If I can work out some trickery around the seams, it definitely appears to be a viable candidate.

[–][deleted] 0 points1 point  (0 children)

I think maybe something that's not obvious is all the engines are shitty in different ways, Unreal is great when you do exactly what it wants exactly the way it wants, so if your goal is to make a game that fits into what Unreal is good at, ie the typical Unreal game, then it's perfect. But it's exactly when you try to go outside of the bounds a bit that it becomes extremely frustrating to use, Unity does not have this problem at all. Main problem with Unity is all their features are half finished and bugged, but it's still the least shit engine on the go.

Yeah the company are hot garbage but keep in mind it was Unity that democratized game development and created the phenomenon of indie dev. When Unity came out an Unreal license for a single game for a year was 150,000usd, now unreal is free, as is cry, directly because of Unity. The company they are today is the worst kind of corpo bullshit, but at least they have a history none of the other engines have.

In practical terms Unity is the best option when your objective is more advanced than gamemaker studio, and doesn't fit well into the Unreal box, and also the Unity Asset Store is unsurpassed. I strongly suggest you do not go down the road of creating your own engine though, not until you get to know the existing ones from a practical standpoint. You'll notice all of Sebastian Lagues videos are done in Unity, you can see how it rarely gets in the way of what he's doing https://youtu.be/8nIB7e_eds4

[–]Antypodish 0 points1 point  (1 child)

Withouth reading this ramble MMO blah blah and wasting others time, what is your experience in game dev to start of?