#Albuquerque "Engine" (Updates every Sunday)
2150 messages · Page 3 of 3 (latest)
Arrow keys to move. W/S controls the speed. F restarts the scene. 1/2 Pauses and unpauses
you fetch tinygltf and cgltf is there too, or is that from my template?
but dont use it? yea
I wanted to clean up my fetchcontent and stuff as part of the refactor. I don't use googletest yet but it gets fetched 😔
cgltf is from the template, tinygltf is because a fwog example used it and I borrowed the scene loader from it
ah right, fwog uses tinygltf
i frogor
jaker wanted to switch to fastgltf eventually, and so want i in the template, mayhaps one day 🙂
somewhere in optional
// XXX Does not belong here.
[[__noreturn__]] inline void
__throw_bad_optional_access()
{ _GLIBCXX_THROW_OR_ABORT(bad_optional_access()); }
constexpr _Tp&
value()&
{
if (this->_M_is_engaged())
return this->_M_get();
__throw_bad_optional_access();
}
propModel *= aircraft_body.rotMatrix;
model *= aircraft_body.rotMatrix;
ObjectUniforms a(model, glm::vec4(0.0f, 1.0f, 0.0f, 0.0f));
objectBufferaircraft.value().SubData(a, 0); // crash here
So the way I fixed this showing up originally was there was missing assets (and I didn't throw an exception for it). This is caused by the buffer not being created as the Init was exited early (i should have thrown an exception)
why is that even an optional
and why is there no error handling for it if it fails
optionals have a default value i would assume whch would not work with .subData() once called either
its not like you would return a default bufferaircrat buffer of sorts 😛
The constructor sets it as TypedBuffer. It either has to be set in an initialization list or invoke constructor later thru std::optional
When I refactor I'd create a factory for these tho
ah
this kinda make no sense to me, but thats probabyl because i dont know c++
.value() constructs it when it can i suppose, but could fail if it cant
Example in Fwog where it uses initalization list: https://github.com/JuanDiegoMontoya/Fwog/blob/main/example/02_deferred.cpp#L313
the typedbuffer thing does make sense, im questioning the .value() ism
std::optional is a red herring kinda. The reason it breaks is because of this: https://github.com/ClementineAccount/Albuquerque/blob/main/src/PlaneGame/ProjectApplication.cpp#L975
I should be terminating the program or handling this error as exception or have some fallback logic
but I didn't because prototyping (I will later on)
So when that failed to load, it outright exits Load() but there is nothing to go 'load failed, end the program and send the correct error message'
So you just get this nonsense becasue the buffer isn't created as Load() didn't complete. At least that's the version of this error I fixed in the commits I linked
Anyways, try and pull again and make sure you're on the head of master (unless u have already). Maybe I'll make a Linux runner in the near future (although it can't catch runtime errors after the window is created unless I can find some 'GLFW headless' or something)
dw. tomorrow I'll make a Release that has a Linux executable that u can try out in a sandbox.
::RawImageData*, std::vector<Utility::(anonymous namespace)::RawImageData, std::allocator<Utility::(anonymous namespace)::RawImageData> > >, __gnu_cxx::__normal_iterator<Utility::(anonymous namespace)::RawImageData*, std::vector<Utility::(anonymous namespace)::RawImageData, std::allocator<Utility::(anonymous namespace)::RawImageData> > >)#1}>, tbb::detail::d1::auto_partitioner const>&, tbb::detail::d1::blocked_range<__gnu_cxx::__normal_iterator<Utility::(anonymous namespace)::RawImageData*, std::vector<Utility::(anonymous namespace)::RawImageData, std::allocator<Utility::(anonymous namespace)::RawImageData> > > > const&, unsigned char&, tbb::detail::d1::small_object_allocator&>(tbb::detail::d1::execution_data&, tbb::detail::d1::start_for<tbb::detail::d1::blocked_range<__gnu_cxx::__normal_iterator<Utility::(anonymous namespace)::RawImageData*, std::vector<Utility::(anonymous namespace)::RawImageData, std::allocator<Utility::(anonymous namespace)::RawImageData> > > >, __pstl::__tbb_backend::__parallel_for_body<__gnu_cxx::__normal_iterator<Utility::(anonymous namespace)::RawImageData*, std::vector<Utility::(anonymous namespace)::RawImageData, std::allocator<Utility::(anonymous namespace)::RawImageData> > >, __pstl::__internal::__parallel_or<__pstl::execution::v1::parallel_policy const&, __gnu_cxx::__normal_iterator<Utility::(anonymous namespace)::RawImageData*, std::vector<Utility::(anonymous namespace)::RawImageData, std::allocator<Utility::(anonymous namespace)::RawImageData> > >, __pstl::__internal::__pattern_any_of<__pstl::execution::v1::parallel_policy const&, __gnu_cxx::__normal_iterator<Utility::(anonymous namespace)::RawImageData*, std::vector<Utility::(anonymous namespace)::RawImageData, std::allocator<Utility::(anonymous namespace)::RawImageData> > >, std::_Not_fn<Utility::(anonymous namespace)::LoadImageDataParallel(std::vector<Utility::(anonymous namespace)::RawImageData, std::allocator<Utility::(anonymous namespace)::RawImageData> >&, std::vector<tinygltf::Image, std::allocator<tinygltf::Image> >&, tinygltf::LoadImageDataOption)::{lambda(Utility::(anonymous namespace)::RawImageData&)#1}>, std::integral_constant<bool, false> >(__pstl::execution::v1::parallel_policy const&, __gnu_cxx::__normal_iterator<Utility::(anonymous namespace)::RawImageData*, std::vector<Utility::(anonymous namespace)::RawImageData, std::allocator<Utility::(anonymous namespace)::RawImageData> > >, __gnu_cxx::__normal_iterator<Utility::(anonymous namespace)::RawImageData*, std::vector<Utility::(anonymous namespace)::RawImageData, std::allocator<Utility::(anonymous namespace)::RawImageData> > >, std::_Not_fn<Utility::(anonymous namespace)::LoadImageDataParallel(std::vector<Utility::(anonymous namespace)::RawImageData, std::allo
``` getting a kilometer long printout with that stuf when building here
just a warning
ah it's tbb schtuff
yeah
had to add tbb as a dep againto be linkered
but now it works
the app steals my cursor and holds it hostage
and i do be seeing some weird artifacts at the ottom
mayhaps i can unsteal the mouse and grab a screnshot
haha thanks caio
Press 1 (or 2?) to get it back
Maybe related to https://github.com/ClementineAccount/Albuquerque/commit/ed468bf2eda3365b6b0f496904fb24283dd2b8b1 if its related to
I can't recreate it at the moment. (My VM framerate is way too slow. I can't get it to show on Windows (but I do think its unrelated as this is 4.5 version))
and you dont use MDI from what i saw, unless im bleind
I use antistropic filtering: https://github.com/ClementineAccount/Albuquerque/blob/main/src/PlaneGame/ProjectApplication.cpp#L1762
But no it seems unrelated. Not sure where to look though.
Best I can suggest is seeing if https://github.com/ClementineAccount/Fwog-CMake-Glfw-OpenGL-Template has it too.
you were probably actually getting a 4.6 context even though you requested (at least) 4.5
Yea! In terms of the cool game design and fun gameplay stuff I am gonna migrate it to a unity project though. Alberquerque will instead just become an NIH game engine for fun where small prototypes like the plane game are used to slowly feed it.
Yea. Only my Linux VM would get a 4.6 I imagine.
oh ok. I'll just remember about it and maybe I can see if you'd still find it after the rewrite/refactor stuff in a month or two.
Maybe I'll just be dual booting Linux by that time lol
I am feeling kinda good because I remembered when I first started I threw tamper tantrums over Cmake stuff @split blade... and now I pushed through to get my CMake file to be cross platform. Glad i didn't give up
the flying feels a bit wonky, but i wouldnt know how to make it more proper
perhaps add deltas rather than absolute values
Yea. A lot of it is also the camera too I think. The camera being so 'static' makes things feel pretty stiff
yea. I'd love to get more feedback on it and tweak it more in the Unity vesion of it.
@split blade :p
did i write that?
yea
Just tryin to imply that your Cmake Template might really be the birth of an actual engine over time
I do thank you for real. I started out with a fear of CMake and now I gotten a bit better at it. Might even replace as many FetchContents as i can with submodules instead lol
thanks man 
yea. I can experiment and see what works and what doesn't for FCs vs submods. eliasdaler has a post about it https://edw.is/using-cmake/#fetchcontent
now im going back to work. Have a good one @split blade :)
you too
@marsh cliff hope you don't mind the ping but its a followup to this: https://edw.is/using-cmake/#git-submodules
I have absolutely no idea how to use git submodules to only clone specific tags (I only figured out how to get it to clone the latest commit of specific branches)
<#questions message>
An option I can figure out would end up being the same thing as this but for every repo instead of some repos, because usually tags and releases are specific commits of a master branch:
(SOLVED)
The solution is to do “git checkout” inside the submodule dir, yeah 😅
Its not super obvious if u only look at the .gitmodule file which doesnt contain a tag.
Yeah, I really don't like that it doesn't allow you to specify commit or at least write some comments inside :/
Yea...
Unrelated:
I just realized as I haven't touched this project in awhile that I can actually put my software rasterizer prototype (Milwaukee https://github.com/ClementineAccount/Milwaukee) inside Alberquerque's codebase. Meaning I can have a software rasterizer generate textures for use inside my regular OpenGL/Fwog rendering. Decided to do this because I realized both projects may potentially share code and it can be a good refactoring exercise way into the future to decouple rendering in such a way I can use the same lighting class for both a software rasterizer and regular 3D GPU game
Albrequeruqe (Formally Plane Game (Fwog Flying Game))
yea they are in the same codebase now. I renamed the channel so its like Jaker's 'fwog & co.' where I can write about my other projects in the same codebase here
I'd probably make a separate thread for Plane Game Unity later
Albuquerque (Formally Plane Game (Fwog Flying Game))
yes i realize how messed up it is that this codebase impllies that Milwaukee inherits from Albuquerque... codenames after cities be like...
I had nothing to do with this
I decoupled my camera from the renderer and some other stuff. Moved it up to Albuquerque library so now multiple projects can use the same code over time.
maybe its time to make Shoot Game
mayhaps id make a new thread once i read the first sprint milestone
then id keep this one for other stuff like software rasterization or skinned meshes CPU side or whatev
Got aroudn to tryin to take inspo from @marsh cliff https://edw.is/
I gotta fix the capitalization of the actual titles to be more consistent
underline and color stuff... looks better I think?
not too into the super fancy react front-end bootstrapp aesthetic atm so im a fan of Elias's site as a reference
I prob should take inspiration from @glad kelp and put the date on the list itself tho since I'd end up having a lot
Thinking of even switching to Chirpy just like NotAPenguin and archiving the more minimalist style because Chirpy is a bit more 'modern looking' and comes with categories and sidebars for free which can add a more professional look
big appeal is this Contents
yeah making the table of contents in raw html is the worst thing about it tbh
I like it but I realize my taste for mid 2000s look isn't very mainstream so for a portfolio thing as a freshgrad/junior I should follow the more modern Chirpy look as that as more universal appeal
once I go senior though I'd vomit my brutalist html site layout no shame needed
our learnd3d11 also has sidebars
but when looking at it, material is starting to annoy me XD
I decided to not put a date on the front page because I update the articles from time to time and I want to sort them arbitrarily, not by the date
Plus, ideally I want my articles to be "timeless" so that it doesn't matter if it was written one year ago or 10 years ago. 🙂
I was mainly inspired by this http://androidarts.com/
Art by Niklas Jansson.
That's a good considration. Having no date on the article allows a timeless article that can have edits added into it while having the date allows me to make followup posts. Depends on what approach I rather do.
I have been playing around with the same layout Penguin uses and I am a fan of it.
I like that andriodarts site
Maybe id just have a secret personal brutalist html site and use this modern style for portfolio stuff
this is kinda fun (and yea I know nobody will really read it and it doesn't really need that much effort but its fun to write so eh)
Once I move over my posts I can replace the old site w/ this layout which I like better.
Im going to be less active online... will atill uodate the site
I ported over tons of Plane Game to Unity then my laptop got kill
Not gonna be active on this server but both albuquerque and plame game live on for any xurious witnesses
Every sunday maybe I'd post a weekly update here but not all of them may involve Alberquerque or Plane Game. But I have some sprint board for PLane Game and like trying out a 'work on Alberquerque every Monday, Wednesday and Friday' thing so we'll see how it goes
I want to thank you all for the help and support along the way though. I still have a lot of learning to do but I want to focus on my foundations in a more quiet and less distracted way through textbooks and self-study rather than on social media. I got a ton of new books on a giveaway at my university's library (you got red book and superbible ofc and a lot of the compsci classics including Dragon Book)
This was one of the nicher oddballs. its older and win32 api but its not a bad place to get confidence for making my own NIH engines. Its a bit of a beginner's book but I never really done a full engine from scratch 100% myself (I worked on one in a team before but I just lived in the renderer side and smetimes come out to the editor). Plus it has 90s energy so thats cool
i tend to write down some of my questions in a notebook and use like Sunday to ask them on Discord or whatever, but I try to solve stuff myself otherwise and its helpful
Albuquerque "Engine" (Updates every Sunday)
I say Sunday but its actually Saturday for the USA timezone
are those books from a library?
My uni library was giving away a ton yea @glad kelp
Das really cool
https://clementineaccount.github.io/posts/weekly-1-canvas/#voxels
Not much yet but I did say updates every Sunday. I already have a branch for the instancing version so I can see it being done by the next few days.