mirror of
https://github.com/DaanVandenBosch/phantasmal-world.git
synced 2025-04-04 22:58:29 +08:00
Added FEATURES.md.
This commit is contained in:
parent
7d89c870cc
commit
8895579d18
115
FEATURES.md
Normal file
115
FEATURES.md
Normal file
@ -0,0 +1,115 @@
|
||||
# Feature Overview
|
||||
|
||||
Features that are in ***bold italics*** are planned and not yet implemented.
|
||||
|
||||
## Create New Quest
|
||||
|
||||
- *Support for episodes I, II and IV*
|
||||
|
||||
## Load Quest
|
||||
|
||||
- Open file button
|
||||
- Support for .qst (BB, ***GC***, ***PC***, ***DC***)
|
||||
- ***Notify user when and why quest loading fails***
|
||||
- ***Deal with missing DAT or BIN file in QST container file***
|
||||
|
||||
## Save Quest
|
||||
|
||||
- Save as button
|
||||
- Save as dialog to choose name
|
||||
- Support for .qst (BB, ***GC***, ***PC***, ***DC***)
|
||||
- ***Notify user when and why quest saving fails***
|
||||
|
||||
## Undo/Redo
|
||||
|
||||
- Undo/redo stack
|
||||
- Undo/redo buttons
|
||||
- Undo/redo keybindings
|
||||
|
||||
## Area Selection
|
||||
|
||||
- Dropdown to switch area
|
||||
|
||||
## Simple Quest Properties
|
||||
|
||||
- Episode
|
||||
- Editable ID, name, short and long description
|
||||
- ***Undo/redo***
|
||||
- NPC counts
|
||||
|
||||
## 3D View
|
||||
|
||||
- Area geometry
|
||||
- Collision geometry (c.rel)
|
||||
- ***Rendering geometry (n.rel)***
|
||||
- ***Textures***
|
||||
- NPC/object geometry
|
||||
- Textures
|
||||
- ***Transparency***
|
||||
- ***Order independent transparency***
|
||||
- ***Minimap***
|
||||
- ***Top-down view (orthogonal view might suffice?)***
|
||||
- ***Add "shadow" to entities to more easily see where floating entities are positioned***
|
||||
- ***MVP: a single line***
|
||||
|
||||
## NPC/object manipulation
|
||||
|
||||
- ***Creation***
|
||||
- ***Deletion***
|
||||
- Translation
|
||||
- Via 3D view
|
||||
- Via entity view
|
||||
- ***Rotation***
|
||||
- ***Multi select and translate/rotate/edit***
|
||||
|
||||
## Script Object Code
|
||||
|
||||
- Disassembler
|
||||
- Assembler
|
||||
- Instructions
|
||||
- Simplified stack management (push* instructions are inserted transparently)
|
||||
- Data
|
||||
- Binary data
|
||||
- ***Strings***
|
||||
- Labels
|
||||
|
||||
## Script Assembly Editor
|
||||
|
||||
- Instructions
|
||||
- Data
|
||||
- Binary data
|
||||
- ***Strings***
|
||||
- Labels
|
||||
- ***Show in outline***
|
||||
- Autocompletion
|
||||
- Segment type (.code, .data)
|
||||
- Instructions
|
||||
- ***Go to label***
|
||||
- ***Warnings***
|
||||
- ***Missing 0 label***
|
||||
- ***Missing floor handlers***
|
||||
- ***Missing map designations***
|
||||
- ***Threads (thread, thread_stg) that don't start with a sync***
|
||||
- ***Unreachable/unused instructions/data***
|
||||
- ***Instructions after "ret" instruction***
|
||||
- ***Unused labels***
|
||||
- Errors
|
||||
- Invalid syntax
|
||||
- Invalid instruction
|
||||
- Invalid instruction arguments
|
||||
- ***Invalid label references***
|
||||
- ***Mark all duplicate labels (the first one is not marked at the moment)***
|
||||
- ***Show instruction parameters on hover over***
|
||||
- ***Show reserved register usage on hover over***
|
||||
- ***When saving, ask user whether to really save when asm contains errors***
|
||||
|
||||
## Enemy Waves
|
||||
|
||||
- ***Figure out how they work***
|
||||
|
||||
## Bugs
|
||||
|
||||
- [Script Object Code](#script-object-code): Make sure data segments are referenced by an instruction with an offset before the segment's offset
|
||||
- [Script Object Code](#script-object-code): Detect code that is both unused and incorrect and reinterpret it as data (this avoids loading and then saving the quest incorrectly)
|
||||
- [Area Selection](#area-selection): Lost heart breaker/phantasmal world 4 overwrite area 16 to have both towers
|
||||
- [Area Selection](#area-selection): Show areas that are referenced from .dat but not from script (test with Point of Disaster (709))
|
14
README.md
14
README.md
@ -1,23 +1,23 @@
|
||||
# Phantasmal World
|
||||
|
||||
Phantasmal World is a suite of tools for Phantasy Star Online. This project is in a very early stage of development.
|
||||
Phantasmal World is a suite of tools for Phantasy Star Online.
|
||||
|
||||
## For Developers
|
||||
|
||||
React is used for the frontend, MobX is used for state management and THREE.js for 3D graphics.
|
||||
React is used for the frontend, MobX is used for state management and THREE.js for 3D graphics. See [features](./FEATURES.md) for a list of features, planned features and bugs.
|
||||
|
||||
### Getting Started
|
||||
|
||||
1. Install Yarn ([https://yarnpkg.com/](https://yarnpkg.com/))
|
||||
2. cd to the project directory
|
||||
3. Launch server on [http://localhost:1623/](http://localhost:1623/) with `yarn start`
|
||||
4. src/index.tsx is the application's entry point
|
||||
3. Install dependencies with `yarn`
|
||||
4. Launch server on [http://localhost:1623/](http://localhost:1623/) with `yarn start`
|
||||
5. src/index.tsx is the application's entry point
|
||||
|
||||
### Tests
|
||||
|
||||
Run tests with `yarn test`.
|
||||
Run tests with `yarn test`. The testing framework used is Jest.
|
||||
|
||||
### Production Build
|
||||
|
||||
1. Change the homepage field in package.json if you don't want to deploy to /
|
||||
3. Build with `yarn build`
|
||||
Create an optimized production build with `yarn build`.
|
||||
|
Loading…
Reference in New Issue
Block a user