Skip to content

Latest commit

 

History

History
113 lines (84 loc) · 3.84 KB

README.md

File metadata and controls

113 lines (84 loc) · 3.84 KB

Sentience in Space

Copyright (C) 2013 T.J. Callahan Copyright (C) 2013 Jonathan Cann Copyright (C) 2013 Geo Kersey Copyright (C) 2013 Jason Lee Copyright (C) 2013 Kate Spinney

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Requirements: System that is supported by Python 2.7.x and pygame 1.9.1 Python 2.7.x (http://www.python.org/) pygame 1.9.1 (http://www.pygame.org/)

Usage: Run main.py

Default keys:
    WASD for movement
    ESC to quit
    SPACE to pick up
    ENTER for select
    I for inventory
    M for map
    J for journal
    P for Puzzle

Additional Information (Change Logs, Bugs, etc): https://github.com/Spinnk/Robot-Murder-Investigation.git http://bestvideogame.wikidot.com/

======================================================================

Sentience in Space Specialized File/Data Formats:

Saves (*.rmis)

    A save file will consist of concatenations of save data (extended ASCII character strings) in the following order:

        len(Character) | Character | len(Inventory) | Inventory | len(Journal) | Journal | len(Ship) | Ship | NPC_count | len(NPC) | NPC | ...  | len(NPC) | NPC | SHA12 hash of previous data

        len() will be a 2 byte big-endian representation of the length of the data packet following it:
            length = 1234 (decimal) -> 0x04d2 -> '\x04\xd2'

        NPC_count will be a 2 byte big-endian representation of how many NPCs are in the save

        Character Format (3 bytes):
            x | y | clip
            x          - 1 byte
            y          - 1 byte
            clip       - 1 byte

        Inventory Format (3 bytes * INVENTORY_X * INVENTORY_Y):
            item | count | special | item | count | special | ...
            item       - 1 byte
            count      - 1 byte
            special    - 1 byte

        Journal Format (2 bytes * count)
            has_read | entry | has_read | entry | ...
            has_read   - 1 byte
            entry      - 1 byte

        Ship Format (3 bytes * MAP_X * MAP_Y):
            item_x | item_y
            item_x     - 1 byte
            item_y     - 1 byte
            item_type  - 1 byte

        NPC Format (Variable size * count):
            type | name_len | name | x | y | clip
            type       - 1 byte
            name_len   - 2 bytes
            name       - name_len bytes
            x          - 1 byte
            y          - 1 byte
            clip       - 1 byte

Map (map.txt)

    A series of (extended) ASCII characters representing the tiles. The file will be MAP_WIDTH * MAP_HEIGHT bytes large.
    The map is written row by row.

Journal (journal entries.txt)

    A Journal Entry is contained within 2 lines based on OpenPGP Armor. All other lines in the file are considered comments.
    The order of entries determines the index of the entries within the program.

    -----BEGIN ENTRY-----
    TITLE LINE
    TEXT LINE 1
    TEXT LINE 2
    -----END ENTRY-----

Puzzle Map (puzzle map.txt)

    A series of integers in a grid representing the default configuration of a puzzle.

Dialogue (dialogue_n_.txt, _n_ is an integer):

    Unknown