haskellfoundation / volunteering

Help the Haskell community coordinate volunteers, open source projects, and help community managers source speakers.
26 stars 3 forks source link

Keid game engine #5

Open dpwiz opened 2 years ago

dpwiz commented 2 years ago

Project

Keid game engine

Maintainer

IC Rainbow

Skills / Function Needed

https://keid.haskell-game.dev/

Keid is a 2D and 3D pure-vulkan rendering engine with pluggable game components. It is possible to do some advanced stuff, but the framework is too low-level for mass involvement.

Writing a comprehensive game engine is a huge undertaking. Most of the work is not that hard really, but there are lots of things to be done.

Issue list

https://gitlab.com/groups/keid/-/issues?sort=priority&state=opened

Repo Location

The project is a bunch of repositories inside the gitlab group: https://gitlab.com/keid

Ashe commented 2 years ago

Looks really good and I'm planning on giving this a spin! I haven't been in the haskell gamedev space for a bit since I was focusing on my career but looking for something to sink my teeth into a bit.

What was the inspiration behind the name Keid? Seems cool :smiley: do you have plans to add any sort of networking to the engine, or is this more of the graphics and logic side of things?

dpwiz commented 2 years ago

Keid is a traditional name for 40 Eridani, the ~star~ system that hosts the planet Vulcan :wink:

Networking would be a cool thing to add. There are different possible architectures with different tradeoffs and integration schemas to explore. Maybe there can be some generic netcode facade with multiple pluggable transports/backends.

Meanwhile I'm spreading myself over all the missing features one would expect to be available.

Abastro commented 2 years ago
  1. How do you view the prospect of game programming in haskell?
  2. For games to write, doesn't it require asset creation? I expect it to be hard to recruit asset designer in a language community.
  3. Could I be involved?
dpwiz commented 2 years ago

@Abastro

  1. There are multi-mullion games in Java. Haskell is no less capable language.
  2. Indeed, for a well-polished game a lot of effort is put into asset production. Some games may get away with procedural art and "stylized" look (you definitely can have a cool look even with gloss). But in general an asset pipeline is quite important part of the whole story. The Keid engine uses internal optimized formats, but can import 2D images (via KTX), 3D models (via glTF) and sounds (via Opus).
  3. Please do (:
Abastro commented 2 years ago

@dpwiz About point 2, I wanted to point out the availability of designers. It's great that Keid engine has an asset pipeline, though my concern was the assets for example games. How can I be involved, by the way? Could you provide some guidelines? Especially, which aspect needs more contribution?

dpwiz commented 2 years ago

@Abastro Ah.. I stick to free/CC assets like Kenny's and OpenGameArt.

The first thing would be using the Engine as a library. A stand-alone project using what's published on Hackage, getting familiar with the user-visible parts, picking apart example code. Journalling it would be extra helpful, especially from the "beginner's mind" position.

I don't know you affinities, but postprocessing (composition and filtering) and screen-space (bloom, etc.) pipelines would be appreciated by both 2d and 3d projects.

Abastro commented 2 years ago

You mean example app for postprocessing & screen-space pipelines, or is the pipeline still in the making? (Sorry that I am too hasty to find it out myself)

dpwiz commented 2 years ago

The engine has an offscreen rendering boilerplate (renderpass, images, views etc.), but no premade pipelines to e.g. blur the resulting image. Stuff like this isn't game-specific and can be shared across multiple projects.

Screen-space techniques are a bit different. The engine has render-basic package, which is a collection of pipelines that share a common descriptor layout set. So a bloom pipeline and its prerequisites should be a part of this somehow.

udaycruise2903 commented 2 years ago

@dpwiz I am seriously searching for open-source projects to contribute for last 3 months. Do have any communication channel or dashboard on what needs to be done and the level of difficulty of it. I am interested in this opportunity.

dpwiz commented 2 years ago

@udaycruise2903 There are contacts and setup instructions on the project site.