Giter VIP home page Giter VIP logo

archipelago.batboy's Introduction

Archipelago Batboy Image

What is this?

This is a mod for the currently unreleased Bat Boy demo that connects it to the Archipelago architecture. Currently, this only works as a fully remote mod, meaning that a server must host the data for the randomized game, whether playing a seed by yourself or with other people. This works using the BepInEx library, the MonoMod HookGen Patcher, and the Archipelago MultiClient.Net library so huge thanks to everyone who created these tools.

What's Archipelago?

Archipelago is a multi-game, multiworld randomizer. It allows games like this to be randomized and played in a multiworld with all other Archipelago supported games!

What gets randomized?

The seeds, cassettes, and abilities obtained within the demo's 3 levels are randomized, as well as the seeds and first HP upgrade in Helsia's shop.

Are there any "gotchas"?

  • Bat spin is required to progress in the second and third levels, so your bat spin will always be either in the first level or the first purchase of your shop.
  • If you select Quit multiple times from the pause menu while in a level, the game will crash. This is a vanilla bug, so I won't be fixing this.

How do I play?

This mod is split into three separate sections. All of these are available from the releases page.

  • The apworld
  • A config/yaml file
  • The game mod

The mod is required to play by grabbing the zip folder from the releases page and unzipping all of its contents into your Bat Boy game folder. In order to generate the randomized seed you will require the config/yaml file in order to supply your settings to the generator. The apworld adds the game information to the archipelago generator, server, and clients.

How do I generate my randomized game?

In order to generate a randomized game for Bat Boy, you must download the most recent .apworld, and place it in an Archipelago 0.3.5 or newer release in the /lib/worlds folder. The default path for this is C:\ProgramData\Archipelago\worlds, so you should have C:\ProgramData\Archipelago\worlds\batboy.apworld. You can then use the default YAML template, modify it in a text editor to select your options, place it in the Archipelago/Players folder and run ArchipelagoGenerate.exe to generate your randomized game. This will output a zip folder in Archipelago/output. From there, you can either upload this resulting zip to the Archipelago website, or run ArchipelagoMultiServer.exe and select the resulting zip. Note that if the game is uploaded to the website all of your items and locations will show up as "Unknown".

How do I connect to the randomized game?

In order to connect your game to the randomized server, download the latest release from the releases page and place the contents of the zip folder in your Bat Boy Demo game folder (probably C:\Program Files (x86)\Steam\steamapps\Common\Bat Boy Demo, which you can also reach by right clicking the game in your Steam library and going to Manage>Browse local files). Run the game, and in the top left connection box, enter the connection info to connect and play! Host Name is the server IP and port. If you are running the Multiserver locally, this is localhost; if you're connecting to a friend, this will be IP.Add.ress:38281; and if it's on the website, it will be archipelago.gg:<port>. Name is the name field from the earlier yaml file (default YourName1), and password is optional, only required if the host set one.

Issues

  • Disconnecting will crash the game.
    • If this occurs, your login information is stored along with the save slot, so you can simply reload the save file.
  • No console exists.
    • To see items received and sent, or to hint, you must connect to your slot with an Archipelago Text Client. This is included with the main Archipelago install. Make sure to also download the latest batboy.apworld and place it in the /lib/worlds folder.

archipelago.batboy's People

Contributors

alwaysintreble avatar soldieroforder avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

soldieroforder

archipelago.batboy's Issues

Bug: Location checks within levels are only sent on level completion

What happened?

Seeds picked up during a level are only sent out as items once a level has been cleared. Exiting out of a level after collecting a seed but not finishing the level can cause a soft lock.

What were the expected results?

Send location checks for seeds immediately on pickup.

Is this reproducible?

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Enemy Rando!

What should this feature do?

Randomize what enemies get placed in the positions. Additionally boss shuffle and perhaps chaos shuffle where enemies and bosses exist in the same pool? All bosses everywhere?

Bug: Closing the game while connected causes a crash

What happened?

If, while connected to an AP server, the player quits the game from the main menu option, the game will crash instead of closing.

What were the expected results?

Probably want to disconnect from the server on main menu but look into hooking into the quit game option and forcing a disconnect there before it can crash.

Is this reproducible?

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Bug: No mouse cursor on screen to interact with connect box easily

What happened?

The connect box renders in the top left box of the screen but since the mouse is unable to be seen over the game, the player has to blindly guess around the screen until the interactable objects are highlighted.

What were the expected results?

Investigate being able to always draw the cursor over the game or at least over the connect box.

Is this reproducible?

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Bug: Client doesn't detect disconnects

What happened?

If the server closes or connection is lost, the client has no idea and still acts as if it's connected, requiring a full restart.

What were the expected results?

Attempt to reconnect and give the user feedback that they're disconnected.

Is this reproducible?

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Bug: No console to interact with the AP server

What happened?

No console exists to send commands to the AP server so the Archipelago text client is required to see received items, sent locations, hint for items, and see hinted items in your game.

What were the expected results?

Investigate creating a background console that runs alongside the game with just server log information, but preferably console will be about 5 lines displayed at the bottom of the game at all times and be interactable for commands.

Is this reproducible?

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Bug: After completing a level for the first time, the player will enter the skill tutorial, but may be unable to complete it

What happened?

The player will only have access to received abilities, even while in the ability tutorials, though other abilities they may have unlocked will also be locked by the tutorial.

What were the expected results?

Investigate #3 first, then either investigate removing the ability tutorials entirely or detecting the player has returned to the overworld before checking their abilities.

Is this reproducible?

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.