New tutorial series based on a Unity3D roguelike mini-game tutorial

razvanc-rrazvanc-r Posts: 84Member
edited September 2016 in Tutorials
I have started working on a translation for Godot based off of this Unity3D tutorial. Although it is a mini-game it makes use of high-level programming patterns such as singleton (autoloaded scripts), component, coroutines, observer, finite state machine (some of which are handled by Godot for us) making this more of an intermediate programming tutorial.

I think the internet is flooded with beginner level tutorials and some of which even popularize bad written code, just because people in charge of these tutorials don't have time to write them. Well, my opinion is you have to make the time and if it takes longer, then it takes longer, I think people appreciate better quality over quantity. Also these will be text based tutorials as opposed to video because of three reasons, with text you can search through it very easily, you don't need to remember when you saw something or in what episode, secondly, I had a poll on the Godot facebook group and about 90% preferred text over other media and finally, with HTML5, JavaScript and interactive web we can have some pretty awesome interactivity!

So for the time being my focus will be to try and translate some of the Unity3D tutorials over to Godot (in a more professional way, that is not just throw the code around, but instead have structure and logic to it as it applies to Godot), first because they have free assets which we can use and it makes it easier (although don't be fulled, some will be tricky, like the 3D ones since you have to re-map the textures because we can't use the obj files that are compatible with Unity3D directly in Godot so it isn't that straightforward) and second because I'm also new to this and it's good to have a starting point. Then at the end of it all if you're curious you can compare results between Unity3D and Godot (implementation-wise, programming-wise, ease of use etc.) so I think there are a number of benefits to doing this.

I'd really appreciate your support guys and if you drop by the website please give me some feedback so I can bring higher quality posts and tutorials. They ill be hosted here: https://razvanc-r.gitlab.io/tutorials/

Thanks for your time!

Comments

  • KioriKiori Posts: 228Admin
    Hope to see more tutorials like this! :smile: 
  • HooniHooni Posts: 10Member
    Thumbs up!
  • MegalomaniakMegalomaniak Posts: 302Member
    Make sure not to use any of their assets without permission. Other than that, awesome. :)
  • SuryaSelSuryaSel Posts: 21Member
    Great idea, even I prefer text over videos as far as tuts are concerned. Videos make good demo material, but to sit down and learn something, there's just something about text that makes it easier, though I can't really point out why.
  • razvanc-rrazvanc-r Posts: 84Member
    @SurySel, probably the fact that you can jump at different sections at any time without trying to remember when you saw it :). I agree with all of the above, for learning text + interactivity is best.

    So far the responses have been awesome, I honestly didn't think it would have much traction, this is definitely a boost for me! So thanks guys, really appreciate it. Let's make Godot awesome!
  • therahedwigtherahedwig Posts: 1Member
    Regarding the image split... :)

    It should be in 3.0.2... I cannot promise it'll stay there, because if there's a bug caused by it, it might just get unceremoniously reverted. (Unlikely though, it's reused code in a non-core part of Krita).

    I also cannot promise I'll always respond like this, but teensy changes like these are possible as long as there's time and we understand why :)
  • razvanc-rrazvanc-r Posts: 84Member
    edited September 2016
    @therahedwig nice, good to know about it, I was almost certain that the Image Split operation will disapear from Krita since it looks more like a stray experiment and I intended to update the tutorial with ImageMagick or something else instead when that happened :). But we'll just have to see, either way I'll keep an eye on it. Thanks for the update.

    By the way, this is my $HOME directory so don't just go out assuming :P about my "mess"

    ├── Cloud
    ├── Desktop
    ├── Documents
    ├── Downloads
    ├── examples.desktop
    ├── letsencrypt.log
    ├── Music
    ├── Pictures
    ├── Projects
    ├── Public
    ├── References
    ├── Resources
    ├── seaborn-data
    ├── Templates
    └── Videos
  • SuryaSelSuryaSel Posts: 21Member
    Hey Raz, I'm a complete beginner to gamedev trying out various engines, have only used a little bit of Unreal 4 yet (and Unity as well, but I was kinda put off by Unity). Would you recommend me to go through something (like in the Docs or whatever) before I can start out with your series for Godot?
  • razvanc-rrazvanc-r Posts: 84Member
    Hey @SuryaSel, thanks for the interest! No, I'd say you don't need to go over the docs because I'll be explaining everything (unless I miss something unintentionally), being the first series and all. I want it to be for the complete beginner although the programming concepts I'm using will be of intermediate level. And here is the crux of it: I won't be going into those concepts in great depth, but I will link to external resources, I'm mainly going to use http://gameprogrammingpatterns.com/, but this requires you to know C++ at a basic level at least. What I always say to beginners is that if you want to learn, I mean really want to learn, not just play around, then you have to start learning other stuff on the side, like C/C++, it's something that I'll be stating over and over in my tutorial series: http://www.cplusplus.com/doc/tutorial/.

    But to complete the tutorial and have a final product at the end will not require you to know any of this as I will explain everything that I do but again, explaining how to create something isn't explaining why that something works that way so you might end up having a shallow understanding of some things, but I don't think it would be enough to actually understand how to use them entirely on your own.

    It will be up to you to decide how much of this other stuff you want to get into. But since it will be a while since I'm going to finish the series anyway, you could start poking at other great tutorials:

    http://www.gamefromscratch.com/page/Godot-Game-Engine-tutorial-series.aspx - good beginner source
    - best video tutorial series I've seen so far, also having a slow enough pace for anyone to understand!

    Give them a shot while you wait on my series :P. Also if you have any comments on what I release I'll be very glad to hear you out!
  • razvanc-rrazvanc-r Posts: 84Member
    Also, I don't think I've mentioned this, but I've posted about the tutorial series on reddit and it got some attention, a bit more than I actually thought it would get and I decided to keep that post updated and because there are too many places to take care of (twitter, reddit, facebook etc etc) I'll have the reddit post be the main "news room". If anyone is interested in keeping up with the news: https://www.reddit.com/r/gamedev/comments/538dvp/godot_tutorial_based_off_of_the_roguelike_unity3d/
  • SuryaSelSuryaSel Posts: 21Member
    Hey Raz, thanks for the info, really appreciate it. I dunno what you really mean by 'Basic Level C++', but what I know is equivalent to high-school level, you know with basic data structures like link-lists, binary trees and the like. And apart from that, what I really want to start Godot is by making dice-n-board game with minimal economy and local multiplayer like Monopoly on the PC. I was wondering if you could do a sidetrack on how one can achieve that, considering its turn-based approach. 
  • razvanc-rrazvanc-r Posts: 84Member
    @SuryaSel, by basic C++ level I mean you should know how functions work, what classes are (maybe heard of inheritence), what's the difference between member variables/functions, global variables/functions, this sort of thing.

    About the monopoly game, I think that this tutorial series I'm working on will help you out with figuring how to do turn base stuff, but the other mechanics not so much. And I'm not planning on deviating from it at the moment since it's my first tutorial series, I have to get it right :) and I still haven't played with the network API so I wouldn't be much help anyway (not in the near future at least). My plan is, as I've said at the start, to try and translate to Godot some other tutorials from Unity and the like, with ever increasing difficulty because it will help me out as much as others.

    So sorry to disappoint you about your game. Meanwhile, if you want to poke around at a fairly complex game done in Godot and is turn based take a look at this: https://github.com/w84death/Tanks-of-Freedom.
  • SuryaSelSuryaSel Posts: 21Member
    By local MP, I actually meant on the same PC :D Regardless though, I'll still follow yours and try to adapt the same concepts to my idea, with maybe a little assistance from the docs as well. 

    PS - Thanks for mentioning that patterns book. Just had a glance and looks like a great read to me. Will definintely try to read that up slowly on the sidelines.
  • razvanc-rrazvanc-r Posts: 84Member
    edited September 2016
    Part 02 is live! Grab it while it's hot :P
  • razvanc-rrazvanc-r Posts: 84Member

    Published the solution to the surprise assignment from Part 02 :)

  • TcheyTchey Posts: 52Member

    you have to make the time and if it takes longer, then it takes longer,

    Thanks, that's my main concern about tutorials i've found so far.

  • SoukiSouki Posts: 3Member

    wow, amazing work, and thanks for this.

  • razvanc-rrazvanc-r Posts: 84Member

    Just wanted to let you guys know that I published the next part of the tutorial. Player controller through FSM and collisions plus it goes through a few nice godot features that you might not know about - maybe :)

  • SammySammy Posts: 11Member

    Looking great so far, nice to see a classic Unity tutorial so easily implemented in Godot!

  • razvanc-rrazvanc-r Posts: 84Member

    @Sammy said:
    Looking great so far, nice to see a classic Unity tutorial so easily implemented in Godot!

    Thanks, appreciate the interest :)

  • razvanc-rrazvanc-r Posts: 84Member

    Hello guys! It is I, the lengthy tutorial guru :)). Right... anyway, I'm here to announce the release of the next part in which we make the Food and Soda objects pickable, so interactable with the Player object, and a few important gotchas. I go over:

    • setter & getters
    • Globals and how easy they are for passing simple data over scene changes
    • the AnimationPlayer node and how powerful it can be (this one has a gotcha)
    • a bit about signals
    • and a new (fun hopefully) assignment :)

    Take care!

  • razvanc-rrazvanc-r Posts: 84Member
    edited November 2016

    You didn't think I died on you now did you?! :D

    I've uploaded two new parts (6 & 7) which cover a few interesting new things:

    • string formatting
    • autoloaded scripts (so singletons) and why it's useful for music for example
    • music and SFX
    • procedurally (random) generated shake effect for player feedback
    • loads of fun :P

    See ya' next time (when we'll finally add AI logic :D)!

  • razvanc-rrazvanc-r Posts: 84Member

    Man... some time has passed since the last update, I was super busy this past month and these things aren't that easy to write! But I finally did it! :) Here it is in all it's glory, the 8th part of the tutorial:

    • interactive AI: AI can destroy obstacles, move towards player, can attack player, can be attacked and removed from board
    • turn based game loop with the help of coroutines, yeah!

    Doesn't sound like much! But a lot of functionality has been added in compared to other part of the tutorial so this one is a bit more technical. As always, let me know what you think about it or if you have any suggestions to improve it! It would be helpful to know, because after this I plan on going deeper (still using some unity tutorial as starter packs) but want to explore 3D and some more complex designs!

    So if you like this sort of tutorial series let me know and I'll see what I can do to come up with a plan for it!

    This is getting close to the end, one last part remains where we add all of the UI elements and add a bit of feedback for the user, game end screen and this sort of things! So stay tuned for the closing chapter! :)

    Thanks all for your attention and if you land at FOSDEM/GodotCon in February give me a shout, we'll meet there!

  • AdgenoduxAdgenodux Posts: 8Member

    great job man... congrat... B)

  • razvanc-rrazvanc-r Posts: 84Member

    Thanks @Adgenodux :), I try :P

    So as I said, this project is finishing, for my next one I'm looking at porting a 3D project from Unity. Please take a look at one of these and vote if you're interested:

    1. https://www.facebook.com/groups/godotengine/permalink/911341505669111/
  • razvanc-rrazvanc-r Posts: 84Member
    edited January 30

    So, what's up next for the roguelike? Well, finishing touches. Next I'll present a modular approach for building the UI scene in such a way that the game works with & without it as can be seen in the attached gif. Will update in the following days before FOSDEM. Stay tuned :)

  • BishopBishop Posts: 168Member
    edited February 1

    wow..amazing job on these tutorials
    Thank you very much
    p.s. ...this could be a great material for the first book for Godot engine

  • razvanc-rrazvanc-r Posts: 84Member

    After v3 I'll have think about it :). Thanks for the kind words

  • lucasmazzettolucasmazzetto Posts: 1Member

    Awesome tutorial! Thank you, i was searching for something like this.

Sign In or Register to comment.