Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
plojo authored May 14, 2024
1 parent 61b9a25 commit b340b20
Showing 1 changed file with 21 additions and 32 deletions.
53 changes: 21 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<a href="https://github.com/JirkaDellOro/FUDGE"><img src="https://hs-furtwangen.github.io/FUDGE/Miscellaneous/Logo/FudgeLogoText.png" onload="document.querySelector('h1').style.visibility='hidden'"/></a>
<a href="https://github.com/hs-furtwangen/FUDGE"><img src="https://JirkaDellOro.github.io/FUDGE/Miscellaneous/Logo/FudgeLogoText.png" onload="document.querySelector('h1').style.visibility='hidden'"/></a>

# Welcome!

Expand All @@ -8,7 +8,7 @@ Check out these examples to see what can be achieved with FUDGE:

- [GameZone](https://games.dm.hs-furtwangen.de/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](https://github.com/JirkaDellOro/Prima#examples): 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](https://hs-furtwangen.github.io/UfoundLost/UfoundLost.html): 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.
- [UfoUndLost](https://JirkaDellOro.github.io/UfoundLost/UfoundLost.html): 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

Expand All @@ -26,13 +26,13 @@ Before installing and running FUDGE, make sure you have the following prerequisi

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

1. Head over to [Releases](../../releases) and download the latest version of `fudge.zip`.
1. Head over to [Releases](https://github.com/hs-furtwangen/FUDGE/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
git clone --depth=1 https://github.com/hs-furtwangen/FUDGE.git
```

## Start
Expand All @@ -43,7 +43,7 @@ To start the FUDGE editor, you have multiple options:
- Run `npm start` in the terminal.
- Double-click the `FUDGE.bat` file (on Windows).

![FUDGE Editor](https://hs-furtwangen.github.io/FUDGE/Miscellaneous/Screenshots/Editor.png)
![FUDGE Editor](https://JirkaDellOro.github.io/FUDGE/Miscellaneous/Screenshots/Editor.png)

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.

Expand All @@ -55,7 +55,7 @@ To learn more about FUDGE, explore the following resources:

## Wiki

Browse through the [Wiki](../../wiki) to gain an intuitive understanding of FUDGE's core concepts and inner workings.
Browse through the [Wiki](https://github.com/hs-furtwangen/FUDGE/wiki) to gain an intuitive understanding of FUDGE's core concepts and inner workings.

## Test

Expand All @@ -65,50 +65,39 @@ Explore the tests to examine isolated functionalities of FUDGE and see code in a

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

- [Core](https://hs-furtwangen.github.io/FUDGE/Documentation/Reference/Core/modules/FudgeCore.html)
- [UserInterface](https://hs-furtwangen.github.io/FUDGE/Documentation/Reference/UserInterface/modules/FudgeUserInterface.html)
- [Aid](https://hs-furtwangen.github.io/FUDGE/Documentation/Reference/Aid/modules/FudgeAid.html)
- [Core](https://hs-furtwangen.github.io/FUDGE/Documentation/Reference/Core/modules/FudgeCore.html)
- [Net](https://hs-furtwangen.github.io/FUDGE/Documentation/Reference/Net/index.html)
- [OIMO.js](https://github.com/lo-th/Oimo.js)
- [FudgeServer](https://hs-furtwangen.github.io/FUDGE/Documentation/Reference/Net/index.html)
- [FudgeClient](https://hs-furtwangen.github.io/FUDGE/Documentation/Reference/Net/modules/FudgeNet.html)
- [UserInterface](https://hs-furtwangen.github.io/FUDGE/Documentation/Reference/UserInterface/modules/FudgeUserInterface.html)

# 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](Documentation/Design/FUDGECoreClassdiagram.svg?raw=1) 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](https://github.com/lo-th/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.
## Editor

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

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

## Aid
### 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
### Core

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

## Test
Refer to the [FUDGECoreClassdiagram.svg](Documentation/Design/FUDGECoreClassdiagram.svg?raw=1) diagram for an overview of its structure.

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

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

### UserInterface

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

# Call for papers
## ToDo
Expand Down

0 comments on commit b340b20

Please sign in to comment.