Pushing Unity To The Limit - Hyperbolica Devlog #6
Choosing to use Unity instead of building a custom engine saves a lot of development time, but it comes at the cost of excessive hacking to bend the engine to my will. These are just a few examples of Unity hacks I needed to do to get Hyperbolica working.
This is part 6 of the Hyperbolica Devlog series. Full playlist here:
• Hyperbolica
Hyperbolica on steam: store.steampowered.com/app/12...
Join my discord: / discord
Merch: crowdmade.com/collections/cod...
Support me on Patreon or Ko-fi:
/ codeparade
ko-fi.com/codeparade
Music (CC BY 3.0):
My Luck - Broke For Free
brokeforfree.bandcamp.com/alb...
Пікірлер: 652
"Unity does this useful thing, but since this is hyperbolic I had to make it again from scratch."
@quentinquaadgras
2 жыл бұрын
Why even use Unity at this point? xD
@nappeyguizar9832
2 жыл бұрын
@@quentinquaadgras description
@pvic6959
2 жыл бұрын
"Unity wasnt enough so I made Hyperbolity, a new game engine!! "
@moartems5076
2 жыл бұрын
Same with black holes, light is not straight near them.
@Alexandar358
2 жыл бұрын
@@quentinquaadgras Why not just make your own engine. Yeah
God I hope this game is a financial success. I really want other devs to be able to look at this and know that doing weird stuff is viable. Every time an innovative game succeeds, the industry gets just a little bit better.
@bigprojects2560
2 жыл бұрын
I know I'm buying the game lol
@clonkex
2 жыл бұрын
Like anti-chamber, that's a great example IMO
Sorry honey, I can't go to our wedding, new hyperbolica dev log just dropped
@baconwizard
2 жыл бұрын
@@hadrian922 wait a minute…
“I rewrote the physics system based on what I made for Marble Marcher.” The Hyperbolica extended universe is coming together.
@SSM24_
2 жыл бұрын
if we don't see any fractal landscapes in hyperbolica we riot (/s)
@thatoneguy9582
2 жыл бұрын
@@SSM24_ that sounds terrifying
@pancakes9648
2 жыл бұрын
The hyperbolica lore
@DJSlimeball
2 жыл бұрын
Reusing things from previous games is pretty common I think.
@igorjosue8957
2 жыл бұрын
not the Sierpiński 5 sided square carpet... NOT THE 90 ANGLED 5 SIDED MENGER SPONG
Can't wait to see the Let's Players bluescreen their brains while playing this.
@cmdr_ameba
2 жыл бұрын
Can't wait to see Any% speedruns
@watchingvids1078
2 жыл бұрын
Can't wait for players to play a game and accidentally solve the puzzle while not knowing what they did.
@unluckypanda5448
2 жыл бұрын
It would bluescreen my computer :(
@gormster
2 жыл бұрын
Oh my god I really hope carlsagan42 does a play through. It will be simultaneously hilarious and incredibly frustrating.
@tritoner1221
2 жыл бұрын
@@cmdr_ameba can't wait for tos any%
0:25 ooh, that reflection looks pretty good! I wonder if a mirror in spherical geometry would need to clone the entire world?
@CodeParade
2 жыл бұрын
Yeah I think it would!
@Troloze
2 жыл бұрын
not if it is a mirror inside a closed space, like inside the house, as long as you can't see doors or windows through it. Right?
@yaeldillies
2 жыл бұрын
@@CodeParade Consider the spherical world embedded into 3D space. For puddles, what about inverting the world with respect to the surface (which is a sphere once the world is embedded into 3D space)? You shouldn't need to load the entire world to render, and that prevents more than two nested reflections (because the line of sight only crosses the surface sphere twice at most).
@fabimawn
2 жыл бұрын
Maybe you could set up a second camera facing away from the mirror as soon as you approach it
@supersonictumbleweed
2 жыл бұрын
hey "cary knows hyperbolics"
I love how he can say things like "hyper core" and its not some silly sci-fi mumbo jumbo or marketing speak but an actual accurate description of what's going on.
@supersonictumbleweed
2 жыл бұрын
I'm pretty hyped for the hyperbolic geometry but that's a bit of a hyperbole on my part
I am not a gamer by any means, but this game is something I really look forward to. These dev-logs have reinforced my fascination in the game, as I really really like mathematics and theory that I in actuality don’t at all understand.
@tritoner1221
2 жыл бұрын
and i am a gamer, and, just like u r, i am rlly excited for this masterpiece as well!
@samuelstuff4557
2 жыл бұрын
I agree, I’m not a huge gamer but this is almost like more of an experience than just a game
@silentislandtempest5825
2 жыл бұрын
I'm super excited for it as well and am really glad that there's another development for it.
@bakedandsteaked
2 жыл бұрын
non gamers 😤
@clearcontentment3695
2 жыл бұрын
Trippy as balls
As someone interested in mathematics, what I found really interesting was the dual coordinates. From how you've described it, it seems like what you're doing is taking advantage of the manifold structure of hyperbolic space. A manifold is a type of space that, among other very jargon-y conditions, is what's called "locally Euclidean", meaning that for each point, you can find a neighborhood that is homeomorphic to Euclidean space (meaning basically that if you zoom in far enough it "looks like" Euclidean space). In these neighborhoods, we use what are called local coordinates to actually do stuff like calculus on the manifolds, and the local coordinates are how the local Euclidean condition is often used. It sounds like Unity is doing the exact same thing, especially since it's only valid for a small area around each point before you get distortions. This area of math is called differential geometry and studying hyperbolic space (i.e. negatively curved space) is actually what lead me to discover Hyperbolica and your channel!
@Datalore2371
2 жыл бұрын
Finally those differential geometry classes I took in college will be useful for something!
@spagotcha2061
2 жыл бұрын
Uhuh
@_general_error
2 жыл бұрын
I'm more interested how are the hyperbolic coordinates represented in coffee in terms of the actual structure. Show is the code!
@gurbanguliberdimuhamedov4228
2 жыл бұрын
He is speaking the language of god
@mymoomin0952
2 жыл бұрын
@@gurbanguliberdimuhamedov4228 hyperbolic space is weird if you look far away, but if you only look at things close to you it looks normal, so for small areas you can just __pretend__ it's normal and everything's basically fine. And in maths we call things like that manifolds
2:34 cameras also have a cullingBounds property that can replace the matrix used for culling (by default the projection matrix) with a matrix of your own. The only time I’ve seen this fail is with tilemap renderers, and that’s a bug with tilemaps themselves, not the cameras. Just replace the culling bounds with a giant one
@CodeParade
2 жыл бұрын
Thanks for the tip! Never heard of that so I looked into it and I found "camera.cullingMatrix" which I think is what you meant. I used a Matrix4.Ortho with big bounds and it actually worked! So that simplified the hack a lot and generalizes to more types of renderers. Thanks a bunch!
@johnleorid
2 жыл бұрын
@@CodeParade or you turn the checkbox "occlusion Culling" off, at the camera component. We did this once our own culling solution was implemented. Nothing will be culled automatically.
@TrentSterling
2 жыл бұрын
@@johnleorid occlusion culling != frustum culling
@supersonictumbleweed
2 жыл бұрын
@@TrentSterling indeed, occlusion culling prevents rendering of geometry that's behind other geometry, while frustum calling is explained in video
@johnleorid
2 жыл бұрын
@@TrentSterling True. For some reason I thought this checkbox toggles both settings, but I think I've been wrong.
as a game dev who's feed is filled with game dev youtubers, i have no idea how i have not heard of you yet! this is some crazy awesome shit man! and you are talking about it so casually as if its easy. when you brought up the other game with the sphere my mind was blown, that looked fucking insane, good job!
@unitysparticlesystem
2 жыл бұрын
That sphere game is called "marble marcher" And he actually made a video on it , it's extremely good , check it out !! Link kzread.info/dash/bejne/a4lkuridprTdcaw.html And an update video he did on it kzread.info/dash/bejne/i3t50simgcW8cto.html
@iestynne
2 жыл бұрын
Yeah he explains exactly how the code works, which is remarkably elegant
@Winsomnia
2 жыл бұрын
@@unitysparticlesystem yeah i actually saw it 5 minutes after commenting lol. then got into 3D fractals and made some pretty cool shit
I love watching this game unfold, can't wait to play it when it comes out!
@marchrugree
2 жыл бұрын
pun intended?
@Magnogen
2 жыл бұрын
@@marchrugree mayhaps...
@MagmaMusen
2 жыл бұрын
Hi Magnogen :D
@Magnogen
2 жыл бұрын
@@MagmaMusen Oh hey Magma! What a surprise to see you here!
@James4President
2 жыл бұрын
@@MagmaMusen Massive surprise seeing you here lol. Good to know game dev is one of your interests :)
Wow, you have overcome so many obstacles! Also mad respect for figuring out all of this. Most developers never get to the boundaries of their engine like you did.
@oblivion_2852
2 жыл бұрын
Oh boy yes. Forcing the engine to render all objects and the creating your own object culling system is wayy outside the bounds of most devs
Would love to play the game in December, best of luck!
Hypercore sounds like a genre of music that I need to find
yay new devlog
@christopherbroms2508
2 жыл бұрын
lets go
You should look into filing a few patents for your game before Unity does, lol
@ZedAmadeus
2 жыл бұрын
Why would Unity patent something like this? Why would anyone patent non-euclidian geometry? It probably would never get passed, but if it did, it would hold the world back from so many incredible creations. This guy is not the first to mess around with this stuff, but certainly the first I've seen to do it on a scale such as this. But seriously, patents suck. They hold the industry back.
@JrIcify
2 жыл бұрын
@@ZedAmadeus A week ago Unity patented "Methods and apparatuses to improve the performance of a video game engine using an Entity Component System." It looks like they're about to become patent trolls so that's why OP is saying that.
@ZedAmadeus
2 жыл бұрын
@@JrIcify Oh! Haha... sorry, that was really dumb. I'll keep it up so if people who are confused like I was see it and see your reply it'll make sense... but yeah that's embarassing. Thank you for correcting me :D
@Logan-dk8of
2 жыл бұрын
@@ZedAmadeus Doesn't have to patent the entire concept of non-euclidean geometry in coding, doubt that would ever pass, but he could patent some of the methods he talked about in the video that he had to use to get it working. also if he patents it, he could just allow anyone to use the patented code at their pleasure, nothing says he has to keep exclusive to him or even charge people to use it, but if a larger company gets a patent then the latter would probably be the result
@alqaadi9858
2 жыл бұрын
@@Logan-dk8of unless he’s in eu countries i thinks eu laws are different and the first to discover it gets the right to patent it. Though i could be wrong.
I swear to god that projects like these are pushing the industry forward and not that hyper realistic games with gameplay from 2008. This is what i visualize when someone says "next gen". Brilliant!
For Frustum Culling, you can turn it off in the Inspector on the Camera.
@iamlogdog
2 жыл бұрын
Are you sure you're not mixing it up with Occlusion Culling? Occlusion Culling disables rendering of objects when they are not currently seen by the camera because they are occluded by other objects. Frustum Culling doesn't render anything that isn't inside the view frustum. Maybe I'm blind but I only see the option to turn off Occlusion Culling in the inspector.
I hope you realize your mechanics innovations will be as big of a deal as the first Portal when it came out. No pressure, but your robot better have the funniest personality and the best credits song ever!
@dazcarrr
2 жыл бұрын
The Euclidean cake is a lie
@mohammadazad8350
2 жыл бұрын
@@dazcarrr Still alive
@lightspeedbubble7359
2 жыл бұрын
The enrichment center reminds you that the weighted companion hyperbolic cube will never threaten to stab you and in fact, cannot cross dimensions, as it is not a hypercube. In the event that the companion hyperbolic cube does cross dimensions, the enrichment center urges you to touch it and include your experience in your next report, or send your report and equipment from where you are before they get dimensionally dislocated.
@dazcarrr
2 жыл бұрын
@@lightspeedbubble7359 hyperbolic aperture science would definitely say that
So glad to hear of this project and know your hard work is paying off! It looks amazing, can't wait to play. Love these insights into the process.
I just realized you're supporting VR. I was into it before, now, holy crap
1:39 Oh, I just realized this game is going to have the WEIRDEST glitches! Speedrunners are going to have entirely unfamiliar things to exploit.
This should hit top 10 in steam for the year. So much work and the game looks amazing.
cat on my knees, codeparade video, basically all i could've hoped for
Always super excited when I see one of these videos pop up in my feed
Teachers could definitely use this game to make Math/Geometry more interesing!
You, Sebastian Lague and Code Bullet are hard *carrying* the face of devlog-youtube. I hope you know that these vids are therapy for people like me - they're fun, funny and just so unlike any genre of videos on YT. 🔥 video today as well, love your content!
@NamePointer
2 жыл бұрын
I agree about Sebastian Lague, but I wouldn't say Code Bullet's style of videos fits this so well, maybe ThinMatrix instead?
This beats the record of "unknown words used in a 6-7 minutes video" for me
It's always a treat to get these videos, but don't feel like you're obligated to make them. Can't wait for the release!
Honestly this is the kind of game I'd probably use as an example of when you should just make your own custom engine. It's impressive that you got it working in Unity as well as you did.
Speedruns of this game are going to be insane
Instancing is where you set a single render state, and send 1 set of vertex data to the GPU, but you also send it a list of variations, a very typical example, is sending in a list transforms. Then for each item in that list, the vertex data is redrawn with the item from the list updated. From a performance perspective, this means you only sent the vertex data and change the render state and pipeline shaders once for however many draws were in the list, this also means command and draw queues only need to be synchronized twice (start and end) for the whole bundle (they typically sync more for things like fetch shaders), this also means in specialized cases that the gpu can parallelise, potentially drawing instance 23 and instance 24 at the same time if the gpu has appropriate capacity for parallel wave processing. It has a very specific use case but its also a very powerful tool
@egriff38
2 жыл бұрын
Thanks so much for explaining!
So VR is supported? Better get some anti nausea pills.
@de_soot
2 жыл бұрын
throwing up is a part of the experience.
@henryseg
2 жыл бұрын
In my experience, non euclidean vr is no more nausea inducing than euclidean vr. The differences are “higher order” than my reptilian hind brain appears to care about. Having said that, I’ve only done abstract scenes. It may be that with hyperbolica’s more realistic environments it becomes an issue.
My mind is still trying to comprehend that last bit where the fence is actually behind the windmill
i never thought i'd learn so much from a devlog
Im also developing a similar game myself. Instead of non euclidian geometry im using terrell rotations to calculate geometries when travelling close to the speed of light. This game is really awesome. Im gonna buy it as soon as it gets released
@brunnomenxa
2 жыл бұрын
Name?
@creativecipher
2 жыл бұрын
Holy shit that sounds awesome, what's it called?
@ThisIsTheBestAnime
2 жыл бұрын
Awesome! I thought about making something like that too because I wasn't very satisfied with the MIT A Slower Speed of Light demo game. I'm nowhere near actually doing it though, can you share some of your progress?
@jake-wu2nq
2 жыл бұрын
Post a prototype somewhere
@Private_Duck
2 жыл бұрын
The development is still at a very early stage. As of right now im still working on core systems. But im hoping to release a prototype demo within couple of months to showcase most of the mechanics that will be in the final release. Im also hoping to share the progress of the development in the future as well :)
I'll be starting university soon, IT focus, and this just always makes me hyped, seeing an actual devlog, watching how the work unfolds slowly but surely. I hope December releases won't bury this game, because it looks very cool!
@bassismdonesimply
2 жыл бұрын
Most of luck to you. I'd always been excited about game development, but nonetheless, It didn't stop me from getting expelled from IT program in my university. It had little to do with game dev, though, so I wasn't interested whatsoever. Still looking forward to take up some courses in the future to acquire at least some of the knowledge this amazing man has. Didn't give up my dream after all. So I hope for the best for the both of us, friend 🙌
@Goras147
2 жыл бұрын
@@bassismdonesimply ah, I wish you the best of luck and good times man!
@bassismdonesimply
2 жыл бұрын
@@Goras147 Thanks!
I literally didn't understand a SINGLE word you said in this video but this is amazing! I wish to one day look up to developers like you and many others and create my own big game! Keep up the great work.
I'm getting a VR headset just to experience this game. Never been so excited to voluntarily throw up!
I'm a little unsure why material property blocks would break batching. Their point is to maintain batching. If you're using an SRP the SRP batcher handles batching for material instances using the same shader and will break when using MPBs, but the built in pipeline should be fine. You can use the frame debugger to see why Unity hasn't batched things together
Can't wait till you introduce marching cubes
Imagine how trippy this woulb be in VR
Making hacks : basically Unity's entire dev experience
Its really awesome to see your game making style progress, makes me excited for this first "full" game and (hopefully!) future games on the horizon!
Mate, you are the boss. I’ll be following u forever. Your approach is insane, love it
Been a while great to see you again
Totally understand not making any videos, so hype! Can barely wait... but don't feel afraid to push things back a bit if necessary.
babe wake up new hyperbolica devlog
Truly fantastic, you're doing amazing work and I love seeing behind the scenes like this!
‘HyperCore’ is the most amazing fucking name for something ever
Hyperbolica is going to have a amazing speedrun seeing there is so many things you can abuse.
Hyperbolica? More like “Heck yeah!” This is going to be incredible!
When I see that bubble gun at the end, I think all this game needs is the fuel rod gun from Halo and a bunch more crates - I would really like to watch things fly apart in hyperbolic space, rather than just moving through it! Everything is looking amazing so far
Every video is like Christmas!!
At this point I'm starting to wonder if it would have been easier if you just wrote the entire engine yourself, since at this point I don't even know what advantages Unity still has over the many limitations you are facing, but I'm impressed how you managed to overcome them all with minimal compromises.
@SSM24_
2 жыл бұрын
He said in another comment that he still doesn't regret using Unity: "Yeah. As much as I hate dealing with it sometimes, it still saves tons of time with all the other aspects of game making."
@dorkyface
2 жыл бұрын
It would be a hundred times harder. I won't pretend to know how Hyperbolica or Unity works under the hood, but Unity handles rendering, physics, assets, lighting, animations, environments, menus, inputs, and so much more. I cannot fathom the workload that would be required to build all that on TOP of making a game like Hyperbolica :)
@NamePointer
2 жыл бұрын
@@dorkyface For a normal game I would agree, but he explained that he had to resort to hacky solutions or just straight up rewrite most of these existing systems. In this video for example, he said that he created his own physics engine instead of using Unity's built-in system, and the rendering pipeline uses a lot of shaders he wrote himself, so I don't believe it would have been "A hundred times harder".
@SSM24_
2 жыл бұрын
@@NamePointer Having to rewrite 30% of the engine is still much less work than having to write 100% of the engine from scratch.
@mikeohc
2 жыл бұрын
@@NamePointer Difficulty curve isn't linear. If he had to rewrite something he had no prior experience to, then it'd be significantly harder.
Brilliant video! It's super interesting to hear the challenges you've faced using Unity for this project.
i love you dude ppl like you make revolutionary changes
Wow! This is an amazing feat. You are basically creating a new game engine in a sense. So much effort went into this to make it work. The game itself looks super kool and seems to run smoothly. I haven't played anything like this so will definitely give it a try when it comes out so wishlisted. Keep it up! :)
This is amazing to look at.
Omg yay! Been waiting for an update! Your work is awesome man.
Almost feels wrong to say this is made in Unity lol
Glad to hear from you again
If you can, patent some of these methods you have developed before unity swallows them up. Hell, in the far future, you could make a nonEuclidian focused game engine!
Man your stuff confuses the hell outa me in the best possable way thank you.
So happy to see an update! Very excited to see the final result.
Can't wait for full release. keep up the good work
I'm so excited! I've been with you since your non-euclidean worlds engine 3 years ago! And been waiting for this since it was announced. Cant wait!
YES, ANOTHER DEVLOG
This is both amazing and incredibly annoying at the same time. Like....man just looking at it hurts, and you're *building* it. Props. Im so glad you like writing a custom game engine for this experience because I would just be like "yeah fuck it I'm gonna figure out a different idea entirely." I feel like I was looking through a kaleidoscope, or a wearing someone else's glasses.
If the game doesnt succeed, it's development will... you're making the base for bigger implementations and opening the minds of thousands of developers out there, teaching us a new boundary of what's possible. Pretty cool.
Good luck with the finishing details of the game. Super excited to play it
this was a wonderful birthday present last year, Thank you
This is phenomenal. Added it to my wish-list.
my patience paid off well
Non of AAA can interest me as much as hyperbolica, can’t wait to play this gem!
What a nice idea! You are such a great programmer and I don't understand a fraction of this, it looks super fun and unique though :)
I am so exited about the game release. Devlogs are very interesting and inspiring and I hope to see, better say 'hear', an Easter egg about "Sounds of the Mandelbrort Set" in game. ;) You are a smart and hardworking person already, so I can wish just to stay healthy for your family and best of luck! :)
Cautiously optimistic to see where this ends up - I make it a rule to never be too hype about anything lest my expectations be dashed to pieces upon release, but I'll still make it a point to purchase this day one and have some fun with it (assuming my computer can run it lol)
On track for release date? :0 that’s unheard of these days!! Don’t worry about us, you’re cusping the horizon of crunch time- dedicate all the time you need! The next few months are the hardest, make sure to focus on yourself and your mental health as well. I’ve been following this project since that first video you made about non-Euclidean ‘gates’ many moons ago - can’t believe how far this has all come, and how close we are to being able to try it out. Best of luck moving forward. Cheers :)
So excited to play this. Every single one of my friends are getting a copy.
@Nosirrbro
2 жыл бұрын
Damn I wish I had your friends
@somename5632
2 жыл бұрын
@@Nosirrbro Damn I wish I had any friends
I like how for reflections, this guy used the Minecraft trick of just rebuilding it opposite.
So excited for this game. Great video too!
Honestly I wish you did more of these, I don't understand half of the words of a thing, but love your explanation of it!
Always love to see you put it new videos! And gratz to keeping on schedule, fingers crossed it all stays good 🤞 Idk if it's feasible but I hope you might eventually release this on other platforms than steam. I play very _very_ few things on pc anymore, and don't even have an active steam acct heh.
I'm glad I got a new pc since this game would most definitely obliterate my old one.
I just found out about this project and wow.. Making a non euclidian enviorment in a heavely hardcoded euclidian engine must be extremely hard, I love seeing these things though, definantly following you Best of luck
I cant wait for this to release its so cool!
The spherical shadings of the windmill tower are even more mind bending, as background objects get bigger at a certain distance...
I've been following your development of this game since you announced it, and I'm super excited to Let's Play it as soon as it comes out!
Wowow this looks amazing. I'm playing HyperRogue in preparation for this!!
This is another level of game develop than most of game dev log on KZread
Absolutely stunning!
Now what would be wild would be if you could add VR support. Man, if you had that in this game... Truly mind bending.
@CodeParade
2 жыл бұрын
VR is already supported.
@Green0Photon
2 жыл бұрын
@@CodeParade That just makes me even more hyped. Definitely an instant buy to do in VR upon release. Gonna be a mindbender
発売が待ち切れぬっ Can’t wait the release !
6:21 ok, it's done. I've just added Hyberbolica to my wishlist on steam :)
So excited for this! Been saving my money to buy it once it comes out
I love this thank you for sharing your update!
I like your funny words magic man! but really , looking great.
Looks really good, great job