Skip to content

Running-With-Bricks/Brick-Stacker-OpenGL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brick-Stacker

Project is discontinued

Feel free to look at the code, fork it, modify and use it for whatever reasons you want. Crediting me would be appreciated.
Also at the bottom there is Brick-Stacker's History if you care.

About

Blazingly Fast Light-Weight workshop for Brick-Hill written in C++, using OpenGL.

How to build

Brick-Stacker uses Premake 5.0 to allow easy project generation across all platforms.
For more info on building with Premake use this link

Windows

You can go to ./scripts and run build_windows.bat, it will generate solution files for Visual Studio 2022.
You can edit the bat file to generate code for different Visual Studio version following this tutorial.

MacOS

Fuck Mac.

Linux

BUILDING LINUX WILL FAIL(please help me)
Right now, there is no automatic solution, so you will have to build it youself.
Download Premake and then, using downloaded binary, build it.
You are using Linux, so should be able to figure it out yourself.

Histroy ig

so
On September 11 2023, in MixaHosting Dev server, 1ris was building MixaHosting map, which was never released and I think also never was finished, but 1ris has posted this image.
the start
And I made this remark about it.
this is due to one of the globes that appear in the game FEZ
While I tried to build it, I gave up after placing 4 bricks, because BrickBuilder was not enjoyable for me to use.
During September 17-18 2022, the weekends, I decided to create a brk loader in Godot. I never used Godot before, so this was to try it out. I hated and still hate Godot.
And on next day I had this conversation
a
b
After that I tried making the workshop using Monogame C# framework.
During this stage of development, the name was chosen.
the name
The name was later changed to "Brick-Stacker" tho.
It ended with adding ImGui, about after a month, due to ImGui bindings being really wonky and breaking 3d rendering.
This image is good summary of the Monogame Brick-Stacker's end
end of monogame
And so the monogame was dropped.
On October 1st 2022, I, guess what, tried to using C++ and OpenGL again, got the triangle drawing, but that idea was imediatly dropped for a one day idea to make, I kid you not, Vulkan Raytracer. This idea was dropped the very next day. And now, normal Vulkan renderer Brick-Stacker. Remember that this guy had at the time no c++ and graphics programming experience
For first week nothing happened, but then I got a triangle to draw and then I tried embedding ImGui...
This gif was accompanied with comment "it works!"
it works!
I never ended up fully fixing the imgui implementation, however the flickering was removed.
And almost now work hase been done until end of that October
Here's more indev foutage from dating 28th oct and couple of days later
Editable Parameters
This vid spawned some funny justs about 4d, but it's showcase of 3d
2030
a little bit more fun - Voron
FEZ
If you want to toy around with this 3d test for some reason, go ahead. This is the first ever exe I shared with the people you see in screenshots. Note that you might have issues with running this one due to probably compilation issues. MixaMega wasn't able to run it at all, while Yek was able to run it, but resizing the windows was broken. This issue is persistant in all Vulkan versions and I still don't know the root cause.
Video of camera working.
camera done. I fogot to show case the fov tho - Voron
piss n shit
holy moly - MixaMega; yo im shitting my pants - Yek
As seen in the video, the rotations of bricks are fucked up. Well big thanks to Ty/TyThePotato/TyJupiter (idk which is correct) for giving me explanation on how to properly implement scaling and rotation (and I gotta say, whoever came up with this was not thinking writing the code).
Next progress update, fixed rotations were done on Nov 7th. video
Also I made this plan, it was updated at some point.
plan
But OpenGL makes a return for third time!
the idea
and a stupid idea by yek
And then I didn't
10th of Nov - update of image when resizing
Resizing
11th of November - I decided to discontinue Brick-Stacker-Vulkan and post this video to Brick Hill's workshop creations in the discord server: link to original post, link to brick hill discord (make sure you give yourself role to view archived channels)
Video standalone

Here's small showcase of small project which is kinda a workshop, but with many features missing(like transparency) and unoptimised. Made with no game engine in C++ and Vulkan Map brick count - 1130 Average fps - 60(it is not fps locked, just unoptimised) GPU usage - 15%(AMD Radeon(TM) Vega 8 Graphics)

Calling this "small project" was a big understatement Considering it took me 1 month, including procrustination, but not monogame or godot.

and so I have layed my eyes on OpenGL for 4th time, now, for the last time.
Nov 12th
the start of an end
Now I won't be more into details as you can look at, ah, very badly named commit history, but at least you can see the changes.

But here's more dev screenshots, gifs, vids
nov26
3d
Imgui dec3
imgui again
Roots of modern camera dec10, but I claimed that I've done it long ago.
video
Some really interesting looking "skybox" dec10
skybox
also dec22 - jan8 was winter building contest, so little to no progress was done, so here's amazing concept art for one of the ideas in our winning game "Snowmen Showdown"
dec30
bossfight
denoiser is creepy - MixaMega; jan7
denoiser
Work on Stacker continued on jan 19th.
On jan25 I posted this list of what has to be done. To be clear, I never returned to it.
bad plan
explanation
feb6 - Textures added!
textures
Also this is second rar that I shared with, except here I shared it because there was a bug with shaders, the fix is explained below, you can change the .frag shader to remove it.
Brick-Stacker-Textured
explanation
On feb12, the name was changed.
better name
Also this date was the first time Brick-Stacker was mentioned publically.
publicity
March 20th was date when I added camera also I think some framerate improvements(prob just building in Release mode lol).
rar
May 3rd - I added a logo to the app, prob copyrighted
logo
May 22 - Open/Saving brks, also some time before I started using ECS, but you don't have to care. rar
31st May - Camera Switching Showcase
video
June 2nd - Yek Review, very integral to the development, really really
the review
June 6 - Transparency ordering
rar
June 21 - Selecting bricks
rar

And this is where the development process gets a stroke, I intended to work on multiselection first, but it was really hard, had no clue how to approach it and etc. But then I got nominated for Best Scripter in Sir Stephen's Brick Hill Awards 2023, and I wanted to get something for my campaign, so I've chosen to promote Brick-Stacker, but with a twist - noone knew what Brick-Stacker is. Yes, I, for fun, decided to run a campaign where noone knew what I was speaking about.

"i see. i thought brick stacker was a tetris clone or something eecks dee" Tylorfoot

So I started creating "Minimal Viable Product version of Brick-Stacker", this meant creating a usable product, but clearly with room for improvement. And since selecting multiple bricks isn't shiny enough, I locked away multiselection in favour for gizmos. Well I didn't have enough time to actually finish the mvp version and the awards were cancelled. But for awards I did create this video.
video

And this is it. The end. The latest commit was done to push latest code, not a working code.
Thanks to everyone involved, who supported, and people who's libraries I used.

Credits

People Contribution
Voron literally everything
Dargy GitHub actions
Ty Helping fixing the rotations

premake5.0 - Build configuration
glad - OpenGL bindings
glfw - Windowing
glm - Math
ImGui - GUI
spdlog - Logging library
stb_image - Image loading
EnTT - Entity Component System
Jolt Physics - Physics, used for brick selection

Yek is a cunt

About

BrickBuilder, but better and more lightweight and awesomer and

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages