Code Monkey home page Code Monkey logo

hedge's People

Contributors

zorfmorf avatar

Watchers

 avatar

hedge's Issues

Entity draw order

Entity draw order needs to be adjusted to correctly draw npcs with higher y coordinate above others with lower y coordinate

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)

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.

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.

Map: Wood

Small wood to the west of the farmstead. Has a small stream.

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).

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

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).

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

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.

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.

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).

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 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.