51

I took part in the development of a FOSS online game myself. An MMORPG, to be precise. We didn't even try to prevent modified clients from connecting. Why? It would be against the philosophy of Free Software. Part of the Free Software Philosophy is that users should have the right to modify the software they use. It is a great way to save work. The GPL ...


45

Much of this is done at levels below that of the source code. Wall hacks, for instance, often work by manipulating the video card so it displays a wireframe rather than textured surfaces. Having the source code doesn't really affect this kind of cheat. The ideal solution is to only send the client what the player can see/know. If he can't see an enemy, don'...


9

I am a PS3 modder and work in low level involving these mods. Here is how I would go about protecting a game from my methods. You cannot prevent everything Any data that the client has, they can manipulate. This involves angles, player coordinates, etc. It is virtually impossible to prevent everything, but you can make it hard to do certain things with a ...


8

In general, the GPL does not affect the output of a GPL-licensed program. From the GPL FAQ: Is there some way that I can GPL the output people get from use of my program?For example, if my program is used to develop hardware designs, can I require that these designs must be free? In general this is legally impossible; copyright law does not give you any say ...


8

What strategies could the server use to ensure that everyone is playing fairly, and exclude modified clients? Could the game even be considered libre software if the server did not allow modified clients to connect? I would consider two different aspects: the server software proper AND the service that I offer to the community and runs this server software. ...


7

A signature is a non-reversible (but verifiable) cryptographic transformation on some input data. Signatures are not copyrightable since they do not require any creativity to produce (their creation is completely mechanical) and they do not contain any creativity themselves (it's just an arbitrary numerical value), and any copyrightable elements (indeed, ...


6

The GPL requires you to distribute the source and "must require no special password or key for unpacking, reading or copying". However, merely signing a binary does not prevent someone from using it without the corresponding private key (or public key, for that matter). And the private key should not be considered part of the program.


5

I don't know MacOS development, but I assume there must exist some way of running a non-notarized executable, if only for development purposes. (Otherwise, you'd have to submit your binary for notarization each time you ran your compiler, which seems unlikely, even for Apple's possessive attitude toward Mac development.) The "tivoization" ...


4

What strategies could the server use to ensure that everyone is playing fairly, Define unfair play: What would you consider unfair play of the following examples? Your player is using some tool/modification to... help him aim and shoot at things (aim bot in a FPS) help with your characters skill rotation (in a RPG) predict/guess your opponents cards based ...


4

Firstly, and this is important, IANAL/IANYL. If you are betting a business on this idea, you had better get some proper legal advice, and not rely solely on postings by random strangers on internet fora. That said, the interesting point here is the code signing. One of the major differences between GNU GPLv3 and GNU GPLv2 (I know your question is about ...


4

The Free Software Definition (from the FSF) is: A program is free software if the program's users have the four essential freedoms: The freedom to run the program as you wish, for any purpose (freedom 0). The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition ...


3

The only work around we could think of this point, without registering as a legal entity is to have one developer on the team sign the code and be considered as the release manager. This developer would need to be part of the core developers and a trusted member. If the release manager leaves then another developer from the core developers would be selected, ...


3

The only way you can reliably prevent cheating in your scenario is keep as much information and processing as possible on the server. Any anti cheat solution implemented on your game's client can be defeated by the client without your knowledge. For example, a system that tries to verify that a client hasn't been modified relies on the client sending a ...


2

Here's another approach: split the client in 2 parts, one that controls the core gameplay and the other one that is literally chrome around it. Distribute the first one using a typical distro mechanism in the form of signed shared libs -- the code is open and but the server will only accept control using a shared lib with a known signature. The other part of ...


1

This looks very much like "tivoization" to me, except that instead of being the firmware of a piece of hardware (e.g. Tivo) that requires a signature, it is a software (Firefox). From FSF: [...] many products containing computers check signatures on their executable programs to block users from installing different executables; only one privileged ...


1

If you want to do the traditional model where you distribute a binary and avoid people hacking it, you can do that easily in a FLOSS setting. FLOSS means that you give out the sourcecode together with your binary. Nobody keeps you from compiling it, distributing the binary (together with the sourcecode) and then trying to make sure that only this binary can ...


Only top voted, non community-wiki answers of a minimum length are eligible