~ubuntu-branches/debian/stretch/assaultcube-data/stretch

« back to all changes in this revision

Viewing changes to source/README_CUBEENGINE.txt

  • Committer: Bazaar Package Importer
  • Author(s): Gonéri Le Bouder, Ansgar Burchardt, Gonéri Le Bouder
  • Date: 2010-04-02 23:37:55 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100402233755-kf74fxwlu634o6vg
Tags: 1.0.4+repack1-1
[ Ansgar Burchardt ]
* debian/control: fix typo in short description

[ Gonéri Le Bouder ]
* Upgrade to 1.0.4
* bump standards-version to 3.8.4
* Add Depends: ${misc:Depends} just to avoid a lintian warning
* Add a debian/source/format file for the same reason

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Cube source code license, usage, and documentation.
 
2
 
 
3
You should read this file IN ITS ENTIRETY if you wish to do anything with
 
4
the cube source code, even a mere build. Own builds are not necessarily
 
5
compatible with the officially released binaries, read below.
 
6
 
 
7
You may use the cube source code if you abide by the ZLIB license
 
8
http://www.opensource.org/licenses/zlib-license.php
 
9
(very similar to the BSD license) with the additional clause below:
 
10
 
 
11
 
 
12
LICENSE
 
13
=======
 
14
 
 
15
Cube game engine source code, 20 dec 2003 release.
 
16
 
 
17
Copyright (C) 2001-2003 Wouter van Oortmerssen.
 
18
 
 
19
This software is provided 'as-is', without any express or implied
 
20
warranty.  In no event will the authors be held liable for any damages
 
21
arising from the use of this software.
 
22
 
 
23
Permission is granted to anyone to use this software for any purpose,
 
24
including commercial applications, and to alter it and redistribute it
 
25
freely, subject to the following restrictions:
 
26
 
 
27
1. The origin of this software must not be misrepresented; you must not
 
28
   claim that you wrote the original software. If you use this software
 
29
   in a product, an acknowledgment in the product documentation would be
 
30
   appreciated but is not required.
 
31
2. Altered source versions must be plainly marked as such, and must not be
 
32
   misrepresented as being the original software.
 
33
3. This notice may not be removed or altered from any source distribution.
 
34
 
 
35
additional clause specific to Cube:
 
36
 
 
37
4. Source versions may not be "relicensed" under a different license
 
38
   without my explicitly written permission.
 
39
 
 
40
 
 
41
LICENSE NOTES
 
42
=============
 
43
The license covers the source code found in the "src" directory of this
 
44
archive, the included enet network library which cube uses is covered by
 
45
the "No problem Bugroff" license, which is however compatible with the
 
46
above license for all practical purposes.
 
47
 
 
48
Game media included in the cube game (maps, textures, sounds, models etc.)
 
49
are not covered by this license, and may have individual copyrights and
 
50
distribution restrictions (see individual readmes).
 
51
 
 
52
 
 
53
USAGE
 
54
=====
 
55
Compiling the sources should be straight forward.
 
56
 
 
57
Unix users need to make sure to have the development version of all libs
 
58
installed (OpenGL, SDL, SDL_Mixer, SDL_Image, zlib, libpng). The included
 
59
makefiles can be used to build.
 
60
 
 
61
Windows users can use the included visual studio .net 2003 project files, which
 
62
references the lib/include directories for the external libraries and should
 
63
thus be self contained. The project is set up assuming you have the normal
 
64
cube binary distribution as a subdirectory "cube" of the root of this archive,
 
65
so release mode builds will place executables in the bin dir ready for testing
 
66
and distribution. Do not come ask me for help in compiling or modifying the
 
67
sources, if you can't figure out how to do this yourself you probably shouldn't
 
68
be touching the files anyway.
 
69
 
 
70
The cube sources are very small, compact, and non redundant, so anyone
 
71
wishing to modify the source code should be able to gain an overview of
 
72
cube's inner workings by simply reading through the source code in its
 
73
entirety. Small amounts of comments should guide you through the more
 
74
tricky sections.
 
75
 
 
76
When reading the source code and trying to understand cube's internal design,
 
77
keep in mind the goal of cube: minimalism. I wanted to create a very complete
 
78
game / game engine with absolutely minimal means, and made a sport out of it
 
79
keeping the implementation small and simple. Cube is not a commercial product,
 
80
it is merely the author's idea of a fun little programming project.
 
81
 
 
82
 
 
83
OPEN SOURCE
 
84
===========
 
85
Cube is open source (see ZLIB license above). This only means that you have
 
86
great freedom using it for your own projects, but does NOT mean the main cube
 
87
code is an "open source project" in the sense that everyone is invited to
 
88
contribute to it. The main cube code will remain a one man project (me), as my
 
89
minimalistic design is highly incompatible with the open source philosophy. If you
 
90
add to the cube source code, you fork the code and it becomes your own project,
 
91
do not ask for me to integrate your changes into the main branch, no matter
 
92
how brilliant they are.
 
93
 
 
94
 
 
95
CHEATING
 
96
========
 
97
If you want to use cube as a base for a game where the multiplayer aspect is
 
98
important and used by a large community, you need to be aware that cube's
 
99
thick client - thin server architecture is extremely cheat sensitive. If you
 
100
release a cube based game with source code equivalent to the binaries, some
 
101
minor changes can give anyone an aimbot or other cheats in online games.
 
102
There are several ways to make this less easy, some of which are:
 
103
 
 
104
1. only distribute binaries (the ZLIB license allows this). Executables can still
 
105
   be hacked, but unless you have a really large online community, noone will
 
106
   probably bother.
 
107
2. write a network proxy, such as qizmo used with QuakeWorld (whose sources are
 
108
   also open source). The proxy is a small closed source program that checksums
 
109
   the executable, and maybe also some game media. You can then make servers
 
110
   or game admins request this information and ban cheaters.
 
111
3. release the sources with an incompatible network protocol or other changes
 
112
   compared to the binaries you release.
 
113
4. build serious cheat detection into the game. Since all clients are their own
 
114
   "servers", you can make them all keep track of stats for the other players,
 
115
   such as health etc. you can make all sorts of consistency checks on shots,
 
116
   movement speed and items. If the discrepancy for a certain client becomes
 
117
   too big, all clients but the cheater can send their "vote" to the server
 
118
   for having him banned. Even better, you can add server side stat checking.
 
119
 
 
120
For the cube's own game I chose option 3, i.e. you can only play the official
 
121
cube game using the binaries supplied by me, and you can't compile your own clients
 
122
for multiplayer use (you can still make custom clients that work with matching
 
123
custom servers, or play cube single player maps compatible with the real thing).
 
124
This situation is not ideal, but there is no easy way around it.
 
125
 
 
126
This scheme is probably very easy to defeat if you are capable of using disassemblers
 
127
and packet sniffers, but please contrain yourself and don't ruin the fun of the
 
128
cube multiplayer community. Thanks.
 
129
 
 
130
 
 
131
AUTHOR
 
132
======
 
133
Wouter van Oortmerssen aka Aardappel
 
134
wvo@fov120.com
 
135
http://wouter.fov120.com
 
136
 
 
137
For additional authors/contributors, see the cube binary distribution readme.html