Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/punchcafe/gb-vngine
https://github.com/punchcafe/gb-vngine
Last synced: 26 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/punchcafe/gb-vngine
- Owner: punchcafe
- Created: 2021-06-24T17:58:14.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-09-29T21:37:28.000Z (3 months ago)
- Last Synced: 2024-10-27T23:38:53.288Z (2 months ago)
- Language: Java
- Size: 611 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Initial limitations:
- No chapter variables (allows us to have hard coded game state)
- No more than one chapter
- Character Limit on string variables
- Character limit on prompts to fit in one line# Roadmap
## Features
### 0.1.0
- ~Bankable Assets~ ✅
- Predicate user selection branches 🚧
- Saving
- vNgine splash page
### 0.2.0
- Narrative-injectable variables
- Node variable type
- Next node as $node.node-id
- Player input node
- Rand function
- Prompts as asset IDs### Future nice to haves
- Animations on backgrounds (using delta format)
- Animation on characters (using delta format)## Tasks
- Sections refactor:
```
Tree -- all thing around rending the game tree. Nodes, branches and prompts (also contains a "setup" component, which stays
with the service class context but is composed for the setup controller rendering).
Predicate -- Predicate service for collecting all predicates and returning source names for a given expression (model)
Text -- Manages all written text in the narratives. Will be the source of truth for any compressions around commonly used words.```
- Full documentation
- Clean up C functions
- Investigate use of `SWITCH_ROM_MBC1(external_asset->bank_number);`. If it needs specifics, can do as Macro def
- Choose bank number `unsigned int` or `unsigned short` based on bank config
- create a testing frameworkFor testing, consider:
- A logic flow tester, which replaces the gb.h function with mocked alternatives, and runs all provided tests.
- An actual player, which can take snapshots at designated intervals and compare like a snapshot test
## Refactors
#### `SourceName`
- Add `SourceName` type, and add to all classes currently using string.
- Have `SourceName` deriving functions for regular strings
potentially:
```java
/**
The source name for something. Typically this can be seen as the 'source of truth' name, and whatever is
produced by it's toString() method will be the way to reference it within C code.
**/
class SourceName {
private final SourceName prefix;
private final SourceName suffix;
private final String name;
// static methods for generatingpublic String toString(){
return Stream.of(prefix, name, suffix)
.filter(Objects::nonNull)
.collect(joining("_");
}
}
```