![Real Robots](/img/default-banner.jpg)
- 54
- 235 211
Real Robots
Registrace 2. 04. 2020
How to Make Rimworld: Grouping Build and Delivery Orders
Previous Video: Clicking and Bug Fixing: czcams.com/video/LKh0XeiSy8M/video.html
Patreon: www.patreon.com/realrobots
Discord: discord.gg/jE2G6cJfXv
Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/a7f28d2d321a381814c1b3c1ee30417971551688
In this video I finally get to add one of my favourite little features in Rimworld. When you lay down a whole lot of build orders, pawns don't just do them one at a time, they'll collect as much materials as they can and deliver the lot simultaneously. Its a small thing but it adds a lot, and it seems really awkward and robotic when the pawns can't do that.
-----
In this series I'm making my own remix of Rimworld, or any similar top-down colony management/strategy game.
Puzzling out how to make a game you know is a great way to learn, we're obviously not going to make an exact copy, but we'll develop a lot of the features that make the game, and maybe even spin it off into something unique.
00:00 Intro
01:46 Remembering how the task system works
03:58 Grouping similar delivery tasks
14:38 Repeating the gather resource task
19:14 So Close!
20:35 Adding items to hand, rather than replacing
22:38 Moving on to repeating the dropoff task
Patreon: www.patreon.com/realrobots
Discord: discord.gg/jE2G6cJfXv
Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/a7f28d2d321a381814c1b3c1ee30417971551688
In this video I finally get to add one of my favourite little features in Rimworld. When you lay down a whole lot of build orders, pawns don't just do them one at a time, they'll collect as much materials as they can and deliver the lot simultaneously. Its a small thing but it adds a lot, and it seems really awkward and robotic when the pawns can't do that.
-----
In this series I'm making my own remix of Rimworld, or any similar top-down colony management/strategy game.
Puzzling out how to make a game you know is a great way to learn, we're obviously not going to make an exact copy, but we'll develop a lot of the features that make the game, and maybe even spin it off into something unique.
00:00 Intro
01:46 Remembering how the task system works
03:58 Grouping similar delivery tasks
14:38 Repeating the gather resource task
19:14 So Close!
20:35 Adding items to hand, rather than replacing
22:38 Moving on to repeating the dropoff task
zhlédnutí: 133
Video
Clicking and Bug Fixing
zhlédnutí 340Před 16 hodinami
Next Video: Grouping Build and Delivery Orders: czcams.com/video/JlEmnigYbFo/video.html Previous Video: Building houses out of sticks: czcams.com/video/yfmaU8QmTuM/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/b65661955a313c42c5b769c8a67bc3006649f5ca I noticed that walls were being built that definitely weren...
Making Rimworld in Godot: Building houses out of sticks
zhlédnutí 828Před 14 dny
Next Video: Clicking and Bug Fixing: czcams.com/video/LKh0XeiSy8M/video.html Previous Video: I'm Spiraling: czcams.com/video/PkgoHL9u2uM/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/32bf523f0ffc4a9db76d1e15f1b3f15d3705bc7b I finally get the chance to build houses out of wood. In this video I update the simpl...
Ripping Off Rimworld Part 12 - I'm Spiraling
zhlédnutí 584Před 21 dnem
Previous Video: Drawing Harvest Orders: czcams.com/video/ 12vxxhx6M/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/d3262ecbb4da04aeff9dfc89480cd981064effd3 In the previous session we made the selection rectangle for dropping harvest orders, just grabbing everything in the rect and adding the orders to the queu...
Making Rimworld in Godot: Drawing Harvest Orders
zhlédnutí 876Před 28 dny
Previous Video: The Refactoring: czcams.com/video/QUbwsfOCil0/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/3a61daa0c01c31660107dfe3f73e85441a0fdb5e Before I can call the construction system complete I need to implement construction components, eg. before a pawn can build a wall, someone has to deliver the wo...
Making Rimworld 10: The Refactoring
zhlédnutí 816Před měsícem
Next Video: Drawing Harvest Orders: czcams.com/video/ 12vxxhx6M/video.html Previous Video: Constructing Walls: czcams.com/video/7IPVBAoTqkU/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/7a41fa50ffa36d62a8bb4a0aafa58f26c4fce61c It had to happen eventually, some of the old code wasn't working for me so I got ba...
Pawns constructing walls: Making Rimworld in Godot 4 : Part 9
zhlédnutí 582Před měsícem
Next Video: The Refactoring: czcams.com/video/QUbwsfOCil0/video.html Previous Video: Drawing Build Orders in line in Godot 4: czcams.com/video/jBb8eLC9RKw/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/bb153267eb563500dfa6290701d02ffee16ef919 In which I extend the task system to allow AI pawns to construct wal...
Drawing Build Orders in line in Godot 4
zhlédnutí 517Před měsícem
Next Video: Pawns Constructing Walls: czcams.com/video/7IPVBAoTqkU/video.html Previous Video: How to make Rimworlds UI in Godot 4: czcams.com/video/MVdmCehoIUg/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv Construction Tileset: realrobots.net/files/youtube/construction_tileset.png Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/b341e95fbb81a7800f74991b346d...
How to make Rimworlds UI in Godot 4
zhlédnutí 1,1KPřed 2 měsíci
Next Video: Drawing Build Orders in line in Godot 4: czcams.com/video/jBb8eLC9RKw/video.html Previous Video: Harvesting Resources in Godot 4: czcams.com/video/H02sB84EEmA/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/7c8f2292c9e244d644002aa19fdd6a44555d876a Before we go really deep into the meat of ripping of...
How to click a sprite in Godot 4 - The Easy Way and the NOT Easy Way
zhlédnutí 1,2KPřed 2 měsíci
Just a quick one I wanted to cover, hopefully there's still a few people out there who don't know how to do this so my effort won't be wasted :-) The best way to make your sprites clickable is covered right at the start, but I also go into the trickier way, programmatically making complex polygon colliders around your sprites. Not THAT useful for buttons, but a good thing to know for when you n...
Harvesting Resources in Godot 4
zhlédnutí 1KPřed 2 měsíci
Next Video: How to make Rimworlds UI in Godot 4: czcams.com/video/MVdmCehoIUg/video.html Previous Video: Task System in Godot 4: czcams.com/video/p6utAZMkZeg/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/c060ec2185f89063f28677db70ef98575caa3df8 Today we're going to keep working on our task management system, ...
Pawn AI - Task System in Godot 4
zhlédnutí 1,8KPřed 2 měsíci
Next Video: Harvesting Resources in Godot 4 Previous Video: Making an Item System: czcams.com/video/roSsChfW1P8/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/ccb526bcf725741c034b1d22cd2585efbb91ea6a In this video we'll start on the Pawn AI, which will be based on tasks that will be assigned them. The task wil...
How to make an Item System in Godot 4
zhlédnutí 1,7KPřed 2 měsíci
Next Video: Pawn AI - Tasks: czcams.com/video/p6utAZMkZeg/video.html Previous Video: Camera Pan & Zoom: czcams.com/video/TWCFcv_Poc0/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv object_tileset.png: realrobots.net/files/youtube/object_tileset.png Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/1ee8ef79c7ac03e56628dbece33f855c2e090523 In this particular vid...
How to make a 2D Camera Pan & Zoom in Godot 4
zhlédnutí 2,7KPřed 2 měsíci
Next Video: Making an Item System: czcams.com/video/roSsChfW1P8/video.html Previous Video: Pathfinding & Pawns: czcams.com/video/PIPlWCyHf7s/video.html Patreon: www.patreon.com/realrobots Discord: discord.gg/jE2G6cJfXv In this particular video we'll give our camera the ability to pan and zoom. Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/1ee8ef79c7ac03e56628dbece33f855c2e090523 In thi...
How to make Rimworld in Godot 4: Pathfinding & Pawns
zhlédnutí 4,6KPřed 2 měsíci
Next Video: Camera Pan & Zoom czcams.com/video/TWCFcv_Poc0/video.html Discord: discord.gg/jE2G6cJfXv Previous Video: Terrain Generation czcams.com/video/7CuoC_pB9-k/video.html Full Code: gitlab.com/realrobots/rimworldripoff/-/tree/81e73e4d0f0c45fa2b661ad2fe8beb35871fa981 In this series I'll show you how to make your own remix of Rimworld, or any similar top-down colony management/strategy game....
How to make Rimworld in Godot 4: Terrain Generation
zhlédnutí 9KPřed 2 měsíci
How to make Rimworld in Godot 4: Terrain Generation
Hydrogen Experiment 2: Sneaky test run
zhlédnutí 121Před 2 lety
Hydrogen Experiment 2: Sneaky test run
Pico RP2040 HID Joystick Library for Arduino IDE
zhlédnutí 31KPřed 3 lety
Pico RP2040 HID Joystick Library for Arduino IDE
WIP: CandySorter Homing and Hopper feed test
zhlédnutí 249Před 3 lety
WIP: CandySorter Homing and Hopper feed test
Prototyping a game in Unity3D: Farmer Sim Pt 1
zhlédnutí 1,2KPřed 3 lety
Prototyping a game in Unity3D: Farmer Sim Pt 1
Instructions - Joystick Grip Construction and Wiring
zhlédnutí 4,2KPřed 3 lety
Instructions - Joystick Grip Construction and Wiring
Testing out an early version of the kit picker
zhlédnutí 798Před 3 lety
Testing out an early version of the kit picker
RealRobots Configurator - Build your own controller with NO CODE
zhlédnutí 10KPřed 3 lety
RealRobots Configurator - Build your own controller with NO CODE
Excellent quality as always. Excited for more!
You legend! I was planning on adding this today, thank you!
I'm a few videos behind, but thanks for keeping up with this. I love it!
Perserverance! 🎉 thanks for all of this RR.
Hi there, thank you for this great walk-through; could you please specify what HID libraries are needed in order to run this code? i think i dont quite have the right set of HID libraries set up for my arduino and the file doesnt run on my system.
For your board, you need to use the "Arduino Mbed OS RP2040 Boards"->"Raspberry Pi Pico" which you can get from the boards manager. It includes the lower level HID libraries that my library uses.
What might be a bit easier than importing the buildables directly via folder is to make a data class or helper class .. not sure what the correct term is: class_name Buildable extends Resource @export var name : String @export var tile_map_index : Vector2i @export var placing_mode : UI.PlacingMode @export var blueprint : Resource and then for the item manager: @export var buildables : Array[Buildable] Now you can add and create objects with name, etc. (which also allows images and whatnot) directly on the editor window. Which is great because you do not need to instantiate them to get to variables like name, tile_map_index, etc.
Not a bad idea. My plan was to have a JSON file that just lists all the items, based on a few prototypes that I'd have designed in the editor. Your way might be better though.
Man, this is awesome.
Great video! Not sure if you address this in later videos, but to keep code separated and to visualize the tasks waiting in the queue, I made my version of the Pawn AI as a state machine where each task is a "state" that uses Godot signals to trigger when to switch to the next task. It also seems to avoid continuously entering the FindItem task that was happening at the end of the video. Either way, I'm excited to keep learning from you!
I have the micro uploaded with the software however now when I open the rr configurator I either get no response on any of the pins or I get handshake failure. Any idea what I am doing wrong?
does using a matrix introduce any additional latency, compared to wiring each button directly to its own pin? (like by having to run the rows/columns check) (for my project I'm planning on using 30 buttons, if that's relevant, for a project where minimal latency is ideal) or if there are any other trade offs that might warrant searching for additional input pins over using a matrix?
doing a matrice will always be slower, but when I tested it with 128 it was still good to me. The only time I got to latency I could notice was when I had that many on a subdevice, so i had to wait for the matrix to be read, then passed to the master device, then passed to the computer. 30 buttons you should be golden
@@real_robots thank you!
Excellent tutorial. Thank you very much
Hi, I have printed all the parts and spent today assembling. I have uploaded the code to the Arduino Micro's however when I open the RR configurator I get 1s and 0s jumping backwards and forwards and on the analog inputs the values just run up and down and it doesnt matter what I do to with the buttons... Can you help please...
@katherine2721 already pointed out using _input(event) instead of process. For me this resolved a situation where my UI would shake as I was dragging the rest of my screen around. My UI is placed as a child of the Camera2D to resolve issues with zooming
Hey man, started following this series a couple days ago, stopped here (because I need to sleep lol). I'm very much a novice to Godot (being working with it maybe a few weeks now) and this series is well paced! You do such a good job explaining things; one of my favorite things you do is show your mistakes, how/why they happen, and how to fix them. I see you in the comments taking advice or responding to fixes people have come up with, and it's just really encouraging to see. Thanks for the wonderful series and I look forward to watching more!
2:56 You forgot FindTable (Thank you for this series!)
great series! I'm late to the party but I'm moving fast! thank you ver much!
I don't know if I missed it at some point but I haven't seen any kind of tearing or flickering in your tile map. Ive tried to use both square and hexagon tile maps with aliasing and without aliasing and at certain zooms there are always some kind of artifacts or flicker or pixels going dark. I have seen so many posts about it and tried all of the normal recommended things in the settings and import settings. Just wondering what your experience with this is because I feel like I cannot create a tile map that doesn't have visual artifacts.
Excellent, finished the series a few days ago; great to see the series continue!
really nice seeing the bug fixes and how we always can improve upon what we already had working, keep it up!
From where can I downlad the librays "InputClass.h" and "encoders.h"
Those aren't libraries, they're part of this code. You have to unzip the whole project into a folder, you can't just run the main .ino file by itself
I just finished your first video of the series right as this one came up! I'm excited to implement some of this stuff in my starship management game. Keep up the good work!👍
Nice timing! Good luck with your game
The whole series has been incredibly helpful. Can't wait for more!
It's really helpful! I want to ask that is it necessary to have requirement documents and things like UMLs before coding the game? I found little tutorials have these kind of things but it seems very common in software engineering
UMLs and similar design documents are not something I've ever bothered with for solo stuff. I have found them really useful when working with a larger team on complex, interacting systems though. I do think it depends on what works for you though, some people work better with a higher level design roughly mapped out before they begin, I prefer to code quick and test often. It does mean that old stuff will get rewritten quite often though, as I've already had to do in this series.
@@real_robots thank you!
spiraling is a deterministic algo if you're not scared of a bit of uncertainty you can try this one: func randomFreeCellAround(pos: Vector2i) -> Vector2i: var list = [] var offset = [Vector2i(-1, -1), Vector2i(0, -1), Vector2i(0, 1) ...] # NW, N, NE, W, E, SW, S, SE for off in offset: if isFreeCell(pos + off): # if neighboring cell is free --> add it to the list list.append(pos + off) if len(list) > 0: return list.pick_random() # return random free neighboring cell else: return randomFreeCellAround(pos + offset.pick_random()) # try to search around random neighboring cell yes, there is a (negligible 1/8*1/8=1/64) chance of going back and forth and yes, it requires to check availability for all of 8 cells on every step but the outcome is more evenly distributed and nice looking
Amazing work! Thx for sharing. :))
First Thank you very much for this. I have an old madcatz joystick and want to mod it. Till that happens, as i am new on micro controles, how can I "unload" this code and bring my pico back to default?
You can write new code to your pico whenever you want. If you want it to accept UF2 files you have to reset it while holding the boot button
@@real_robots Thx. Interesting, if I use arduino IDE I have a delay on bottons. But using your web configurator it doesn't have the botton lag. Any ideas to a beginer?
@@jarvex are you using your own code in the Arduino ide? My guess would be you've got some inefficient code, can you post it somewhere I can see?
@@real_robots No sir. Its yours, I just change the pins and bottons. I tested both: the UF2 file, wich is no delay and the one loaded with arduino IDE, wich has the lag. I'll check it again, I'm kinda busy now. Just reporting. My board, by the way, its that chinese one with reset botton and RGB LED. Cheers!
@@jarvex that's weird, thanks for the heads up
a yo thats wild
Some more complex food types later on... (cannibal)
YES, I'm keen to get the basic simulation and controls set up so I can start playing around with adding seedy options that none of us upright citizens would ever make use of
You can use get_point_weight_scale from the A* search since it has all the values stored instead of calling the GetTerrainDifficulty and looking up the data on the tile map.
I stopped copying your funcs and methods, and started creating my own, to a stage that our projects are completelly different. But it was all only possible, because you helped me when I didn't know a thing about programing, so I have to thank you for all your support, through your videos and by the quick responses in the comments, you helped me a ton, tahnk you so so much! I always pass by your channel to see how you are handling some of the thing that I may have to handle to, so I can always keep learning from you! :)
Thats awesome mate, I'd love to hear/see what different solutions you came up with. It's cool to know I've been even a little bit influential in having other things created than my own.
I spent 2 days trying to figure this out. This video gave me the answer it 12 seconds. I'm laughing so hard right now.
@@gzz8913 I found out this method surprisingly late as well. I used the collider based method for ages before I found the simpler, pixel based option.
But how to make a Rimjob?
I said it already but this series is incredible. I like how you are creating everything in a very logical way such that functions you've already written can either be called again or used as a blueprint for a new feature. This series is a goldmine of tips and approaches. In planning my project, i've been noting systems and features I will need, and I had been wondering how to achieve a selection rectangle. However, I didn't realise it could be as straightforward as drawing four lines. Your explanation was really clear. I had been thinking about it from selecting the tiles themselves, rather than drawing on a UI layer. Looking forward to the next video.
I'm creating my game and your videos are realy helpful, waiting for the next one. I love your work !
Hey Jake, Fred here ;) Been watching this series and just wanted to let you know that you've inspired me to make my own version. I started in a gamejam last week and was able to implement most of the stuff on my own! It's funny too cause I ended the jam with what you're implementing today, so looking forward to compare with what I did! Great stuff, hope you're having fun with this, it's been really great so far!
@@AllovQC that's awesome mate, well done. Id love to see what you came up with for the game jam if you want to share it.
This series is awesome! Please keep it up!
instant sub
Ah, placing the ghost / blueprint tiles on a different layer and using this to get a list of the cells that have been drawn on is such a clever idea🙂
This series is incredible. So thorough and well explained. I'm planning a simulation game, and I can already see how the mechanics on show here will be helpful. Just by watching these videos, i've gone from a place of not even knowing where to begin, to starting to see the logic of how it will all fit together. Thank you very much for this.
Great idea for a fun series! Nice one Real Robots! Thanks for the series!
Oh, also should the link to VCS commit for this Vid 4 be: gitlab.com/realrobots/rimworldripoff/-/tree/c6b1282c62cd7507a9078922308e55a5641c3ef7/Item ??? Might just be me being slow.... apols if so.
26:30 GDScript has ternary... of sorts var a = 10 if (something) else 20
@@badunius_code a colon is needed after else var a = 10 if something else: 20 I still use traditional if statements though
@@Jeff_Auger sometimes it is bearable. When you need to initialize a variable with a conditional starting value. Rare case tho
doing gods work
There's a time and place for a proper tutorial. In your series, I'm pleased to watch someone else struggle and make mistakes. Coding isn't all rainbows and cupcakes. Still enjoying the series man. Keep it up!!
If you like mistakes then this is the video for you 😀
"I'm spiralling", So this is what happens when you start programming a RimWorld clone. Noted
Yes. Even something RimWorld adjacent. The spiraling is just part of the process.
It's a treat! I was looking out for content like this
Thank you for these! They are great!
Great stuff. It's coming along!
Hey, I'm getting stuck at 29:45. When I click, my character doesn't move and instead I get the following error: "RequestPath(): Can't get id path. Point (2, 1) out of bounds [P: (0, 0), S: (0, 0)]" So far I've figured out that Point (2,1) is the position of my pawn at the start. I've compared the code in my Pawn script to yours and it's identical. I even copied your code from GitLab just to be sure, so the problem probably lies elsewhere. Any idea what could be wrong? Help would be appreciated. And thanks for making this tutorial series. It is exactly what I was looking for!
I had a play around and couldn't get that error myself. Since you're getting an out of bounds error that so low I'm guessing that the astar_grid hasn't initialised properly. All I can suggest is go back a step and see if you can draw paths to and from where you'd expect to without the pawn complicating things and work from there.
@@real_robots Thanks for checking it out. I will give the backtracking a go to see if I can find the issue that way.
@@real_robots I found the issue. It's the same you had at 16:42. What I did wrong was I moved InitPathfinding() to _process instead of copying it. So I just had to add it to _ready as well to fix it.
Really enjoy that you have kept up with this series! Thank you for passing on this knowledge.
More? Yes, please. I can tell that you will be bigger than everybody else in the game development world here in CZcams. Please keep up and remember the wise words: "Never give up; Never surrender."