seisatsu / bxengine Goto Github PK
View Code? Open in Web Editor NEWPoint-and-Click Adventure Engine with the goal of being able to make Myst-like adventure games.
License: MIT License
Point-and-Click Adventure Engine with the goal of being able to make Myst-like adventure games.
License: MIT License
Add some kind of Resource Manager for loading resources gracefully from inside scripts.
Pygame supports mpeg1 video. Support overlaying a video onto the screen.
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.
Rebrand as BX Engine, with the test world in a separate submodule. The game itself can be called Backrooms Explorer.
Allow overlaying images on top of the room. This will be useful for items that can be picked up, or moving scenery.
Add some kind of game menu using UI elements.
Add support for various command line options. The command line options faculty from https://github.com/seisatsu/DennisMUD is suitable as a starting point.
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.
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.
Since the indicator icons are all black, it is impossible to see them on a black background. Add a white glow or outline to the icons to make them visible anywhere.
The dialog box overlay from a previous room is not being cleared when entering the next room, but only sometimes.
Do some fuzzing on the engine to find and catch crashes that could be caused by invalid data files.
Allow multiple chance rolls for dynamic destinations.
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.
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.
Write some tests for TickManager.
Log messages should tell us which method they originate from.
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.
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.
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.
Add a save file format and support. This will probably be UBJson.
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.
Let the player see what cardinal direction they are facing currently to make navigation less confusing.
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.
The code doesn't work and the exits aren't even parsed correctly. Make a unit test world that tests many possible configurations.
Add JSON Schemas to validate the config file, world file, and room files.
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.
Write some tests for the funvalue and chance constraints for Dynamic Exits.
Save and load the database from a Zip file. Requires #31.
Add a better logging facility, and log errors and warnings throughout the code. The logger from https://github.com/seisatsu/DennisMUD is suitable.
Port the CacheManager from Driftwood2D, to clear resources that are no longer in use.
Support loading files from a Zip archive.
As a convention, use a .bxw file extension.
Split the classes into their own files, and drop them in a lib/ directory.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.