11 ms·
Publishing free software video games
- bentley 3y agoMy favorite proprietary game that went to free licensing is Star Control 2: The Ur‐Quan Masters. Wikipedia: “Released to critical acclaim, Star Control II is widely viewed today as one of the greatest PC games ever made, and has appeared on numerous publications lists of the greatest video games of all time.” Available as ‘uqm’ in most package managers, or from https://sc2.sourceforge.net/ https://sc2.sourceforge.net/.
- brucethemoose2 3y agoBarotrauma is an excellent example of fully "source available" in a multiplayer game. Practically speaking, Rimworld and Minecraft are like this. Mindustry is an excellent example of the "have your cake and eat it" open source model. Its sold on Steam, but it's GPL 3.0 and free to download elsewhere. Shrug
- barbariangrunge 3y agoUnreal engine is source available too I didn’t realize rimworlds source was available. I’m curious how some of their simulation works, that’s definitely interesting. If the Eula is friendly, I may take a look some day
- doctorpangloss 3y ago> I didn’t realize rimworlds source was available. It isn't, it's decompiled.
- brucethemoose2 3y agoAnd purposely not obfuscated. Yeah, that really is bare minimum, but its still better than the deliberate obfuscation of many similar games. Minecraft, meanwhile, is obfuscated but with public mappings. That is a weird situation, but it still works kinda like the game being source available.
- Cthulhu_ 3y agoMinecraft's source has been decompiled multiple times, and its base modeling is IIRC pretty well understood, also from a server-side point of view. It doesn't seem to be particularly advanced, at least the traditional Java version anyway. Can't speak for the Bedrock edition, that's a C++ optimized version for mobile and consoles.
- Endy 3y agoMindustry is an excellent game, and I love the amount of work that the dev has been putting into it. In the time I've played it, the single-player content has deepened significantly - from a mostly-linear campaign to almost an entire world to play with; then on to a second planet with a different play style. I have to stand in awe of people who are both creative and able to manifest that into creative products.
- schemescape 3y ago> The Quake engine was also released under the GPL, and went on to be highly influential, serving as the basis for dozens of games, including time-honored favorites such as the Half Life series. Large swaths of the gaming canon were made possible thanks to the generous contributions of free software game publishers. This seems misleading. Half-Life was released in 1998, but the Quake engine's source code wasn't released under the GPL until 1999, so presumably Valve had a non-Free Software license to use the code.
- tumult 3y agoIt's not just misleading. It's wrong. The timeline and order of those events is wrong.
- schemescape 3y agoI was going to say "it depends on how you parse the sentence", but after re-reading the second sentence: yes, it's just plain wrong. Half-Life and Valve would have happened regardless of Quake's source code being released.
- for_i_in_range 3y agoMy dad went to Harvard and played football. He then went to USC and got his MBA. He tells people, as a joke: I went to Harvard. I got my MBA. I went to USC. I played football. Each, individually, are true statements. But their sequence communicates a very different meaning. :)
- Dalewyn 3y agoCan't let historical facts get in the way of dogmatic furor.
- zelphirkalt 3y agoThe phrase says "dozens of games" not only Half Life from 1998. So if after 1999 some games used the engine, the phrase is still correct.
- barbariangrunge 3y agoA friend explained to me that the real benefit of foss is the community building huge things together, faster and better than any individual. So, you don’t make your game foss, but rather, you build a set of foss tools for everyone to benefit from, and the community eventually begins to contribute back, and you end up with a huge machine that does really cool things. Everybody then uses these tools to make amazing things, yourself included. It’s win win. He’s had some cool experience with this stuff, mostly outside of gaming. But pure source code dumps, besides being valuable to students, usually isn’t that worthwhile. It’s a lot less win-win as well
- dgb23 3y agoThe tools thing seems to be the right approach. A lot of huge gaming genres came to be from modding, level editors etc. https://en.m.wikipedia.org/wiki/List_of_video_games_derived_from_mods https://en.m.wikipedia.org/wiki/List_of_video_games_derived_... ARTS (Dota, LoL) to battle royale (PUBG, Fortnite, Apex), Tactical shooters (CS), team/hero shooters (TF, OW) and more… All of these genres came from making modding accessible and are some of the most successful genres to date. The new trend however is to close games down, DRM, “life service”, fewer possibilities and very strict IP implications on derivative work (we own everything you create etc.) Free software might be an appropriate answer to this.
- tsimionescu 3y ago> The new trend however is to close games down, DRM, “life service”, fewer possibilities and very strict IP implications on derivative work (we own everything you create etc.) I don't know of any popular game that didn't have DRM and didn't have very strict IP implications on fan content (say, after the early 90s maybe?). It's not like the teams behind the original DOTA or CS or TF ever made money selling those, and would have likely been blocked even if they tried. It's true though that live service games are quite antithetical to modding because of their need to control player progression and sell it. Still, I would say the divide between games which supported modding and games that didn't has always existed, with much fewer games in the first category, and there are still huge games coming out today that do. It's even become possible to create mods for console games, so it's not all doom and gloom.
- hgs3 3y agoFrom what I understand, if a game engine's source code is GPL, there is no legal way to require derived games release their assets under a CC license. Does this mean we need a "super license" that incorporates the terms of both GPL (for the code) and CC-BY-SA (for the assets)?
- whateveracct 3y agoWhy should derivative works have to release assets under CC? What's the goal? Is it so bad if people still have artistic IP but the underlying code is Free?
- hgs3 3y agoGames are a combination of art and code. Why should programmers be the only one's required to release their work under a viral license? Artist should as well.
- whateveracct 3y agoI mean I do think it's fine if you wish to try to take this route. Nothing morally wrong or anything. But I think the art itself isn't just like code. It's not just the bits used to make images on screen. There are characters, stories, ideas, and worlds being created derived from the artist's personal life and philosophy. That's the actual appeal, and there are more downsides to making your IP open like this than there are downsides to FOSSing your game code.
- hgs3 3y agoI hear what you're saying, but I don't think game code - which is responsible for the mechanics and "feel" of a game - is merely "bits used to make images on screen." To me game code is as unique as the artwork. However, the purpose of the engine code is as you describe so maybe it could be FOSS? Maybe LGPL?
- deleted 3y ago[deleted]
- progval 3y agoThis is targeted toward "securing your game’s legacy", but it seems to be missing a crucial part of some games: servers. When games have a required online component, servers shutting down are the most likely reason the game becomes unplayable, more than the client not working on current platforms. So another option that could be added to the list would be to make the server free software (or at least share its binaries) before the client's assets or the client itself. This can also boost the community if they can host their own servers with custom mods (eg. Minecraft)
- JohnFen 3y ago> When games have a required online component, servers shutting down are the most likely reason the game becomes unplayable, more than the client not working on current platforms. This problem is why I don't use software -- including games -- that requires access to a server somewhere.
- pserwylo 3y agoI write and maintain a GPLv3 multiplayer game for Android to satisfy a creative itch. While writing the game, sustainability of the server component is top of my mind. I'd hate for the game to stop working for others down the line because I lose interest or am otherwise no longer able to tend to it. For those interested, I've documented the process I adopted to try to increase the bus factor beyond one [0]. I want people who download the game and open it to be able to find a public server instantly from the main menu, even if I am unable to maintain the main server myself. This is done via the game requesting a manifest containing public servers from a GitHub repo, which accepts PRs from those willing to maintain their own servers. Although I am the only one able to accept those PRs right now, it would be silly not to be liberal in onboarding others who show an interest in maintaining the list. That way the game lives on beyond just me. I also make sure to offer local multiplayer, and in other games I've built I which don't need realtime multiplayer, I try to offer "Play against others by sending an SMS invite" or other novel approaches that don't even need a server. It is a fun space to work on and try to come up with novel solutions to ensure games continue working into the future. [0] - https://peter.serwylo.com/2021/07/03/sustainable-server-infra-for-open-source-games https://peter.serwylo.com/2021/07/03/sustainable-server-infr...
- thx 3y ago[flagged]
- Kiro 3y agoI hate when people bring up VVVVVV as a counter-argument to "But my code is embarrassing!". Saying it's an example of "truly awful code" when it's beautiful and well-structured compared to my stuff just makes me confident that I will never get over the embarrassment.
- kevlarrelic 3y agoHey, we all have impostor syndrome days. I'm 100% certain your code is better than a switch statement with over 4000 cases.
- KronisLV 3y ago> I'm 100% certain your code is better than a switch statement with over 4000 cases. Then there's cases like that Yandere Simulator game, the source code of which got released/leaked and apparently it was so bad that people were making videos taking it apart, but also possibly because they disliked how the developer was leading the project: https://www.youtube.com/results?search_query=yandere+simulator+source+code https://www.youtube.com/results?search_query=yandere+simulat... But also apparently even the Oracle database source code was pretty grim, this HN post and its top comment still bounces around my mind sometime: https://news.ycombinator.com/item?id=18442637 https://news.ycombinator.com/item?id=18442637 I wonder what other codebases exist, where the code is inspirationally bad, as in, to the point of making most folks feel better about whatever they're writing and to dispel the illusion of code always needing to be perfect. Communities like /r/programminghorror (https://old.reddit.com/r/programminghorror/top/?sort=top&t=all https://old.reddit.com/r/programminghorror/top/?sort=top&t=a...) and /r/softwaregore (https://old.reddit.com/r/softwaregore/top/?sort=top&t=all https://old.reddit.com/r/softwaregore/top/?sort=top&t=all) are probably sobering in that regard as well. All that's missing is a site that shows examples of a bad code and how to make the code better besides that, maybe with discussions and different suggestions, based on what people believe in.
- mid-kid 3y agoYandere Simulator's case was unique. You're right that people were angry at the guy in general, and he was also quite the internet clown. But it was the first time I've seen so many people who don't program suddently have an oppinion on what good code is or isn't. When asked, they couldn't even explain why. I assure you, half of those videos are filled to the brim with milquetoast examples that I really don't feel constitute as bad code. This thankfully doesn't happen every day. I really don't enjoy the discourse regarding "code cleanliness". A lot of the time it's just about "I prefer writing things this way" rather than the code actually being slower/harder to read/maintain/whatever. There's a billion ways to write something and none of them are outright wrong!
- TheMode 3y agoWhat we need are programs compiled down to some minimal instruction sets, simplifying the implementation of custom vm able to run such software. The source does not mean anything if there is no working compiler, or if the compiler doesn't support your new shiny platform. It is the same for servers. Having the source for a whole hosting service depending on some specific hardware doesn't matter. If we decide to truly care about software legacy, we need to re-think the stack.
- mid-kid 3y agoHaving the code makes it easier to write a new minimal compiler, translator or interprer, just to run the specific game. Or understand how the game works to make a good rewrite/port. Not every game has a dedicated enough fanbase to do this, but having the option is always great. Rewriting the engine doesn't mean you have to rewrite all the dialogue and in-engine scripts, after all. Of course, if you want to write and use something like SCUMM for your games, that's appreciated, too...
- anthk 3y agoNo. As long we have gcc/clang and SDL/GL/Vulkan, games will be portable to anything.
- TheMode 3y agoRaw assembly is theoretically portable as well, why do you want the source? My problem with these is that they are cross-platform only as long as the maintainers decide they are, you aren't gonna write a vulkan software impl from scratch if the platform doesn't come with one. Now you can argue that this is all very unlikely, but you have to agree that this is no archival. At some point the project will become unusable because of all the automation code it depends on. Binary search will outlive it.
- brohee 3y agoSCUMM VM is now like that, plenty of Point and Click games https://github.com/scummvm/scummvm https://github.com/scummvm/scummvm
- noduerme 3y ago>> But my code is embarrassing! This has always been the first reason I haven't open-sourced some of my code. The second being that it's also totally useless, and lots of people could write it better.
- JohnFen 3y agoTake heart -- I've been in a position to see the source to a lot of high-end software, including some games, Windows, etc. One thing that it all has in common is that the source is rarely better than ugly. It's unlikely that yours is any worse than most others.
- mrguyorama 3y agoThe most embarrassing code I have ever written is the only thing on my public github. Everyone writes shit code at one point or another. Most people even have that fun experience where you openly mock some terrible code only to git-blame and see your own name. If you have never been embarrassed by your code, you probably haven't stuck around at a single job long enough to see it cause problems.
- Zambyte 3y agoI genuinely do not understand this mindset. How will you get better at writing code if you never get feedback about how your code would be better?
- noduerme 3y agoI seek out feedback from a limited number of people, in a controlled way, when I'm working on my own projects. At least 90% of it gets filed away in my mind as valid advice, but not necessarily given the structure of what's already built, and not necessarily something I'm going to implement. A lot of it may be sound for version 2.0, but I don't need to debate the priorities. What feedback I get that shows me better ways of doing things often gets used in the next project I build. When I find myself in the hot seat answering to questions about why code was structured this way or that, I usually already want to move on from the project, and it feels like a hostile situation. I know I can always learn and improve from feedback, but oftentimes my intention in putting something out is not to generate feedback but just to make it available. Unfortunately, I've found that most of the time this decays into situations where I have to defend my choices. Which I'll be the first to admit are often made on the spur, because if I were planning on other people picking apart my coding decisions I wouldn't be able to code my side projects nearly as quickly. [Frequently I think this is because people need to prove they can do something better than I did, and have to grind that axe against my work; which takes whatever utility I might have made and turns it into a pissing contest]. But I just don't want to subject myself to that shit anymore, and the world can get on fine without my code. tl/dr, the hostility and negativity that usually comes along w/ people giving their opinions makes me not want to share my work with them.
- deleted 3y ago[deleted]
- hospitalJail 3y agoSince Microsoft bought Minecraft, I've been quite worried about the possibility of losing a great game to a giant. While I don't play Minetest or the other FOSS minecrafts, I'm so happy to see it happening. When I was able to dig and build, I was relieved. I don't know what the future holds, but I want my unborn children to experience that feeling of digging all the way down, building all the way up, digging through mountains, and making houses. That was so cool. Microsoft is a scary company with the way they treat Windows 11, wonder how much longer until there are ads inside Minecraft Java.
- User23 3y agoOne interesting thing is the FSF’s principles have absolutely no problem with a free engine and paid assets. They explicitly say they have no position on artwork and I’d say art, sound, level design, and so on all qualifies as artwork. That arrangement looks like a good one to me. It leaves plenty of room for the seller to make money while respecting user freedom. And every case I know of where a mod community thrives greatly lenthens the lifetime of the game. Needless to say having the engine source available would be a huge benefit for modders.
- feoren 3y ago> They explicitly say they have no position on artwork Right, the FSF has always had the view that software developers are the only creative professionals who must be shamed for not releasing their hard work for absolutely free. Authors are allowed to hold copyrights on their books, artists on their paintings, musicians on their music; but programmers? Fuck them if they even THINK about trying to maintain control of their creative outputs -- they're clearly evil. J.K. Rowling is allowed to make money on Harry Potter, but you're not allowed to copyright your code. And can it with "but these 47 people in history have all managed to make a livable income from consulting based on their open-source work!". That's just more of you telling me how I'm supposed to live. I don't want to make money helping incompetent companies install the software I wrote. I want to make money in proportion to the value I add to the world.
- User23 3y ago> <anti-freedom rant> I suppose you’re not a big fan of right to repair either then? Nobody is forcing you to write or use free software. However, freedom is intrinsically valuable, and there’s a huge difference between being able to control your own computing hardware vs reading second rate children’s books. > I want to make money in proportion to the value I add to the world That’s a pretty thought, but nobody does. Perhaps you should revise your expectations to be realistic?
- feoren 3y ago> <sweeping generalization> I suppose you're not a big fan of puppies then? > right to repair This has absolutely nothing to do with copyright except that you lump them both together under "freedom". That's your arbitrary grouping, not mine. You're free to use tape to fix your copy of Harry Potter if it rips. Nobody has ever disputed that. You're not free to mass produce copies of it and sell it for profit. I am arguing that it's okay that an author enjoy copyright protection on the book, and you're here saying "you're telling me I can't even tape a ripped page in MY copy of Harry Potter!?". It's inconceivable to me that you're making that argument in good faith. I simply do not believe you that you don't see the difference in those situations. If you're about to make the argument that in order to repair a John Deere tractor, you need the right to copy their code into your own competing line of tractors, you've gone off the deep end. > Perhaps you should revise your expectations to be realistic? Perhaps we should all work to bring about the world we want to live in, instead of playing Prisoner's Dilemma?