Giter Club home page Giter Club logo

heartgraph's Introduction

Heyo, I'm Drakynfly. I am working on multiple projects related to my conworld Mala, primarily Project Faerie, a multiplayer JPRG.

While most of my repos are private, forks of public plugins I use can be found here. Occasionally I also work on some plugins of my own, such as HeartGraph, FaerieDataSystem, and more that may appear in the future.

heartgraph's People

Contributors

crushedpixel avatar drakynfly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

heartgraph's Issues

Potentially merge this with Plato

There are some features from Plato worth pulling into Heart: better dynamic pin generation, editor features, etc
And there are some things in Heart that Plato could get.
I might just merge them at some point. At minimal, ill rewrite Heart's pin generation to more closely resemble Plato's.

What would replication-support look like?

Determine if any kind of network support should be handled internally in Heart.
a. Replication of node connections?
b. Replication of action runners?
Or just leave all this up to implementations . . .
Likely I'll wait until a good use-case arises with internal projects to decide this.

Support ModelViewViewModel

Support use of this plugin either as an extension to HeartCanvas in a new module, or as an internal implementation, once it is more developed, and I learn to use it.

Add cleanup step to detect and remove dead nodes/pins

  1. All pin connections must be stored two-way, Eg, both nodes know about the connection,
  2. Pin connections should not contain any pin guid not found in its pin descs, or link to any node guids not contained by the graph

An easier to understand demo

Hey, first of all, thanks for your work on this project =)

I would like to ask you for an easier to understand and simpler demo project. I'm having a hard time to undestand how the calculator demo works.

Just for context, what I'm trying to achieve is:

  • Define a bunch of nodes using JSON. For example, node A has three inputs (ai1:string, ai2:int, ai3:bool) and one output (ao1:Vector)
  • Load the JSON containing the descriptions of theses nodes in runtime
  • Allow the player to create a graph using these nodes
  • Save the created graph as a JSON

Is it possible using this plugin?

Unsupported 5.0 version

Hey,
I really like your plugin from what I have seen so far. Is there a version for ue 5.0 or is it ue 5.0 supported? Im having quite some compile issues with 5.0.3 atm, a lot of syntax differences too.

Thanks a lot!

Configurable Chords to spawn nodes in the editor

FHeartSpawnNodeCommands::GetActionByChord is a mostly stub class for creating nodes from keybinds. Right now it only can spawn comments. The editor registry subsystem should read keybinds from registries and add them here.

Potential issues

  • Conflicts between registers vying to use the same chord

Add Auto-layout functionality

Node layout helpers that come in two flavors:

  • Placement aids, e.g, snap to grid functionality, place between pins, etc
    • The behavior class determines which placement aid is used.
  • An autoformatter, e.g, StraightenConnections, AlignNodes.
    • In the editor, these should be implemented the same way as normal, using UI_COMMAND
    • For runtime, everything will likely need to be rebuilt. Write these as a command function, taking in any graph/group of nodes, and dynamically re-layout'ing it/them.
      • In addition to straighten connection horizontal and vertical, make a radial layout for perk trees.

Duplicating nodes in the Editor is broken

Issue one: Visually they glitch out and become bright . . . . wtf
Issue two: Copying nodes from one graph to another is bugged. Something about external object being linked. Probably the node objects aren't being duplicated

Add custom stat categories for each module

Heart, HeartCanvas, and HeartCore should all get a stat category for tracking cpu time.
Prime targets to moniter are GetPin/GetNode-type functions, Canvas draw times, and input rerouting times.

Drive WaveFunctionCollapse via Heart

Epic has a new experimental plugin for wave function collapse algorithms. I want to drive it with a Heart Graph if possible, for user editable generated worlds.

The node graph should support gamepad navigation

Basically the title.
Not fully tho, because I don't want to interfere with people using common ui's gamepad features, so more like just having features like "select on hover" flags, and such.

Probably just keep notes on how gamepad support is done for private projects and make a writeup/documentation on how it should be done. . .

Runtime Comments

Two things to consider
- generic node object type for runtime-created comments
- object may either be of the type UHeartComment_Text or UHeartComment_Image. Both would be stored in the same heart node, it's up to widgets to distinguish them.
- Copy editor authored comments into runtime as a UHeartComment_Text, and synchronize edits.

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.