Coder Social home page Coder Social logo

jirkadelloro / fudge Goto Github PK

View Code? Open in Web Editor NEW
33.0 4.0 28.0 1.23 GB

Furtwangen University Didactic Game Editor

Home Page: https://jirkadelloro.github.io/FUDGE

License: MIT License

TypeScript 19.42% HTML 34.76% JavaScript 44.23% CSS 1.24% Python 0.04% GLSL 0.31% Batchfile 0.01%
games editor engine web education 3d-engine 3d-game typescript-library typescript university

fudge's Introduction

Welcome!

FUDGE is a lightweight open-source game engine and editor created for educating students in an academic environment in the field of design and development of games and highly interactive applications. It may also be used as a rapid prototyping tool to easily convey and evaluate ideas for applications and games, as well as a tool to create educational games.

Check out these examples to see what can be achieved with FUDGE:

  • GameZone: Visit the GameZone to explore a selection of applications created by students using FUDGE. You can filter for "FUDGE" in the technology dropdown to see FUDGE-powered projects.
  • Prima-Lectures: The Prima-Lectures repository contains material from the Prototyping Interactive Media-Applications and Games lectures. You can find examples and resources related to FUDGE there.
  • UfoUndLost: UfoUndLost is a project created at the GlobalGameJam 2021 using FUDGE. Take a look to see how FUDGE was utilized in this game jam submission.

Get Started

To start creating with FUDGE, follow these steps:

Prerequisites

Before installing and running FUDGE, make sure you have the following prerequisites:

  • Node.js: Node.js is required to install and run FUDGE. You can download and install Node.js from the official Node.js website. Follow the installation instructions for your operating system.

  • TypeScript: While not strictly required, TypeScript is recommended for creating custom scripts for FUDGE. You can install TypeScript globally using the command npm install -g typescript. Alternatively, you can also use JavaScript to create scripts.

Installation

Once you have the prerequisites set up, follow these steps to install FUDGE:

  1. Head over to Releases and download the latest version of fudge.zip.
  2. Unpack the fudge.zip file to a location of your choice on your computer.
  3. Install the required node modules to run FUDGE by running npm install --omit=dev in a terminal within the folder containing FUDGE or by invoking install.bat (on Windows).

Or alternatively clone this repository and proceed with step 3. If you don't need the whole history of the repository you can use the depth parameter while cloning to reduce the download size:

git clone --depth=1 https://github.com/JirkaDellOro/FUDGE.git

Start

To start the FUDGE editor, you have multiple options:

  • Type electron Editor/Electron in the terminal.
  • Run npm start in the terminal.
  • Double-click the FUDGE.bat file (on Windows).

FUDGE Editor

Once you have the editor up and running, you can start creating assets in the project panel and build graphs in the graph panel. The editor is fully controlled by the menu bar, and you can right-click in various views for context menus and use drag-and-drop between the views. Take advantage of the hints in the views to guide you.

If you prefer to start without the editor, you can include the script FudgeCore.js in the head of your HTML page for a minimal setup. Check out this example of a minimal scene on CodePen to see how to set it up.

Resources

To learn more about FUDGE, explore the following resources:

Wiki

Browse through the Wiki to gain an intuitive understanding of FUDGE's core concepts and inner workings.

Test

Explore the tests to examine isolated functionalities of FUDGE and see code in action. Run your local clone with a local server or visit the Test page.

Documentation

Refer to the following documentation and references for in-depth information about different modules of FUDGE:

Repository Overview

The FUDGE repository consists of the following folders, which contain different functionalities.

Core

Contains the core functionality of FUDGE needed to create games. It implements an entity component system to build scene graphs, prepares its content for rendering with WebGL2 and WebAudio, manages game loops and time, offers some standard meshes, shaders, a lighting system, handles user input and keyframe animation, serialization, and more. For many games, working with this module is sufficient.

Refer to the FUDGECoreClassdiagram.svg diagram for an overview of its structure.

Physics

Contains an adapted version of the Oimo-Physics-Engine that works with FUDGE. It supports rigid bodies of different shapes to approximate visual structures and impose physical behavior, joints with several degrees of freedom and restrictions connecting rigid bodies, collision detection triggering events, and raycasting for rigid bodies. For a detailed explanation, visit the Physics classes in the FudgeCore reference and OIMO.js.

UserInterface

Contains classes for easy and automatic creation of graphical interfaces using the mutator concept (see Wiki). This module is heavily used in the editor and can be used and extended for games.

Net

Contains components for gaming over networks. It comes with a core implementation of a server and a client that dispatch events with a standardized message format. Clients connect to the server via WebSockets and to each other via RTC, creating peer-to-peer connections. Clients and server offer standard functionality to build a full mesh, where each client is connected to every other client, or an authoritative host structure, where one client is connected to all others and serves as the central hub for information.

Aid

Contains collections of classes for convenience, bundling, and simplifying common procedures, as well as experimental features that may become a core part in the future.

Editor

The directory of the actual standalone editor, which can be executed with Electron or packed as an executable using an Electron packager. The editor helps set up projects and create complex scenes. The resulting graph and the created resources are stored in the "Internal.json" file, and the "index.html" file serves as the main file for the project.

Test

Contains programs to test the functionality of various components of FUDGE separately. These tests also serve as resources for learning about those functionalities and how to set them up. Use a local server to run the tests on your machine.

Miscellaneous

A collection of various other documents and resources, including unmaintained experiments from developers who worked on FUDGE and thesis documents about aspects of FUDGE that former students graduated with.

Call for papers

ToDo

  • Cameratransformation, Axonometry
  • Diegetic User-Interface
  • Grapheditor/Wiring for Shader and Animation
  • Importer for standard file formats
  • Runtime-Recording for Replay
  • Undo/Rollback
  • Selection-Sets to store temporary Groups
  • Advanced texturing
  • Input-Manager
  • Graphic Feedback/Feedforward in RenderView
  • Image-Tracking
  • Pathfinding System
  • Procedural 3D-Assets

In Progress

  • Light and Shadow

Done

Name Area
Robel Teklezgi Foundation WebGL/Angular/Electron
Jascha Karagöl Foundation Scenetree
Kathrin Fuhrer AR-Core with FUDGE and Electron
Lukas Scheuerle Sketch- and Animation System
Thomas Dorner Foundation Audio
Falco Böhnke Net-Components
Monika Galkewitsch UI-Components
Lea Stegk UI-Design
Elke Scherffius Tutorials
Marko Fehrenbach Physics
Jonas Plotzky Particlesystem
Robin Schwab Modeller
Luis Keck Shader-System
Marius König Integration Golden Layout 2
Moritz Beaugrand Terrain
Matthias Roming Skeleton System & glTF Importer
Jonas Plotzky Particle & Animation Editor
Matthias Roming Skeletal Animation
Valentin Schnidtberger VR Components

fudge's People

Contributors

akikoosaka avatar annalotz avatar dependabot[bot] avatar dev-markof avatar falco-boehnke avatar githubuserlan avatar hexadezimal avatar jirkadelloro avatar kafu61 avatar keckluis avatar lukasbrauschhfu avatar obiwan1337 avatar oneof300 avatar plagiatus avatar plojo avatar rolandheer avatar sailerco avatar simonstorlschulke avatar sorayafe avatar tdorner avatar vale-sch avatar wowaiki 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

Watchers

 avatar  avatar  avatar  avatar

fudge's Issues

UI-Abgleich mit Mutator

Wahrscheinlich ist es besser, bei einer Änderung im UI den Mutator durchzugehen und die entsprechenden Werte aus dem Formdata-Objekt zu holen, zu vergleichen und bei Differenz in den Rückgabemutator zu übertragen. Folgende Vorteile

  • die Checkboxen und ggf. weitere Elemente die vielleicht noch folgen brauchen keine Sonderbehandlung
  • man kann nicht über das UI unbekannte Eigenschaften in den Mutator werfen und in der Folge in das System

'this.serverHandleLogin is not a function'

Ist ein Problem auf dem Server. Ich habe in meine ServerMain-Klasse einen switch, der entscheidet welche Funktion aufgerufen soll abhängig vom NachrichtenTyp den er erhält. Beim Login ruft der switch
this.serverHandleLogin(messageData.target, messageData) auf, wie gewünscht.

ServerMain im Branch ClientObjectAddage

Allerdings bekomme ich dann
TypeError: this.serverHandleLogin is not a function

Der einzige mögliche Grund dafür ist, dass der Server sich selbst kreieren muss, wenn ich ihn mit dem Terminal und node starte. Das heißt ich habe am Ende meiner .ts eine Zeile "const server = new ServerMain();" mit dem ich den Server initialisiere wenn die Datei aufgerufen wird. Ich weiß aber auch nicht wie man das vermeiden kann ohne direkt JavaScript zu schreiben.
Ansonsten weiß ich wirklich nicht mehr weiter

Hier die Funktions serverHandleLogin

public serverHandleLogin = (_websocketConnection: WebSocket, _messageData: NetworkCommunication.MessageLoginRequest) => {
        console.log("User logged", _messageData.loginUserName);
        let usernameTaken: boolean = true;
        usernameTaken = this.searchForPropertyValueInCollection(_messageData.loginUserName, "userName", this.usersCollection) != null;

        if (!usernameTaken) {
            const associatedWebsocketConnectionClient =
                this.searchForPropertyValueInCollection
                    (_websocketConnection,
                        "clientConnection",
                        this.usersCollection);

            if (associatedWebsocketConnectionClient != null) {
                associatedWebsocketConnectionClient.userName = _messageData.loginUserName;
                console.log("Changed name of client object");

                this.sendTo(_websocketConnection,
                    {
                        type: "login",
                        success: true,
                        id: associatedWebsocketConnectionClient.id,
                    },
                );
            }
        } else {
            this.sendTo(_websocketConnection, { type: "login", success: false });
            usernameTaken = true;
            console.log("UsernameTaken");
        }
    }

compatibility table of FUDGE

Das HTML ist mal als Code eingebunden. Leider lassen sich die CSS-Klassen hier nicht darstellen.
`

<title>Compatibility of FUDGE</title> Compatibility of FUDGE
Systems: Linux Windows Apple Android iOS
Can it run? native Firefox Opera native Firefox Chrome Edge native Firefox Chrome Safari native Firefox Chrome Opera native Firefox Chrome Opera Safari
`

Seltsames Verhalten beim Bewegen

Ich habe versucht, ein einfaches click&drag für die Pfadobjekte zu bauen, allerdings bewegen sie sich nicht wie ich erwarten würde und ich komme nicht darauf woran es liegen könnte. Zum einen bewegen sich die Punkte nicht gleichmäßig, zum anderen bewegt es sich deutlich weiter wie erwartet.

Ausführbarer Link:
https://jirkadelloro.github.io/FUDGE/Experiments/Lukas/Canvas/02_different_structure_test/canvas.html

canvastypes.ts beinhaltet die Klassen, eine davon ist DrawPath, welche die Funktion move() beinhaltet die eigentlich das Pfadobjekt um den gegebenen Wert bewegen soll, indem es jeden Punkt im point: DrawPoint[] bewegt und dann den Path2D neu berechnet.
https://github.com/JirkaDellOro/FUDGE/blob/master/Experiments/Lukas/Canvas/02_different_structure_test/canvastypes.ts#L73

Diese Funktion wird an dieser Position aufgerufen:
https://github.com/JirkaDellOro/FUDGE/blob/master/Experiments/Lukas/Canvas/02_different_structure_test/canvas.ts#L100

ƒ Szene für Web Audio Tests

Wie schon besprochen folgt eine Beschreibung einer Fudge Szene mit der ich anfangen kann eine Audio Komponente (ComponentAudio) zu erstellen. Um damit auch räumlichen Sound testen zu können, müsste die Szene ein primitives Objekt enthalten. Außerdem sollte die Kamera auf etwa gleicher Höhe sein und darauf gerichtet sein. Auf die Kamera würde ich vorerst den Audio Listener platzieren.

Damit ich räumliche Veränderung höre sollte sich das Objekt bewegen. Ich habe mir überlegt ob das Objekt einen Kreis fahren könnte, wobei es vielleicht geschickter wäre wenn die Szene aufgeteilt wird.

Einmal sollte sich das Objekt zur Kamera hin und danach wieder von ihr weg bewegen (ein loop wäre am besten). Hier würde ich die Lautstärke Abschwächung im Bezug zur Distanz testen.
Außerdem bräuchte ich in der zweiten Szene ein Objekt, dass sich von links nach rechts bewegt (hier auch wieder einen loop). Hier würde ich erstmal an der räumlichen Wahrnehmung arbeiten.

Schwierigkeiten bei Netzwerk und Electron

Falco hat Schwierigkeiten, TypeScript, Namespace und Electron zusammen zu bringen. Wenn ich das richtig verstanden habe, läuft bei Monika FUDGE, was namespaces nutzt, und GoldenLayout und ihr eigener Code mit Electron. Bitte tauscht euch darüber aus.

Refactor_WebGL_Viewport_Canvas

@R4Pi3R ich habe einen neuen Branch angelegt, Name siehe Issue-Titel. Hier möchte ich das Refactoring machen, zusammen mit dir. Bitte beobachte und prüfe und lass' uns über diesen Thread diskutieren. Ich werden voraussichtlich Montagnachmittag und Dienstag im Spiellabor sein. Ich würde mich freuen, wenn Du kommst.

TS: Class referenzieren aus anderer Class

Ich häng da jetzt viel zu lange dran und google hilft nicht, weiß jemand zufällig woran das liegt? Compiler wirft "error TS2552 - cannot find name 'UiElementHandler'" raus wenn ich versuche den UiElementHandler in meinem Renderer zu referenzieren. Fehler wird bei der Property und beim Constructor jeweils geworfen.
Gibt keine Import/Export statements, sollte das nicht global sein?

File 1:

class renderer {
    uiElementHandler: UiElementHandler;
    
constructor() 
  {
        this.uiElementHandler = new UiElementHandler();
  }
}

File 2:

class UiElementHandler{
    constructor() 
     {
         // Stuff
      }
}

Start watch automatically

Mir passiert es immer wieder, dass ich vergesse in VSCode den automatischen Build zu starten, insbesondere, wenn ich einmal den Ordner wechsle. Da habe ich etwas recherchiert und einen automatischen Watch-Start gebastelt. Meine task,json sieht nun so aus:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "type": "typescript",
            "tsconfig": "tsconfig.json",
            "option": "watch",
            "problemMatcher": [
                "$tsc-watch"
            ]
        },
        {
            "label": "auto-watch",
            "type": "shell",
            "command": "tsc -watch",
            "runOptions": {
                "runOn": "folderOpen"
            }
        }
    ]
}

Das zweite Objekt habe ich reingetippt, das erste war da. Dann muss man noch in der Command-Palette (Strg+Shift+P oder F1) die Option "Tasks: Allow automatic tasks in folder" auswählen. Nun startet die Watch automatisch, sobald ich den Ordner in VSCode öffne.

Klassenregistrierung

100%ig automatisch habe ich es noch nicht, aber einen eleganten Lösungsansatz für die Registrierung von Subklassen in einem statischen Array der Superklasse, Siehe
https://github.com/JirkaDellOro/FUDGE/tree/master/Experiments/Jirka/StaticClass

In jeder Subklasse muss lediglich folgende Zeile eingebaut werden
public static iRegister number = Base.addClass(Sub1);

Wobei iRegister nur der Auslöser für dir Registrierung ist, aber hier vielleicht noch einen Mehrfachnutzen haben kann, da es die Position der Klasse im Array speichert.

fullPathName in Mutator und components?

Prüfen ob der volle Pfadname zu den Klassen in den Mutatoren und/oder in der Component-List der Nodes genutzt werden sollte. Der Serializer macht das mittlerweile standardmäßig und so könnten sich Inkonsistenzen ergeben z.B. bei der Animation.

Auto-UI dringend

Die wesentlichsten Core-Funktionen sind nun implementiert und die Tests werden nun größer. Hierzu ist es dringen erforderlich, das UI-System zu nutzen um Test-Interfaces erstellen zu können. GoldenLayout ist dafür noch nicht erforderlich, lediglich die automatischen UI-Komponenten.

Wie gehen wir vor, damit wird diese schnellstmöglich für Tests einbinden können?

Wiki

Ich habe das Wiki eröffnet und die Seite "Online Ressources" angelegt. Hier sammeln wir strukturiert Links auf gute und geprüfte Quellen. Bitte übertragt eure

Import Namespaces

Wie kann ich, wenn ich namespaces verwende, bestimmte Klassen aus diesem Namespace importieren? Momentan kann ich die MessageBase nicht exportieren, da ansonsten alle anderen Messages die das Interface implementieren den Fehler werfen

Cannot find name 'MessageBase'.ts(2304)
Implements clause of exported class 'MessageCandidate' has or is using private name 'MessageBase'.ts(4019)

Sobald ich das 'export' bei Networkmessages weglasse funktioniert es tadellos. Das bedeutet aber, dass ich nichts davon importieren oder anderweitig in meinen anderen Klassen verwenden kann. Online ist der Konsens dazu "Keine Namespaces verwenden".

export namespace NetworkMessages {
    export enum MESSAGE_TYPE {
        UNDEFINED = "undefined",
        LOGIN = "login",
        RTC_OFFER = "offer",
        RTC_ANSWER = "answer",
        RTC_CANDIDATE = "candidate",
    }

    export interface MessageBase {

        messageType: MESSAGE_TYPE;

    }
}
`

export namespace NetworkMessages {

export class MessageAnswer implements MessageBase // Hier kommt der Error {

    public messageType: MESSAGE_TYPE // Hier kommt der Error // = MESSAGE_TYPE.RTC_ANSWER;
    public userNameToConnectTo: string;
    public answer: RTCSessionDescription | null;
    constructor(userNameToConnectTo: string, _answer: RTCSessionDescription | null) {
        this.userNameToConnectTo = userNameToConnectTo;
        this.answer = _answer;

    }

}

}
`

Prototypische UI-Implementierung

Ich denke, statt zu diesem Zeitpunkt etwas von UI in Fudge einzubauen, sollten wir es noch etwas reifen lassen und testen. Zu diesem Zweck habe ich einen meiner Tests für dich vorbereitet. Siehe
https://jirkadelloro.github.io/FUDGE/Test/WebGL/TestRectMapping/

Kopiere dir das in deinen Experiments-Ordner und baue daran dein UI-System weiter. Die Camera enthält alles, was wir in der Grundausstattung brauchen, fang mit der an. ACHTUNG: bei den Projektionen ist derzeit nur CENTRAL ausdefiniert, andere werden nicht funktionieren. Also beim Umschalten nicht wundern, wenn alles in die Luft fliegt.

Weitere Schritte, die wir dann zunächst besprechen sollten:

  • Bei dem FramingComplex gibt es zwei Objects margin und padding, die keine Mutables sind. Die sollen dann vielleicht aber trotzdem angezeigt und mutiert werden können. Hierzu könnte man schauen, wie man am schönsten einen temporären Mutator nutzt, so wie Du derzeit bereits welche selbst baust, um auch diese Möglichkeit weiter zu unterstützen.
  • Die resultierenden Rects sind ebenso keine Mutables und werden auch nur angezeigt, eine Veränderung ist schon auf der UI-Seite nicht möglich. Auch hierfür sollte es entsprechende Strukturen geben.

Vorschau Anmationseditor

Der Editor verfügt über kein eigenes Vorschaufenster für eine erstellte Animation. Wo kann der User diese beim scrollen durch die Frames sehen? Im Scene / Modelling Editor?

Vektoreditor Klassendiagramm sowie jede Menge Aktivitätsdiagramme

Ich habe ein Klassendiagramm sowie jede Menge Aktivitätsdiagramme zu besprechen und absegnen zu lassen, das wäre gut wenn wir das möglichst bald in der Woche machen könnten damit ich nachbessern und dann implementieren kann.

Nachtrag: um genau zu sein sind es 14 DIN A3 Seiten. Und da ich am Donnerstag wieder viel mit den EIAs zu tun haben werde, wäre es mir sehr recht, wenn wir das am Dienstag schon machen könnten.

-> das klappt bei mir nicht mehr... also Donnerstag oder gerne vorab schon etwas online.

ComponentCamera needs mutate function

Wie bereits besprochen im Meeting am 23.5.19 sollte die ComponentCamera die mutate function noch implementieren, so dass Ich das UI System korrekt testen kann.
mutate ist ist notwendig für die aktualisierung des User Interfaces und da Ich ComponentCamera zu Testzwecken benutze, wäre die korrekte implementation von mutate auf der Komponente stark vom Vorteil.

JSON importieren

Ich versuche gerade in meinen Code externe JSON files einzubinden, finde aber keinen Weg, dies zu tun. Alle Lösungen auf die ich online stoße funktionieren nur mit node aber nicht im browser.

Hat da jemand eine Lösung dafür?

import in electron möglicher Fix

Kann sein das man dem Window Node-Integration = true setzen muss, das sieht dann so aus

function createWindow() {
  // Node integration must be true, otherwise require/import not doable
  win = new BrowserWindow({
    webPreferences: {
      nodeIntegration: true,
    },
  });
}

TypeError: establishWebsocketConnection is not a function

Hey, hat das schonmal jemand erlebt? ICh krieg keinen Fuß auf den Boden was diesen Bug betrifft. Ist einfach nur eine Funktion in der Klasse, korrekt geschrieben und alles.

getUrlAndCreateConnection() wird durch einen Eventlistener aufgerufen

image

ƒ mit z.B. Alt+F in VSCode

Advanced customization
All keyboard shortcuts in VS Code can be customized via the keybindings.json file.

To configure keyboard shortcuts the way you want, hit F1 and select "Preferences: Open Keyboard Shortcuts (JSON)"
This will open your keybindings.json file where you can overwrite the Default Keybindings.

// Place your key bindings in this file to overwrite the defaults
[
{
"key": "alt+f",
"command": "editor.action.insertSnippet",
"when": "editorFocus",
"args": {"snippet": "ƒ"}
}
]

ENUM - DropDowns in generierten UIs

Für ENUMs brauchen wir auch DropDowns. Folgendermaßen sehen die Daten aus

    enum FOV_DIRECTION {
        HORIZONTAL,
        VERTICAL,
        DIAGONAL
    }

kompiliert zu

0: "HORIZONTAL"
1: "VERTICAL"
2: "DIAGONAL"
DIAGONAL: 2
HORIZONTAL: 0
VERTICAL: 1

und

enum EVENT {
        ANIMATION_FRAME = "animationFrame",
        COMPONENT_ADD = "componentAdd",
        COMPONENT_REMOVE = "componentRemove",
        CHILD_APPEND = "childAdd",
        CHILD_REMOVE = "childRemove",
        MUTATE = "mutate"
    }    

zu

ANIMATION_FRAME: "animationFrame"
CHILD_APPEND: "childAdd"
CHILD_REMOVE: "childRemove"
COMPONENT_ADD: "componentAdd"
COMPONENT_REMOVE: "componentRemove"
MUTATE: "mutate"

Für die Anzeige im DropDown sind nur die blauen Schlüsselbezeichner wichtig

Wie bekomme ich jetzt eigentlich alles aus dem Mutator heraus?

Ich habe versucht, alle verschachtelten Objekte des Mutators abzurufen, um diese dann in den Animator einbauen zu können. So weit so gut:

function getObjectStructure(_obj: ƒ.Mutator): void {
  for (let key in _obj) {
    let value: Object = _obj[key];
    console.log(key, value);
    ...
  }
}

Damit komme ich natürlich gut durch die erste Ebene durch. Aber was wenn ich eine Ebene tiefer möchte?
All diese Varianten funktionieren nicht (einzusetzen an den ...):

if (value instanceof ƒ.Mutable) {
  getObjectStructure(value.getMutatorForAnimation());
}
if (typeof value === "object") {
  getObjectStructure((<ƒ.Mutable>value).getMutatorForAnimation());
}
if (value instanceof ƒ.Mutator) {
  getObjectStructure(value);
}

Auch wenn ich value: any mache und versuche auf das Vorhandensein einer Funktion in Mutator zu testen geht das nicht:

if (value.getMutator) {
  getObjectStructure(value);
}

Zum Testen habe ich die mini Szene verwendet:

Scenes.createMiniScene();
mutator = Scenes.node.cmpTransform.getMutatorForAnimation();
Scenes.node.cmpTransform.getMutatorAttributeTypes(mutator);
getObjectStructure(mutator);

Link zum Code: https://github.com/JirkaDellOro/FUDGE/blob/master/Test/Transfer/Animator/generateStructure.ts
Link zur html: https://jirkadelloro.github.io/FUDGE/Test/Transfer/Animator/

Ich übersehe wahrscheinlich einfach nur irgendwas ganz blödes, wie es eben manchmal so ist.

Projekt pflegen

da eure Experimente-Karten noch auf "todo" stehen, muss ich annehmen, dass ihr noch nicht angefangen habt. Ist diese Annahme korrekt?

Proxy

Examine, if and how Javascript-Proxy-Objects may help optimize

Dokumentation läuft nicht bei euch!

  • Der letzte Logbucheintrag ist vom 26. Juni.
  • Mein Issue dazu wurde ignoriert
  • Eure Projekte sind im Mai stehen geblieben, außer Leas
  • Alte Issues wurden nicht geschlossen

Derzeit muss ich davon ausgehen, dass ihr entweder mit allem fertig seid oder aufgegeben habt!

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.