Skip to content

Fastpaced roguelike inside a computer. You must escape before you become corrupted! OGPC 2023 submission.

License

Notifications You must be signed in to change notification settings

TigardHighGDC/Augmentation

Repository files navigation

Augmentation

A 2D roguelike designed around leveling is bad. (Incomplete)

Getting Started

Please read the contributing guidelines before starting any work on this project. If you made it through that, here are the next steps:

  1. Install the latest version of Unity.
  • You can check what version we are currently using by looking through our PRs filtering by the tag unity.
  1. Clone the repository.
  • If you are using a command prompt paste the following line and hit enter:
    • git clone https://github.com/TigardHighGDC/Augmentation
  1. After the clone is sucessful, call the following line to update all of our submodules:
    • git submodule update --init --progress
  2. And finally, open the project in Unity.
  3. That's it! You are officially ready to start working on the project! We will be reviewing your PR soon, good luck soldier!

Map Generation Block Diagram

flowchart TB
    classDef default text-align:left
    subgraph MapGenerationSubgraph[Map Generation Steps]
        direction TB
        MapNode("<b>Map Manager</b>
        The Map Manager determines whether a map has been saved before or if a new map needs to be generated.")
        subgraph MapSavedSubgraph[Map Already Exists]
        direction TB
            LoadSavedMapNode("<b>Load Saved Map</b>
            At this point a map has
            already been generated and
            saved using json.")
        end
        subgraph MapGenerationStepsSubgraph[Map Needs to be Generated]
            direction TB
            GetMapConfigNode("<b>Retrieve Map Generator Config</b>
            The map generator has many options that are all stored in a 
            config file. An example of some of these options includes:
            - Min and max number of nodes before the boss.
            - How many starting nodes.
            - Number of paths between nodes in a layer.")
            MapLayersNode("<b>Create Map Layers</b>
            Each map is split up into layers, each layer has a variable
            number of nodes depending on the map config set. At this
            step all, individual nodes are also generated from the
            provided node blueprints from the map config.")
            GenerateNodePathsNode("<b>Generate Linear Node Paths</b>
            Generates a path from the starting nodes directly to the same
            node of the next layer.
            It is guaranteed that there will always be a path from all
            starting nodes to the final boss node.")
            RandomizeNodePositionsNode("<b>Randomize Node Positions</b>
            In this step the physical placement of the nodes that are
            going to be added to the map is randomized; based on the
            map config.")
            CreateNodeConnectionsNode("<b>Create Node Connections</b>
            Connects all the nodes from one layer to all the nodes
            of the next layer. This step does not check if the path is valid.")
            RemoveCrossingPathsNode("<b>Remove Crossing Paths</b>
            At this point we start to build a valid map. This step
            removes all the paths between layers that cross over each
            other. When a path is found this crosses it is randomized
            what path will be removed.")
            GenerateDynamicPathsNode("<b>Generate Dynamic Node Paths</b>
            Now we have a valid template for the map, now we randomly
            choose valid crossing paths from the available crossing
            paths that we generated in the previous steps.")
        end
    end
    subgraph DisplayMapSubgraph[Display Map]
        ShowMapNode("Map has been generated and is ready to be
        displayed to the player.")
    end
    MapNode ==> MapGenerationStepsSubgraph
    MapNode ==> MapSavedSubgraph
    GetMapConfigNode ==> MapLayersNode ==> GenerateNodePathsNode ==> RandomizeNodePositionsNode
    RandomizeNodePositionsNode ==> CreateNodeConnectionsNode ==> RemoveCrossingPathsNode
    RemoveCrossingPathsNode ==> GenerateDynamicPathsNode ==> DisplayMapSubgraph
    LoadSavedMapNode ==> DisplayMapSubgraph

License

Copyright (c) TigardHighGDC

SPDX-License-Identifier: Apache-2.0

About

Fastpaced roguelike inside a computer. You must escape before you become corrupted! OGPC 2023 submission.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Contributors 4

  •  
  •  
  •  
  •