- 83
- 20 755
Jordan Grant
South Africa
เข้าร่วมเมื่อ 3 ก.ค. 2020
With a passion for coding in Swift, Java, and C#, I am a young developer focused on game development. I enjoy working with design patterns and algorithms, and I have also begun developing my own custom game engines using Swift and Metal.
I create, direct and produce all the content myself, but this account is managed by my guardian.
I create, direct and produce all the content myself, but this account is managed by my guardian.
Hacking out a new Game in Unity Devlog 1 Making Tanks Quest
In this episode I am showcasing my new Unity game called Tanks Quest a multiplayer 3d WW2 battle simulator.
LICENCES:
Character Base by madtrollstudio [CC-BY] (creativecommons.org/licenses/by/3.0/) via Poly Pizza (poly.pizza/m/qbDLeTtb8K)
Music by Veronica Zand from Pixabay
Willies MB Jeep by lexignatov's:
steamcommunity.com/sharedfiles/filedetails/?id=1906215402
LINKS:
I will add a git link soon
The game is a fan game of Stormworks: Build and Rescue
#unity
#gamedesign
#comedy
#coding
LICENCES:
Character Base by madtrollstudio [CC-BY] (creativecommons.org/licenses/by/3.0/) via Poly Pizza (poly.pizza/m/qbDLeTtb8K)
Music by Veronica Zand from Pixabay
Willies MB Jeep by lexignatov's:
steamcommunity.com/sharedfiles/filedetails/?id=1906215402
LINKS:
I will add a git link soon
The game is a fan game of Stormworks: Build and Rescue
#unity
#gamedesign
#comedy
#coding
มุมมอง: 335
วีดีโอ
Custom 2D Game Engine Devlog 4 Making the First Game!
มุมมอง 122หลายเดือนก่อน
In this episode I showcasing the first game called - SPLAT - Made in my custom 2D Game Engine Swifty Some Useful Links: gameprogrammingpatterns.com/contents.html #gameengine #metalgameengine #swift #gamedesign #comedy #coding
Custom 2D Game Engine Devlog 3 Showcasing Swifty Core Entity Component System
มุมมอง 942 หลายเดือนก่อน
In this episode I will be showcasing Swifty Core ECS (Entity Component System) that I have made into a easy to use Swift Package. Source Code: gitlab.com/JordanGrant3D/swiftycore Some Useful Links: www.partech.nl/nl/publicaties/2023/02/introduction-to-entity-component-system gameprogrammingpatterns.com/contents.html When I have completed the video on how to use Swifty Core I will link it here. ...
Custom 2D Game Engine Devlog 2
มุมมอง 7142 หลายเดือนก่อน
In this video I will be showcasing my latest progress report on the custom 2D game engine written in Swift and MetalKit Assets for my tech demo/game: www.kenney.nl/assets/racing-pack #swift #gamedesign #comedy #coding #gameengine #metalgameengine
Showcasing My First Custom 2D Game Engine made with Swift And MetalKit
มุมมอง 7053 หลายเดือนก่อน
In This video i will be showcasing my first custom 2d game engine developed in Xcode using Swift and MetalKit. I am calling it Swifty Engine The Chess assets I used for the first Demo Game: wildlifestudios.itch.io/chess-set-pixel-art When I publicly release the source code and the package download then you will see it here. #swift #gamedesign #comedy #coding #gameengine #metalgameengine
Showcasing The Marching Squares Algorithm | SpriteKit & Swift
มุมมอง 7805 หลายเดือนก่อน
In this video, I will be showcasing the Marching Squares algorithm that I made. The Code: gitlab.com/JordanGrant3D/marching-squares The Wiki on Marching Squares: en.wikipedia.org/wiki/Marching_squares 00:00 06:45 Intro 06:45 24:41 Showcasing Code #algorithm #SpriteKit #swift
Attempting to make a Neural Network with Training
มุมมอง 1086 หลายเดือนก่อน
In this video I will be showcasing my attempt to make a Neural Network with Training The Git Project: gitlab.com/JordanGrant3D/swift-neural-networking/ #neuralnetworks #swift
How to Make a Neural Network | Unity & C#
มุมมอง 4676 หลายเดือนก่อน
In this video i will be showing you how to make a neural network using Unity & C# Source Code: gitlab.com/JordanGrant3D/neural-networking 00:00:00 00:27:00 Intro 00:27:00 01:21:16 Coding #unity #csharp #neuralnetworks
Playing Around With Neural Networking
มุมมอง 1417 หลายเดือนก่อน
In this video I will be showcasing my first tests of a neural networking system. The freeCodeCamp.org video: th-cam.com/video/dPWYUELwIdM/w-d-xo.html #unity #neuralnetworks
How To Make a 3D Character | Unity & C#
มุมมอง 8767 หลายเดือนก่อน
In this video I will show you how to make a 3D character controller in Unity & C# for the Animations and models I will be using Mixamo, I will also be using the New Input System Mixamo: www.mixamo.com/ #csharp #unity
How to make On Screen Controls | Swift & SpriteKit
มุมมอง 2168 หลายเดือนก่อน
In this video i will be showing you how to make some On Screen Controls for Mobile devices with Swift & SpriteKit Assets used: www.kenney.nl/assets/onscreen-controls #spritekit #swift
How to Make a Basic 2D Character Controller | Swift & SpriteKit
มุมมอง 6428 หลายเดือนก่อน
Learn how to make two basic character controllers for your game using Swift and SpriteKit. #spritekit #swift #gamedev 00:00 01:14 Intro & Demo 01:14 12:26 Setting Up the First Player Controller 12:26 18:02 Setting Up the Second Player Controller
How To Make A Game In Under A Hour | Swift & SpriteKit
มุมมอง 9968 หลายเดือนก่อน
In this video, I will show you how to make a catch the falling objects game with SpriteKit and Swift GitLab: gitlab.com/JordanGrant3D/catchthefallingobjects #swift #spritekit
Tanks2023 Course | EXPLOSIONS!!! | Episode 10
มุมมอง 659 หลายเดือนก่อน
In this episode, I will be adding explosions to the game. #Tanks2023 #unity3d #csharp #blender Resources : Textures: drive.google.com/drive/folders/1kdok1rFZg7Gdo1A1POL8RBijx4CDOL79?usp=sharing
Tanks2023 Course | Making Enemy Tanks Spawn | Episode 9
มุมมอง 879 หลายเดือนก่อน
In this video, I will make tanks spawn and allow enemy tanks to shoot the player. #Tanks2023 #unity3d #csharp #blender
Tanks2023 Course | Adding Shooting | Episode 8
มุมมอง 5110 หลายเดือนก่อน
Tanks2023 Course | Adding Shooting | Episode 8
Tanks2023 Course | Adding the AI | Episode 7
มุมมอง 11911 หลายเดือนก่อน
Tanks2023 Course | Adding the AI | Episode 7
Tanks2023 Course | Adding the Buildings | Episode 6
มุมมอง 13911 หลายเดือนก่อน
Tanks2023 Course | Adding the Buildings | Episode 6
Tanks2023 Course | Changing to the new Input System | Episode 5
มุมมอง 6811 หลายเดือนก่อน
Tanks2023 Course | Changing to the new Input System | Episode 5
Tanks2023 Course | Adding the walls | Episode 4
มุมมอง 4511 หลายเดือนก่อน
Tanks2023 Course | Adding the walls | Episode 4
Tanks2023 Course | Creating the Terrain | Episode 3
มุมมอง 8211 หลายเดือนก่อน
Tanks2023 Course | Creating the Terrain | Episode 3
Tanks2023 Course | Creating Tank Movement | Episode 2
มุมมอง 13311 หลายเดือนก่อน
Tanks2023 Course | Creating Tank Movement | Episode 2
Tanks2023 Course | Making the Tank | Episode 1
มุมมอง 10011 หลายเดือนก่อน
Tanks2023 Course | Making the Tank | Episode 1
Tanks2023: Showcasing My Tank Battle Game
มุมมอง 55ปีที่แล้ว
Tanks2023: Showcasing My Tank Battle Game
Building a 2D Minecraft game (Part 3) Adding count to the inventory
มุมมอง 154ปีที่แล้ว
Building a 2D Minecraft game (Part 3) Adding count to the inventory
Awesome!
what a wholesome channel. subbed
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
If you're already doing this at your age, you definitely have a bright future!
Thanks so much! World domination through code! 😂
can u try FLX visual programming pls
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.
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!
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 😉
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.
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)
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.
audio a bit quiet. love these videos. a follow up vid on adapting the engine to support isometric graphics would be really interesting
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!
@@JordanGrantDev thank you for the reply! Do you have any goals in terms of platforms you’d like to support with your engine?
@@errant_eggIOS, MacOS, and TvOS, But for now I will be focusing mainly on MacOS for simplicity's sake. Thanks for the question
smart girl
Your right on the first part 🤣
Wish I started that young, very cool! Best of luck!
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 : )
Nice tutorial! Could you make a shooter game using SpriteKit? Thanks in advance!
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
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?
@@JordanGrantDev thank you very much I’m also still learning how to build engines but I’m using C programming language to build it
Your dad being here is so wholesome. Good video!
Looking great, keep up the great work!
Thanks :)
Thank you for the tutorial! Just what I needed :)
That's a good video, keep going
Ai sim, no caminho certo! Muito bom ver crianças com boas escolhas!
Great video
Thanks :)
You're awesome Jordan, thanks for the tutorial
This was really helpful, thanks!
The problem with this sapling add-on is the poly count is so damn high
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
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
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?
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.
Simple and Easy Handle to build character movement relating to keyboard control with animation coding using animator.
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?
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.
@@JordanGrantDev Na Its alright I used a new Visual Studios and it worked. Thanks for the informative video!!!
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
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.
Nice tutorial!
yeah
Hiii, Pretty please make a series how to create a Brawl Stars game on unity!!!
Great video! Please keep this series going, so little info on SpriteKit out there.
Awesome. You should import it into SwiftUI.
boet how old is you
howzit jordan mah bru
Heh! Cool stuff :D Keep up the good work!
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.
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.
try editing the constraints in the rigid body to avoid tipping the tank
Editing the constraints leaves some undesired side effects on uneven terrain, for instance, if you go up a hill the tank will stay level.
We will do a bug cleanup in the next episode.
I must say I see loads of potential and I hope you make the next hit game 👍👍
Very entertaining and informative, young man.
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!.
i can make it in 30 minutes
Nice
Cool
I have a qeustion how are u so good at coding and how long did this take u to make?
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.
@@JordanGrantDev jeez man you’re crazy good with unreal engine keep the work going!
@@JordanGrantDev also you’re animations are super good you can make better animations then a AAA game studio
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?
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.
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.
Unless you fixed the error already, then could you'd send me the SpriteScroller.cs code?
@@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; } } }
@Евгений Матвеев 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.
@@JordanGrantDev th-cam.com/video/nd39FZll8QA/w-d-xo.html I wrote down how it happens, I tried other pictures in different ways, the same thing.
Try making a new 2d project and doing the same steps, if it works, then there is something wrong with your previous project.
Damn bro…. Thnx for this informative video ❤
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!
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.
@@JordanGrantDev very good bud, keep at it, you're a natural. Got any other big plans for another game?
Wow, this tutorial is amazing, thank you. Keep up the good work, you're doing an amazing job.
This is like a professional level tutorial. Very good job. You earned a subscriber, kid.
Very good tutorial.