All Projects → io12 → godot-portal-demo

io12 / godot-portal-demo

Licence: MIT license
Experimenting with portals in Godot Engine

Programming Languages

GDScript
375 projects
GLSL
2045 projects

Projects that are alternatives of or similar to godot-portal-demo

godot-xterm
Terminal emulator for the Godot game engine.
Stars: ✭ 61 (-7.58%)
Mutual labels:  godot, godot-engine
GodotFAN
Facebook Audience Network Ad module for godot
Stars: ✭ 25 (-62.12%)
Mutual labels:  godot, godot-engine
Godot-DialogPlugin
🗨️ A Dialog Node for Godot Engine
Stars: ✭ 194 (+193.94%)
Mutual labels:  godot, godot-engine
godot-android-plugin-firebase
Godot 3.2.2 Android plugin for Firebase
Stars: ✭ 41 (-37.88%)
Mutual labels:  godot, godot-engine
Advanced-Portals
An advanced portals plugin for bukkit
Stars: ✭ 108 (+63.64%)
Mutual labels:  portal, teleportation
godot-rpgdb
An easy to use JSON database-manager for Godot.
Stars: ✭ 25 (-62.12%)
Mutual labels:  godot, godot-engine
toziuha-night-oota
Opensource Metroidvania inspired on Castlevania Order of Ecclesia
Stars: ✭ 78 (+18.18%)
Mutual labels:  godot, godot-engine
godot tools
A set of GDScript EditorScript and EditorPlugins tools that automate boring tasks on Godot Engine.
Stars: ✭ 50 (-24.24%)
Mutual labels:  godot, godot-engine
Godot FPC Base
A first person camera base project for Godot 3.x to help anyone get a jumpstart.
Stars: ✭ 39 (-40.91%)
Mutual labels:  godot, godot-engine
godot-cmvalley
Port of the Sauerbraten clanmap cm|Valley to Godot 4.0
Stars: ✭ 28 (-57.58%)
Mutual labels:  godot, godot-engine
PimplePopper
Game to pop pimples using the awesome Godot Engine
Stars: ✭ 23 (-65.15%)
Mutual labels:  godot, godot-engine
Godot-Top-down-Shooter-Tutorial
This repository contains the source code for the Godot Top-down Shooter Tutorial series.
Stars: ✭ 41 (-37.88%)
Mutual labels:  godot, godot-engine
GDGotm
Official Godot plugin for gotm.io - the Godot Platform!
Stars: ✭ 43 (-34.85%)
Mutual labels:  godot, godot-engine
nativelib-cli
NativeLib is a plugin management system for Godot engine.
Stars: ✭ 19 (-71.21%)
Mutual labels:  godot, godot-engine
godot-practice-shaders
Some practice shaders in Godot
Stars: ✭ 79 (+19.7%)
Mutual labels:  godot, godot-engine
novemberdev soulslike darksouls godot
Dark Souls clone in 3D with Godot
Stars: ✭ 51 (-22.73%)
Mutual labels:  godot, godot-engine
godot-logger
Simple in-game logger for Godot 4.0
Stars: ✭ 14 (-78.79%)
Mutual labels:  godot, godot-engine
liblast
A libre multiplayer FPS game created in Godot Engine
Stars: ✭ 92 (+39.39%)
Mutual labels:  godot, godot-engine
godot-gdgifexporter
Gif exporter for Godot made entirely in GDScript
Stars: ✭ 85 (+28.79%)
Mutual labels:  godot, godot-engine
Game-Examples
Godot game examples for gotm.io - the Godot Platform!
Stars: ✭ 27 (-59.09%)
Mutual labels:  godot, godot-engine

Godot Portal Demo

Experimenting with portals in Godot Engine

Web build

screenshot

Controls

WASD or arrow keys to move, E to pick up cube

Issues

This implementation has several issues that need to be fixed before the portals can be fully seamless. To fix all of them, Godot needs support for custom projection matrices and stencil buffering, which it doesn't have yet.

  • Rendering
    • Oblique near-plane frustum for portal cameras
    • Fix performance with stencil buffering
    • Lighting through portals
    • Portal camera FOV sync with player FOV
    • Portal dynamic updating in editor (optional, but nice)
  • Physics
    • Seamless first-person player teleportation
    • Fix holding RigidBody through portal
    • Collision masking for objects behind portal

How it works

The full details are in the code, but basically, the portals behave as described below.

Rendering

Each portal has a camera attached to it, mapped to a ViewportTexture on the linked portal. These cameras move based on the player position such that angles look realistic.

Physics

When a RigidBody overlaps the portal, it creates a clone at the other portal. The clone and real object swap once the real object's center goes behind its portal. This allows somewhat-seamless object teleportation.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].