Пікірлер
@erin34uio5y32
@erin34uio5y32 Ай бұрын
btw please measure performance in frame time, not fps
@alvarobyrne
@alvarobyrne Ай бұрын
go go go .,sadfg ak,rÚÒƯ¿ÅÚ¯¿˝¸
@richardramirez5746
@richardramirez5746 Ай бұрын
great
@starplatinum3305
@starplatinum3305 Ай бұрын
conemarching is just for depth ?
@nabilnymansour
@nabilnymansour Ай бұрын
Yes, I use it to get the depth value to the scene which reduces how many times I have to ray march later.
@amireasy6419
@amireasy6419 Ай бұрын
Does raymarching lose detail with smaller objects? amazing video btw.
@nabilnymansour
@nabilnymansour Ай бұрын
Not necessarily, if the object is really far away then yeah it will lose the detail since the number of pixels the object will occupy on the screen will be very small, but if the object is very close to the camera and is occupying a lot of the screen, then it doesn't matter. I guess to answer your question: its relative to how many pixels the object is occupying the screen. Oh and thank you!
@UltimatePerfection
@UltimatePerfection Ай бұрын
Capsules > cones.
@end_rick
@end_rick Ай бұрын
I think the video is great. The solution with the plane as the camera near plane rescued me. Personally, I would appreciate some more explanation of how the world position and view direction work together in that context, because that is still a closed book for me. However, I understand that these topics can be daunting for the majority of viewers. I would love to see more videos in that style, though.
@nabilnymansour
@nabilnymansour Ай бұрын
I'm glad the video helped. For your question though, I am assuming you are taking about how the ray marching plane is being calculated from the camera. The idea is to keep the plane on top of the near plane of the camera right, so calculating that position of the near plane globally is what we are trying to find. the near plane is always in front of the camera so we first get the global position of the camera, then move in the direction that the camera is looking at by how far the near plane is. Now when I look back at the video and the article, you are right. I should have explained the details of that and probably some more illustrations to showcase that in action. I am new to the tutorial making scene so I'll try to be more meticulous next time. I hope my explanation here helped though
@nabilnymansour
@nabilnymansour Ай бұрын
Okay I came up with a quick illustration to explain what I mean. I don't use excaldraw for sharing so I hope this link isn't broken after a while excalidraw.com/#json=QI6S4Ify4eEwRAQ0GZE_q,NtoAV0HPR4RSaF9Yc4zerA
@ch03618
@ch03618 Ай бұрын
Excellent video! 😄
@nabilnymansour
@nabilnymansour Ай бұрын
Thanks!
@judgsmith
@judgsmith Ай бұрын
Super underrated
@nabilnymansour
@nabilnymansour Ай бұрын
Glad you liked it!
@nabilnymansour
@nabilnymansour Ай бұрын
Let me know if the style of video is good as a tutorial. I'm experimenting a bit so any feedback would be good 👍
@richardramirez5746
@richardramirez5746 Ай бұрын
The style is perfect for developers.
@richardramirez5746
@richardramirez5746 Ай бұрын
Do you have more stuff on three js? An just another question. How did you learn raymarching?
@nabilnymansour
@nabilnymansour Ай бұрын
@@richardramirez5746 Glad to hear that!
@nabilnymansour
@nabilnymansour Ай бұрын
@@richardramirez5746 I will soon. I will be making one more video about the ray marching optimization and it will also be in three.js. As a side note, I am trying to transition my content into three.js so I'll prob make more in the future. As to ray marching, I essentially started with watching inigo quilez's live streams. I then learned shader programming and then tried to make a whole game with it. U learn by actually coding. U know what, that actually might be a good video idea 🤔
@richardramirez5746
@richardramirez5746 Ай бұрын
@@nabilnymansour Great, so first viewer here! I am subscribed.
@noahtell1314
@noahtell1314 Ай бұрын
I do feel like building signed distance function (SDF) in a bounding volume hierarchy (BVH) along with fractals and other procedural algorithms, plausibly neural networks for textures could be an actual breakthrough in game development. It could create a dynamically changing world with the prospect of a very simple collision algorithm through the SDF. The awkward thing is the dilemma between using minus operators or not. It is useful for splitting objects, but probably a nightmare by the ambiguity it adds to shape representations. If one could create an algorithm to switch between minus and union operators for the same shape, that would be gold.
@nabilnymansour
@nabilnymansour Ай бұрын
I also think that making the tools for it is not that easy or straightforward since you want artists to be the ones using it and I can't find a simple way of making a nice and seamless way of doing that. I know that womp.com/index have tried to do that (I do think they end up polygonizing the SDF, but still it's pretty good).
@noahtell1314
@noahtell1314 Ай бұрын
Oh cool someone actually thought of this. I had a similar idea some years ago but called it sphere marching. Seems to not be the same. For my idea, you would calculate a sphere as a march step in some direction and rasterize and progress any fragment on within the perceived circle of the sphere. The tricky part would be selecting the direction/pixel to continue merging as well as memory handling on the GPU. Considering that the real bottleneck of raymarching is rays passing and running in parallel with the surfaces of the scene. I suspect that opting for spheres that are as far way from parallel surfaces as possible would greatly speed up closer rays as they would ride in parallel to the surface of the sphere. However, now the new bottleneck becomes marching rays along creases. 🤷‍♀
@jayleo500
@jayleo500 3 ай бұрын
Sorry, I'm a bit slow on this. So, the terrain in the game doesn't have a collider because it's just a shader, right? and you just have the shader on a plane in front of the player charactor that takes up the whole screen and makes it look like the geomatry is in front of the player?
@nabilnymansour
@nabilnymansour 3 ай бұрын
Well that is one way of doing things, but you can also make it as a post effect shader which is what I am doing. You could also make separate computerations to see how far your player is from the terrain (which can be used for collisions). That is what I do in the game. You should check out my rendering engine since I have some demos about that github.com/NabilNYMansour/Unity-FractiX
@Magicalbat
@Magicalbat 3 ай бұрын
What is the SDF you are using at 3:12? Is that a sphereflake? I spent a while recently trying to render a sphereflake and I was not able to do it with traditional raymarching transformations that I have seen. I had to create an entirely new way of transforming space to position the sub spheres correctly. If you figured out a more elegant way to render it, I would love to know how.
@nabilnymansour
@nabilnymansour 3 ай бұрын
Yeah no problem, I am using this SDF: float sphereFold(float4 z, float minR, float maxR, float bloatFactor) { // bloat = 1 will not change size. float r2 = dot(z.xyz, z.xyz); return max(maxR / max(minR, r2), bloatFactor); } void boxFold(inout float4 z, float3 r) { z.xyz = clamp(z.xyz, -r, r) * 2.0 - z.xyz; } float apollonianHills(float3 pos) { float4 p = float4(pos, 1.); float3 col = float3Init(1e20); for (int i = 0; i < 11; ++i) { boxFold(p, float3(1, 1.5, .5)); p *= sphereFold(p, 0., 2, 0.02); } return p.y * 0.2 / p.w; } idk if sending code here is good, but Ill make a couple of shadertoys later that will have all the maps. I've just been super busy with other things and haven't been able to focus on youtube recently. I hope this helps though!
@Magicalbat
@Magicalbat 3 ай бұрын
@@nabilnymansour Hmm, this seems like more of a variation on a mandelbox fractal than a sphereflake. Thank you for sharing the code though.
@cvabds
@cvabds 4 ай бұрын
Do you take comissions? How kuch for you to create conemarching in templeOS?
@nabilnymansour
@nabilnymansour 4 ай бұрын
Haha, I've never really gotten a job with shaders, you can email me if you have more information. As to templeOS, I haven't really used it before so Idk much about, but I think it's doable. I am busy these days, but around the end of this month, I should be done with a cone marching tutorial.
@lel7531
@lel7531 4 ай бұрын
Great game
@nabilnymansour
@nabilnymansour 4 ай бұрын
Thank you!
@Mega-13
@Mega-13 4 ай бұрын
This is a very impressive project. I am really interested in Raymarching in a Unity context. But there are not many resources out there. Finding this and all the resources you provide made me very happy :)
@nabilnymansour
@nabilnymansour 4 ай бұрын
Glad I can be of help!
@wagbagsag
@wagbagsag 5 ай бұрын
The cool thing about fractals is that they have texture at every scale. I think it would be really cool if you could shrink your player and fly into the infinite detail
@nabilnymansour
@nabilnymansour 5 ай бұрын
That is very true, I suppose the only thing about this is I don't really know how to make that into a game mechanic...
@GoDogGame
@GoDogGame 4 ай бұрын
@@nabilnymansour how about as a replacement for the standard collision mechanics? if (distance-speed < threshold): scale
@majkl2711
@majkl2711 5 ай бұрын
Hi, the game looks cool. Here is a little tip on how to easily improve the look of the UI. The left/right "arrows" in UI (for level selection etc.) ruin the look. Replace the "arrow" with an equilateral triangle with exactly the same line weight (and white color) as the font is. Not filled, just the outlines. The font itself looks really good, good choice.
@nabilnymansour
@nabilnymansour 5 ай бұрын
Hmm 🤔Thanks for the suggestion.
@xaracen7207
@xaracen7207 5 ай бұрын
i think the point sound should a softer subtle tone with its pitch indicating the point increase rate, the hit marker sound is, odd, imho. but i think thats the only critique i can offer
@nabilnymansour
@nabilnymansour 5 ай бұрын
Oh yeah, the final game actually has a different sound all together!
@user-eh5wo8re3d
@user-eh5wo8re3d 5 ай бұрын
great idea with the boids, adds a lot to the gameplay and the world. and congrats for finishing a project and putting it out.
@nabilnymansour
@nabilnymansour 5 ай бұрын
Thank u!
@user-eh5wo8re3d
@user-eh5wo8re3d 5 ай бұрын
Really nice project, and the video is really well made too
@user-eh5wo8re3d
@user-eh5wo8re3d 5 ай бұрын
would be interesting to see if it would be possible to texture the fractal procedurally and maybe spawn regular assets that way too. e.g. having water under a certain height, and have the fractals look like sand or stone caves, and higher up could be mountains and plant like fractal colouring plus some plant assets maybe
@nabilnymansour
@nabilnymansour 5 ай бұрын
@@user-eh5wo8re3d I do think thats all possible. My idea with this game is to try to control it in some fashion. I also made the rendering engine open source so that others could also experiment with this. I still need to document it though: github.com/NabilNYMansour/Unity-FractiX
@rmschindler144
@rmschindler144 5 ай бұрын
now imagine that you can shrink or grow your flying character by an order of magnitude
@nabilnymansour
@nabilnymansour 5 ай бұрын
Tha could be an option outside of the game itself, but if its in game (while ur flying) you get really dizzy and nauseous. But not a bad idea!
@LonelyTurtle-xd5yb
@LonelyTurtle-xd5yb 5 ай бұрын
You can add a cooler camera to this game!
@kenarnarayaka
@kenarnarayaka 5 ай бұрын
This is incredible! Ima make a fractal game myself for my school project, so yeah im gonna steal all of your optimisations. I'm also definitely buying your game. Also, do you have any advice? How long did this project take you from start to finish?
@nabilnymansour
@nabilnymansour 5 ай бұрын
It took me 3 years to learn shaders and how to effectively use them (though I wasn't giving 100% of my time for it) and it took 3 months of work to make this unity project. The rendering engine took 2 months, and the game itself was 1 month.
@user-fe8hp6jv9f
@user-fe8hp6jv9f 5 ай бұрын
Love this video, but really hoped that you would talk a little more about how cone marching works, because I didn’t really get it from the 2 pictures you have shown us.
@nabilnymansour
@nabilnymansour 5 ай бұрын
Soon 😭I've just been busy with other stuff recently. However, you can actually check out the code right now. I made the rendering engine open source: github.com/NabilNYMansour/Unity-FractiX/
@Nib105
@Nib105 5 ай бұрын
it might be worth lowering the opacity of the boids the closer they are to the camera, it is a little jarring when you fly through a cloud and start attracting them and they POP in front of the camera.
@nabilnymansour
@nabilnymansour 5 ай бұрын
I did want to have some dithering effect applied, but I would have to go back to my custom rendering engine and add that functionality which seems a bit more complicated .
@nabilnymansour
@nabilnymansour 5 ай бұрын
Though now that I think about it, it might be not as complicated as I thought it would be. Hmm, I'll experiment with this later. Thanks 👍
@Tetopettenson1
@Tetopettenson1 5 ай бұрын
Looks trippy
@o1497
@o1497 5 ай бұрын
I feel like there should be some more gameplay in terms of dopamine. The flying is freaking awesome but I can imagine it getting boring quickly if it’s always the same. Adding some randomness in terms of maybe flying things you can eat that give you boosts. Example: a glowing bird that gives you 2x speed for like 5 seconds. Little things like these can add up to make the game way more interesting. Also maybe personalising your gliding character with wings that affects how well you glide or your speed might be fun!
@nabilnymansour
@nabilnymansour 5 ай бұрын
u read my mind, i had a lot more ideas that i wanted to add, but I really didn't want to push the scope of the game further from what it is. I was really scared of feature creep so I kept on saying to myself "just stick to the original plan". But yes, I do agree that at some point, the game does become repetitive. I might fix some bugs that I've been informed of, but idk if ill end up adding really new big features and script different logic. Its not like I'm 100 certain I wont work on this game from now on, but at least for now, I don't think I'll be adding stuff.
@o1497
@o1497 5 ай бұрын
​@@nabilnymansour Sure! They were just recommendations, but I was saying that because I see potential for an extremely good incremental/Roguelite game, like the new game HASTE from landfall. But I struggle to keep my scope small in my own games and I see you are doing well in that sense so it's a good choice.
@nabilnymansour
@nabilnymansour 5 ай бұрын
@@o1497 Oh yeah for sure. The focus was really to explore making the fractals and turning it into a game, but I do think taking that aside, the gliding mechanic has a lot of potential and there are many things that u can expand on it.
@ManiakPL22
@ManiakPL22 5 ай бұрын
I love diving into recent small yt channels and videos especialy on stuff like devlogs. Sometimes you find weird and confusing stuff, sometimes you find garbage, sometimes you find someone who deserves way more recognition, and is able to produce content on the same level as bigger channels, that is also really interesting, while only having a fraction of the views. Keep going men, you are a great inspiration, I hope you will get some well deserved reognition soon and keep growing.
@nabilnymansour
@nabilnymansour 5 ай бұрын
You are very kind thank u so much 🙏
@Scottx125Productions
@Scottx125Productions 5 ай бұрын
It's not really 3 months of development when you've been essentially prototyping this since 9 months ago with other fractal games.
@nabilnymansour
@nabilnymansour 5 ай бұрын
haha i suppose. In that sense this is a 3 years project. But in terms of the actual hours I've spent on this exact unity project, I spent 2 months before the fall semester doing the rendering, and I spent this Jan finishing it up with boids and other levels.
@dottedboxguy
@dottedboxguy 5 ай бұрын
i feel like giving the player a small glow, kinda like a point light, would be highly appreciated, as it'd make it slightly easier to get a hang of how close you are to the fractals
@nabilnymansour
@nabilnymansour 5 ай бұрын
Thats a good point, but i am a bit afraid of adding another light source since I actually have to ray march to every light source when calculating the light for the scene. Though u r right, this is something I overlooked...
@nabilnymansour
@nabilnymansour 5 ай бұрын
After thinking about it, I might be able to change the color of the terrain based on how close the player is to it, that might serve as a way to tackle the issue you mentioned without really making another light source. I'll test that out when I get some time.
@dottedboxguy
@dottedboxguy 5 ай бұрын
@@nabilnymansour sounds cool ! i do feel like that'd enhance the feeling quite a bit and make the game more enjoyable
@dottedboxguy
@dottedboxguy 5 ай бұрын
this game is quite cool, i installed the demo today, but i didn't have the time to try it out, can't wait for tomorrow
@nabilnymansour
@nabilnymansour 5 ай бұрын
I hope u enjoy it! The demo has the first 2 levels unlocked, the full game will have 3 more
@Rafale25
@Rafale25 5 ай бұрын
Ain't no game without boids :)
@emanuelkozerski8331
@emanuelkozerski8331 5 ай бұрын
This is looking really really cool! You should consider adding ambient occlusion to it. It is really as simple as counting how many steps the ray took to reach the surface and darken it accordingly. Also, what is the environmental concept of this game? I mean, do you have any ideas for its settings, mood, backstory, time, etc.? Other than that, keep it up! I love fractals and your game is looking gud
@nabilnymansour
@nabilnymansour 5 ай бұрын
I think I had it turned off maybe when I recorded this since I have added AO to my rendering engine. Also, this is just a proof-of-concept game so I haven't thought much in terms of a story 😅. You can check it out on Steam right now. I have a demo also if u wanna try it out. The game is called FRACTAL GLIDE.
@emanuelkozerski8331
@emanuelkozerski8331 5 ай бұрын
@@nabilnymansour Awesome. I totally will
@ch03618
@ch03618 5 ай бұрын
Amazing game, Cant wait!
@nabilnymansour
@nabilnymansour 5 ай бұрын
🙌
@dottedboxguy
@dottedboxguy 5 ай бұрын
seems very cool ! the flying seems very satisfying ( also that music be going kinda hard ngl, your brother did a very nice work )
@nabilnymansour
@nabilnymansour 5 ай бұрын
Thank you!
@josephkindaro6091
@josephkindaro6091 5 ай бұрын
Can’t wait to play it!!!😆😆
@justinsemple7454
@justinsemple7454 5 ай бұрын
Would it be possible to make an airplane combat game kinda like starfox in these fractal environments? Or would optimized AI navigate for enemies basically be impossible?
@nabilnymansour
@nabilnymansour 5 ай бұрын
Hmm, I think its not impossible, but the logic might be a bit expensive. I am trying to think of different ways of computing the closest distance, but I would imagine that if you can query the environment in a way, then you can make some type of navigation logic. I wanted to do that really with the mengerites, but saw that it would be too expensive. TLDR, I 'believe' its doable.
@gpjedy7379
@gpjedy7379 5 ай бұрын
Alright! Glad to see this project finished
@nabilnymansour
@nabilnymansour 5 ай бұрын
Honestly, same 😴 It has been a bit tiring working on this. There was so much more I wanted to add, but feature creep is something I wanted to avoid as much as I can.
@MaximusOvernight
@MaximusOvernight 5 ай бұрын
looks so cool!
@nabilnymansour
@nabilnymansour 5 ай бұрын
Thank you!
@danielhooper
@danielhooper 5 ай бұрын
Trailer starts at 00:31
@josephkindaro6091
@josephkindaro6091 5 ай бұрын
Okay and?
@ImNetheN
@ImNetheN 5 ай бұрын
cool
@nabilnymansour
@nabilnymansour 5 ай бұрын
Thanks
@user-wl2vk4eo4y
@user-wl2vk4eo4y 5 ай бұрын
You could totally make the points sound like a geiger counter
@nabilnymansour
@nabilnymansour 5 ай бұрын
haha maybe, the new version has a different sound though
@Yggdr4zyl
@Yggdr4zyl 6 ай бұрын
The background music in the first half is VERY loud, on my phone it makes it painful to even keep the sound on.
@nabilnymansour
@nabilnymansour 5 ай бұрын
Hmm, I did put a slider for the volume in the final build, maybe I can do a slider for each component of the game. We'll see.
@Dolmek
@Dolmek 6 ай бұрын
Your work is inspiring! I would love to see a tutorial series about it
@nabilnymansour
@nabilnymansour 6 ай бұрын
I will make a tutorial about raymarching and conemarching in the future and I do intend to have my rendering engine be open source. so stay tuned 👍
@Alpha_GameDev-wq5cc
@Alpha_GameDev-wq5cc 6 ай бұрын
Frankly the math exploration part feels like it could differentiate this game into it’s own thing… maybe you should try expanding on that. Perhaps making the landscape geometry dynamic and changing (might be too much for rendering) or taking an educational/fun spin on the game. Would be fun to see if the game could incite mathematical curiosity in players
@nabilnymansour
@nabilnymansour 6 ай бұрын
I had an idea to incorporate the construction of the fractal as a game mechanic but its not very easy to visualize and idk how I would make that fun. But u r right, the concept of fractals can be expanded on in many ways. I will make my rendering engine open source after release but for now I think just to test if fractals is even something that would attract people is enough. also for making the fractal change, that is doable but as you fly in the game, having the terrain change ended up making me nauseous when working on it. I do think its doable, but experimenting on that just gave me a headache lol
@dextruax4903
@dextruax4903 6 ай бұрын
Superflight on crack, Incredible!
@crackedemerald4930
@crackedemerald4930 6 ай бұрын
Neat idea: good for a shorts if it isn't too much work. Scale the player (or world, whichever is easier) so they're always the same distance appart. Make the world smaller, when further away. And bigger, when closer.