@@Enigma758 that's true, I could have mentioned it. In the context of using an Arduino pro micro you don't need to add one as the pull-ups are built in
Good evening my favorite genius, friends, I'm bothering you again to ask for your help. I made a Matrix with 3 "joysticks" of 5 positions, in rr_Configurator, the buttons are working perfectly, but Windows doesn't recognize all of them, do you have any idea what it could be? It still doesn't include the diodes, could that be why? (Sorry for the English, it's Google Translate)
@@OgioniBH if it's recognising some but not others, and they're working in the Configurator, I'm guessing you numbered them higher than 32? Windows won't recognise higher than 32
@@ahmetttt10 if they are all connected corrextly yes. I recommend testing it out first, the firmwares a bit dated now and I'm not sure how it holds up with all the updates Arduino has had
25xbuttons + (4x units)Thru-hole 5-way Navigation switch (6pin -Product ID: 504-) how can we connect the buttons in this way. So it has 6 pins (5 way navigation swtich), I guess one of them is gnd? I couldn't find a source anywhere.
@@ahmetttt10 those guys have 1 common pin. You need to find that and connect it to ground and the rest go to different digital pins. YOu can connect them in a matrix, just consider them to all be in the same column
@real_robots so the column pin (shown in green) will be connected as Gnd (common pin). I will connect each of the other different legs to the Row pin and add diodes to the ends ? So will I include the potassometer in this matrix? According to the FreeJoy project
if there are multiple of the sprites on top of each other and you click all of them trigger how do i make it such that only the top most sprite runs code?
Hey man, just wanted to say that I appreciate so much that you link a specific commit in every video. I do some stuff differently (I use actual terrain instead of just tiles, some other small things) and being able to just browse files reeeeeeally helps. Thanks so much for the series!
Amazing video series! Can't wait to see the following videos, I was dying to get started with 3D but wanted to learn more about what goes behind the scenes rather than just placing an asset in the engine and be done with it, this was exactly what I needed! Keep up the great work man!
If you want to do this on the GPU instead of the CPU, create a MeshInstance3D with a SphereMesh. Attach a SurfaceMaterialOverride shader with the following GLSL: shader_type spatial; uniform vec3 min_col : source_color = vec3(0, .3, 0); uniform vec3 max_col : source_color = vec3(.8, 1, .8); uniform float magnitude = .1; uniform vec2 seed = vec2(0.); uniform sampler2D tex_distortion : source_color; float rand(vec2 co){ return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453); } void vertex() { VERTEX += NORMAL * texture(tex_distortion, UV + seed).rgb * magnitude; } void fragment() { ALBEDO.r = min_col.r + (max_col.r - min_col.r) * rand(seed); ALBEDO.g = min_col.g + (max_col.g - min_col.g) * rand(seed + vec2(.2)); ALBEDO.b = min_col.b + (max_col.b - min_col.b) * rand(seed + vec2(.3)); } That's all there is to it. Make the texture seamless with a low frequency then adjust the seed and magnitude vars as desired.
Wow this is really interesting! One could apply the same ideas to make rocks and other features. I will be trying this out tonight. I've been thinking about this lately and I was wondering if it would be possible to generate things like this but with more of an organic appearance, like the rounded fleshy shapes of an alien planet. Perhaps it could be done with shaders. And I wonder if one could join several of these together. I was looking at metaballs on Shadertoy. If you could line up a row of these with various properties with the right shaders, you could maybe get things that look like strange worms/creatures or tree roots, generated with code.
at 34:46 when you realized you forgot to divide by the tile_size, I ran into this a few times as well. I found that you can do terrain.local_to_map(position) instead of position / terrain.tile_set.tile_size and the function takes care of the conversion.
@@DudaWas I'm just toying with 3d at the moment. I'll end up either returning to the 2d version, or else porting what I've done so far into this new 3d world. Another option would be to keep the voxels, but only have 2 z levels and do like a 3d rendered version of rimworld, with the single ground level and rocks that can be dug at
@@DudaWas That's actually one of the main reasons I wanted to move to 3d, so I could make flowing water like in Timberborn. The granddad of this kind of game, Dwarf Fortress has flowing water and lava as well. Of course I'm not sure how hard it is yet, I've not done any research on it at all.
really neat series! I'm coding along with you and was curious on how one would get the terrain to be smooth rather than blocky (more like Astroneer rather than Minecraft).
An error occurred while uploading the sketch. That is all I am getting. Same thing happens when uploading the basic blink test file. I can't upload any files when using mbed os rp2040.
It's been a while and I don't have the Arduino IDE set up in front of me right now. But there are two main choices for the rp2040 board in Arduino, try the other one. Only one has the USB HID stack that this library relies on
idk why i’m watching this i don’t even know how to code but your voice is super relaxing and you showing your thought process probably helps a lot of people that are learning so keep it up man good shit
i'm very curious how you'll implement lighting. most people use in-engine directional lighting but i'd like to see the "original" minecraft way of handling it. i love these videos man!
@@real_robots if I recall correctly, lighting in Minecraft on a block is defined by an integer value clamped between 15 and 0, and the value decreases from the source of light by 1 every block
i've been bingeing on minecraft clone content over the last week and this is the best explained version of them. thank you for you effort and please go on!
Using just the sprite2D was nice, but for me, that detected every click whether it was on the sprite or not. I added an if statement to fix that. extends Sprite2D func _input(event): if event.is_action_pressed("click"): if self.get_rect().has_point(get_local_mouse_position()): print("clicked on the sprite")
I just wanted to say your godot videos are some of the best ones I've found or watched. I hope you're able to keep this series going for a while (at least to completion!). You're one of about 3 channels I actually set up notifications for so I could keep up with new vids.
Thank you for the awesome tutorials! Your videos are straight to the point, and including the code separately is a big bonus (my computer can’t handle super high res video so I can’t always read the code in the video)
@@RedWitherITA saving system for these big, randomly generated maps is interesting, it's pretty inefficient to save everything, so I'll probably have a way to flag things that have changed since generation and only save those since everything else can just be regenerated from the seed.
@@hodayfa000h I don't think there's a way to generate it instantly, it's actually probably going to get slower in the future when an extra pass for simplifying the geometry, adding trees etc is added. The actual terrain generation will probably be hidden behind a loading screen in the end. I'm not sure if I did it in this video or not, but you can also generate only so many chunks per frame and spread out the job so the computer doesn't freeze up.
You should check out 'Voxel Tools' which is a godot plugin that already does a lot of this. Adapting that may give you a head start on the voxel stuff!
It looks great! Would be interesting to add water too. Overall I think making it 3D makes it a much more interesting project than just copying Rimworld directly. Even if game objects are just billboarded sprites.
For really large generation you could try moving the generation to the GPU with a compute shader. There I find it's easy to use GodotExtension and Rust (or C++, etc.) than GDScript directly though as it's easier to pass the data through when you have structs and vectors that naturally map to PackedArrays.
Thanks for the awesome tutorial! RU-vid actually recommended this video almost the same day I got the idea to try making a voxel game, so that's something. I sabotaged myself so many times while making this and spent an hour troubleshooting when it was just the face_count variable being in the wrong place :P
This is the rimworld series, I'm experimenting with switching it over to 3D. I might go back to 2D, or else end up porting what I've done so far to 3D so I can have z levels.
@@jRsqILVOY It shouldn't be too hard, just have to add the connections between the points as well as the points. Finding the connectable points is just a matter of checking the surroiunding blocks, similar to how I'm checking surrounding blocks now to see if I need to draw faces there.
Your favorite friend that you can pause. Man. I am this far in and haven't subbed? I feel like an ass now. Anyway, unpause and back to following your tutorial/exploration.
Question: the gitlab says that the ESP32 can be Bluetooth only. Does this mean that you can’t use the device (once complete) with a usb cable and you have to use Bluetooth to connect it to a pc? HID master devices ATMEGA32U4 (eg. Arduino Pro Micro) ESP32 (bluetooth only, no USB HID)
@@real_robots I am trying to upload the firmware to a esp32 (Freenove ESP32-WROOM Board), and i'm getting this error: "error: #include nested depth 200 exceeds maximum of 200 (use -fmax-include-depth=DEPTH to increase the maximum) 25 | #include <Preferences.h>" any idea what i can do to fix this?
OK, I'm finally caught up - bring on the new videos :) Thank you so much for doing these. I can't speak for everyone else, but I'm really getting a lot out of them!
I have been following along. The font is tiny, but its a feature. I make mistakes, break the code and learn better how it works and where I can improve it later. I am 61 git commits in already. Yeah, using git to keep up.