home *** CD-ROM | disk | FTP | other *** search
/ Freelog 42 / Freelog042.iso / Graphisme3D / Cube / source / readme.txt < prev   
Text File  |  2002-10-20  |  6KB  |  132 lines

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