[request] Beginner 3D Step by Step Tutorial

qubodupqubodup Posts: 3Member
edited August 2016 in Tutorials
Hi,

The Simple 2D game tutorial is excellent!

Would it be possible for a dev team member or experienced godot game dev to create a similar guide, which is short, concise, standalone and would allow to create a simple, incomplete 3d game?

I recommend Lumberyard's first 3d game tutorial (Getting Started Guide at https://gamedev.amazon.com/forums/tutorials ) as inspiration:
1. 3d models, animations (tilting of model) and movement controls/gravity (script files?) are provided up front
2. Teach how to add 3d models and change properties (size, rotation, position, if possible: texture)
3. Teach how to add lights
4. Teach how to create an event area and make it manipulate something (light switch)
5. ideally it's resolution and aspect ratio independent and the code for that is also pre-provided. If that's not possible, it should target 1280x720

To sum up: the tutorial should allow you to create something simple but with a goal for the player. A lot of details should be left out, so that the tutorial can be actually created rather than forever be planned plus learning devs interested in these details can then start looking for solutions in the rest of the documentation.

I can assist with
- formatting text
- filling in the blanks (if I can find them)
- creating screenshots, cutting out the important parts, adding arrows/markers without text for i18n
- finding and preparing assets (textures, audio, 3d models [finding only, no editing, no animations] - under cc0/publicdomain terms only or including CC-BY if that's acceptable)

If you can and want to create such a tutorial - let me know if I can help.

Comments

  • justinbarrettjustinbarrett Posts: 52Member
    edited April 2017

    This is an older thread, but I do notice a relative absence of 3D tutorial materials..I am aware they exist, but I would like to say they comprise of < half of the amount of total 2d tutorials...I myself do not have a specific question at this time, but when I am looking through the api for functions etc. I find myself all over the internet for something that is either missing or more information on data that is passed etc
    ...so I second this request. I'm no beginner, but I'm fairly certain having more beginners around would be a good thing. It is not a very approachable engine currently for a new user(no experience)...if the user base grows the support generally grows as well be it features, docs or assets...etc

    the [3] tutorials I would like to see are...
    0) overview, navigation and godot methods(nodes, scenes vs objects etc).

    1) basic scripting covering basic structure and math(vectors (basic trig..maybe that is beyond the scope for a beginner, though useful)).

    2) workflow import export from external packages including animation, textures, sound and video.

    I think when 3.x is released(pre built) more people may be interested based on the flashy things...I know I am :)

  • JimBJimB Posts: 6Member

    I would like to add my support to the above suggestions, as the main reason for my interest in the Godot engine is it is one of the few engines that has more than just a minor 3d capability.
    I am also looking forward to an expansion of the programming languages as I find the current Python-esque language very difficult, I was hoping for a more "Basic" type language. ;)

  • keltwookiekeltwookie Posts: 233Member
    edited April 2017

    Well, If I can bring a few elements of answer:

    3D:

    Yes, Tuts are rare. The main reason is that 3D is a bit new in Godot's universe compared to other engines, and the experience of users is far from what could be the one of the "big" engines with their huge communities.
    So, we have to discover a lot by ourselves. Some users here, like Megalomaniak or Bishop (just an example) dive deeply into this topic and by searching their posts here, you could have precious informations.

    Gdscript

    Well, I'm not a coder myself and I could agree about the difficulty for a beginner. Having said that, the next release of Godot include a revised (enhanced?) GDscript.
    Also: Another module (named GDNative)will be included. This one is planned , among other things, to allow the importing of other languages.

    Have a look:
    https://godotengine.org/article/dlscript-here

    Waiting this, the official documentation still appears as the main source of informations.

    But I could be wrong and if someone more experienced could confirm or not what I typed above, I would be grateful. :smiley:

  • justinbarrettjustinbarrett Posts: 52Member

    OTOH it may be advisable to wait...once I get a stable 3.x build(and get off my ass) I could maybe document some of my experiences while coming to grips with it...read make a tutorial for some basics...raycasting for cameras(dealing with obstruction), simple 3rd person movement, importing etc..as I am typing this I am thinking "What are you getting yourself into?" :) but this is not so time sensative...and I will likely just deal with extreme basics...so when and if this happens I will open a new thread...I've been "almost" making games since 2001(as in near complete, never publishing) started out in blender game engine, jumped over to achnex, torque, unity3D and now here...I prefer the foss programs like GODOT and Blender...they are not seen as big players, but I assure you...they are no slouches. so...stay tuned. The best thing we can do is to make the tutorials ourselves...best way to learn is to teach..and this will help the newcomers as well.
    here is my very very first game attempt way back in 2006-2007 I think...laughable enjoy :)
    https://youtube.com/watch?v=ffHqjfaIM20

  • keltwookiekeltwookie Posts: 233Member

    @justinbarrett said:
    OTOH it may be advisable to wait...once I get a stable 3.x build...

    Yes, it could be wise indeed to wait 3.0 considering the amount of enhancements planned, and keep in mind that project made with 2.x won't be export-able to 3.x, well the most part if I well understood, especially what involves 3D stuff.
    And yes too: Stable version, thanks :)

    I am thinking "What are you getting yourself into?" :)

    For myself, as I'm a total noob, I still try to study shaders with Blender Cycles, a lot to learn and I'm far to be able to write any tut for now, I checked what has been written here and apparently, shaders with godot seems functionning about the same way.
    I don't have much experience in games building except a decent modding experience during several years (1st map for HMM2, looong time ago)
    My main skills are about sounds, music, and a certain taste for "flashy things" too ;). Once the new server sound well studied, I will try to type something usable.

    ...I prefer the foss programs like GODOT and Blender...they are not seen as big players, but I assure you...they are no slouches. so...stay tuned.

    Yeah (and maybe it's also a form of thought)! I spent one year to try game engines for my first project build from scratch, Godot was the best choice, as for Blender: I am a beginner (less than a year of practice) and I'm astonished about its capacities. Someone said here that Blender is "unbeatable for hard surfaces", so, 70% of the surfaces reflexion into a game. If Godot has only 50% of Blender calpabilities (I don't know yet, I'm focusing on my assets waiting 3.0), it's christmas time !

    The best thing we can do is to make the tutorials ourselves...best way to learn is to teach..and this will help the newcomers as well.

    Wise words sir, once again, I will do my best.

    here is my very very first game attempt way back in 2006-2007 I think...laughable enjoy :)
    https://youtube.com/watch?v=ffHqjfaIM20

    Impressive work (engine used?) !

  • justinbarrettjustinbarrett Posts: 52Member
    edited April 2017

    not to sidetrack the conversation but, it was written in "liteC" from achnex, it is C code for the most part, with ofc predefined functions from the a7 game engine and was my earliest attempt at coding or even learning to code. I don't mind the questions, but we should not be derailing this thread....if you have more questions you should probably ask in the appropriate places or send me a PM. :)

  • RREDesignsRREDesigns Posts: 5Member
    edited April 2017

    Hello everyone.

    I agree, we need 3D tutorials so bad. It's too hard to make something work by trial and error. Well, it's easy, but takes a lot more time.

    I've been toying around with the 3D engine and managed to put this thing together:

    On the way I learned a lot of cool tips, like a perfect FPS mouselook without copy-pasting some other guys' super complex code that doesn't even work, or the way to fake a bullet hit when the physics engine misses most bullet collisions, and so on. I am thinking in creating some more assets (like the buggy you see there and more vegetation + some other rigid bodies) and maybe create a tutorial with that when I have a decent, playable tech demo.

    Untill that time, I can help with anything, especially asset creation with Blender and GIMP (don't ask for Photoshop because that's not gonna happen ;) ).

    Hopefully we can get som tuts out soon. In the mean time you can check out the Tractor Trouble tut on YT, that even though is quite old, can provide very useful hints on how to use the 3D engine, asset importing and such.

    Cheers.

    EDIT: I would suggest as well to find someone who can pull a decent vehicle suspension system (or that understands well how to use the vehicle nodes Godot provides). That also applies to 2D. I already asked a user and he said he might do it some day, but didn't confirm anything.

  • justinbarrettjustinbarrett Posts: 52Member

    I am still looking into mouse look stuff....maybe you could post your findings?

  • RREDesignsRREDesigns Posts: 5Member
    edited April 2017

    @justinbarrett said:
    I am still looking into mouse look stuff....maybe you could post your findings?

    Sure. Here's all you need to know:

    if event.type == InputEvent.MOUSE_MOTION: # var delta = get_fixed_process_delta_time() # # - float() is not really necessary, I don't remember why I put it there # player.rotate_y(deg2rad(float(event.relative_x) * delta * MouseSensitivity)) helper.rotate_x(deg2rad(float(event.relative_y) * delta * MouseSensitivity))

    That's pretty much all there is to it. And definitely a lot better than this:

    yaw = fmod(yaw - event.relative_x * MouseSensitivity/70, 360) pitch = max(min(pitch - event.relative_y * MouseSensitivity /10, 45), -25) player.set_rotation(Vector3(deg2rad(pitch), deg2rad(yaw), 0))

    Now, in my tree, the root node is the expected one, a KinematicBody (or RigidBody in kinematic or character mode). Then I add a "helper" node, which is just a Spatial, and all children of the root become children of this helper. So the hierarchy is like this Player -> helper -> *all the original Player children.

    The trick is to rotate just one axis per node, so that helper is needed. If you rotate a node in more than one axis, due to how Euler rotations work, the character starts to roll eventually, which is exactly the problem with the example codes you can find out there. This on the other hand works flawlessly every time and it just requires an extra node.

    BTW, I'm adding a chopper to my game and this method is as perfect as it is for the char. No unwanted yaw at all, no choppiness, etc.

    If you need an example scene I can provide one, although I'm sure you saw the video already.

    Cheers.

    P.D. Mouse is captured in ready(), it gives more accurate input.

  • justinbarrettjustinbarrett Posts: 52Member

    so you are attaching this to a null, or vector object(a placeholder that just holds a transform) and parenting your camera to it...in turn that is then parented to your player. Is that correct?

  • RREDesignsRREDesigns Posts: 5Member

    @justinbarrett said:
    so you are attaching this to a null, or vector object(a placeholder that just holds a transform) and parenting your camera to it...in turn that is then parented to your player. Is that correct?

    No, is not. I think it would be easier to just show you. In the image attached you can see where the Spatial node sits, right between the kinematic body and it's children. I never rotate the camera.

  • nitrofuranonitrofurano Posts: 28Member

    we need tutorials as we need small ready examples to download and try out, or even both combined! for example, at least, i wanted to remake all i have at https://bitbucket.org/nitrofurano/unitysandbox/src/master/ to https://bitbucket.org/nitrofurano/godotsandbox/src/master/ (see that, on Godot, i only could drag obj files on the scenes, still no code there at all)

  • cyberealitycybereality Posts: 30Member

    Yeah, totally agree. I think the docs are very well done, but when searching for specific things on Google I have found random sites with outdated information or overly complex answers for simple things (which I was eventually able to figure out via the docs, but it took effort). So yeah, I see what you are saying.

Sign In or Register to comment.