Alpha RENDERBEAST - 3D Engine

L

Lonewolff

Guest
Introducing 'RenderBeast'.

I have been working on a basic 3D framework since around the start of January and I figured it's time to post some progress. Every single line is built from the ground up.

To this point I have been focusing mainly on sky boxes and model loaders. But there is much background preparation in code for the next phases.

A couple of screen shots illustrating current progress.


4K video skydome



Sky box and an F16 Model



Sky box and a couple of planet models



The initial workings of shadow mapping. Being cheeky here with the model. :p



Improved lighting shaders.



The beginnings of a basic scene.


Project details
  • Start date - 4th January 2019
  • Lines of code - 5810 (as of 22 July 2019)
Present features
  • Custom camera system (the Y up direction is correct again :p)
  • Full texture page control
  • Sky box system
  • Sky dome system
  • Video playback
  • Model loader
  • Advanced surfaces (per surface anti-aliasing, access to 32 depth buffer)
  • Compiled Shader Objects (HLSL11)
  • Directional light
  • Custom matrix system (basic)
  • High performance
  • Basic shadow system
  • Texture page sizes up to 16384 x 16384 (hardware permitting)
  • Node based scene graph
  • Error reporting system (In progress 12 July 2019 - partially complete)
  • Custom matrix system
To do list
  • Improvements on the shadow system
  • Expand on lighting system
  • Frame based animation
  • Skeletal based animation
  • Custom model format
  • Lot's more - Will add as I think of new items
Wish list
  • Requests welcome.
 
Last edited:
M

Misty

Guest
Looks nice. If only you had say, someone who made a flight sim before, to help make the game code.
 
L

Lonewolff

Guest
Thanks Misty.

At this point, my approach is fairly generic. Just testing different camera techniques (free, first person, follow, dungeon crawler, and so on). I'll probably jump on the FPS bandwagon later on.
 
L

Lonewolff

Guest
Haven't posted much in the way of updates but have been hard at it nonetheless.

Fixed a couple of niggly bugs in point lighting that weren't initially obvious. So they are working exactly how I want now.

Also started this morning on the 'advanced surfaces'.



The background is drawn directly to the application surface but the planet is rendered to an 'advanced' surface, then rendered back to the application surface. Thus bypassing GM's surface system entirely.

What makes these surfaces so 'advanced'? Well that's coming up. :D


[edit]
Part one was much faster to implement than I initially expected. Around two minutes. :cool:



Per surface anti-aliasing. 1x though to Nx, dependent on the GPU's maximum level.

[edit2]

This one was a bit more challenging. But I present to you the hardware accelerated depth buffer.

Standard render pass.




And the corresponding 32 bit depth buffer.

 
Last edited by a moderator:
J

Jordanb

Guest
Awesome looks great! Is this a personal project or do you plan to make parts of it available? If you are, I'd be curious to know how accessible the engine aims to be. I'm fascinated by 3D in GameMaker but haven't done much in GMS2 yet.
 
L

Lonewolff

Guest
Thanks @Jordanb :)

Initially it is a personal project, but I would certainly like to make it available once it gets more robust.

The aim is to make it very accessible and user friendly, which I am achieving so far. I have been working on a particularly difficult section of the engine lately, so I don't have anything very visual to show for the effort yet.

Hoping to make a breakthrough on that front this weekend. The day job has been very busy as of late also and that doesn't help the cause. :D
 
L

Lonewolff

Guest
Got shadows working? Nice work!
Yep :D

Still heaps to do in that area, like soft shadows and so on. But we can now at least make a scene that has a bit of depth to it.

Lots to do in all departments in fact. Only scratching the surface of my 'to do' list.
 

IGameArt

Member
I kinda figured that's the route that you went, which is sad. I could use some 32bit surfaces but also have to target other platforms than windows.
 
L

Lonewolff

Guest
I kinda figured that's the route that you went, which is sad. I could use some 32bit surfaces but also have to target other platforms than windows.
There's no real reason why I couldn't get this working on most (if not all) exporters, but that will be a long way down the road unfortunately.
 
L

Lonewolff

Guest
Not much to report. Just a bit of refactoring behind the scenes to make 3619 lines of code a bit more user friendly on the GMS side of things.

Still more that I can streamline, but this code snippet replicates what you see in the bottom gif image.





Lots to do though moving forwards. Any progress is good progress, I say. :cool:
 
L

Lonewolff

Guest
Well done, dude. Very impressive.
Got any plans to use this in a specific project?
Thanks man!

Nothing specific as of yet. Just pushing myself to learn new techniques that I have thus far avoided like the plague. :D

That and trying to bring those techniques to the main stream with the focus on ease of use, while not making too many assumptions on behalf of the end user. Going too deep with assumptions will 'box' people in, so to speak.

I'm programming this in the manner that it may be released for others to use some day, which I hope will happen. In doing that, I'm trying to make it as robust and user friendly as possible.


[edit 24 hrs later, so as not to double post :)]

Added 4x shadow anti-aliasing while also gaining ~100 FPS on a GTX-1050.




[edit 36 hrs later]

Massive lighting improvements. See initial post.
 
Last edited by a moderator:
L

Lonewolff

Guest
Further lighting improvements, amongst other finer details behind the scenes.



Swapped out the Unreal Engine robot now that the project is starting to ramp up, so I don't get nasty letters in the mail. :D
 
Last edited by a moderator:
L

Lonewolff

Guest
Oh it's cool, I'm on 2.x. I ask because you're using the 1.4 logo in your promotional images.
Ha! Didn't even realise. I got the branding from https://www.yoyogames.com/brand.

But right you are! I'll have to fix that. :D


[edit]
Ooh hang on a sec. Looking in the colour schemes section, I'd say that the branding is universal to both. Correct me if I'm wrong.
 

IGameArt

Member
GMS2 has a different symbol and a strictly black and white logo. It's really not important, but it could imply compatibility with something that's not there yet :p
 
L

Lonewolff

Guest
LOL, yes of course. Forgot about the logo thing. :rolleyes:

I'll get on that. ;)


Updates will start to be less frequent from here on in, as I get in to the guts of the project. Much will be fine tuning and tweaking from here. But be assured that 'RenderBeast' is now a thing.

At this point in time, I'll post updates on a roughly weekly basis.

In the meantime, if there are any questions or suggestions, shoot them this way. :)
 
Last edited by a moderator:

Joe Ellis

Member
It looks really good what you've done so far, it'll be really good if you make a whole game engine & editor(s), and by the looks of it, it'll be similar to unreal & cry engine, which is good cus it doesn't conflict with mine :DPD Are you making this just for yourself or are you aiming to sell it?
 
L

Lonewolff

Guest
Thanks guys! Your kind comments go a long way. :)

@Joe Ellis Thanks man, don't worry there's plenty of room for all of us in the world of 3D. :D


Are you making this just for yourself or are you aiming to sell it?
Not sure yet. I'd like to think that others could benefit from it one day, but that's a long way off and lots of polish down the road. It would be cool seeing others use it though and having it out there would make me continuously strive to improve it.
 
L

Lonewolff

Guest
but the rendering is based on the extensions right?
Correct. It uses the extension system.

Sorry if I misinterpreted the question. I thought you were asking if it was based on someone else's extension from the marketplace.
 
S

Sam (Deleted User)

Guest
What platforms will this support? (I assume Windows-only?) If it's based on OpenGL, it could be ported to Linux, or if Vulkan, Mac would also be an option.
 
L

Lonewolff

Guest
What platforms will this support? (I assume Windows-only?) If it's based on OpenGL, it could be ported to Linux, or if Vulkan, Mac would also be an option.
Windows initially. But as I mentioned to @IGameArt, there's no reason it can't be ported to most (if not all) platforms. The concepts used are easily transferable to OpenGL.
 
L

Lonewolff

Guest
Added a new camera type called 'Projector', which gives the ability to paint textures wherever you want.

With this you can easily paint decals or do other cool effects.



This extension now works in GMS1.4, 2.x, RPG Maker VX Ace, and standalone C++.
 
Last edited by a moderator:
L

Lonewolff

Guest
Trying a concept for how to create a scene editor.

Did a quick prototype in GMS1.4 as I find it faster to mess about with ideas in.



Successful test! :D
 
Top