In-house game engine

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
Post Reply
mant
Posts: 125
Joined: Sun Jan 27, 2013 3:38 pm

In-house game engine

Post by mant »

Hi, this is the first time I show something interesting on Irrlicht forum.
Here is the video of an in-house engine that I've developed for 6 months using Irrlicht 1.8.4 and other open-source libraries.
https://www.youtube.com/watch?v=oA3DSrPInag

Images are clipped by the forum, open in a new window to see in full size:
First cube rendered (physically based rendering - PBR)
Image

One of the level for AI testing (single point light)
Image

Render test (all materials are PBR, random point lights)
Image

New GUI skin
Image

Sponza scene after corrected some lighting (differrent from the video), 3 directional lights
Image

New feature to render transparent objects with/without normal map (this version is released yesterday)
Image

Sponza scene with transparency support
Image

Development:
- Irrlicht itself is not modified at all, but compiled with 8 material textures support enabled
- UI is done with CEGUI
- I write custom deferred renderer using Irrlicht as back-end
- Still don't have reflection due to lack of cubemap support, could someone help me to understand Screen Space Reflection using ray marching?
- May study XEffects to implement shadow for this engine
- Will probably modify Irrlicht for more performance
- Open-source? Maybe, but not soon for sure, I have to finish my first game, demo scenes can be released if I make some

Jan 15th 2018
One more random point lights scene
Image

Physically based rendering test
Image

Image
Last edited by mant on Mon Jan 15, 2018 1:13 am, edited 1 time in total.
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: In-house game engine

Post by CuteAlien »

CubeMap support is in Irrlicht trunk version I think (was coded by Nadro, I didn't get yet to use it, but slight warning - the interface might change once more for that within next months).

Great screenshots!
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
mant
Posts: 125
Joined: Sun Jan 27, 2013 3:38 pm

Re: In-house game engine

Post by mant »

I will try to allocate time to check out trunk version so maybe I could understand the implementation of cubemap and contribute it to 1.9
No promises but I will do something to contribute :D
chronologicaldot
Competition winner
Posts: 688
Joined: Mon Sep 10, 2012 8:51 am

Re: In-house game engine

Post by chronologicaldot »

Your transparent cubes look odd: only the front faces are showing, probably because you have back-face culling still on. You might want to disable that when you have transparent materials.
Your random point lights test looks cool. :)
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: In-house game engine

Post by devsh »

Your transparent cubes look odd: only the front faces are showing, probably because you have back-face culling still on. You might want to disable that when you have transparent materials.
Then he'll need one more pass of deferred for one more layer of transparency.
mant
Posts: 125
Joined: Sun Jan 27, 2013 3:38 pm

Re: In-house game engine

Post by mant »

devsh wrote:
Your transparent cubes look odd: only the front faces are showing, probably because you have back-face culling still on. You might want to disable that when you have transparent materials.
Then he'll need one more pass of deferred for one more layer of transparency.
I have just realized that, I could also blend Irrlicht's forward pass with mine, or the base material of transparent cube is currently solid, it should not be solid.
I will check again, thanks guys.
mant
Posts: 125
Joined: Sun Jan 27, 2013 3:38 pm

Re: In-house game engine

Post by mant »

One more random point lights scene
Image

Physically based rendering test
Image

Image
Mel
Competition winner
Posts: 2292
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: In-house game engine

Post by Mel »

Good lord!, there are more models out there than the (in)famous Sponza atrium by crytek! :lol:
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: In-house game engine

Post by CuteAlien »

Hehe, everyone uses Sponza. I guess it allows for great comparisons with other people using it. Btw, Sponza atrium shows even up in game of thrones :-) (for King's Landing castle).
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
mant
Posts: 125
Joined: Sun Jan 27, 2013 3:38 pm

Re: In-house game engine

Post by mant »

Sponza just works for me in first try so I keep using it, will look for other scenes when I have enough time and motivation for that :D
Asimov
Posts: 246
Joined: Thu Dec 04, 2014 7:41 pm
Contact:

Re: In-house game engine

Post by Asimov »

Hi Mant,

That is a nice normalmap on that lion's head.
I am having a few problems with normalmaps which is how I came across your post.
Nice work though.
mant
Posts: 125
Joined: Sun Jan 27, 2013 3:38 pm

Re: In-house game engine

Post by mant »

Asimov wrote:Hi Mant,

That is a nice normalmap on that lion's head.
I am having a few problems with normalmaps which is how I came across your post.
Nice work though.
Thank you, it's original normal map image from Crytek's sponza. And my pixel shader code is:

Code: Select all

 
vec3 normalMap() {
  vec3 Normal = normalize(normal);
  vec3 Tangent = normalize(tangent);
  Tangent = normalize(Tangent - dot(Tangent, Normal) * Normal);
  vec3 Bitangent = cross(Tangent, Normal);
  vec3 Bump = texture(texture1, texCoord).xyz;
  Bump = 2.0 * Bump - vec3(1.0, 1.0, 1.0);
  mat3 TBN = mat3(Tangent, Bitangent, Normal);
  Normal = TBN * Bump;
  Normal = normalize(Normal);
  return Normal;
}
 
Hope it will help you a little!
Post Reply