natronium / GatorRando

A(n Archipelago) randomizer for Lil Gator Game
1 stars 0 forks source link

GatorRando: Randomizer Client for Lil Gator Game

Lil Gator Game is a game about being an adorable gator who is getting all of their friends involved in their giant hero quest in order to convince their big sister to stop working on her college assignment and instead play with them.

This project is a randomizer mod for Lil Gator Game that works with Archipelago (via a custom APWorld) to take the things your character would receive throughout the game and randomize them, potentially between multiple games. If you are not familiar with Archipelago, we recommend reading Archipelago's introduction documents starting with the FAQ.

Installation Instructions

  1. Download BepInEx5 for Windows and extract the contents into the root of your Lil Gator Game folder (you should now have a BepInEx folder in the same folder as Lil Gator Game.exe)
  2. Run the game and make sure that a plugins folder was generated inside of the BepInEx folder
  3. Download the GatorRando zip from the Releases page or build the GatorRando dll from source (see below) or
  4. Add the GatorRando.dll, Archipelago.MultiClient.Net.dll, and Newtonsoft.Json.dll (either by extracting the zip from the Releases page or from "GatorRando\bin\Debug\netstandard2.0" if built from source) into the plugins folder inside the BepInEx folder
  5. See the APWorld Instructions for how to generate and host a game

Building from Source

These instructions assume familiarity with command line tools. Please ask for help if you are not already familiar with command line tools as you may need to install additional packages.

  1. Download and install .NET version 8.0 SDK or higher
  2. In your command line interface of choice, navigate to the directory where you would like to store this project's source files.
  3. git clone this repository to that location
  4. Copy the Assembly-CSharp.dll and the UnityEngine.dll from the game's folder in Lil Gator Game\Lil Gator Game_Data\Managed into your local copy of GatorRando's lib folder
  5. Navigate into the repository and run the command dotnet build

Randomizer Details

Connecting to the server

  1. Enter Connection Details:
    • New Worlds: For each new Archipelago world, you'll need a new save file. Play through the prologue (we recommend speedrun mode on to reduce mashing) and the initial cutscene, then pause the game. The Settings menu will appear and you'll have to enter in connection details. Your character's name is your slot name. You can copy-paste or type your server address:port into its field in the menu. If you are hosting locally, the server address is localhost
    • Continuing Worlds: When resuming an in-progress save, your connection details will have been saved and the Settings Menu should automatically appear. If your server port has changed (rarely occurs), update it before continuing.
  2. Connect to Server: Click "connect to server" once and wait for it to connect. When the quest in the upper right corner is complete, then you have successfully connected and you will be allowed to leave the Settings menu and start playing!

Recommendations for Better Play Experiences

Features added to the original game

What Things are Randomized?

Goal

Right now, the goal is to finish the playground (takes 35 Friends worth of Friend items and completing all three main quests), play through the flashback, and watch the credits.

Quest Item List and Uses

Requirements to do specific checks

In addition to the quest items above needing to be received to progress in their relevant quest, below are some requirements for quests that may not be obvious from base game (because you would have these items by default at the relevant point in the game)

Future plans

See the issues with the "feature" tag for things that we believe are doable and are planning to implement in the short-term in this mod (see apworld for logic related issues). We may decide to scrap or change these proposals depending on feasibility, user experience during testing, or other constraints. We do not guarantee that we will ever get around to doing everything in the issues, especially those tagged as "idea". If you are interested, please feel free to work on ideas and suggest modifications.