Implementing Watering in my Farming Game!
Vložit
- čas přidán 18. 03. 2022
- Devlog video about "Home Grown", a casual farming game I'm creating using my own engine.
Support the channel on Patreon and get access to the code for this game and the city-builder:
/ thinmatrix
My previous game "Equilinox":
store.steampowered.com/app/85...
"Will You Snail?" by Jonas Tyroller:
store.steampowered.com/app/11...
Devlog about colour picking (although I talked about it in less detail than I thought!):
• Equilinox - Java Game ...
You can follow the progress of the game on my social media:
Twitter: / thinmatrix
Instagram: / thinmatrix
Facebook: / thinmatrix
Trello: trello.com/b/W3zkIJTM/farm
Email: thinmatrix@gmail.com
Background music by Jamal Green:
open.spotify.com/artist/50jTM...
Outro music by Dannek Studio:
/ dannekstudio
#devlog #HomeGrown - Hry
I realized while editing that it might seem a bit strange that I was complaining about the blocky visuals of the soil (at 9:30 in the video) when I currently have the exact same effect on the grass! I perhaps should have mentioned that I was already thinking in terms of the new graphics which will be much smoother and generally more rounded than the current visuals, so the hard transitions would look very out of place.
Also, while I'm here, the watering doesn't currently have any effect on the plants' growth, but that's what I'll be working on next week. I'm going to be implementing the concept of health for all the plants so if you don't look after them well enough they'll die!
Can you eventually create an updated version of your game engine series please?
I really like both versions of the soil, would it be worth considering keeping both versions as a toggle?
The blocky grass currently does actually look pretty cute
@@bram3367 same
does that mean that you won`t use low poly models anymore :D?
You were one of the people who got me into all of this so getting a shout-out like that feels completely surreal. Haha. Thanks su much! Great progress in this video! Love it. :)
Snail man
snail
Who else read this comment in Jonas' voice?
@@feidry I did
@@feidry Heh, glad it's not just me. :)
Don't know why but "i got the well working, and it's working well" at 5:34 got me laughing. Great devlog dude.
"Using my own engine" dude, i can never get over how impressive those 4 words are
it's nothing that is not doable, especially with a crap ton of APIs and resources available on the internet today.
@@prince5922 if you followed him for a long time you get to realize that this is actually pretty hard, as he worked on this engine for a long, long time.
if you make a engine with java it isnt about using apis and all that, this guy uses pure opengl
@eric I think he still uses the LWJGL opengl binding which has some level of abstraction feom opengl. I could be wrong about that though and it's still crazy impressive what he has made. He has accomplished way more than I ever could.
@@xCALYPTOxGaming LWJGL does provide some helpful abstractions, such as for GLFW (window management), keyboard and mouse input, etc, but the openGL itself is still as bare bones as it is if you use glut or something like that in C++.
Did this in my first year of computer science its a lot of work and its not easy to understand but totally doable. I also make my own graphics engine since.
I love this new dev log series, I really like how you took a step back from your city-builder game to working on something smaller !
I'm worried that he'll never come back to it :(
The citybuilder was getting beyond my comprehension, code-wise... so FWIW, I definitely appreciate this more humble, approachable beginning. (Not that your youtube fans should be a consideration what game you want to program...)
It would be nice if the stone tiles also darken when watered, since rocks look darker when wet. This would serve no gameplay purpose, but it could enhance immersion. Also, if you implement rain, then tile wetness will help to sell the weather effect. Imagine the whole map drying out after the sun comes back.
5:31 "I've got the well working and it's working *well*".
Nice work! Brings me back to my Java days...
Quick note re. picking: personally I prefer this picking system over using raycasts (for this use case), however something that stood out to me was your ID -> colour -> ID conversion - why not just store the entity IDs themselves inside the framebuffer instead of creating a colour out of it? That way when you read back the pixel at the mouse position the data at that pixel is already your entity ID.
I must admit I hadn't considered that! But it makes much more sense to do it like that, thanks :)
That transition at 2:11 was *slick*, well done! I always love the updates, keep it up
I saw it and I was like, damn
And the 2:45 was even cleaner
I always get excited when you upload! Wonderful update, as always.
A note on the object picking - since you are using integer IDs (I'm assuming they're 32-bit ints), you could implement this with an integer fbo format (GL_RED_32UI), that way you don't have to convert between colors and integer IDs.
Your enthusiasm at the end of the video is so wholesome. I'm so glad you're back again and healthy :)
"I got the well working and it's working well" We all have waited for something like this, it was just a matter of time.
Dude, you might have the most relaxing background music on youtube. Loved the new devlog!
This guys video style inspired me to start working on a relaxing game without using an engine. It is the best project I ever made
As a little dwarf I played a german browser game called "Wurzelimperium" your project reminds me of it. It makes me really happy.
7:33 Great! Now you can implement a disco floor as a feature for the expansion!
"I have the well working... And it's working well!" 😂
These devlogs set my wetness value to 1 ;)
Gosh now that’s an ergonomic setup! Beautiful!
“I got the well working and its working ‘well’” 🤣nice one!
This is really cool because later on you could totally add weather, and have the weather interact with the soil and the environment. Also how each plant reacts to weather individually based on its soil wetness and such! Perpetual wetness could be a thing too ~ it rained for 2 days, so this soil will stay wet for 1, or something!
A tangent idea for the terrain grass would be to implement wind by making a flow of colors on grass tiles.
I believe it would be a nice detail, rather than having a still image as the ground...
Great to see you making progress, ive missed this content a lot, especially the consistent and frequent uploads :)
I really loved the equilinox vlogs, and i must say this series is just as great :O
Thanks a lot matrix, and im happy for you getting over the health issues. Love to see it
Great progress as always - you seem far more enthused by this project and it is great to see!
As someone who is in his first season trying to start a no-dig market/kitchen garden here this game could actually be incredibly valuable as a tool for designing gardens. You could have a Propogation space mini-game for example, seed timings and plantings / transplanting within the correct real-world annual times (I appreciate climate and geolocation affects this greatly and implemeneting plant "hardyness" zones would be incredibly difficult with all the permutations it would instigate - although maybe a simple readable database for each plant type included in the game, inluding its seeding, transplanting and harvesting windows could be drawn down once in a Zone selection at the start of a new game - could almost act as a difficulty mode in a sense). Anyway, if it included multiple harvests of single beds in a year, soil conditioning, crop rotations, seasonality, undercover growing, natural pest interventions and even a closed nutrient cycle I genuinely would not only purchase it as a game but as a tool for developing my own knowledge and skills. I imagine many others would be the same.
The issue with all of the above is that you are taking your calm, enjoyable, relaxing concept from what it is and giving yourself a world of hurt over several years to try make it as real as possible.
Anyway, it is a lovely concept and very exciting to see how it is developing. Kudos!
Making good progress! Cool to see _and sigh at_ (5:28) your new additions. Looking forward to the future updates :o
I think it would be great to see a click'n'drag feature for planting/watering/etc, instead of having to perform many clicks for a large plot
Definitely. I would probably make first water can to be clickable. Maybe next step is to buy garden hose which can then drag whole area and eventually you can hire someone to do watering for you. This would give some nice progression to watering aspect of the game.
Hey,
i would love to see the crops determine the wetness. Like tomato’s need a lot of water so they wetness goes down faster. So that every crop has a water consumption value.
That Would bring a nice mechanical detail into the game.
The system you have already implemented should handle that well. If your tile knows which crop is planted in it.
Keep up the good work :)
Your videos always are a major source of inspiration and motivation.
Even tho I don't do gamedev, your videos and your work structure always motivate me to push through with my stuff :D
Hello from France :)
I just wanted to say that I really love your videos, they are such a good one to eat in front of, since I discovered your channel, I have been watching a lot of your videos for several weeks while eating, especially for the lunchtime dinner, and now your videos are my weekly dining go-to, I really enjoy the vibe and mood of your videos, it's a delight to watch! Thanks for your content dude, keep it up like that!
I like to watch your videos for a light yet inspiring video while I sip my morning coffee.
At no point did I expect to get schooled hard. Your entity picking method is brilliant and (I suspect) scales extremely well.
It definitely smacks down the spacial hierarchy with various culling ticks I've been working on. A bit depressing, really.
Once again, I have over-engineered. I will implement your concept today and see how it goes.
For selecting tiny entities: render an up-scaled sphere instead. May run into odd camera angles giving you incorrect selection, but that should be easy to mostly-mitigate by monkeying with the params which determine what mesh instance should be swapped for a sphere and how much up-scaling should occur.
the fact that this is your own engine is pretty amazing
OMG that entity selection method is genius.
It's great to see/hear you so excited about the future of this project. I think you took the right step when you discontinued/paused the development on the city builder project. Kudos!
You make it look so easy! The game is looking great, I'm excited for you.
Love these videos man - so happy you're doing well and back posting consistently!
Love the development and how you switch from a screen recording to real live recording!
That picking system is so creative! You really got me into 3d graphics, man. Keep on doing you, because its super inspiring!
I love this series, i wish i could skip to the future and watch all your future devlogs, but sadly i cant! Nice job :)
Great dev log. This project is coming along nicely. I know you mentioned overhauling the models and graphics but I enjoy the simple look as it is. Its got a calm ambience.
Great video! I am loving this series and I'm super excited to see what comes from this game!
Absolutely love following the progress on this, keep up the good work!
Love your setup!
Awesome progress on your crop growing!
What do you think about rain? This can happen sometimes (so you must also water with the can)and water ALL of your plants automatically?
Cool idea! This also made me think about plants dying from too much water, so it can become some sort of a balancing act.
agreed
@@karmandev also agreed
And have a weather forecast! make it accurate 90% of the time so you can try to plan ahead
rain system in starder walley was really good. You usually dont plan what to do depending on rain but when you can see tomorrow is rainy then you can replan your day because you have more time and energy to do so. But also it depends on what kind of systems this game is gonna have. Is there going to be a character model that will go to a place to water, is watering going to cost energy, is water going to cost any money etc.
"The well is working, and working well."
This is called a polyptoton. Other examples would be "My heart of hearts" and "Please, please me."
Almost 200k! I’m so happy you began with this project instead of the city builder game!
Great devlog and improvements! Congrats
Again a satisfying devlog, nice to see you making progress!
Great work, loving this series!
It's looking awesome can't wait to buy it when it comes out!
A nice thing to add in my opinion would be real life sounds, so for example when filling up the watering can you could try filling a metal cup or something of metal with water and record that sound. Also a nice effect on the well would be some water particles spilling out of the well on the ground and then gradually fading out.
Have been waiting for another video. Enjoy the explanation, when you said you weren't happy with the soil wetness, I really didn't understand, but seeing the code and effect, you have a vision and can code that vision.
In somehow, someway, this game seems like you! You are always having some plants, and taking care of them in your previous devlogs. It is so much fun to watch you enjoy and create this game. One like!
Awesome video! Really liking the progress of the game. Those are some really kool features that you added especially the watering feature. Instead of making the ground instantly wet maybe giving a quick fade to wet may feel a bit better, just my thought. :) The game is looking really good. Keep it up! :)
You know what would be interesting, if you ever go back to working on the city-builder you could implement some of the gameplay features of this game in it - like agriculture and trade and stuff like that.
Great video as always! Definitely think the smoother transitions between wet soil looks great, and maybe adding that same effect the grass as well if the performance hit isn’t too bad.
I think the same soft edge effect you used for the dirt shader could be used for the grass tiles. Btw, amazing devlog. It always gives me a lot of inspiration!
Your lunch was just straight healthy…and it looked good! I need the recipe!
Suggestion: Instead of filling the watercan fully you click on well it should fill continuous, like longer you hold more water is fill in the can.
Can do same thing while watering, longer you hold greater the value of wetness. Just one down side is the player might empty the full can on one soil, it can be solve with some particle effects or sound.
Or once the soil is 100% wet no more water comes out of can even if user holds button
Selfishly, I think the video could be a bit longer. But that's a compliment as I really enjoy watching your enthusiasm and passion in programming and game development. Thank you for sharing this with us.
later down the road you could add different weather which will water your plants as well if it rains
such a good series and such good content, another great video
glad your well works well
Well that the well is working well. Well done!
Lookin' good! I think it's _awesome_ that you make your own engines for your games :)
This seems so relaxing, I hope to create this working environment for myself.
Instead of rendering the tiles per mesh and passing neighbouring data in to the individual instanced calls, you could make a wetness mask that you use as input when rendering the terrain, or maybe the entirety of the soil tiles, or even as input to the instanced call.
this game is going pretty good, great job
Im excited to see the graphics improvement!!
A possible optimisation to the smoothing between tiles would be to have each tiles be 16 sub tiles as far as the gpu is concerned. The cpu works out what the correct colors are and you could use it to do custom curves. For example the centre 4 are the "correct" color and the outer tiles are a gradient to the next tile.
This is amazing. Ill have to come back to this but im going to check your channel out for sure.
Smoother weetness idea: It would be more natural for watering to affect neighbor fields. In RL water will not stay in the planned area. It will soak though the ground. The update would not be in the loop, but in the watering tool, which shoul be used less often.
I'm not sure, if it is the efficiency you are looking for. But maybe this angle can help find a solution.
"I've got the well working, and it's working well"
For the wetness, might be worth having a point filtered texture that your objects samples in world space uv’s instead. 1 px = 1 tile. Then you have a shader that generates/updates that texture when needed so the data about the neighbors when you “box blur” it never has to be sent to the GPU because its already on it. Cheers! :)
You could use the texture for the whole soil tiles. And if you need to change the color for some tile you may write required color to the texture with glTexSubImage2D which match that tile. So for smooth borders you just need to setup linear magnitude filter.
Idea regarding the Shader:
The basic assumption is that most soil tiles are surrounded by other soil tiles.
So if that is not the case, only send the information of tiles that are not soil.
The Shader will "assume" that nanoring tiles are soil unless other information is sent to the shader.
Idk what you've done. But this editing is superb
amazing work!
You should make a cooking channel. Im always suprised by how good your food looks and I always wanna try it myself 😂
Blending between tiles looks really smooth! :)
your approach to implementing the soil shader is the right one! i dong think it can be more efficient than that.
You could implement the soil wetness as a texture. Either a global one (which of course uses a lot of memory), or a local one, where each coherent set of soil tiles has a texture. Looking at neighboring pixels is then just a texture lookup where you need to store the pixel coordinates, which should not take more than maybe 4 bytes (16 bit index per axis).
This is what I was going to say :)
Always nice to return to this channel. It always reminds me of staying back from game development - i just would suck up all of my available lifetime. Nevertheless - good work!
You could use an SSBO of wetnesses and order the wetness values by the render-instance order of each ground tile. Then you could render all the dirt tiles in one draw call.
i love the watering mechanic!
you could expand apon it by giving your well a water level, this water level rises over time but is deplepleted when you collect water from it with the watering cane.
a water level in the well mechanic could then be used to balance any sort of automation mechanic you might decide to add in, like water sprinklers or employees who water the crops for you (employees could be balanced out by costing wages to maintain)
Love to see an indie game developer using his OWN engine! It looks great so far :)
Great job! keep going💪
Maybe a way to upgrade the house would be nice.. it could unlock new crobs and stuff and potentially in the future some exotic fruits and a Glasshouse
The lunch looks tasty 👀, the code as well haha. And I like the outside clips, it's another atmosphere, the combination of food, work, and nature.
This is looking great. I probably would set it to holding the mouse button rather than endless clicking and it gradually effect wetness over time - not instantly set to 1. The player can then move their cursor a bit like watering. Maybe it could effect multiple tiles wetness within a circle affect area.
Love the series, and it's great to see you're developing something you enjoy again.
Just a thought about the well, what does it actually add? If you have plans to add mechanics later on ignore me, but currently just clicking on the well every now and then adds no challenge and isn't exactly a fun mechanic.
Potentially instead of using it to instantly fill the can, maybe have each well they place just constantly increase the can's water over time. That way players need to make sure they are watering things constantly or their can might not fill up fast enough. Not saying that's the best idea, just my first thought.
The highlight of my day is seeing these videos come out, thanks
Also, I think that you should add on to the watering system because you can just keep watering and then take less than a second to refill it. Maybe use like a hose on the side of house to refill it so that you can do a water bill?
Yeah and maybe as a more expensive item there's a sprinkler which would water a certain number of tiles automatically, but costs to run
Wow just saw your videos, keep up with these videos I enjoyed watching them
Game looks great so far! Maybe you could have a farm side shop which you can upgrade over time.
Nice transition at 2:10! 💪💪♥️
I am soooo going to buy this game! Hurry up! :D
Your excitement comes across with the daily logs. It's not really my cup of tea; but watching your journey is awesome.
Also bought Will you snail. I'm terrible at it!
this is amazing!
For the soil watering you could do a circle around the plant so that way you would need to use that much of the GPU calculations, that way you would have the edges not watered (light brown) and only around the plant you would have the dark brown color.
Home Grown is starting to look awesome, ThinMatrix! Nice :D
Love this!