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

Project Reboot #5

Open
IceReaper opened this issue May 11, 2023 · 0 comments
Open

Project Reboot #5

IceReaper opened this issue May 11, 2023 · 0 comments

Comments

@IceReaper
Copy link
Owner

IceReaper commented May 11, 2023

Currently planning to redo the project in a few steps:

1. Port the Yamagi Quake II fork.
This fork would come with several improvements, along with several renderers.
For now i would focus on the OpenGL 3.2 renderer, using Silk.NET
While porting, i would try to enhance and optimize every function as good as possible, while still being api compatible.
Also while porting i would directly focus on removing hardcoded limits.

2. Port the mission packs
The Reckoning
Ground Zero
Capture The Flag

3. Restructure the project setup
The project should be setup as follows:

  • the engine should output a dll only => IdEngine.dll
  • Every game should output a single .dll containing it's gamecode. "Quake2.dll", "Quake2Rogue.dll", "Quake2Xatrix.dll" "Quake2Ctf.dll"
  • The Platform implementation shoudl compile into IdEngine.OpenGL3.exe

4. Additional Platforms
Every renderer would compile into a IdEngine..exe. Swapping the renderer ingame should not be implemented, due to several platform being unable to do so. Also swapping will result in a engine restart anyway.

  • Software Renderer. Im not sure if its worth porting that one. I'll likely skip this, but would accept a contibution.
  • OpenGL 1 Same applies here. We will have a working OpenGL 3.2 renderer. Im not sure if we need a GL 1 renderer, but i will accept it when community contributed.
  • Vulkan I might port it myself, otherwise always accept a contribution.
  • DirectX. There is nothing to port here, and i wont do one. But if someone provided a DirectX renderer, i would also accept it.
  • Godot This is one implementation im personaly pretty interested in and will work on.
  • Unity Another posibility for unity based quake logic games. Ill accept any contribution implementing this.

Further future ideas
Furthermore I would be interested in seeing some these crazy ideas come alive if a community gathers around this project.

  • allow to load raw trench room .map files along .bsp maps, so we do not need to compile maps anymore. Just load them up and play. Alternatively we could port the map compilation part into the engine itself and compile them on launch.
  • allow to load gltf models
  • Implement an in-game updater and mod / map browser / downloader / updater. Not just when connecting to server, but also browse all available addition content from the main menu.

Super crazy future ideas
It would be nice to be more of an "id games engines" instead of a "quake 2 engine". So porting more of the classics and make them playable would be super interesting.

  • port quake 1 and addons - why not? Engine-wise we should be pretty good to go already. Most work might require to port the QuakeC progs to C# modules.
  • port quake 3 too - it shouldn't be too far from quake2. Especialy the bot support would be pretty interesting.
  • port doom 1 and 2 or even wolfenstein3d. It would just be fun if they can be enjoyed too on this engine. Sure it wont be a raycaster anymore, and it will feel a bit different. But being able to simply play any id-game (prior to doom3) would be pretty interesting.
  • whatever crazy projects the community comes up. I do want to support people using the engine.

If there is any interesting in contribution, let me know and I'll setup a discord for this :)

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

1 participant