Giter Site home page Giter Site logo

seisatsu / bxengine Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 1.0 6.42 MB

Point-and-Click Adventure Engine with the goal of being able to make Myst-like adventure games.

License: MIT License

Python 100.00%
adventure-game backrooms game-engine json point-and-click pygame python python3

bxengine's People

Contributors

seisatsu avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

mettbroetchen43

bxengine's Issues

Video Overlays

Pygame supports mpeg1 video. Support overlaying a video onto the screen.

Test Dynamic Exits

Write some tests for the funvalue and chance constraints for Dynamic Exits.

Per-World Config Files

Allow a game world to supply config values that override the engine's config.json. The engine's config file will become a defaults file.

Also allow an override.json file in the engine's base directory that further overrides the world's config values.

Both of these will use a lenient version of the config.json schema that doesn't require every value to be set.

Tick Callbacks

Add tick callbacks that let an event script call a function in a certain amount of time, without freezing the engine like time.sleep() does.

Save Files

Add a save file format and support. This will probably be UBJson.

JSON Schemas

Add JSON Schemas to validate the config file, world file, and room files.

Rebranding: BXEngine

Rebrand as BX Engine, with the test world in a separate submodule. The game itself can be called Backrooms Explorer.

Complete Inline Documentation

Complete the inline documentation for all engine source files before proceeding much further.

This includes writing complete docstrings for every class method, and commenting every significant section of code.

Multiplayer Chat System

Allow clients to connect to a server, so that players can see a list of other players in the same room as them, and chat with them.

Scripting API

Add script support and a scripting API. This will probably involve restructuring the engine to present itself as an API, in the vein of https://github.com/Driftwood2D/Driftwood. This should be figured out early on so there is less refactoring work later.

Exit Probabilities and Fun Value

Allow exits to lead to a different destination based on probability.

Also support a "fun value" within a range, which is chosen randomly on game start. Exits may go different places depending on the game's fun value, with greater than, less than, range, and equality constraints.

Health Bar

Add a health bar using the pygame_gui.elements.ui_screen_space_health_bar module. This will require a dummy pygame sprite to track the player's health.

Fuzzing / Error Catching

Do some fuzzing on the engine to find and catch crashes that could be caused by invalid data files.

Multiple views per room file

Allow a room file to describe multiple views/images, with exits able to switch between them. This will reduce clutter and it makes sense conceptually for a "room" to encapsulate multiple viewing angles.

Test Sound and Music

Add systems for sound and music. Allow rooms to load and play music. If a song is already playing when you enter a room that calls for it, it should just keep playing. Also allow sound effects for various actions.

Overlay Images

Allow overlaying images on top of the room. This will be useful for items that can be picked up, or moving scenery.

Items and Inventory

Add items to the game that you can pick up and put in an inventory. We may want #2 here so the item can actually disappear from the scenery when you grab it.

Resource Manager

Add some kind of Resource Manager for loading resources gracefully from inside scripts.

Encounters

Add the encounters system for encountering monsters in the backrooms. The room image should darken a bit, then an entity will appear on screen, possibly using one of several transitions, and at the bottom a dialog will appear with text and choices.

Encounters can be definite upon entering a room, or they can be triggered by certain actions in a room, or they can have a probability of appearing in a room or in the world altogether. Entities might drop items, and might also respond to you having or using certain items. The scripting API from #6 will come in handy here.

Cardinal Directions

Let the player see what cardinal direction they are facing currently to make navigation less confusing.

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.