Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Asset / World / Geometry / Sprite hooks #29

Open
IceReaper opened this issue Jun 16, 2023 · 2 comments
Open

Asset / World / Geometry / Sprite hooks #29

IceReaper opened this issue Jun 16, 2023 · 2 comments

Comments

@IceReaper
Copy link

Just an idea:

I've been throwing managed-doom into godot. took me 30 minutes to get it to work in the godot engine. Then i started to actualy hook in at the points where the map is loaded and generate proper geometry.
It would be cool if managed doom had an interface which allows people to throw in an implementation to react on graphics creation, manipulation and deletion, so that it can choose to not use the software renderer, but instead react by updating a 3d scene, without the need to implement a 3d engine into the core classes.

image

@IceReaper IceReaper changed the title Asset hooks Asset / World / Geometry / Sprite hooks Jun 16, 2023
@sinshu
Copy link
Owner

sinshu commented Jun 18, 2023

It's amazing that Doom can run on the Godot Engine 👀

I have very little knowledge about modern 3D graphics, so defining an efficient interface is difficult. In fact, while I do use OpenGL in Managed Doom, I have no experience handling anything more complex than a single polygon covering the entire screen...

In the early days, I wanted to implement a polygon-based renderer as well, but I unexpectedly found that the software rendering engine of the original Doom is tightly coupled with the core part of the game, so I gave up on that 🥺

@IceReaper
Copy link
Author

No need to dig into graphics for Godot. It has a full Vulkan renderer and c# scripting (Godot 4).
It's pretty easy to simply set the geometry. Basically all it need is an interface which has several methods which get called when

  • a map loads / unloads (geometry creation)
  • sectors change (afaik only height?, For implementing doors, elevators, etc)
  • an entity spawns / despawns (position, texture)
  • an entity changes it's display texture or position (like above)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants