hedge's People
hedge's Issues
Editor: Object deletion tool
A way to delete objects without having to delete the whole tile
Entity draw order
Entity draw order needs to be adjusted to correctly draw npcs with higher y coordinate above others with lower y coordinate
Editor: Switch maps options
Save the master maps in the repository. Allow switching between master maps.
Dialog: Dialoghandler
A dialogHandler that reads all available dialogs on startup from file. Any event/use that starts a dialog does this via this dialogHandler
Ingame options menu
Ingame needs to support an options menu:
- Save to slot
- Load from slot
- Preferences (placeholder)
- Quit (to main menu)
Logs: Save log to buffer and write to file
Map transitions
Implement transition events between maps
Hud: Time & Date display
Find a nice royality free font, maybe draw some panels. Should be in a releaseable state.
Player can get stuck on supposedly walkable tiles
Tile deleter tool
Create a tool that deletes everything in a tile.
Important: Also check if the block is now empty and (if yes) delete block from map.
Player sprite can move around
Player sprite can move around on map
Npc System
Npc need to be loadable from file similar to events.
Conversations could be stored in the npc itself.
Charsetgenerator
Whenever an npc/player is initalized, it requests its charset from the charsetgenerator based on parameters (male, pirateshirt, brownpants, irokesehair). If the specified charset has not been requested before it is generated from scratch, otherwise it just returns the charset. This reduces file overhead and allows for easy generation of new, individually looking npcs.
Hopefully this doesn't take too much performance, though it can always be done threaded.
Tool: Make tile walkable/not walkable
A tool is missing that allows switching the walkable flag of a tile only
Toolbar: Replace labeled buttons with icons + tooltip
Essentially: Make things look nicer!
Map: Wood
Small wood to the west of the farmstead. Has a small stream.
Map: Derelict farmstead
Belongs to the player
Editor: Intelligent landscape brushes
A landscape brush needs to be definable via the editor. You select a tile and it will automatically fill the surrounding tiles with matching border tiles. See rpgmaker or any other proper tile based map editor.
Editor: Change event placement
Events should be placed the same way transitions are handled. Once the tool is selected, the event is immediately selected, right click deletes events. This would allow for the event deletion tool to be removed and remove the brush configuration option
Add/Remove event ids
Place an event on the map (not via brush system). Manually specify the event id and/or load the event id from a list of events belonging to the map.
Event system
Each tile can be assigned an event id.
If the player walks on a tile with an event id or tries to use a tile with an event id, then
- The specified event is retrieved by the id
- If the event is not existing, an error message is displayed to console/logfile
- The event is fired with the activation type as parameter (walk, use)
An event is essentially a single lua function. It decides if it activates (based on event id and game parameters) and executes whatever. Example event types:
- Map transition on walk
- Conversation on use
- Conversation on walk
- Cutscene on walk
- Get item by use
Editor: Sprite support
Support animations for an object. For example: The campfire sprites.
Could be "hacked" in using the npc system. In this case we need to have the option to have multiple npcs of the same id in the same map (which we currently have not).
Character sprite support
- Support for npcs/player sprites to be displayed on the map
- Save and load to map
Editor: Object brushes
Enable creation and usage of object brushes. An object brush places objects larger than one tile. For example a big tree has four ground tiles and Several overlay tiles as well.
Save editor state
System to save&load the editor status
- all configured brushes
- toggle states
- selected tool/brush
Save npc/pc direction as well
Player shillouette when obscured
Whenever the player sprite ist partially or completely obscured, a shilloute should be drawn on top.
Dialog: Add branches and actions
There need to be selectable options in dialogs after which the dialog branches off. In addition, dialog entry need to have the option to execute something on exit (e.g. open shop window).
Sfx: Transition effect
A fade out / fade in effect for map transitions would be nice
Make npcs placable via editor
The editor needs a "place npc" brush. If that brush is activated, once it is used on a tile, a selection menu opens where you can select the exact npc to place. A way to set the direction and delete npcs is also required
Editor: Shortcuts
Shortcuts to switch fast between tools
Write/read event ids when saving/loading map
Event ids where forgotten when mapreader was implemented. Each tile can have an event id associated with it, this needs to be written/read to/from tile.
Rework and clean save/load options
- Make exit/escape behaviour uniform
- Support saving/loading to and from different slots
Fallback to defaul quickie library
I broke quickie when I added backgrounds and padding. Todo: use old quickie version and adjust menus to work without background & borders.
Tile selector: Improve controls, make movable
For large tilesets and/or small displays it becomes impossible to select tiles that are drawn of screen.
- Make tileset movable with arrow keys
- Switch tilesets with mouse wheel
- show a usage hint (optional)
Brush can't be renamed
When editing brushes, each generated name is displayed as an input field. For some reason though, they can't be renamed. Changes are displayed for a split-second but immediately reversed. It looks like the updated string isn't saved for some reason.
Conversation system
A conversation is comprised of a set of conversation nodes.
A conversation node is a character + expression + text. Each node has 1..n parent nodes and one child nodes. Player nodes can have options instead of text (in which case there are 1..n child nodes). A node can have attached code to set variables or start events.
Dialog: Avatar support
Each dialog entry needs the ability to change/remove the current avatar displayed.
Bounded camera
We need the camera to move with the player. However, it should not be centered but instead there should be some kind of sqaure in the center and the camera only moves if the player reaches the square borders.
Time and Date simulation
Time should be advanced whenever the player does a costly action. Field work, tending to animals or map transitions are examples of costly actions
Rework movementHandler
Current implementation has a lot of issues.
- It is clunky, badly written
- There are issues when changing directions while walking where input is lost
Morning/Evening/Night
Is it possible to simulate wheather via shaders? We absolutely don't want to use different tilesets based on the time of day if at all possible. Shaders might actually allow hour-based light adjustement and weather. Seasons still probably need different tilesets sadly.
Editor: Brush menu and selector menu optimization
Make the buttons larger and reduce the brush menu size so that more brushes can be simultaneously displayed in small windows. A scrollbar might be nice as well but is probably not really doable.
Save/Load system
Save/load:
- map state
- char state
- global vars
Reload doesn't load the proper map
It always puts the player onto the default map (and as there is no player defined onto the default position). In addition, it doesn't save the player direction as well (doesn't matter which map).
Player bed and sleep functionality
The player can use the bed in the farmstead to sleep until next morning
Global var system
We need one global key-value pair table to store game flags + load and save it
Add delete function
Currently the "current" game folder is not deleted, just overwritten. If you switch from a game to another one with different file names, this will lead to the old files persisting and mixing with the other game (which will then be saved).
Object texture drawn under tile texture
As the title says. This seems to be a problem if one brush draws floor tiles and then a second brush draws object tiles (potentially only an issue after save/load)
Editor: Map transitions
Allow placement of map transition zones (originally to be handled via the event system, but is potentially cleaner this way.
- Landing tile: unique id (for each map), only 1 per id
- Transition tile: Connects to a landing tile: mapname|id Multiple identical per map possible
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.