Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411504 Posts in 69373 Topics- by 58429 Members - Latest Member: Alternalo

April 25, 2024, 04:24:54 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsEvergreen (A Gardening Game)
Pages: [1] 2
Print
Author Topic: Evergreen (A Gardening Game)  (Read 3433 times)
GaryTheWizard
Level 0
**



View Profile
« on: June 10, 2018, 05:43:55 PM »

What is it?

This is a game about caring for plants and exploration. Search the surrounding forest for seeds and saplings, then carry them back to the garden to plant, arrange, and care for them as they grow.


(An example of the planting interface.)


Game Goals

I want to make something pretty chill and simple. So I liked the idea of a game about traveling through the woods and doing some gardening. Most of the mechanics are fairly straightforward, so my main goal is to get a good look for the game. I have little experience with visual design, so it'll be fun.

Mechanics-wise, besides whats currently implemented (planting, pickups, simple growing), I wanna add some form of caretaking (watering, removing pests?), and setting up seed/sapling occurrences in nature.


(Basic pickups working.)



(An ugly little cactus growing.)
« Last Edit: June 27, 2018, 07:48:34 PM by GaryTheWizard » Logged

garytwzrd [at] gmail.com
GaryTheWizard
Level 0
**



View Profile
« Reply #1 on: June 18, 2018, 08:29:45 AM »

Tried my hand at visuals this past week, mostly modeling for new trees and environmental elements. Though I don't feel I have a lot to show for it and I'm a looong way off from where I want to be, I'm getting better with the tools and moving in the right direction.


(Some new/updated additions.)

I've been giving more thought to what I like about walking through the woods, and how to recreate that. Misty and sometimes muggy, feeling like you're in a dark enclosed environment despite the sun shining just above the trees, the odd break in the tree line to give a view of a prairie or meadow. Not much of a clue where to start to get that kind of feeling (except that last part). For now though, I want to make it more obvious that you're under a canopy than just having a shadow on the ground. Probably going to try some volumetric lighting for sunshafts and patches of fog as a start.


(Walking under some trees.)

Also thinking about the return trek in the loop of: [care for plants -> wander through the woods for new plants -> return with new plants]. Not sure if walking back through the same areas you were just in 10-15 minutes ago is a little too boring. It's supposed to be a slow game, and it may not even be a problem once I have a proper forest to wander through and playtest. Or it is a problem, in which case I'm thinking about alternate paths back to the potting area, or even having multiple potting areas spread throughout (maybe with fast travel between all of them).  Hmmmmmm...

The upcoming week is more free for me, so hoping to really update the visuals and get a lot more plants and trees modeled.
Logged

garytwzrd [at] gmail.com
GaryTheWizard
Level 0
**



View Profile
« Reply #2 on: June 25, 2018, 06:26:17 PM »

Felt like a good week. I got a number of things setup, first of which was some volumetric lighting. I used Michal_'s True Volumetric Lights, which was simple enough to add and play around with. I only had to dive into the code to get the build version to work with Metal on OSX. It also gave me a push to start looking at more shader code (something I've been putting off). Might try to modify it in the future, streamlining for just the features I need. Something to give me practice anyway.


(Some subtle god rays.)

Next was some mist and clouds. Both of these were done in a similar fashion. I setup a volume for particle systems to spawn in with varying parameters. The code for the clouds is slightly more complex than the mist, allowing for multiple spawns, wind, and selecting from a number of different cloud shapes. The mist is okay, but I really need to fine tune the clouds more.


(Feeling more forest-y now.)



I also added some simple terrain loading. Like, dead simple. Terrain deactivates if you walk far enough away from it. Walk closer and it reactivates. I'll probably change this to loading/unloading (Unity) scenes in the future to conserve memory.

Lastly I started work on the save system. Currently it's nothing more than saving player position. But I get a save file out of it, and soon it'll cover everything else important.



For next week, I'm gonna try to finish up the save system, covering not just the player but also the planting pots, plant stages, and ensuring expansion for whatever else. Then maybe adding more terrain to the world and trying to make something closer to a designed forest instead of just throwing trees and lakes down for PoC.

Or I'll take a look at optimizing, as my frame rate started noticeably dropping during some of this work. This is far from graphically intensive, but I do want it to run smoothly on my not-so-powerful laptop.

And thinking about changing the name at some point. I like Evergreen, but it feels a little generic. I dunno...
« Last Edit: June 27, 2018, 07:54:02 PM by GaryTheWizard » Logged

garytwzrd [at] gmail.com
LewisClark
Level 0
*



View Profile
« Reply #3 on: June 26, 2018, 12:48:27 AM »

Hey, this looks really cool! Love the concept.

I think a lot of people want more chill games, and a game about gardening definitely sounds pretty chill.

Looking forward to seeing where this goes.
Logged
jctwood
Level 10
*****



View Profile WWW
« Reply #4 on: June 26, 2018, 12:54:46 AM »

This looks lovely, gardening in games is dear to my heart. The mist looks very nice.
Logged

GaryTheWizard
Level 0
**



View Profile
« Reply #5 on: June 27, 2018, 09:12:14 PM »

Hey, this looks really cool! Love the concept.

I think a lot of people want more chill games, and a game about gardening definitely sounds pretty chill.

Looking forward to seeing where this goes.
I’m glad you like it! Chill games are fantastic. And it seems like a good time to mention that a very big influence for me is Eidolon, one of my favorite games to relax with.

This looks lovely, gardening in games is dear to my heart. The mist looks very nice.
Thank you! I love to garden and I really hope that I can make it fun and relaxing in Evergreen. Edit: Slipped my mind before, but Viridi is also great, done by the same group as Eidolon
« Last Edit: June 28, 2018, 09:20:10 AM by GaryTheWizard » Logged

garytwzrd [at] gmail.com
GaryTheWizard
Level 0
**



View Profile
« Reply #6 on: July 05, 2018, 02:31:53 PM »

A few things to report from the past week or so. I got the save system to a point I'm happy with. It's now capable of saving not just the player, but also all the planting areas and plants with their respective growth times. I neglected to setup a system for deleting old instances on a load (so I'm basically just duplicating everything to a saved position), because I'm not sure how I want to handle the other aspects of loading just yet.


(Saving to a location, moving the plants, and duplication loading.)

I also added some simple audio. Right now it's just footsteps and ambient birdcalls, but it gives me a starting point for how I want to incorporate audio.

The biggest chunk of my time was spent trying to optimize. Using Unity's profiler, I found that the bulk of my slowdown problems were due to how I laid out my geometry. Specifically, I wasn't taking advantage of batching or instancing, leading to thousands of unnecessary draw calls. Up until now I've been setting up everything in Unity's Terrain system, which I had heard was pretty old and outdated, but I'd decided that was fine for me, that I didn't need any of those *fancy* new features. Now I'm finding out that said features can improve performance by leaps and bounds. Obviously this is a learning process.



(Simple trees placed manually and the resulting draw and batching info.)



(Simple trees placed with Unity's terrain system and the resulting draw and batching info.)

So currently I'm working to update the shaders used by Unity's terrain system to see if I can include GPU instancing for placed trees, of which my most current roadblock is trying to including the individual color and scale of each tree instance in the GPU instancing properties. If this doesn't work out, then my plan B (and really, probably the better of the two plans) will be to build my own tree placing script for the editor that can incorporate static batching and/or GPU instancing while still making it easy to mass place trees with varying shades and sizes.
Logged

garytwzrd [at] gmail.com
Josh Bossie
Level 3
***


Fly Safe, Pup


View Profile WWW
« Reply #7 on: July 05, 2018, 09:12:00 PM »

I love these kind of relaxing games, and I always wondered why there weren't more first person stabs at it. Watching this one
Logged

GaryTheWizard
Level 0
**



View Profile
« Reply #8 on: July 15, 2018, 08:17:22 PM »

I love these kind of relaxing games, and I always wondered why there weren't more first person stabs at it. Watching this one

Hey thanks! That's motivating to hear Smiley

Spent the past week doing a lot of work *around* the game, and not so much working *on* the game. As I mentioned last post, I've been trying to improve performance by implementing batching/instancing for the environmental details of the game.

I didn't have much luck with trying to update the shaders used by Unity's built-in Tree Painter. Though I got it to work in cases where the shading and scale is identical for every tree, which is entirely unhelpful.

So I've opted to build my own prefab painter. Though a lot more work up front, I'm hoping that this will not only allow me to solve my performance problem, but let me customize the painter as needed to speed up dev time.

I'm actually pretty happy with how much of the painter I've gotten working so far. It's almost at the same level as the Unity Tree painter in terms of the capability I care about (a few quirks aside), allowing for variable brush size, object density, height, and color. I still need to add the ability to select from multiple objects to paint, as well as a way to adjust the material property blocks for any prefab that is composed of a hierarchy of objects. This latter addition is how I currently plan to implement GPU instancing for my trees. As GPU instancing requires that each mesh only have a single material, by breaking my tree up into a leaves sub-object and a branches/trunk sub-object, all the leaves using X material will instance together and all the branches/trunk using Y material will instance together.

As a bonus, the custom editor also makes it easy enough to change if I decide I want to implement instancing/batching another way, such as with a texture atlas as a single material for the entire tree. Though right now I feel this current method should make prototyping new trees and other environmental details a lot easier.

Performance-wise my painter is much, much worse than what Unity offers. Theres a few things I know I can optimize, but right now if i try to drag and paint objects, it's basically unusable. So it's restricted to single click usage until (if?) performance improves.


(Brush size and tree density options.)


(Tree height, shading, and rotation options.)

Anyhoo, I want to have this thing up and running by the time I write my next devlog. I'm _hoping_ that the last couple of additions won't take too long, then I can polish and optimize the editor a bit, and after that finally get back to making neat forests.
Logged

garytwzrd [at] gmail.com
verdog
Level 0
**



View Profile WWW
« Reply #9 on: July 16, 2018, 05:12:11 AM »

I really like this. Smiley
Logged

GaryTheWizard
Level 0
**



View Profile
« Reply #10 on: July 23, 2018, 08:43:19 AM »

I really like this. Smiley

Thanks, I'm glad!

Finished the prefab painter after having like 3-4 false starts where I thought everything was working fine and then found some horrible glaring problem. But now it's all there, and I can paint objects with static batching or GPU instancing. It's a little buggy, but runs much faster then when I last posted, and I took care of all the weird issues related to shading, scaling, frustum culling, and syncing from prefabs.

I heard that Unity is going to be adding GPU accelerated terrain tools in their next big update, so like GPU instancing in their tree painter? Ha oh well, I'm glad I made this thing regardless, I learned a lot and it's nice having a tool I can customize as needed from here out.




(Unscientific results of painting a terrain with trees using Unity's built-in tree painter (Occlusion culling is off).)




(Unscientific results of the same terrain now painted with trees using my own prefab painter (Occlusion culling is off). Also it's obvious my color shading results in much darker trees for similar input settings, not sure if I like this..?)

Besides that, I went back to the main game and poked around in the performance profiler some more. Though the prefab painter helps a lot with improving frames, there's still a lot more that can be done (looking at you GUI). I'm planning on doing a code overhaul soon, as everything is kinda unorganized due to me naively tackling problems without much regard for the bigger picture. So the plan is to determine what's causing any slowdown now, so that I don't make the same mistakes twice when I reorganize the project.

And that's basically what's I'm gonna be up to for the next week or so.
Logged

garytwzrd [at] gmail.com
GaryTheWizard
Level 0
**



View Profile
« Reply #11 on: July 29, 2018, 07:09:11 PM »

Well the last week was pretty uneventful in terms of things to report. I spent a while analyzing performance when I discovered a bug where in a static environment, with all random elements removed, I get a weird degradation in FPS of around 30-50%. Annoyingly, this issue can appear within a few seconds or after multiple minutes, making it that much more difficult to catch and debug. So I'm still in the process of methodically going through all the varying graphical details of the game, trying to determine the cause. It's slow going, as I create a build of the game for each little change, and then sit and wait while it plays out to see if the issue is solved or not (usually with a book to read, cause I can't exactly run anything else on this laptop while the game plays). Unfortunately, this also means I can't be confident with any of my performance findings from before I caught this bug, so I'm gonna have to redo all of that.

Bleh. Really after I get this solved I may just go ahead and postpone any more performance stuff. I wanna go back to working on environments and mechanics for a bit, just so I don't get burnt out. And if I don't get it solved in a week, I'll just go work on other stuff anyway. Getting some distance from this thing might help me out.
Logged

garytwzrd [at] gmail.com
GaryTheWizard
Level 0
**



View Profile
« Reply #12 on: August 05, 2018, 07:36:44 PM »

So I figured out my problem, which was just plain ol' CPU throttling by my laptop. It explains a lot of the symptoms and is really something I should of figured out sooner [how embarrassing]. Thankfully I discovered the problem early into the week, so I didn't waste much more time on it.

I don't have much beyond that to discuss as I spent the remainder of my week getting sick and moving out of my apartment. Though I did do some more work modeling a few environmental details.

The next two weeks are going to be spotty. I'm still in the process of moving, and I'm taking a vacation once that's over with. But I'll putter around with this whenever I get a chance.
Logged

garytwzrd [at] gmail.com
GaryTheWizard
Level 0
**



View Profile
« Reply #13 on: September 09, 2018, 08:04:18 PM »

Well that was longer than 2 weeks. Finally got to start working on this again after having a big, mandatory thing rear its head.

Got a few days of work done. Started with some code and project reorganization, which is how I like to get reacquainted with something I've dropped for a while. You get to read back through it all and you (usually) come out of it with everything a bit easier to find.

After, I did some modeling, primarily new trees and other environmental details. Then I started work on a new exploration area, something with a bit more thought put into it rather than the haphazard layout I've been working with so far.



(Those trees halfway in that stream is a *design choice*.)




But right now the scale feels off, with most things feeling too large with relation to the player. Terrain is also jaggy in spots and I'm trying to find a good way to detail it with solid color textures. But overall I feel I'm moving in the right direction.

Up next I'm thinking of trying out some new, light gameplay mechanics, refining the play area further, adding some small variants for each tree, and probably modeling some more growable plants. I missed working on this.
Logged

garytwzrd [at] gmail.com
Schrompf
Level 9
****

C++ professional, game dev sparetime


View Profile WWW
« Reply #14 on: September 09, 2018, 10:20:16 PM »

I love your design. Still there's a bit to nag about. a) Now that I've spotted the truly square appearance of the yellow-ish trees, I can't look away anymore. And b) the ground looks flat. Either add some grass blades or randomly colour the ground triangles. If it's not a height map. If it's a heightmap, this might expose the regular nature of the triangles and possibly look worse than before.
Logged

Snake World, multiplayer worm eats stuff and grows DevLog
badru
Level 0
***



View Profile WWW
« Reply #15 on: September 12, 2018, 11:13:33 AM »

Hey super cool. I led Eidolon and worked on Viridi and this looks like a lovely progression and combination of the ideas.

RE: the ground - in Eidolon we just flattened everything eventually and that's when the look solidified. I do think the softly shaded rolling ground clashes with the flat trees a bit currently but there are probably lots of ways to pull them together.

I also think the colors are a little bright and clashy, and pulling them together a bit could do a lot for you Smiley

Anyway, keep it up! A+

Edit: Showed it to Zoe Vartanian, the creative heart of Viridi, and she had this to say -
Quote
I would do this in minecraft. I built a lovely little house on a hill in the plains but near the forest and I would go an gather interesting flowers from all over and bring them back home to plant in my area. It was great. I miss it. So I could see doing a version of this that was based on actual plants set in a historical setting (or sci fi) where you are running a plant lab and there is a story. Or you are just a hermit-botanist that comes back to their cozy cabin filled with neat things.
« Last Edit: September 12, 2018, 11:25:50 AM by badru » Logged

TonyManfredonia
Level 6
*



View Profile WWW
« Reply #16 on: September 12, 2018, 11:24:39 AM »

A+ for a calming game. I think it’s a new, much desired style of game!

You mention the basic audio — do you intend on keeping it purely sound design / environmental sounds? I think that could work well for this approach.

Logged

Composer | Orchestrator
Website
Twitter

Soundtracks include:
Kharon's Crypt
Call of Saregnar
GaryTheWizard
Level 0
**



View Profile
« Reply #17 on: September 17, 2018, 10:30:01 AM »

I love your design. Still there's a bit to nag about. a) Now that I've spotted the truly square appearance of the yellow-ish trees, I can't look away anymore. And b) the ground looks flat. Either add some grass blades or randomly colour the ground triangles. If it's not a height map. If it's a heightmap, this might expose the regular nature of the triangles and possibly look worse than before.

Hey thanks, and I appreciate the feedback! Half the reason I'm here. The square-ish trees were my attempt at trying something different, but yeah they do look out of place right now. Still iterating, but I want to have something besides just blobby polygons for leaves.

And I'm in agreement with how the ground looks. When I was putting this new environment together, I neglected to add the grass I had previously included with my old environment (and which can be seen in the earlier gifs). That, in addition to some other small details (bushes, flower partches, etc.) would probably help out in breaking up the flatness, along with even some minor variation in the height map.

Hey super cool. I led Eidolon and worked on Viridi and this looks like a lovely progression and combination of the ideas.

RE: the ground - in Eidolon we just flattened everything eventually and that's when the look solidified. I do think the softly shaded rolling ground clashes with the flat trees a bit currently but there are probably lots of ways to pull them together.

I also think the colors are a little bright and clashy, and pulling them together a bit could do a lot for you Smiley

Anyway, keep it up! A+

Edit: Showed it to Zoe Vartanian, the creative heart of Viridi, and she had this to say -
Quote
I would do this in minecraft. I built a lovely little house on a hill in the plains but near the forest and I would go an gather interesting flowers from all over and bring them back home to plant in my area. It was great. I miss it. So I could see doing a version of this that was based on actual plants set in a historical setting (or sci fi) where you are running a plant lab and there is a story. Or you are just a hermit-botanist that comes back to their cozy cabin filled with neat things.

Oh man, hey, this is really cool! Love your stuff and great to hear you like it! And thanks for the advice and feedback Grin

With regard to the ground and colors, like with my response up top, I know there's still quite a lot of iterating and experimenting I just need to do before the style of the game will cohere in a nice way (and some more research on color theory and visual design would probably help me with that). I'll take that advice on flattening things when I focus on the visual design, sounds good for reducing complexity. But the feedback and suggestions help a lot, and I'll be sure to keep at it Smiley

And really glad to hear what Zoe had to say! A lot of my top-level design is still pretty amorphous, but I'd say I'm more on the hermit-botanist side of things.

A+ for a calming game. I think it’s a new, much desired style of game!

You mention the basic audio — do you intend on keeping it purely sound design / environmental sounds? I think that could work well for this approach.


Thank you very much! For audio I was thinking of having it be mostly environmental sounds, but potentially having ambient music break up the more redundant portions (such as when gardening, where the environmental sounds would be mostly unchanging). Or perhaps just have a rare chance for music to fade in and out during regular play.

On to updates. I've made a few environmental changes. Re-added the grass detail from my previous environment and added some hilly-noise to my heightmap to address some of those ground issues. I also added a smaller tree and a more detailed, growable cactus (that still needs some changes).


(Adding some grass and noise to the height map, where this area felt quite flat before.)


(Updated cactus.)


But I'd say the bulk of the work has been behind the scenes, finally addressing some of the not-well-thought-out-at-all-code I threw together at the start of this project. So I'm currently sitting in the middle of that puddle, having ripped all the old stuff out and now trying to rewire the new stuff. Once that's done, should be less of a hassle to make changes to the planting system, important cause I've already started work on adding watering and plant maintenance systems to the gardening.

For this upcoming week, going to finish up those code changes and I'll probably take a day to mess around with coloring and design, and try to read up a bit on that kind of stuff. Everything did seem to get a bit brighter around the time I was working on the tree painter, and I do still want some dark forest sections, so I'll likely refine that as well.
Logged

garytwzrd [at] gmail.com
Alce
Level 0
***


Twitter: @Alce_X


View Profile WWW
« Reply #18 on: September 17, 2018, 01:30:20 PM »

I love reading devlogs about chill games, and this one has been pretty cool so far! Looking forward to reading more entries Smiley
Logged

Aspiring chilean game dev. Likes artsy/experimental stuff.
GaryTheWizard
Level 0
**



View Profile
« Reply #19 on: September 24, 2018, 10:32:00 PM »

I love reading devlogs about chill games, and this one has been pretty cool so far! Looking forward to reading more entries Smiley

Thanks, that's great to hear you think so!


Since the last post, I've finally emerged from that web of code with the planting system now a good deal easier to manage. Taking advantage of that, and getting back to the gardening aspects of this gardening game, I've added in watering and some very basic pest/bug mechanics.

Watering is mostly feature-complete (at least the base stuff), it just needs lots of polish. All plants have a water percentage that drops slowly and is individual to each type of plant (so a cactus will lose water at a much slower rate than something like a fern). The color of the plant will reflect the water level, with a dry plant turning a dark yellow/brown color (though right now it just turns pitch black).

To water plants, the player just pulls up a watering can from the UI and brings it to whichever plant needs it. Overwatering is a potential issue, though this will be pretty forgiving. Having a plant over- or under-watered for too long will contribute to a plant's damage. Let a plant get too damaged and it dies. But take proper care of the plant in time and it will recover.



Pests will also damage plants. Right now they are just little vibrating cubes, but eventually they will show up as snails, beetles, and slugs, and will directly contribute to a plant's damage if left alone (they won't show up quite as frequently as the gif below suggests). The current idea it to make getting rid of pests as simple as just clicking on 'em to send them flying. I'm also considering adding potential options for reducing pest encounters.



Some of my thoughts on the additions: I don't think a plant's color changing is enough to convey its water level. This essentially requires that the player remember how a plant looked when it was fully watered. Instead I'm wondering if when a plant is watered back to full it should emit some effect, like a particle glow or some such.

I would also like to be able to toggle the pouring action of the watering can. Right now it starts watering as soon as you mouse over soil, but that's not ideal if you're trying to spot water certain plants. I just need to figure out what input makes the most sense UX-wise as a right click feels awkward and left-clicking controls the camera.

Next up, more bug stuff, color changes, and how to display plant damage.
Logged

garytwzrd [at] gmail.com
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic