Тёмный

7 Reasons Godot Triumphs: Porting My Game from Unity [Kohlrabi Starship Devlog #6] 

WolKa Dev
Подписаться 1,9 тыс.
Просмотров 9 тыс.
50% 1

It has been a while since the last devlog and now I reveal the reason: I ported Kohlrabi Starship to Godot! In this devlog I talk about the process, what worked well, how insanely long it took etc.
I'm a VTuber developing my very first indie game about farming in space and turning your desert home planet into a thriving ecosystem! I always loved playing games like Harvest Moon and Stardew Valley, and now I want to create my own take on that genre. Will I make it or fail miserably? :) Thank you so much for watching!
⏰ TIMESTAMPS
0:00 Intro
1:10 Why I abandoned Unity
2:16 Why I chose Godot
2:46 How long it took me
4:25 Differences between Unity and Godot
5:33 7 Godot Pros
8:30 5 Godot Cons
11:19 Conclusion
11:55 Outtro
🌱 SOCIALS
Wishlist on Steam: store.steampowered.com/app/23...
Website: www.kohlrabistarship.com/
Discord: / discord
Patreon: / wolkadev
Etsy: www.etsy.com/shop/WolkaArt
WolKa Art Instagram: @wolka.art / wolka.art
RXON Music Instagram (not me): @rxon.music / rxon.music
⚒ TOOLS
Godot
GitHub
Procreate
Photoshop
Milanote (organizing ideas)
Sound Effects: splice.com/
DaVinci Resolve (video editing)

Игры

Опубликовано:

 

23 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 106   
@ThinkWithGames
@ThinkWithGames 6 месяцев назад
Welcome to the Godot club :-)
@Shawn-cq7qy
@Shawn-cq7qy 6 месяцев назад
Godot is great when I started making games I try unity and I just wasn’t have make games in it and it was so it’s take internet to make a new project so a late a try Godot 4 and it work great and Is fun
@Lonewolf0840
@Lonewolf0840 6 месяцев назад
"It's not you, it's me!" We all know it's Unity's fault... We all walked away too...
@Boildroid
@Boildroid 6 месяцев назад
I have standard
@theyellowdude69
@theyellowdude69 6 месяцев назад
10:42 you can make a script an autoload too, and can access that from anywhere😅
@wolkadev
@wolkadev 6 месяцев назад
oh.. oooohhh.. Well, seems like I still have things to learn about Godot. 😅 Thank you for clearing my ignorance!! :D
@adriano_sudario
@adriano_sudario 6 месяцев назад
@@wolkadev you can also have static variables and functions, so you can access them globally without using autoload
@RenderingUser
@RenderingUser 6 месяцев назад
@@adriano_sudario I prefer using class_name for a script to make functions like that accessible
@ivory_lion
@ivory_lion 6 месяцев назад
The number of user-made toolscripts and godot core contributors is skyrocketing. Expect really awesome stuff from the "Blender of game engines" in the near-future. I'll release my own custom tools for the engine in time, it's an phenomenal engine for extensibility
@CaiusNelson
@CaiusNelson 6 месяцев назад
Your videos are always a lot of fun! All factors considered, I think Godot is the best choice for 2D. It's tools and structure are intuitive. Plus, because all assets are text files, if anything breaks or becomes corrupted it's a lot easier to fix.
@Bobbo69
@Bobbo69 6 месяцев назад
That’s also true for Unity!
@RayOfSunlight984
@RayOfSunlight984 4 месяца назад
Road to Vostok Dev: I ported my Unity game to Godot in 615 hours after trying Unreal and Godot
@Dinoforce
@Dinoforce 6 месяцев назад
Thanks for your video. And good luck for your next steps. I was thinking of starting with Godot too, for a future project
@myrmatta1
@myrmatta1 6 месяцев назад
Congrats on the successful port!
@Babuchas255
@Babuchas255 6 месяцев назад
I really enjoyed the video, thank you for sharing your experience in such a nice way :)
@OnyxIdol
@OnyxIdol 6 месяцев назад
Welcome back, and nice to see you using Godot!
@iancherabier5920
@iancherabier5920 6 месяцев назад
Congratulations on managing the port, though Godot seems like a great engine, it did look like a lot of work! Always happy to see progress on the game. Thanks a lot for sharing your journey! 😊
@RockyMulletGamedev
@RockyMulletGamedev 6 месяцев назад
Cool devlog ! Good luck with the switch.
@turbomodus
@turbomodus 6 месяцев назад
I need to start with Godot again. Love to see people creating stuff with it.
@Flaming_Thunder_
@Flaming_Thunder_ 6 месяцев назад
i may be late to your channel but i love how you do these game devs! tbh if you started doing dev streams i am all in for it!
@Nicknamegeneratorfailed
@Nicknamegeneratorfailed 6 месяцев назад
Love the devlog, this one is my favorite, no idea why obviously but I saw that gentleman 9:04 and I was sold. XD So next month the next devlog? The global thing, apart from AutoLoaded scene and Resources mentioned below (which after loading are shared/cached across so change to the resource at one place does show everywhere else too) there are two other ways how to do this, firstly C# monkeys can you static classes :P (I also use c# before someone jumps to the defense ^.^), secondly usually you would have a main node at the top which doesn't change in your game at all so you always have it available though that's technically not a global class again.
@wolkadev
@wolkadev 6 месяцев назад
Happy you liked it! :D I think I didn't explain this one point very well in the video at all. I use orphaned nodes a lot, and they cannot access root and therefore not the autoload nodes. I haven't tried with autoload scripts, but if I remember correctly, I really need the access to the autoload node. Static classes and resources do not really work for my usecase unfortunately. I did find a workaround in the end though, where I changed what the orphaned nodes try to do, I think.
@MrChick1984
@MrChick1984 6 месяцев назад
@@wolkadev What do you mean by orphaned nodes? As far as I know, every node has to be part of the scene tree, otherwise its _ready, _process etc. methods will not be called. Since Godot 4, GDScript has static variables. Can you describe what is the corresponding feature in Unity, maybe we will be able to help you do the same in Godot?
@RenderingUser
@RenderingUser 6 месяцев назад
@@MrChick1984 yes because in godot.... transient parent cannot have another exclusive child.
@Nicknamegeneratorfailed
@Nicknamegeneratorfailed 6 месяцев назад
@@MrChick1984 You can create a node through a script or load a scene without adding it to the tree and still work with it which is then called an orphaned node. Whatever use case she has I'm sure it's fine, I just wanted to list couple other unmentioned options for anyone coming here watching the vid ;0
@m0-m0597
@m0-m0597 6 месяцев назад
I started making a really cool game on Godot, too. Wish you best of luck for your projects.
@alexgouzanov3219
@alexgouzanov3219 6 месяцев назад
Perfect. Good choose.
@ghb323
@ghb323 6 месяцев назад
there are good reasons why Free and Open Source Software (FOSS) exists: to address the problem with proprietary software, its licensing restrictions and requirements, as well as “switching costs”. What Unity did was creating an unpredictable and uncontrollable billing system against game devs that boosted godot popularity. Godot is basically the Blender but for creating a game, and fittingly supports blender models. No company or middleman gets to decide how your project should be and how it works, no strings attached. This is the home for refugee indie devs.
@MakerTech
@MakerTech 6 месяцев назад
I'm glad you like Godot so far - even with the minor cons you found ;)
@JakubSK
@JakubSK 3 месяца назад
You've made the right choice!
@HGForrest
@HGForrest 6 месяцев назад
As an outsider, this is mostly IT-mumbojumbo, but I agree with everything you said and you're awesome
@wolkadev
@wolkadev 6 месяцев назад
haha thank you!
@Nyamistaya
@Nyamistaya 6 месяцев назад
Very cool video, I like it
@Ombarus
@Ombarus 6 месяцев назад
When you select a Sprite2D, in the top bar there is an option to convert the Sprite to a MeshInstance and it'll triangulate it for you. You can also tell it to generate a Collision Mesh I think.
@wolkadev
@wolkadev 6 месяцев назад
Thanks a lot, I didn't know. Any chance this can be made to work with an atlas texture?
@joelgomes1994
@joelgomes1994 6 месяцев назад
Nice video! About the audio cracking, do you use MP3? If so, try changing to OGG, MP3 is not optimal for games due to loop issues.
@wolkadev
@wolkadev 6 месяцев назад
Thanks, I didn't know! Yes, I used MP3 so far.
@dibaterman
@dibaterman 6 месяцев назад
I am a little different, I wanted to start a 2d project in Unity with a friend, sadly I have more desire than he did and so I went after that goal on my own. This mess happened and I heard godot was good for 2d. So I switched, I decided that I would go 3d on godot mainly because I'm pretty good at 3d, I have a ton of 3d work done from previous projects in Unity and I really only went 2d because I wanted the first collab project to be simple. Regardless the result is godot is very much... cave man... there is less hand holding, thanks for my experience in Unity though I picked up quickly enough and even learned GLSL along the way. It's odd because I couldn't grasp visual shaders in unity but scripting shaders is so much more intuitive. Regardless now I've made this massive modular system for handling data in this rpg. I've put together some fancy shaders for my trees, grass, rocks, etc. I've got some customized character models. I've grabbed mixamo animations because I'm a sane person. I installed jolt today for my physics as my character controller is physics based. It's slower than unity but it is coming together.
@BanditLeader
@BanditLeader 5 месяцев назад
dont forget to use the physicsserver and renderserver
@samuraikina5908
@samuraikina5908 6 месяцев назад
Amazing content , godot is life ♾️
@cameronmoore136
@cameronmoore136 6 месяцев назад
Your cat is BEAUTIFUL
@ShinSpiegel
@ShinSpiegel 6 месяцев назад
Welcome to Godot! The community is pretty good. If you need help, don't need to be afraid of asking help from the community :D
@Entikai
@Entikai 6 месяцев назад
Good to see you again and I'm glad to see that the project is coming along nicely. I use both Godot and Unity and love both engines. I'm personally still maining Unity, but engine is just a tool. The important thing is that the game is being worked on!
@kidando
@kidando 6 месяцев назад
To store global variables like player score, just autoload a script that extends Node (but it could be anything really) and your done. This singleton is accessible anywhere and data persists during your game's run time. I do this all the time. I create a run.gd script and call it from any other script by simply calling a property a method by Run.property or Run.method()
@kidando
@kidando 6 месяцев назад
And yes, Nodeless scripts can access those variables.
@minibubblegum5108
@minibubblegum5108 6 месяцев назад
I too did the same months ago.
@welovebotlu8380
@welovebotlu8380 6 месяцев назад
I'm also an independent game developer. It is difficult to develop a game for a long time. Let's go ahead.
@Haloschien1
@Haloschien1 6 месяцев назад
Godot's C# integration seems very suboptimal, like f.e. dealing with signals. How do you manage with that and do you consider using GDScript? Or do you have trust in Godot to improve their C# integration in the coming months?
@wolkadev
@wolkadev 6 месяцев назад
It took me a while to figure out how to deal with signals in C#, especially since the documentation is very very sparse for this topic and naming comventions are not always clear imo. But now that I got the hang of it, I actually quite like it and it works very well. Is there anything you found that worked with gdscript but not C#?
@pixobit5882
@pixobit5882 6 месяцев назад
Ich liebe es, wie man Deutschsprachige direkt am Akzent erkennen kann :D
@mondzahn
@mondzahn 6 месяцев назад
Nices Video
@RenderingUser
@RenderingUser 6 месяцев назад
10:40 hold on... why are you loading a tscn file there? you can add a .gd script file in there and godot will automatically instance the node that the script Extends from, with the script attached, then add it to the tree. you can observe this by using the remote tab in godot node tree after running the game. wait.... or... does this not work with c#? i think that might be the issue then. im not sure since i never used godot mono
@wolkadev
@wolkadev 6 месяцев назад
Thanks for watching! I'm using a scene cause my game manager also contains things like the main menu canvas etc. It does work the same in C# :)
@comfyzenny
@comfyzenny 6 месяцев назад
you can use autoload with stand-alone scripts too btw. It's possible you just couldn't find your script or something for whatever reason, like maybe you used a built-in script on a node or something idk. I love godot n.n
@treysonsearle8441
@treysonsearle8441 6 месяцев назад
How did you create you animation puppet? I want to create one
@wolkadev
@wolkadev 6 месяцев назад
Hi! I made another video just about that. I'm still using Unity in that video, but it's mostly the same in Godot. :)
@treysonsearle8441
@treysonsearle8441 6 месяцев назад
@@wolkadev I'm talking about the vtuber puppet
@wolkadev
@wolkadev 6 месяцев назад
Oh I see. I drew the parts in Photoshop, then used Live2D cubism for rigging (there are a few good youtube tutorials out there) and then I use facerig on Steam to record myself. :)
@treysonsearle8441
@treysonsearle8441 6 месяцев назад
@@wolkadev thank you!!!
@Wanfanel
@Wanfanel 6 месяцев назад
6:37 How Unity handle localization? 10:27 What Global Variables have Unity? You can make singleton and static variables, you can make Resource( is node less) with [GlobalClass] which wis similar to ScriptableObject. in Godot you can add Custom MainLoop script too which can have your custom node less classes too🙂 10:52 Package Manager is not a AssetLib? in Unity if you don't like something like Unity Json you can install packages from Nuget too, but manually. Unity have problems to cach up with latest C# in Godot 4.2 we already can use C# 12(.Net 8), Unity C# 9.0 with Unsupported features. Tilesets in Godot 4.2 get even more buffed now you can rotate and mirror tiles while placing them
@wolkadev
@wolkadev 6 месяцев назад
Unity handles the tables with the translations inside the engine and it is much more code to access them in scripts. I just found it much more confusing, and with Godot it felt very straightforward and intuitive. When I made the video, I didn't know about autoload scripts, I only did it for scenes. But I cannot access them with root from an orphan node. Since I didn't have orphan nodes in Unity, I never ran into that problem. In Unity I was used to be able to get everything I need from the package manager. The assetLib is not as extensive. But these last two are simply differences between the engines, not really downsides of Godot.
@Wanfanel
@Wanfanel 6 месяцев назад
@wolkadev Orphaned nodes are somewhat akin to "inactive objects" in Unity. they remain accessible and can still perform any desired actions if properly configured. I'm uncertain why one would need an orphan node to accomplish a particular task.
@Ardious
@Ardious 6 месяцев назад
Welcome to Godot!
@MUHAMADKHAIRYDANIELBINMUHAMADK
@MUHAMADKHAIRYDANIELBINMUHAMADK 6 месяцев назад
This video is nice But how do you start learning game dev?🤔
@wolkadev
@wolkadev 6 месяцев назад
Thanks for watching! :) I just pick an engine and then watch lots of youtube tutorial. :) Sorry this video didn't really explain how to learn the engine from scratch.
@ahmadsaerozi6688
@ahmadsaerozi6688 Месяц назад
Welcome to the godot cult
@peterjohannsen3610
@peterjohannsen3610 6 месяцев назад
Don't worry, I found out that mandarin trust can be rebuilt! Not the trust in Unity though, that ship has sailed...
@DevJeremi
@DevJeremi 5 месяцев назад
No need for external lib for JSON - godot has methods for json build in.
@ELF_Productions
@ELF_Productions 6 месяцев назад
so many people talk about lost of trust.... you showed your cat an orange and trust is broken. but you trusted your cat when it told you to use gadot. hehehe. Im sticking with unity. Dont want to waste time trying learn something else when i already know how to use something that works for me,
@BanditLeader
@BanditLeader 5 месяцев назад
unity is closed sourced and controlled by shareholders. godot is open source and controlled by the communities. who do i trust more, unitys greed or godots freedom? i wonder
@hendosboxofmystery1359
@hendosboxofmystery1359 6 месяцев назад
godot is the best
@ghostradiodelete
@ghostradiodelete 6 месяцев назад
and Unity keeps making weird choices, like the latest choice to allowing buying real products from walmart in their games. I've been working on my game in Godot as well, and it's going great minus one or two problems with the engine's 3D bugs. Despite that, it was still a good decision to switch for me. Good luck with your game. =D
@wolkadev
@wolkadev 6 месяцев назад
Thanks! Good luck to you too! :)
@zekenebel
@zekenebel 6 месяцев назад
The reality is, all of these Game engines are just baselines for projects. No Game engine will or should come with every feature needed to create every single idea. Every Game Engine has its quirks, most of the time many issues are self inflicted on the implementation side, the audio problem you mentioned as an example is usually the result of over compression, if you were using mp3 files with default import settings they wouldve been getting crunched. For everything Godot has that unity dont there will be a counter part. Porting entire games is completely redundant, based on the time spent doing it I imagine the scale of your game wasnt too big so fair enough, but a good example would be say 6 months spent porting couldve been spent creating modular systems that solve everything that dev feels unity is lacking. The source code argument is counter intuitive based on this fact, if features was the main issue for someone why spend the time porting when you could just make the feature, as you will run into this issue somewhere else down the line as u hit a wall with that Game Engine too.
@BanditLeader
@BanditLeader 5 месяцев назад
"The source code argument is counter intuitive based on this fact, if features was the main issue for someone why spend the time porting when you could just make the feature" this is sort of right but also wrong. unity is closed source, so if its lacking a feature, there isnt much you can do. you might be able to cobble together some jank plugin, but thats not advised. godot is open source and has gdextension, so if a feature is missing you can just add it if someone else hasnt already
@zekenebel
@zekenebel 5 месяцев назад
@@BanditLeader jank plug-in doesn’t sit well here , the packages available solve really every problem you could think of due to its longevity in the market, and if that doesn’t help u can resolve this problem yourself, code is code , unity may not provide source code, but they allow you to integrate into its engine to achieve nearly anything u may have felt it was lacking. This is a pretty normal part of all game development no matter what engine ur working in
@FrozenInIce
@FrozenInIce 6 месяцев назад
godot is good cause it is opensource that means creators of the engine cannot pay wall you for installation of the game you made. if they try there will be another godot that takes place of that cause anyone can branch the software to make it free.
@jihadrouani5525
@jihadrouani5525 6 месяцев назад
I stayed with Unity and the reason is very simple, as developer I'm not engaged with Unity as a human like connection, it's purely a business connection, Unity is the best at every game genre out there except photorealism, that's where Unreal takes the lead, it provides countless packages for free, it's the most documented engine out there, it has the biggest community, the biggest assets store, and it's incredibly cheap for what it offers even compared to Unreal, Godot is free but it barely offers anything... That's the reason why I chose Unity 7 years ago, it's doing the most to help my business. Their runtime fee wasn't liked, and everyone told them to rework it and they did, the trust argument is irrelevant because Unity is a public company with shareholders that aren't fond of losing money, so in case they do something stupid again which is quite unlikely after the runtime fee, you can bet the community will rise up again and tell them to rework it, and you can be sure Unity would try its best to stay on the community's side because without us they're bankrupt. This is not a relationship with a human where they might betray me in the future, this is a business relationship where they can't win if the community doesn't win.
@MuhammadHosny0
@MuhammadHosny0 6 месяцев назад
That's exactly my opinion. Stop emotional attachments to tools that make you money. If they made a mistake and fixed it then stfu and continue using the damn thing
@gabrielbear5268
@gabrielbear5268 6 месяцев назад
Honestly, this will set you back greatly and honestly feel you made the wrong decision here. But time will tell.
@MuhammadHosny0
@MuhammadHosny0 6 месяцев назад
Most likely will regret it
@BanditLeader
@BanditLeader 5 месяцев назад
thats what people said about blender, and look at it now. get ahead of the game instead of staying in the mud. godot is the best engine for 2d (used to be gamemaker) and a great contender for 3d (yes it competes with unity, and no engine can beat unreal anyways). godot has been going uphill ever since its release. and with all the funding its got recently, plus the terraria sponsor, and slay the spire devs switching to godot, and lots of the unity community switching to godot (including the #1 unity channel Brackeys), there is only more improvements in the near future for godot
@piotraueternum
@piotraueternum 6 месяцев назад
For global variable there are few ways. You can save within save files it should be easy with plain number or other primitive values. Other way I would recommend using resource(scriptableobject) with saving feature as well. I learned that from ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-6vmRwLYWNRo.html Besides that I did notice that godot isn't much different than unity when it comes to structure. You can write component nodes or use resource like scriptableobjects in unity. Pretty seamless port for me.
@GrapeParfait
@GrapeParfait 6 месяцев назад
You were way too nice about the unity situation. Unity totally screwed over the gamedevs. I will never forgive them, ever. I hope they go out of business.
@LunaticEdit
@LunaticEdit 6 месяцев назад
Just be careful. When dragging things between folders **ESPECIALLY** if you use subclassed nodes as it has a 15% chance of completely breaking your project. Also do keep in mind godot packages your project resources and source code as-is (sans code comments) so it's absolutely trivial for anyone to download your game on steam, and turn it back into a godot project, repackage, and resell it as their own (or auto-enable any DLC or MTC features you added for free). You can kinda do this with Unity projects, but it's harder, and actually requires effort and some work to put it back into something you can load in unity. For godot it's basically a single command to do. Also note that although Godot is free, you will be paying an external company whatever their going rate is if you want to port your project to a console platform (if you don't plan on releasing on console then no issue here). I tried godot, but the constant project-breaking bugs, IDE glitches and lockups, complete lack of asset protection, and inability to export to consoles made it a non starter for me (of course this is just my personal opinion, use what works for you).
@BanditLeader
@BanditLeader 5 месяцев назад
"you will be paying an external company whatever their going rate is if you want to port your project to a console platform" this is sort of true with unity and unreal engine as well. console ports arent free on any engine. but the bonus with w4 games is that they will actually help and guide you on the port, unlike unity and unreal where its figure it out on your own
@Warpgatez
@Warpgatez 6 месяцев назад
We all know it’s unity. It’s a good move. No one should support unity anymore.
@frango_e_salada
@frango_e_salada 6 месяцев назад
I bet U 1 year from now U don't have ANY, I said ANY cons about Godot! :)
@MuhammadHosny0
@MuhammadHosny0 6 месяцев назад
That was said multiple years ago 😭
@celsladroma8048
@celsladroma8048 3 месяца назад
Even though Godot is free but the education is not free for godot site..
@wolkadev
@wolkadev 3 месяца назад
Hi! All the resources for Godot like its documentation and also a lot of tutorials on RU-vid are free. There might be some people offering paid courses, but you can learn Godot without those! :) I never any paid Godot education to learn all that I needed.
@celsladroma8048
@celsladroma8048 3 месяца назад
@@wolkadev Oh you need to its like sharpening your skills.. 80 percent of game dev quit because their habit are not good
@__Rizzler__
@__Rizzler__ 6 месяцев назад
womp womp
@m0-m0597
@m0-m0597 6 месяцев назад
The Rizzler horn sound
@faultboy
@faultboy 6 месяцев назад
Please remember, Singletons are an anti-pattern, so it is better to only use static classes/members.
@nerdydrow
@nerdydrow 6 месяцев назад
the observer pattern is a legit pattern da fuq you are on about?
@SylvanFeanturi
@SylvanFeanturi 6 месяцев назад
That's just a stupid thing to say.
@FrozenInIce
@FrozenInIce 6 месяцев назад
why do this much beginners use unity a bad game engine that is trying to be more than that and failing when they did not have photo real renderer they were being used every where but now its more unreal I hate these engines cause they do not want to give you control over the engine to make it easier for you to work with and need another launcher than it self that takes 20gbs for no reason other than be a url portal. this is done by unreal as well it is so disqusting that I do not use either to create my game. So I do not comprimise from my view of the game I make.
@SeanBotha
@SeanBotha 6 месяцев назад
downvote not interested in this opinion yet youtube put this anti unity DISCRIMINATION in my timeline!
@m0-m0597
@m0-m0597 6 месяцев назад
we don't kiss the corporate boot over here, it's not your place XD
Далее
Tutorial: Simple 3D Water in Godot 4
22:03
Просмотров 37 тыс.
I Made My First Game in Godot in 3 Weeks...
26:21
Просмотров 260 тыс.
Phantom Camera For Godot Is Awesome!
10:27
Просмотров 44 тыс.
Switching Game Engines... Twice? - Devlog #7
10:55
Просмотров 81 тыс.
NOT STOPPING TIL NEW WORLD RECORD
9:30:56
Просмотров 2 млн