Hello i have a problem my wheel colliders are sinking in plane mesh please help box collider is working on car body but wheel collider not working
@zeiphonАй бұрын
If you're already doing this at your age, you definitely have a bright future!
@JordanGrantDevАй бұрын
Thanks so much! World domination through code! 😂
@messengercreatorАй бұрын
can u try FLX visual programming pls
@JordanGrantDevАй бұрын
Hi, thanks for the comment at the moment I don't use visual programming or android, but I might take a look in the future.
@shaps2 ай бұрын
Love the intro! One important reason some games may not be able to use an ECS is architecture. For example let’s say the game engine and its code itself are not designed in a modular fashion (not uncommon historically) then using an ECS might be tricky. ECS is essentially composition over inheritance (similar to protocols, value types and extensions in swift vs classes) Also there are some teams that honestly don’t feel composition is better than inheritance. I guess it’s some what subjective. Also wanted to give you some advice for your current work. Swift-testing is much better than XCTest. It’s also cross platform (windows/linux) and is slowly replacing XC. The latest betas even include built in support for it 👍 you’ll thank me. Similarly you might want to checkout SwiftLog from too. Both are open source. Or OSLog which is built in and more iOS/macos specific. They’re designed for high performance and more modern so you’ll really enjoy them. As a professional I can tell you XC at this point isn’t worth learning. Lastly I see you’re using a lot of singletons. And without thread locks. I’d personally avoid that and you’ll struggle to find those patterns in modern swift libs overall. Checkout modern concurrency APIs like actors, async/await (even if you don’t want to introduce concurrency yet). Actors for one have no race conditions and synchronise state access by default. You’re doing great but hopefully some of these tips send you a stronger direction. Hope that’s ok. My son is only 7 but we watched some of this one together. Keep it up!
@shaps2 ай бұрын
Just wanted to add some clarification regarding how to avoid singletons. It’s not that hard and actually I haven’t written one in years. Specific approach will vary but here’s some wisdom that’ll lead you to ask the right questions. “Who should own this instance?” “What’s is its lifecycle?” So in the context of a loop in a game engine, the answers might be: The engine lifecycle should be bound to the loop. Therefore I’d hold that reference on the engine (vs a singleton) and that way I can easily control its lifecycle (ie it’ll die with the engine). IF you MUST used a global reference try and use `let` vs var so it’s at least immutable. Similarly ensure its internal state is ideally immutable (read only). This can be useful for things like “I need to access the current date Date.now” It’s not really a singleton but I have global access. Hope that’s clearer if not I’m sure you’ll work it out. But it’s a fairly important design to avoid particular in swift. A lot of uni students come out having learned Java or similar where singletons are used more heavily and they make this mistake for a long time. Difficult to unlearn. Best to avoid 😉
@JordanGrantDev2 ай бұрын
Q: One important reason some games may not be able to use an ECS is architecture. For example let’s say the game engine and its code itself are not designed in a modular fashion (not uncommon historically) then using an ECS might be tricky. A: Yes it is pretty much impossible to convert a tightly wound and inheritance heavy project especially when it gets big, to modular design. For my first game engine (I never made any videos on it) it was tall inheritance and was a pain to make anything in it and was very unscalable, and ECS is very scalable and coming from Unity which is heavily into Component Based Design and Dots which used ECS which worked very well for unity so it came organically to me to use ECS in Swifty and so-far-so-good. Q: Swift-testing is much better than XCTest. It’s also cross platform (windows/linux) and is slowly replacing XC. The latest betas even include built in support for it A: I didn't even know of Swift-Testing and I only recently started using XCTest but I will definitely try it and will be updating Swifty Core soon. Q: Similarly you might want to checkout SwiftLog from too. Both are open source. Or OSLog which is built in and more iOS/macos specific. A: I Currently use os.log in Swifty Core for all error messages to get coloured messages for errors and I don't need to worry about cross platform support I plan to make this macOS only for simplicity's sake, but thank you for making me aware of alternatives Q: Lastly I see you’re using a lot of singletons. And without thread locks. I’d personally avoid that and you’ll struggle to find those patterns in modern swift libs overall. A: I will definitely be taking some of the points on singletons to mind although I made it a singleton for very easy access from wherever the code is which is a lot easier for me. And the engine is big enough that a big change like that could be very game breaking, but I will change the static instances to let not var. And I currently have no multithreading yet. I have not even thought about async multithreading and it very much complicates things but in future I will definitely be starting going async for speed, but I am already having difficulty handling timing that is the main reason I made Swifty Core but if I start trying to figure out timing on multiple threads I am worried it will complicate things even further. Thank you so much for your advice! I recommend Blender to your son when he’s ready. I started using Blender for modeling when I was 8, and it was a great introduction to Unity, programming, and 3D concepts. Learning about vertices, edges, materials, texture painting, and UV mapping in Blender really helped me grasp the fundamentals of 3D space.
@shaps2 ай бұрын
Hey guys! Really love seeing you and your dad in these videos. I’m a dad with 2 boys myself and also a veteran developer and it’s lovely to see the relationship you guys have. I’ve actually worked on Xcode, playgrounds and other tools for . Many many open source projects (including the swift language), client products and approaching 40 years of developing (started when I was 6) Yet I have to say I’ve never done game dev and you have massively inspired me to get started. I’m also gonna work on a game engine to learn how they work deeply, calling it Chronicle. I will eventually open source it but it’s early days. I’m also starting with + windows support but it’s 100% Swift. Anyway thank you for re-inspiring my lifelong love of writing code and creating things. Best of luck with your own engine! Side note: GPT is great for productivity, as a professional developer I can tell you it’s used every day in small pieces. But you’re right that it gets things wrong. Over time you just get better at asking smaller questions. It’s a very iterative process, much like dev itself. Also most pros don’t use stack overflow because it’s equally full of bad information. It’s a necessary evil I guess when you’re first learning but just be careful not to over trust the information as it’s generally stuff worth forgetting. Anyway take that advice with a grain of salt. Keep up the great work! (Both of you)
@JordanGrantDev2 ай бұрын
Wow thats awesome thanks for the great feedback! The goal of the channel is to inspire, create joy and teach at the same time (hopefully 😂) and fooling around at the same time, all the best with Chronicle.
@errant_egg2 ай бұрын
audio a bit quiet. love these videos. a follow up vid on adapting the engine to support isometric graphics would be really interesting
@JordanGrantDev2 ай бұрын
Thanks for the feedback, I will try make the audio a bit louder in future, and yes the plan always was to add a isometric tile map system, so expect that in a future update!
@errant_egg2 ай бұрын
@@JordanGrantDev thank you for the reply! Do you have any goals in terms of platforms you’d like to support with your engine?
@JordanGrantDev2 ай бұрын
@@errant_eggIOS, MacOS, and TvOS, But for now I will be focusing mainly on MacOS for simplicity's sake. Thanks for the question
@takikirouani91232 ай бұрын
smart girl
@JordanGrantDev2 ай бұрын
Your right on the first part 🤣
@Patrick334562 ай бұрын
Wish I started that young, very cool! Best of luck!
@JordanGrantDev2 ай бұрын
Thanks Patrick, I just told my father that I should have started 2 years ago, LOL but it was more that likely that I was still dribbling back then : )
@gingkoburi83442 ай бұрын
Nice tutorial! Could you make a shooter game using SpriteKit? Thanks in advance!
@luthecoder2 ай бұрын
I heard totsiens at the end of the video I presume you guys are also in South Africa!!🇿🇦 I too am a developer here currently building my own custom engine
@JordanGrantDev2 ай бұрын
Awesome, Yes I am South African I hope your engine building is going well. And by the way what programming language are you using for the engine?
@luthecoder2 ай бұрын
@@JordanGrantDev thank you very much I’m also still learning how to build engines but I’m using C programming language to build it
@chance24802 ай бұрын
Your dad being here is so wholesome. Good video!
@umapessoa60512 ай бұрын
Looking great, keep up the great work!
@JordanGrantDev2 ай бұрын
Thanks :)
@МаринаКовбаса-м7к3 ай бұрын
Thank you for the tutorial! Just what I needed :)
@hazemdev3 ай бұрын
That's a good video, keep going
@drawingboard90553 ай бұрын
Ai sim, no caminho certo! Muito bom ver crianças com boas escolhas!
@henrikhasell44703 ай бұрын
Great video
@JordanGrantDev3 ай бұрын
Thanks :)
@too_oden21993 ай бұрын
You're awesome Jordan, thanks for the tutorial
@trentward47274 ай бұрын
This was really helpful, thanks!
@FleambleFlorp4 ай бұрын
The problem with this sapling add-on is the poly count is so damn high
@AlkanTC4 ай бұрын
hey i have a question can i also make a button so when i click on the inventory slot that it selects that slot? instead of using the scrollwheel
@JordanGrantDev4 ай бұрын
Hi @AlkanTC, sorry for the late reply, Yes, make an invisible button as a child of the Inventory prefab and give it a reference to the Inventory class. Next, you need to copy the SetSelectedIndex function and rename it to AddSelectedIndex and rename all uses of SetSelectedIndex to the AddSelectedIndex function Then you can modify the SetSelectedIndex to set its value to the selectedIndex, instead of adding it. So on SetSelectedIndex: selectedIndex = amount; Instead of: selectedIndex += amount; Leave AddSelectedIndex unchanged because we need to add the index to the value there. Then give a reference to the Inventory class to your buttons and call SetSelectedIndex with the value as the index of the slot. I hope this helps
@TotallyNotInspired5 ай бұрын
Great video! Do you have any idea on how to make the edges in marching squares look smooth, without using metacircles that make the whole terrain smooth?
@JordanGrantDev5 ай бұрын
Hey @totallyNot, I'm glad you enjoyed the video! I haven't personally experimented with this, but if you merge all the connected splines into a few individual ones and, in the 'addShapeFromPoints' method, try replacing 'SKShapeNode(points: &shapePoints, count: shapePoints.count)' with 'SKShapeNode(splinePoints: &shapePoints, count: shapePoints.count)', then you should get smoother edges. However, I haven't had a chance to test it myself yet.
@gd5gd20215 ай бұрын
Simple and Easy Handle to build character movement relating to keyboard control with animation coding using animator.
@tishalnarayan64976 ай бұрын
Hello, I have a problem When I am writing the line of code [SerializeField] float minPipeHeight = - 1.79f, maxPipeHeight = 1.79f; [SerializeField] float XSpawnPos = 18.73f; it dose not work in my unity, is it my line or is there something wrong?
@JordanGrantDev6 ай бұрын
Hi @tishalnarayan6497 There seems to be no errors with how you created the variables. Do you get any errors with your code? And if you do, can you paste the full error message in the comments along with the script.
@tishalnarayan64976 ай бұрын
@@JordanGrantDev Na Its alright I used a new Visual Studios and it worked. Thanks for the informative video!!!
@i4l46 ай бұрын
I have a problem, In scripts, these pipe, parent, min pipe height, max pipe height, X spawn pos It dosn’t appear for me! 19:46
@JordanGrantDev6 ай бұрын
Hi @i4I4 Make sure the variables in the script have a public or [SerializeField] tag before the variable. And If that is not the problem then make sure your script is saved and has no compile errors.
@davidtourangeau6 ай бұрын
Nice tutorial!
@Dragonsonicmonkeworldofficial6 ай бұрын
yeah
@Sid06977 ай бұрын
Hiii, Pretty please make a series how to create a Brawl Stars game on unity!!!
@PursueTheUnknown8 ай бұрын
Great video! Please keep this series going, so little info on SpriteKit out there.
@bobbygeneric93968 ай бұрын
Awesome. You should import it into SwiftUI.
@handlehaggler8 ай бұрын
boet how old is you
@handlehaggler8 ай бұрын
howzit jordan mah bru
@MrJukaio9 ай бұрын
Heh! Cool stuff :D Keep up the good work!
@jakecarvey10 ай бұрын
Great dynamic. Clearly your dad is less skilled than yourself, and mad jealous. But as in all great drama and education, we all need an antagonist to react against. Well done.
@jakecarvey10 ай бұрын
He started out cold, and warmed up as he realized you had already thought of almost everything. Pretty awesome to have a cool dad like that (who also can be humble and not threatened). I did, and still do as well.
@segain11 ай бұрын
try editing the constraints in the rigid body to avoid tipping the tank
@JordanGrantDev11 ай бұрын
Editing the constraints leaves some undesired side effects on uneven terrain, for instance, if you go up a hill the tank will stay level.
@JordanGrantDev11 ай бұрын
We will do a bug cleanup in the next episode.
@burgerman6166 Жыл бұрын
I must say I see loads of potential and I hope you make the next hit game 👍👍
@rogercotton5134 Жыл бұрын
Very entertaining and informative, young man.
@warrengrant Жыл бұрын
Good grief this is fun to play its so bad reminds me of some old games were you just get hammered and it feels out of control its definitely worthy of alot more work/improvement good job!.
@yahyabzl1112 Жыл бұрын
i can make it in 30 minutes
@saltish999 Жыл бұрын
Nice
@EnderRobber101 Жыл бұрын
Cool
@Lincolyn Жыл бұрын
I have a qeustion how are u so good at coding and how long did this take u to make?
@JordanGrantDev Жыл бұрын
Hi there! I started very young I have two parents that are both into IT, but saying that I spend a long time coding and the most important thing is that I enjoy it and that is critical to becoming good, The biggest part of the demo game took me 1 week to complete.
@Lincolyn Жыл бұрын
@@JordanGrantDev jeez man you’re crazy good with unreal engine keep the work going!
@Lincolyn Жыл бұрын
@@JordanGrantDev also you’re animations are super good you can make better animations then a AAA game studio
@redbandanacat6206 Жыл бұрын
Very very impressive! I didn't quite get if it's implemented or if you want to implement it still but how do you plan on implementing Culling for the blocks? Or Lag Control as you called it here. Also what made you choose .CSV as a format for saving?
@JordanGrantDev Жыл бұрын
Thank you, for the lag control, which I have not implemented yet, I want to hide any block that your camera is not currently viewing. For the saving I chose .CSV format because it was easy to visually edit in Numbers/Excel during testing, and it is easy for other users to edit the saves, if the saves get more complex I may switch to .JSON format, but I am open to any suggestions.
@terabits2341 Жыл бұрын
Hello, can you tell me why I encounter such an error that interrupts scrolling? material texture property maintex has offset/scale set. it is incompatible with spriterenderer.
@JordanGrantDev Жыл бұрын
Unless you fixed the error already, then could you'd send me the SpriteScroller.cs code?
@terabits2341 Жыл бұрын
@@JordanGrantDev public class SpriteScroller : MonoBehaviour { [SerializeField] float speed; private Vector2 offset; private Material material; public bool canScroll = true; void Start() { material = GetComponent<SpriteRenderer>().material; } void Update() { if (canScroll) { offset = new Vector3(1, 0, 0) * speed * Time.deltaTime; material.mainTextureOffset += offset; } } }
@JordanGrantDev Жыл бұрын
@Евгений Матвеев Thanks for the code, I checked it, and it is not giving any errors, if you are still having the error, check the material and make sure that there is nothing wrong with it and if that doesn't work, try rebooting unity.
@terabits2341 Жыл бұрын
@@JordanGrantDev kzbin.info/www/bejne/pJWWanmQodFrh6M I wrote down how it happens, I tried other pictures in different ways, the same thing.
@JordanGrantDev Жыл бұрын
Try making a new 2d project and doing the same steps, if it works, then there is something wrong with your previous project.
@Starfishvk Жыл бұрын
Damn bro…. Thnx for this informative video ❤
@grandmasterglick5895 Жыл бұрын
Hey bud, very good job on this, how long did it take you? I'm very interested in voxels and you seem to have a good grasp on this stuff. Keep up the good work, you'll be a master gamedev in no time!
@JordanGrantDev Жыл бұрын
Thank you, I took about 2 weeks to complete the project, but I have taken a step back to find a better way of explaining it as the code was getting a bit over-complicated I will be carrying on soon with the series.
@grandmasterglick5895 Жыл бұрын
@@JordanGrantDev very good bud, keep at it, you're a natural. Got any other big plans for another game?
@motamo Жыл бұрын
Wow, this tutorial is amazing, thank you. Keep up the good work, you're doing an amazing job.
@Zachomara Жыл бұрын
This is like a professional level tutorial. Very good job. You earned a subscriber, kid.