Implementing Watering in my Farming Game!
Вставка
- Опубліковано 18 бер 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 - Ігри
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. :)
"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.
Don't know why but "i got the well working, and it's working well" at 5:34 got me laughing. Great devlog dude.
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...)
5:31 "I've got the well working and it's working *well*".
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.
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 got the well working and it's working well" We all have waited for something like this, it was just a matter of time.
"I have the well working... And it's working well!" 😂
7:33 Great! Now you can implement a disco floor as a feature for the expansion!
As a little dwarf I played a german browser game called "Wurzelimperium" your project reminds me of it. It makes me really happy.
These devlogs set my wetness value to 1 ;)
Your enthusiasm at the end of the video is so wholesome. I'm so glad you're back again and healthy :)
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
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.
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.
“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!
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 :)
Dude, you might have the most relaxing background music on youtube. Loved the new devlog!
Making good progress! Cool to see _and sigh at_ (5:28) your new additions. Looking forward to the future updates :o
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
"The well is working, and working well."
This is called a polyptoton. Other examples would be "My heart of hearts" and "Please, please me."
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.
Gosh now that’s an ergonomic setup! Beautiful!
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.
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.
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
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!
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.
the fact that this is your own engine is pretty amazing
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!
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!
Great video! I am loving this series and I'm super excited to see what comes from this game!
Love these videos man - so happy you're doing well and back posting consistently!
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.
You make it look so easy! The game is looking great, I'm excited for you.
Absolutely love following the progress on this, keep up the good work!
I love this series, i wish i could skip to the future and watch all your future devlogs, but sadly i cant! Nice job :)
OMG that entity selection method is genius.
Love the development and how you switch from a screen recording to real live recording!
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.
It's looking awesome can't wait to buy it when it comes out!
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.
Awesome progress on your crop growing!
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!
That picking system is so creative! You really got me into 3d graphics, man. Keep on doing you, because its super inspiring!
Love your setup!
Great devlog and improvements! Congrats
You should make a cooking channel. Im always suprised by how good your food looks and I always wanna try it myself 😂
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! :)
Almost 200k! I’m so happy you began with this project instead of the city builder game!
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.
later down the road you could add different weather which will water your plants as well if it rains
Great work, loving this series!
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.
Im excited to see the graphics improvement!!
Lookin' good! I think it's _awesome_ that you make your own engines for your games :)
Again a satisfying devlog, nice to see you making progress!
glad your well works well
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.
This is amazing. Ill have to come back to this but im going to check your channel out for sure.
This seems so relaxing, I hope to create this working environment for myself.
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! :)
such a good series and such good content, another great video
this game is going pretty good, great job
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.
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.
"I've got the well working, and it's working well"
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 approach to implementing the soil shader is the right one! i dong think it can be more efficient than that.
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.
Blending between tiles looks really smooth! :)
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 :)
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
Your lunch was just straight healthy…and it looked good! I need the recipe!
amazing work!
I don't want to kibitz, but I do want to say that I personally like the art assets as they currently are. I would definitely enjoy playing a gardening game that had this "placeholder" art as the actual art.
Well that the well is working well. Well done!
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.
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.
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!
Idk what you've done. But this editing is superb
Wow just saw your videos, keep up with these videos I enjoyed watching them
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)
Great job! keep going💪
Hi, ThinMatrix I want to recommend you add some waves to border between wed and dry fields, like sinusoide ore perlin noise. It will make it more attractive. ;)
Love to see an indie game developer using his OWN engine! It looks great so far :)
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!
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.
Game looks great so far! Maybe you could have a farm side shop which you can upgrade over time.
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.
I know it is quite difficult to do, but I would love to see some kind of global illumination or ambient occlusion. That way you would have very nice soft shadows under the plants, and you could have day/night cycles.
I am soooo going to buy this game! Hurry up! :D
Floor tile optimization: treat them as cellular automata, there are lots of existing algorithms to quickly calculate a simultaneous update of even millions of cells on a single CPU so that would save you having to do any calculations in the shader since the wetness probably won't update every frame (or the shader can just blend the existing values with a preset gradient). That would also make it easier to implement some of the more complicated suggestions here.
Look up Golly for examples of implementation tricks (though their full system will be overkill for just a few tiles)
this is amazing!