diff options
Diffstat (limited to 'life2')
| -rw-r--r-- | life2/game/CC-4.0 | 396 | ||||
| -rw-r--r-- | life2/game/INSTALL | 17 | ||||
| -rw-r--r-- | life2/game/LICENSE | 202 | ||||
| -rw-r--r-- | life2/game/MANUAL | 122 | ||||
| -rw-r--r-- | life2/game/README | 25 | ||||
| -rw-r--r-- | life2/game/README.md | 41 | ||||
| -rw-r--r-- | life2/game/package.json | 23 | 
7 files changed, 783 insertions, 43 deletions
diff --git a/life2/game/CC-4.0 b/life2/game/CC-4.0 new file mode 100644 index 0000000..da6ab6c --- /dev/null +++ b/life2/game/CC-4.0 @@ -0,0 +1,396 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + +     Considerations for licensors: Our public licenses are +     intended for use by those authorized to give the public +     permission to use material in ways otherwise restricted by +     copyright and certain other rights. Our licenses are +     irrevocable. Licensors should read and understand the terms +     and conditions of the license they choose before applying it. +     Licensors should also secure all rights necessary before +     applying our licenses so that the public can reuse the +     material as expected. Licensors should clearly mark any +     material not subject to the license. This includes other CC- +     licensed material, or material used under an exception or +     limitation to copyright. More considerations for licensors: +    wiki.creativecommons.org/Considerations_for_licensors + +     Considerations for the public: By using one of our public +     licenses, a licensor grants the public permission to use the +     licensed material under specified terms and conditions. If +     the licensor's permission is not necessary for any reason--for +     example, because of any applicable exception or limitation to +     copyright--then that use is not regulated by the license. Our +     licenses grant only permissions under copyright and certain +     other rights that a licensor has authority to grant. Use of +     the licensed material may still be restricted for other +     reasons, including because others have copyright or other +     rights in the material. A licensor may make special requests, +     such as asking that all changes be marked or described. +     Although not required by our licenses, you are encouraged to +     respect those requests where reasonable. More considerations +     for the public: +    wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + +  a. Adapted Material means material subject to Copyright and Similar +     Rights that is derived from or based upon the Licensed Material +     and in which the Licensed Material is translated, altered, +     arranged, transformed, or otherwise modified in a manner requiring +     permission under the Copyright and Similar Rights held by the +     Licensor. For purposes of this Public License, where the Licensed +     Material is a musical work, performance, or sound recording, +     Adapted Material is always produced where the Licensed Material is +     synched in timed relation with a moving image. + +  b. Adapter's License means the license You apply to Your Copyright +     and Similar Rights in Your contributions to Adapted Material in +     accordance with the terms and conditions of this Public License. + +  c. Copyright and Similar Rights means copyright and/or similar rights +     closely related to copyright including, without limitation, +     performance, broadcast, sound recording, and Sui Generis Database +     Rights, without regard to how the rights are labeled or +     categorized. For purposes of this Public License, the rights +     specified in Section 2(b)(1)-(2) are not Copyright and Similar +     Rights. + +  d. Effective Technological Measures means those measures that, in the +     absence of proper authority, may not be circumvented under laws +     fulfilling obligations under Article 11 of the WIPO Copyright +     Treaty adopted on December 20, 1996, and/or similar international +     agreements. + +  e. Exceptions and Limitations means fair use, fair dealing, and/or +     any other exception or limitation to Copyright and Similar Rights +     that applies to Your use of the Licensed Material. + +  f. Licensed Material means the artistic or literary work, database, +     or other material to which the Licensor applied this Public +     License. + +  g. Licensed Rights means the rights granted to You subject to the +     terms and conditions of this Public License, which are limited to +     all Copyright and Similar Rights that apply to Your use of the +     Licensed Material and that the Licensor has authority to license. + +  h. Licensor means the individual(s) or entity(ies) granting rights +     under this Public License. + +  i. Share means to provide material to the public by any means or +     process that requires permission under the Licensed Rights, such +     as reproduction, public display, public performance, distribution, +     dissemination, communication, or importation, and to make material +     available to the public including in ways that members of the +     public may access the material from a place and at a time +     individually chosen by them. + +  j. Sui Generis Database Rights means rights other than copyright +     resulting from Directive 96/9/EC of the European Parliament and of +     the Council of 11 March 1996 on the legal protection of databases, +     as amended and/or succeeded, as well as other essentially +     equivalent rights anywhere in the world. + +  k. You means the individual or entity exercising the Licensed Rights +     under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + +  a. License grant. + +       1. Subject to the terms and conditions of this Public License, +          the Licensor hereby grants You a worldwide, royalty-free, +          non-sublicensable, non-exclusive, irrevocable license to +          exercise the Licensed Rights in the Licensed Material to: + +            a. reproduce and Share the Licensed Material, in whole or +               in part; and + +            b. produce, reproduce, and Share Adapted Material. + +       2. Exceptions and Limitations. For the avoidance of doubt, where +          Exceptions and Limitations apply to Your use, this Public +          License does not apply, and You do not need to comply with +          its terms and conditions. + +       3. Term. The term of this Public License is specified in Section +          6(a). + +       4. Media and formats; technical modifications allowed. The +          Licensor authorizes You to exercise the Licensed Rights in +          all media and formats whether now known or hereafter created, +          and to make technical modifications necessary to do so. The +          Licensor waives and/or agrees not to assert any right or +          authority to forbid You from making technical modifications +          necessary to exercise the Licensed Rights, including +          technical modifications necessary to circumvent Effective +          Technological Measures. For purposes of this Public License, +          simply making modifications authorized by this Section 2(a) +          (4) never produces Adapted Material. + +       5. Downstream recipients. + +            a. Offer from the Licensor -- Licensed Material. Every +               recipient of the Licensed Material automatically +               receives an offer from the Licensor to exercise the +               Licensed Rights under the terms and conditions of this +               Public License. + +            b. No downstream restrictions. You may not offer or impose +               any additional or different terms or conditions on, or +               apply any Effective Technological Measures to, the +               Licensed Material if doing so restricts exercise of the +               Licensed Rights by any recipient of the Licensed +               Material. + +       6. No endorsement. Nothing in this Public License constitutes or +          may be construed as permission to assert or imply that You +          are, or that Your use of the Licensed Material is, connected +          with, or sponsored, endorsed, or granted official status by, +          the Licensor or others designated to receive attribution as +          provided in Section 3(a)(1)(A)(i). + +  b. Other rights. + +       1. Moral rights, such as the right of integrity, are not +          licensed under this Public License, nor are publicity, +          privacy, and/or other similar personality rights; however, to +          the extent possible, the Licensor waives and/or agrees not to +          assert any such rights held by the Licensor to the limited +          extent necessary to allow You to exercise the Licensed +          Rights, but not otherwise. + +       2. Patent and trademark rights are not licensed under this +          Public License. + +       3. To the extent possible, the Licensor waives any right to +          collect royalties from You for the exercise of the Licensed +          Rights, whether directly or through a collecting society +          under any voluntary or waivable statutory or compulsory +          licensing scheme. In all other cases the Licensor expressly +          reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + +  a. Attribution. + +       1. If You Share the Licensed Material (including in modified +          form), You must: + +            a. retain the following if it is supplied by the Licensor +               with the Licensed Material: + +                 i. identification of the creator(s) of the Licensed +                    Material and any others designated to receive +                    attribution, in any reasonable manner requested by +                    the Licensor (including by pseudonym if +                    designated); + +                ii. a copyright notice; + +               iii. a notice that refers to this Public License; + +                iv. a notice that refers to the disclaimer of +                    warranties; + +                 v. a URI or hyperlink to the Licensed Material to the +                    extent reasonably practicable; + +            b. indicate if You modified the Licensed Material and +               retain an indication of any previous modifications; and + +            c. indicate the Licensed Material is licensed under this +               Public License, and include the text of, or the URI or +               hyperlink to, this Public License. + +       2. You may satisfy the conditions in Section 3(a)(1) in any +          reasonable manner based on the medium, means, and context in +          which You Share the Licensed Material. For example, it may be +          reasonable to satisfy the conditions by providing a URI or +          hyperlink to a resource that includes the required +          information. + +       3. If requested by the Licensor, You must remove any of the +          information required by Section 3(a)(1)(A) to the extent +          reasonably practicable. + +       4. If You Share Adapted Material You produce, the Adapter's +          License You apply must not prevent recipients of the Adapted +          Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + +  a. for the avoidance of doubt, Section 2(a)(1) grants You the right +     to extract, reuse, reproduce, and Share all or a substantial +     portion of the contents of the database; + +  b. if You include all or a substantial portion of the database +     contents in a database in which You have Sui Generis Database +     Rights, then the database in which You have Sui Generis Database +     Rights (but not its individual contents) is Adapted Material; and + +  c. You must comply with the conditions in Section 3(a) if You Share +     all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + +  a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE +     EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS +     AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF +     ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, +     IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, +     WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR +     PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, +     ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT +     KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT +     ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + +  b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE +     TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, +     NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, +     INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, +     COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR +     USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN +     ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR +     DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR +     IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +  c. The disclaimer of warranties and limitation of liability provided +     above shall be interpreted in a manner that, to the extent +     possible, most closely approximates an absolute disclaimer and +     waiver of all liability. + + +Section 6 -- Term and Termination. + +  a. This Public License applies for the term of the Copyright and +     Similar Rights licensed here. However, if You fail to comply with +     this Public License, then Your rights under this Public License +     terminate automatically. + +  b. Where Your right to use the Licensed Material has terminated under +     Section 6(a), it reinstates: + +       1. automatically as of the date the violation is cured, provided +          it is cured within 30 days of Your discovery of the +          violation; or + +       2. upon express reinstatement by the Licensor. + +     For the avoidance of doubt, this Section 6(b) does not affect any +     right the Licensor may have to seek remedies for Your violations +     of this Public License. + +  c. For the avoidance of doubt, the Licensor may also offer the +     Licensed Material under separate terms or conditions or stop +     distributing the Licensed Material at any time; however, doing so +     will not terminate this Public License. + +  d. Sections 1, 5, 6, 7, and 8 survive termination of this Public +     License. + + +Section 7 -- Other Terms and Conditions. + +  a. The Licensor shall not be bound by any additional or different +     terms or conditions communicated by You unless expressly agreed. + +  b. Any arrangements, understandings, or agreements regarding the +     Licensed Material not stated herein are separate from and +     independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + +  a. For the avoidance of doubt, this Public License does not, and +     shall not be interpreted to, reduce, limit, restrict, or impose +     conditions on any use of the Licensed Material that could lawfully +     be made without permission under this Public License. + +  b. To the extent possible, if any provision of this Public License is +     deemed unenforceable, it shall be automatically reformed to the +     minimum extent necessary to make it enforceable. If the provision +     cannot be reformed, it shall be severed from this Public License +     without affecting the enforceability of the remaining terms and +     conditions. + +  c. No term or condition of this Public License will be waived and no +     failure to comply consented to unless expressly agreed to by the +     Licensor. + +  d. Nothing in this Public License constitutes or may be interpreted +     as a limitation upon, or waiver of, any privileges and immunities +     that apply to the Licensor or You, including from the legal +     processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. + diff --git a/life2/game/INSTALL b/life2/game/INSTALL new file mode 100644 index 0000000..63f6957 --- /dev/null +++ b/life2/game/INSTALL @@ -0,0 +1,17 @@ + +                          INSTALLATION OF @life2/game + + +   NPM + +@life2/game is a JavaScript package distributed via NPM (https://npmjs.com). +You can found the online page of the package at +https://npmjs.com/package/@life2/game. + +Installation can be done in any Node.js projects or with NPM-compatible tools: + +    # NPM +    npm install @life2/game + +    # Yarn +    yarn add @life2/game diff --git a/life2/game/LICENSE b/life2/game/LICENSE new file mode 100644 index 0000000..7a4a3ea --- /dev/null +++ b/life2/game/LICENSE @@ -0,0 +1,202 @@ + +                                 Apache License +                           Version 2.0, January 2004 +                        http://www.apache.org/licenses/ + +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +   1. Definitions. + +      "License" shall mean the terms and conditions for use, reproduction, +      and distribution as defined by Sections 1 through 9 of this document. + +      "Licensor" shall mean the copyright owner or entity authorized by +      the copyright owner that is granting the License. + +      "Legal Entity" shall mean the union of the acting entity and all +      other entities that control, are controlled by, or are under common +      control with that entity. For the purposes of this definition, +      "control" means (i) the power, direct or indirect, to cause the +      direction or management of such entity, whether by contract or +      otherwise, or (ii) ownership of fifty percent (50%) or more of the +      outstanding shares, or (iii) beneficial ownership of such entity. + +      "You" (or "Your") shall mean an individual or Legal Entity +      exercising permissions granted by this License. + +      "Source" form shall mean the preferred form for making modifications, +      including but not limited to software source code, documentation +      source, and configuration files. + +      "Object" form shall mean any form resulting from mechanical +      transformation or translation of a Source form, including but +      not limited to compiled object code, generated documentation, +      and conversions to other media types. + +      "Work" shall mean the work of authorship, whether in Source or +      Object form, made available under the License, as indicated by a +      copyright notice that is included in or attached to the work +      (an example is provided in the Appendix below). + +      "Derivative Works" shall mean any work, whether in Source or Object +      form, that is based on (or derived from) the Work and for which the +      editorial revisions, annotations, elaborations, or other modifications +      represent, as a whole, an original work of authorship. For the purposes +      of this License, Derivative Works shall not include works that remain +      separable from, or merely link (or bind by name) to the interfaces of, +      the Work and Derivative Works thereof. + +      "Contribution" shall mean any work of authorship, including +      the original version of the Work and any modifications or additions +      to that Work or Derivative Works thereof, that is intentionally +      submitted to Licensor for inclusion in the Work by the copyright owner +      or by an individual or Legal Entity authorized to submit on behalf of +      the copyright owner. For the purposes of this definition, "submitted" +      means any form of electronic, verbal, or written communication sent +      to the Licensor or its representatives, including but not limited to +      communication on electronic mailing lists, source code control systems, +      and issue tracking systems that are managed by, or on behalf of, the +      Licensor for the purpose of discussing and improving the Work, but +      excluding communication that is conspicuously marked or otherwise +      designated in writing by the copyright owner as "Not a Contribution." + +      "Contributor" shall mean Licensor and any individual or Legal Entity +      on behalf of whom a Contribution has been received by Licensor and +      subsequently incorporated within the Work. + +   2. Grant of Copyright License. Subject to the terms and conditions of +      this License, each Contributor hereby grants to You a perpetual, +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable +      copyright license to reproduce, prepare Derivative Works of, +      publicly display, publicly perform, sublicense, and distribute the +      Work and such Derivative Works in Source or Object form. + +   3. Grant of Patent License. Subject to the terms and conditions of +      this License, each Contributor hereby grants to You a perpetual, +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable +      (except as stated in this section) patent license to make, have made, +      use, offer to sell, sell, import, and otherwise transfer the Work, +      where such license applies only to those patent claims licensable +      by such Contributor that are necessarily infringed by their +      Contribution(s) alone or by combination of their Contribution(s) +      with the Work to which such Contribution(s) was submitted. If You +      institute patent litigation against any entity (including a +      cross-claim or counterclaim in a lawsuit) alleging that the Work +      or a Contribution incorporated within the Work constitutes direct +      or contributory patent infringement, then any patent licenses +      granted to You under this License for that Work shall terminate +      as of the date such litigation is filed. + +   4. Redistribution. You may reproduce and distribute copies of the +      Work or Derivative Works thereof in any medium, with or without +      modifications, and in Source or Object form, provided that You +      meet the following conditions: + +      (a) You must give any other recipients of the Work or +          Derivative Works a copy of this License; and + +      (b) You must cause any modified files to carry prominent notices +          stating that You changed the files; and + +      (c) You must retain, in the Source form of any Derivative Works +          that You distribute, all copyright, patent, trademark, and +          attribution notices from the Source form of the Work, +          excluding those notices that do not pertain to any part of +          the Derivative Works; and + +      (d) If the Work includes a "NOTICE" text file as part of its +          distribution, then any Derivative Works that You distribute must +          include a readable copy of the attribution notices contained +          within such NOTICE file, excluding those notices that do not +          pertain to any part of the Derivative Works, in at least one +          of the following places: within a NOTICE text file distributed +          as part of the Derivative Works; within the Source form or +          documentation, if provided along with the Derivative Works; or, +          within a display generated by the Derivative Works, if and +          wherever such third-party notices normally appear. The contents +          of the NOTICE file are for informational purposes only and +          do not modify the License. You may add Your own attribution +          notices within Derivative Works that You distribute, alongside +          or as an addendum to the NOTICE text from the Work, provided +          that such additional attribution notices cannot be construed +          as modifying the License. + +      You may add Your own copyright statement to Your modifications and +      may provide additional or different license terms and conditions +      for use, reproduction, or distribution of Your modifications, or +      for any such Derivative Works as a whole, provided Your use, +      reproduction, and distribution of the Work otherwise complies with +      the conditions stated in this License. + +   5. Submission of Contributions. Unless You explicitly state otherwise, +      any Contribution intentionally submitted for inclusion in the Work +      by You to the Licensor shall be under the terms and conditions of +      this License, without any additional terms or conditions. +      Notwithstanding the above, nothing herein shall supersede or modify +      the terms of any separate license agreement you may have executed +      with Licensor regarding such Contributions. + +   6. Trademarks. This License does not grant permission to use the trade +      names, trademarks, service marks, or product names of the Licensor, +      except as required for reasonable and customary use in describing the +      origin of the Work and reproducing the content of the NOTICE file. + +   7. Disclaimer of Warranty. Unless required by applicable law or +      agreed to in writing, Licensor provides the Work (and each +      Contributor provides its Contributions) on an "AS IS" BASIS, +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +      implied, including, without limitation, any warranties or conditions +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +      PARTICULAR PURPOSE. You are solely responsible for determining the +      appropriateness of using or redistributing the Work and assume any +      risks associated with Your exercise of permissions under this License. + +   8. Limitation of Liability. In no event and under no legal theory, +      whether in tort (including negligence), contract, or otherwise, +      unless required by applicable law (such as deliberate and grossly +      negligent acts) or agreed to in writing, shall any Contributor be +      liable to You for damages, including any direct, indirect, special, +      incidental, or consequential damages of any character arising as a +      result of this License or out of the use or inability to use the +      Work (including but not limited to damages for loss of goodwill, +      work stoppage, computer failure or malfunction, or any and all +      other commercial damages or losses), even if such Contributor +      has been advised of the possibility of such damages. + +   9. Accepting Warranty or Additional Liability. While redistributing +      the Work or Derivative Works thereof, You may choose to offer, +      and charge a fee for, acceptance of support, warranty, indemnity, +      or other liability obligations and/or rights consistent with this +      License. However, in accepting such obligations, You may act only +      on Your own behalf and on Your sole responsibility, not on behalf +      of any other Contributor, and only if You agree to indemnify, +      defend, and hold each Contributor harmless for any liability +      incurred by, or claims asserted against, such Contributor by reason +      of your accepting any such warranty or additional liability. + +   END OF TERMS AND CONDITIONS + +   APPENDIX: How to apply the Apache License to your work. + +      To apply the Apache License to your work, attach the following +      boilerplate notice, with the fields enclosed by brackets "[]" +      replaced with your own identifying information. (Don't include +      the brackets!)  The text should be enclosed in the appropriate +      comment syntax for the file format. We also recommend that a +      file or class name and description of purpose be included on the +      same "printed page" as the copyright notice for easier +      identification within third-party archives. + +   Copyright [yyyy] [name of copyright owner] + +   Licensed under the Apache License, Version 2.0 (the "License"); +   you may not use this file except in compliance with the License. +   You may obtain a copy of the License at + +       http://www.apache.org/licenses/LICENSE-2.0 + +   Unless required by applicable law or agreed to in writing, software +   distributed under the License is distributed on an "AS IS" BASIS, +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +   See the License for the specific language governing permissions and +   limitations under the License.
\ No newline at end of file diff --git a/life2/game/MANUAL b/life2/game/MANUAL new file mode 100644 index 0000000..29c4fae --- /dev/null +++ b/life2/game/MANUAL @@ -0,0 +1,122 @@ + +                            MANUAL DOCUMENTATION FOR +                                  @life2/game + + +This document provides usage notices and extensive documentations about the API +exposed by the @life2/game JavaScript package.  Please also consider looking +at the source files in the same directory to learn more. + + +   Copyright Notice + +This manual is written by Nicolas Paul.  The author decided to publish and +distribute this document under the terms of the Creative Commons Attribution +4.0 International license agreement (CC 4.0).  You can find a copy of the +agreement in the CC-4.0 file. + + +   Introduction + +@life2/game is a JavaScript implementation of the Life2 simulation game, which +is expected to be used in Web browsers, such as the Life2 Web Simulation Tool. + +Life2 is a cellular automaton similar to Conway's Game of Life, with the +particularity that the cells can be members of societies (Life2 allows only +two societies, hence the "2" in the name). +Games of Life2 happen in a two-dimensional space.  This package provides a +third type of cells entitled BARRIERs which are immutable.  They can be used +to create shaped-boards, such as circles. + +    ################# +    ####...###...####     HEARTH SHAPED GAME BOARD +    ##......#......## +    #...............#     Board size: 17x7 +    ##.............##     "#" are BARRIER cells, "." are EMPTY cells. +    ####.........#### +    ######.....###### +    ########.######## +    ################# + +The main goals of Life2 is to study the maths behind the interaction between +cells from the same team, as well as the behavior of societies between each +others in specific configurations. + + +   Installation + +Since @life2/game is a NPM package, it can be installed using any NPM-compatible +toolchain: + +    npm install -E @life2/game + +See more detailed information in the INSTALL file. + + +   World, the Entry Point of All Life2 Games + +The entry point for every Life2 simulations start with the World class.  This +class consists of a facade between your code and the internal game state. +Indeed, to start a simulation, users are expected to instantiate a new World +object with a board and, optionally, a list of rules. + +The board, an instance of Board, describes the game board that will be used +within the simulation.  Boards are pretty flexible, as they can describe any +shapes (as seen earlier).  Rules are mathematical functions that are used by +the World to determine the next state of a cell. + +Given b any board, and r a list of rules, we can create a new game using: + +    import {World} from 'life2'; + +    const game = new World(b, r); + +Do note that the second parameter (the list of rules), is optional.  Rules may +be added later via the World.rules interface. + +The class World exposes a limited API, reducing the chances of corrupting the +simulation state: + +  * World.board: access to the Board class defining the board used by the +    simulation. + +  * World.rules: a RulesManager facade that is responsible for managing rules, +    such as registering or removing rules on-the-fly. + +  * World.nextState(): simulates a movement forward in time, calculating the +    new state of the board and applying it to the simulation.  The new state +    is determined by applying, for each non BARRIER cells, all the registered +    rules, obtaining an array of cell states.  Then, the array list is reduced +    to only return the most occurring element, which will be the new state for +    this cell.  We save this new cell in a copy of the board, the copy will be +    assigned to World.board once all cells have been computed. + + +   RulesManager, an Utility Facade + +The class RulesManager serves as another facade to manage the registration of +rules within a World.  The registration of rules is important as it can be done +"on-the-fly" (between two World.nextState() calls), which can allow the +development of interface debugging interfaces for Life2 simulations. + +You are not expected to instantiate RulesManager classes by yourself, but +simply use the public methods it exposes.  Each World instance has its own +RulesManager, available via World.rules. + +The public API for a RulesManager is: + +  * getAll(): returns the list of all registered rules in the manager. + +  * add(rule): registers a rule into the manager, or throws an error if it is +    already registered.  Registered rules are used by the World to calculate +    the states of cells. + +  * remove(rule): removes a rule from the manager. + +  * has(rule): checks whether or not the passed rule is already registered. + + +   Rule, the Way to Manipulate Societies + +TODO + diff --git a/life2/game/README b/life2/game/README new file mode 100644 index 0000000..76fed2d --- /dev/null +++ b/life2/game/README @@ -0,0 +1,25 @@ + +                                  @life2/game + + +   Introduction + +@life2/game is a JavaScript implementation of the Life2 simulation game. +It is supposed to work on any modern ECMAScript 5+ runtimes, including +V8-based machines (Node.js, Google Chrome, ...), and other engines. + +The Life2 simulation game is a cellular automaton software where two societies +are created and populated by cells.  The game is based on the same ideas +behind Conway's Game of Life, except it is flexible enough to allow external +rules, and it separates cells in two teams (so called "groups" or "societies"). + +The principal objectives behind Life2 is to analyze the behavior of societies +given the rules we defined for them.  For example, how does members of +different societies interact with each other? + +To install and use this software, please read: + +  1.  The INSTALL file for installation instructions. +  2.  The MANUAL file for usage instructions, including documentation of +      the API. +  3.  The LICENSE file for licensing information. diff --git a/life2/game/README.md b/life2/game/README.md deleted file mode 100644 index ae322b8..0000000 --- a/life2/game/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# `@life2/game` - -[`@life2/game`][pkg] is a JavaScript implementation of the Life2 simulation -game made to work on V8-compatible runtime, including [Node.js][nodejs], -[Bun][bun], and standard Web browsers. - -The Life2 simulation game is a cellular automaton software following the same -aspect as the traditional [Conway's Game of Life][gol], except it separates -cells in two teams (so called "groups" or "societies"). -The principal objectives behind Life2 is to analyze the behavior of societies -given the rules we defined for them: *how does members of a same society -interact with each other (growth, death, ...)?* *How do two society can live -together when they are different and live in a world where the rules encourage -one to takeover the other?* - -[pkg]: https://www.npmjs.com/package/@life2/game -[nodejs]: https://nodejs.org/ -[bun]: https://bun.sh -[gol]: https://en.wikipedia.org/wiki/Conway's_Game_of_Life - -## Installation - -The package is distributed via the [NPM][npm] registry: - -```shell -# With NPM -npm install -E @life2/game - -# With Yarn -yarn add -E @life2/game -``` - -[npm]: https://npmjs.com - -## Usage - -TODO(nc0): write package a provide a simple usage example there - -## Documentation - -TODO(nc0): write documentation and link it there diff --git a/life2/game/package.json b/life2/game/package.json index e4d9e59..e80f414 100644 --- a/life2/game/package.json +++ b/life2/game/package.json @@ -1,6 +1,6 @@  {      "name": "@life2/game", -    "version": "0.1.0", +    "version": "1.0.0",      "description": "Node.js implementation of the Life2 game.",      "keywords": [          "cellular", @@ -28,7 +28,26 @@        "url": "https://github.com/nc0fr/life2.git",        "directory": "life2/game"      }, +    "files": [ +        "CC-4.0", +        "INSTALL", +        "LICENSE", +        "MANUAL", +        "README", +        "board.js", +        "cell.js", +        "index.js", +        "rule.js", +        "rules_manager.js", +        "world.js" +    ], +    "main": "./index.js", +    "readme": "README",      "scripts": { -      "test": "echo \"Error: no test specified\" && exit 1" +      "test": "exit 0", +      "lint": "eslint .", +      "lint-fix": "eslint --fix .", +      "fmt": "clang-format -i *.js", +      "fmt-check": "clang-format --dry-run --Werror *.js"      }    }  | 
