5 ms·
At Planimeter, we're doing this internally with a game product called Planimeter Game Sandbox. Over a decade ago, under a different team name, we published an o
by andrewmcwatters 4y ago
At Planimeter, we're doing this internally with a game product called Planimeter Game Sandbox. Over a decade ago, under a different team name, we published an open source game called Half-Life 2: Sandbox. It was closer to a game than a game sandbox, which I would, like you, categorize as different than a game engine or a standalone game.
But the idea is the same. We see that there is a market for developers who want to play with game software, they don't want to publish a full blown game. We do want to provide a hatch for them for when they want to graduate to creating a standalone product, and that's what Planimeter Game Engine 2D is for.
So we provide abstractions like game modes, and the ability to send game mode code over to people connecting to a server who don't have it installed.
And so that developers can work on the game mode as it is being played with friends, the game engine includes live reloadable assets and real-time scripting.
Is this feasible for one person? I mostly built the game software over a decade with other volunteers from Planimeter.
I suspect we don't have many products like this in this space because most game developers aren't successful in simultaneously creating their products with a very focused scope and marketing them through discussions like we're having here now. It's literally just a constant function of engineering labor and time spent on sites looking to help people out.
It makes sense. It's what we've been trying to do for years. There are basically no products on the market that do what you and I are looking for, and my team has slowly been trying to build it up.
We have some internal projects where we have spent time looking into other game engines besides our own to see if we could move faster on established products while minimizing risk, but the landscape is amazingly poor.
For example, Unreal Engine doesn't have a fixed timestep, and its entire networking model since the late 90s, early-2000s was one based on the premise that connected clients are approximations. This is a hard departure from, say, the Quake-family of engines or engines that are designed similarly.
Believe it or not, for reasons like this, Unity is probably more appropriate for games like first-person shooters as a result. Larger studios have to jump through significant hoops to get Unreal to behave properly in common FPS scenarios, which is a technical reason why players report poor "netcode" in Unreal Engine games. You can't create reliable replicable states in UE 4 or 5.
While Unreal has some rudimentary networking out of the box, as far as we understand, Unity has issues with not providing multiplayer out of the box essentially at all? It's been some time since I've looked into it. Anyway, we expected more from the larger two institutions.
Godot also doesn't provide multiplayer out of the box, you have to write it all yourself with some bare bones abstractions you are provided, but they barely built on enet itself.
So ideally you and I would have access to a 2D or 3D engine that had multiplayer out of the box, could write game mode code that was networked to connecting clients even if they didn't have the game mode, and allow them to download assets they were missing as well. And while you were playing the game, had the ability to change the game code on the fly and send it to clients so you could develop and play test in real-time.
It doesn't exist as far as we know. Garry's Mod, Half-Life 2: Sandbox, and Planimeter Game Engine 2D are the only products I'm aware of that allow you to do this, and two of them are Source Engine games/mods.
I'm surprised it's considered a niche, but a lot of people seem to like the game engine with UI design thing over game software with robust multiplayer and live reloading.
Worst yet, a lot of amateur game developers don't seem to think multiplayer is important, or they think games vary widely in networking implementation. They really don't.
I hope more game software comes out with "game sandbox"-like features, because we didn't want to be the ones building it 11-12 years ago, but Planimeter and Facepunch seem to be the only orgs doing it.
If you have found some other software like this, though, I'd love to hear about it.
- cupofpython 4y ago>we have spent time looking into other game engines besides our own to see if we could move faster on established products while minimizing risk, but the landscape is amazingly poor. i hadnt done a real deep dive yet, but from introductory readings on a few engines this was my impression too on what we are looking for in general. Glad to know im not the only one to feel it. >So ideally you and I would have access to a 2D or 3D engine that had multiplayer out of the box, could write game mode code that was networked to connecting clients even if they didn't have the game mode, and allow them to download assets they were missing as well. And while you were playing the game, had the ability to change the game code on the fly and send it to clients so you could develop and play test in real-time. Yeah pretty much, though the last part would be icing - restarting the game / reconnecting to the server in response to anything more than parameter tweaks is okay. just really want to avoid excessive manual file management >If you have found some other software like this, though, I'd love to hear about it. I wish. If there are, then they dont support 3D PC games, because my search has been limited to that. given how long ago garysmod was, i would be very surprised if no one has tackled those principles from the game engine standpoint already. I'm guessing any team that prioritized multiplayer sandboxing in building the game engine must have made the engine propriety and built a game studio around it. Is Planimeter Game Sandbox something I can check out? or is that more of a target and Planimeter Game Engine 2D is the current iteration? My next research step for myself was going to be to look at the tools in the WebAssembly ecosystem
- andrewmcwatters 4y agoI am happy to send you an internal build. It's an unreleased product on Steam. Edit: It's probably just easier to mark our private repository as public for today. It contains copyrighted material as well as some assets from commercial games we use for internal testing so I'm essentially leaking an internal codebase, but we just don't have enough eyeballs on this for it to matter. I'll mark it private by the end of the day. Keep in mind the main branch is probably broken from our experiments with uplifting the UI to use Yoga. CSS 2.1 and Flexbox are on the product backlog, but I may end up ditching Yoga since it's becoming too much of an engineering time drain. Feel free to git bisect it until you find the working commit. My apologies. That being said, the Planimeter/game-engine-2d repository is only a few major features behind this branch. https://github.com/Planimeter/gridsandbox https://github.com/Planimeter/gridsandbox