peter201943 / godot-initializers

Experimenting with different ways of initializing Custom Nodes in Godot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MIT License Godot Engine

Initializers Logo

Godot Initializers

Experimenting with different ways of initializing Custom Nodes in Godot

Contents

About

Experimenting with different ways of initializing Custom Nodes in Godot. Expanding upon InStructEd's JSON data structure. Also exploring better interfaces in Godot for these kinds of constructions.

Built With

Godot

Getting Started

Prerequisites

Godot v3.3.3

Installation

  1. Clone the Repo
git clone https://github.com/peter201943/InStructEd.git
  1. "Import" the Project from Godot's Launcher

Usage

Visit each "method" folder (numbered) and press F6 to launch the scene to test it.

Vocabulary

(TODO Resolve difference of "used in" and "part of" and problems inherent therein with sorting combinators into categories)

Accept

Existing property requiring no work to take advantage of.
Includes None.
Part of Method Design Properties.
Uses None.

Add

Work required to enable something else.
Includes None.
Part of Method Design Properties.
Uses None.

Assignment

How a structure is built.
Includes Exported Variable Assignment, Node Tree Assignment, Scene Expansion Assignment.
Part of Method Design Properties.
Uses None.

Automatic Feedback

User can immediately see consequences of a change.
Includes None.
Part of Feedback.
Uses None.

Briefly

Quickly describe something.
Includes None.
Part of Method Design Properties.
Uses None.

Code Complexity

How difficult something is to implement.
Includes High Code Complexity, Low Code Complexity, Medium Code Complexity, No Code Complexity.
Part of Method Design Properties.
Uses None.

Consequence

Happens as a result of other factors. Can be deliberate or incidental.
Includes None.
Part of Method Design Properties.
Uses None.

Difficult Error Recovery

Changes that are hard to revert.
Includes None.
Part of Error Recovery.
Uses None.

Done

Item is done/no more work needed.
Includes None.
Part of Status.
Uses None.

Easy Error Recovery

Changes that require only some or no work to revert.
Includes None.
Part of Error Recovery.
Uses None.

Exported Variable Assignment

Using the inspector to refer to members of a tree. Medium intensity edits.
Includes None.
Part of Assignment.
Uses None.

Error Recovery

How hard it is to recover from a mistake and revert a change.
Includes Difficult Error Recovery, Easy Error Recovery, Impossible Error Recovery.
Part of Method Design Properties.
Uses None.

Feedback

Seeing immediate effects/easily understanding what the consequences of a change are.
Includes Automatic Feedback, Inherent Feedback, No Feedback.
Part of Method Design Properties.
Uses None.

Final Setup

Last steps taken before a node is ready.
Includes No Final Setup, Script Final Setup.
Part of Method Design Properties.
Uses None.

Heavy User Ceremony

User must perform several repeated steps to achieve a change.
Includes None.
Part of User Ceremony.
Uses None.

High Code Complexity

Something that is difficult to make.
Includes None.
Part of Code Complexity.
Uses None.

Impossible Error Recovery

Changes that cannot be reverted.
Includes None.
Part of Error Recovery.
Uses None.

Includes

Subtypes to a Vocabulary Term.
Includes None.
Part of Vocabulary Properties.
Uses None.

Inherent Feedback

User can immediately see consequences of a change inherently from pre-existing conditions.
Includes None.
Part of Feedback.
Uses None.

Location

Where something is located in project.
Includes None.
Part of Method Design Properties.
Uses None.

Low Code Complexity

Something that is relatively easy to make.
Includes None.
Part of Code Complexity.
Uses None.

Low User Ceremony

User must perform few repeated steps to achieve a change.
Includes None.
Part of User Ceremony.
Uses None.

Medium Code Complexity

Something that requires some difficulty to make.
Includes None.
Part of Code Complexity.
Uses None.

Method Design Properties

Used to measure each goal of this project. Explicitly designed for.
Includes Assignment, Code Complexity, Error Recovery, Feedback, Final Setup, User Ceremony.
Part of Methods, Roadmap.
Uses Accept, Add, Briefly, Consequence, Location, Status.

Methods

Goal of this project is to implement each of these.
Includes Method 1, Method 2, Method 3, Method 4, Method 5.
Part of None.
Uses Method Design Properties.

No Code Complexity

Something that requires no effort to make.
Includes None.
Part of Code Complexity.
Uses None.

No Feedback

There is no indication of the consequences of a change.
Includes None.
Part of Feedback.
Uses None.

No Final Setup

No further steps are needed for the structure.
Includes None.
Part of Final Setup.
Uses None.

No Status

Item is untouched/not started yet.
Includes None.
Part of Status.
Uses None.

No User Ceremony

User must not perform any repeated steps to achieve a change.
Includes None.
Part of User Ceremony.
Uses None.

Node Tree Assignment

Building a tree through regular assembly of a scene tree. Low intensity edits.
Includes None.
Part of Assignment.
Uses None.

Part Of

One things is used by another to describe it.
Includes None.
Part of Vocabulary Properties.
Uses None.

Scene Expansion Assignment

Extensively modifying the scene tree instead of building a tree. High intensity edits.
Includes None.
Part of Assignment.
Uses None.

Script Final Setup

Further steps are needed for the structure, done through code.
Includes None.
Part of Final Setup.
Uses None.

Status

Whether a Roadmap step is done or not started or etcetera.
Includes Done, No Status.
Part of Method Design Properties.
Uses None.

User Ceremony

Work required on the user's part to make this thing work.
Includes Heavy User Ceremony, Low User Ceremony, No User Ceremony.
Part of Method Design Properties.
Uses None.

Uses

One things uses another.
Includes None.
Part of Vocabulary Properties.
Uses None.

Vocabulary

Describes ideas as seen throughout this project.
Includes All.
Part of None.
Uses Vocabulary Properties.

Vocabulary Properties

The properties which capture the basic semantic relationships between terms relative to this project.
Includes Includes, Part Of, Uses.
Part of Vocabulary.
Uses None.

Roadmap

Basic GitHub Setup

  • Briefly Project, Readme
  • Status Done

Advanced GitHub Setup

  • Briefly Very Detailed Readme
  • Status Done

Basic Godot Setup

  • Briefly Project Files, Exports, Folders
  • Status Done

Advanced Godot Setup

  • Briefly Copy Files from InStructEd
  • Status Done

Method 0

  • Briefly full backup copy of InStructEd not meant to be modified
  • Location method-0/
  • Status Done

Method 1

  • Briefly build up scenes manually using Instance Child Scene, Expand Child Nodes, ...
  • Location method-1/
  • Accept Scene-Expansion-Assignment
  • Consequence No-Final-Setup
  • Consequence Difficult-Error-Recovery
  • Consequence Inherent-Feedback
  • Consequence Heavy-User-Ceremony
  • Consequence No-Code-Complexity
  • Status Done

Method 2

  • Briefly describe structure in terms of scene-tree nodes and construct the intended structure after scene is running
  • Location method-2/
  • Accept Node-Tree-Assignment
  • Add Init-Final-Setup
  • Consequence Script-Final-Setup
  • Consequence No-Feedback
  • Consequence Easy-Error-Recovery
  • Consequence Low-User-Ceremony
  • Consequence Low-Code-Complexity

Method 3

  • Briefly describe structure in terms of inspector exported variable assignments
  • Location method-3/
  • Add Exported-Variable-Assignment
  • Add Init-Final-Setup
  • Consequence Script-Final-Setup
  • Consequence No-Feedback
  • Consequence Easy-Error-Recovery
  • Consequence No-User-Ceremony
  • Consequence Medium-Code-Complexity

Method 4

  • Briefly describe structure in terms of scene-tree nodes and immediately act upon any changes, permanently, do not use any hidden nodes to render anything
  • Location method-4/
  • Accept Node-Tree-Assignment
  • Add Tool-Mode-Preview-And-Setup
  • Consequence No-Final-Setup
  • Consequence Inherent-Feedback
  • Consequence Impossible-Error-Recovery
  • Consequence Heavy-User-Ceremony
  • Consequence High-Code-Complexity

Method 5

  • Briefly describe structure in terms of scene-tree nodes but render consequences of arrangement in editor using hidden ui nodes
  • Location method-5/
  • Accept Node-Tree-Assignment
  • Add Tool-Mode-Preview
  • Add Init-Final-Setup
  • Consequence Script-Final-Setup
  • Consequence Automatic-Feedback
  • Consequence Easy-Error-Recovery
  • Consequence No-User-Ceremony
  • Consequence High-Code-Complexity

Contributing

This is a low-priority project for @peter201943 and as such pull requests are not likely to be accepted. You will be better served by forking it and continuing development of it on your own.

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Primary Maintainer

Peter James Mangelsdorf
Outlook
Discord
GitHub

Project

Godot Initializers
GitHub

Acknowledgements

None, currently.

About

Experimenting with different ways of initializing Custom Nodes in Godot

License:MIT License


Languages

Language:GDScript 100.0%