The Heart

Next update is done! Not too much to show in this update. I’ve mainly been working on cleaning up code and getting things more organized, but there are a few things I’ve added that are new. I thought I would wait to update the game builds until the next update when there should be wind in the game. I was also able to get a good start on the explanation of how to create the seasonal transitions textures and materials. It’s definitely going to be quite lengthy :slight_smile:
https://forums.unrealengine.com/core/image/gif;base64
​.

First addition is that the teleporter room is inside of it’s own level now, which loads and unloads from memory. That way it’s not taking up computer resources when the player isn’t near a teleporter. It took a while to get it working because of the way the teleporters need to be linked in the code, and since the ones in the teleport room don’t always exist if they haven’t been created yet, it was causing problems for the ones in the landscape. I finally got it all working though.

The biggest visible thing though is I was able to implement moon phases for all the lighting at night, both for the actual moon light and the ambient light. So the brightness of the nighttime corresponds to how much the moon is lit now. While I was working on this, there was another really interesting thing I was able to add that I hadn’t thought of before. When I was looking up information on the brightness of the moon at different phases, I ran across this article that had a graph of how bright the moon is during each phase, but also how bright it is as it gets higher in the sky: http://home.earthlink.net/~kitathome/LunarLight/moonlight_gallery/technique/moonbright.htm

After seeing this, I realized I hadn’t implemented any kind of atmosphere to how bright the sun and moon are throughout the day or night. Then I realized that’s the real reason why the sun is a different intensity during the winter, because it doesn’t rise as high in the sky and the light has to travel through more of the atmosphere. So after implementing that, the intensity of the sunlight throughout the day is governed by how high it is in the sky and the intensity of the winter light behaves more like the real world now. The way I had been doing it before was according to the temperature, so the colder the average temperature was, the less bright the sun was. It worked pretty well in the end, but this other way is definitely much better and the brightness ended up being about what I had set it to before. I’ll also be able to add modifiers to the brightness according to things like humidity later down the road. All in all, adding those two things made all of the lighting quite nice, and you get much more of a sense of time of day. Here are a bunch of screenshots of the different intensities:

Twilight to Afternoon:

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

Intensities in Teleport Room:

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

Winter:

https://forums.unrealengine.com/core/image/gif;base64

Morning to Afternoon - Fall:

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

Moon Intensities:
No Moon:

https://forums.unrealengine.com/core/image/gif;base64

Half Moon:

https://forums.unrealengine.com/core/image/gif;base64

Moon at Different Heights:
Horizon:

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

Moon Up Higher:

https://forums.unrealengine.com/core/image/gif;base64

Unreal related
There were a couple things on the code side of things that I thought could be helpful to someone.

The first one is about the skylight. It turned out to be a bit of a challenge trying to get one skylight to work for both the night and day because the skylight needs to be able to recapture the environment when the lighting is changing during sunrise and sunset and at night vs day, but at night, all it captures is black, so I had to have a way that at night I could increase the intensity to get a little bit of fill light, then lower the intensity as the sun was rising and the sky was becoming brighter. It also needs to have a different intensity at night that is based on both the moon phase and a separate calculation for the atmosphere based on the moon’s position instead of the sun. Here is the final result I arrived at:

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

Hopefully it’s fairly self explanatory for anyone used to working with blueprints. Basically it uses the sun’s Y rotation to figure out whether it’s day or night, then interpolates between the value needed for day and the value needed for night, during a certain transition phase. Although the result looks simple, getting to this point was quite difficult with all of the different factors that have to be accounted for and took a lot of trial and error.

The other idea is about loading streaming levels. Normally for doing things like loading a saved game, I put all the code inside of a function in the Game Mode class. Then whenever the game needs to load or save data, I just call that function, but I’m not able to do that with the streaming levels because they have a timer associated with them that can’t be used in a function. I was going to try doing it with a Macro, but they can’t be called in other Blueprints because of the way Macros work. So the idea I had was to put all the code associated with loading the level inside of the Game Mode. Then wherever the level needs to load, use a Blueprint Interface to execute the code in the Game Mode whenever the level needs to load. Here is how it looks in the Editor:

https://forums.unrealengine.com/core/image/gif;base64

https://forums.unrealengine.com/core/image/gif;base64

It really works quite well, and is almost like having a function that can be called anywhere. I realize it’s probably not the most amazing idea :slight_smile:
https://forums.unrealengine.com/core/image/gif;base64
​, but, because of having so many different places and ways that the Teleporting room needs to load, and needing to do it through Blueprints instead of streaming volumes, I had started having to duplicate code in various places, and having it this way really organized things nicely.

I think that’s everything. As I had mentioned before, I thought I would try to work on wind next. Now that I have low-growing bushes that won’t get much wind and tall trees that get a lot of wind, I’ll be able to experiment with getting the wind intensity right for both.

Thanks for looking :slight_smile:

Wow. This looks awesome dude.

Video looks handsome

Thanks a lot to you both! It really means a lot. It’s great to hear that it’s looking good so far! Sometimes I’ve been working on it so long that I’m not really sure how good it’s actually looking in the end, so it helps to get feedback from a new pair of eyes :).

@LeHova - Sorry this response took a little while. I’m not sure what happened, but for some reason I never got a notification of your message…

Teleport room really does its job, it is so bright and clean. It gives a feeling of peace.
Great work!

Exadi - That’s wonderful, and thanks! I was hoping that it would feel restful and peaceful to be in! Eventually I would like to add clouds and things to it too, like it’s a room up in the clouds.

Grot13 - Yeah, it’s really going to be fun to see everything come to life a bit more with the wind :)! So far nothing else changes throughout the day/night and seasons, although it would be interesting to play with those to see how it changes things. I did add light shafts to the sun with this update, using the occlusion method, but that’s on constantly as well since they are calculated by how foggy it is.

Here is how the full Blueprint graph looks for lighting:

and the curve for the atmosphere multiplier that uses the sun’s Y rotation for the X value:

The only other thing that changes is the skylight gets recaptured whenever the sun has changed it’s rotation enough in the morning or evening, in order to change the ambient colors as the transition is happening:

I’ve been kind of surprised how just adding a simple atmosphere calculation, and changing the ambient light with it, changes the feel so much. Adding phases to the moon light brightness really changes things too. I guess it would make sense though if that’s how it is in the real world :slight_smile:

Just as a note, the sun and moon positioning are from this tutorial here: https://www.youtube.com/watch?v=n7IiVU-oBK4

All right, I have the next update ready. There has been quite a lot that’s happened since the last update. To borrow a bit from the Matrix, I’ve been following the white rabbit down the rabbit hole of audio design, or at least, it feels that way :). In all seriousness though, I’ve really been learning a ton of new stuff about audio. Although, since I’ve had to learn so many new things, I was only able to get three pieces of audio done enough to show, one for calm wind and one for strong wind during the summer, then another strong wind for fall. Since everything is about audio in this update, there isn’t much to show visually either, so this post is going to be a lot of text :). I am happy to say though that the wind is going to be able to work with the seasons, so it will sound different as the seasons change. I went through all of the audio stuff I’ve been doing further down below.

Even though there isn’t too much new stuff, I went ahead and updated the game builds if anyone is interested in hearing what’s done of the wind so far. I’ll do a video of it once the trees are blowing in the wind. Since I don’t have any weather implemented yet, in order to change the wind speed, you’ll have to go to the weather tab inside of the in-game options menu, accessed by pressing the E key in-game. I also did a bit of preliminary work on getting the trees to move in the wind. It’s going to take a lot of experimenting, and it’s also all very new to me, but from what I can tell of it so far, it might be possible to get some pretty neat effects with it.

Also, I have the text for the first section of the write-up for how to do the seasonal changes done, but still need to add pictures. You can see the progress so far here: Dropbox - File Deleted There are probably a lot of spelling errors in it still :).

[HR][/HR]
I didn’t know if anyone would be interested in this or not, but I just found out that one of the stories I had mentioned a while ago, and that is talked about in the Inspiration section, that also partly inspired the project, was put up on YouTube. So if you would like to see part of what inspired the whole project and what continues to inspire it, you can see it now. It’s a very, very old interview :slight_smile: https://www.youtube.com/watch?v=63vM7NcrB-o

[HR][/HR]
Now to talk a bit about the audio, the beginning of the adventure started while I was working on implementing the audio using Unreal’s audio engine. There was something I was looking up how to do, I don’t remember what, but as I was searching, I ran across this tutorial on YouTube about using an external audio engine to do the audio in a game: https://www.youtube.com/watch?v=1QdDwQONq_g. From there I started looking up audio engines to see what might work best for me, or if I even needed to use one. In the end, I ended up choosing one called Fmod for it, and so far it’s working out pretty well. It’s definitely much better than working with Unreal’s current audio engine.

From there, I also started looking up dedicated audio workstations to see what kind of options are out there, and I ran across one called Reaper that’s a full fledged audio workstation for only $60. This is one of those things that I’m incredibly glad I ran into and bought. I had been using Audacity to try to work with the audio before, but after working with Reaper, my goodness it’s incredible the kind of stuff you can do with audio. That kind of ties in with the other thing I learned about audio, that there aren’t very many places to find good audio for free out there, that will right away work with what you’re doing. One really amazing place I found worth mentioning is https://www.zapsplat.com/ ; they really have a ton of free, very high quality sounds done by audio professionals.

Back to my audio, so far, I’ve only been able to find one piece of audio that has the sound of aspen leaves in it, and it’s only in strong wind as well: Freesound - "Aspen tree in strong wind.wav" by juskiddink. This is where having Reaper has been a huge help. I definitely wouldn’t have ever been able to do what I’ve done so far with the wind without it. One of the biggest things that helped was having a real time equalizer, which made it possible to adjust frequencies and immediately hear what I had changed while the audio was playing. This made it possible to isolate the sound of the leaves:

After they were isolated, I could then layer them on top of each other to make it sound like there were more of them. Here is what it looks like for the calm wind. The leaves on the first 4 tracks are from the piece of audio mentioned above. Then the Far Off Leaves are from another audio file. The track at the top is some audio I decided to mute and not include in the final mix:

Since the wind sound was no longer with the leaves sound, I was also able to use other files for the wind that sounded calmer. This all gives a very large amount of control over the final sound of the wind and leaves. You can see the wind on the bottom track:

Reaper is also great with the way it automatically crossfades sound clips together, which makes two audio clips sound like they’re one clip. This is used a lot in the Strong Wind audio and makes it easy to split a piece of audio and put the pieces wherever you want them. The crossfades are the red areas:

Now, about getting it all in the game, right now the plan is to have different wind sounds play for each different area type; one for aspens, one for pine tress, one for meadows, and so forth. They have such distinctive sounds that I thought it would be worth it to spend the time and create unique audio for each. In order to have all of that work, I had to create an easy way to automatically select which audio to play in a certain area, then do all the setup work for that audio, like telling it what season to start in, or what the wind speed is on each frame, and things like that. In order to do that, I also had to be able to get a reference to the audio actor in the gameworld, otherwise I can’t tell it what to do. So I ended up creating a blueprint with a sphere trigger, and attached the audio actor to the blueprint:

Then when the player enters the sphere trigger, the sound starts playing, the setup work can be done on it, and a reference to the audio can be stored somewhere. One of the really neat things about having the sound inside the blueprint is, since I would be able to easily get a reference to every sound actor, I was able to have it be a 3D sound instead of a 2D sound played through a single, global audio actor. So as you go out of the Aspen grove and turn the player’s head, the sound of leaves comes from the direction of the Aspen grove.

I think that’s everything new for now. Congratulations if you made it through all of that text! :slight_smile:

I have the wind done! It took a while, but it seams to have turned out pretty nice in the end. You can see it in the new game builds I uploaded here: http://www.artoflightandmotion.com/downloads. I was able to get the movement of everything pretty closely in sync with the audio. There is still some tweaking to be done in some areas, but for the most part, the effect turned out pretty cool.

There are two videos this time.
One shows the wind movement at different wind speeds and showing the wind’s transition from summer to fall:

The other one just sits in one place while the wind is blowing calmly:

Just as a note, I only have the strong version of the wind done for the fall and none for the winter. I also went ahead and redid the fall sound that I had been using since it was one of the first wind sounds I was working on and it wasn’t as cohesive with the summer sounds.

Another neat thing is the direction the trees sway changes based on what direction the wind is coming from. It’s subtle since there isn’t too much sway, but it’s still noticeable. It’s also noticeable with some of the other wind effects going on.

The only thing that’s not quite working with it yet is the branches don’t move up and down with the leaves. I found out I’ll have to use another vertex color for that, but with the bark I’m already using two vertex colors, plus another one for another wind effect, so I’ll need to do the bark differently without vertex colors to free up another one. The good news is I had an idea for doing it with a Flipbook node in Unreal, and each tree will have a random texture assigned to it in the end. This was something that I was already planning on trying to figure out something for because with the way I have the bark texture currently, each tree model I make can only use one bark texture for the bottom, and to get any kind of variation, I would have had to make duplicates of the same tree, then change the bottom bark texture on each one. It just wouldn’t have been a very good method and would have taken up a lot of time. With this method everything will be randomized after the tree is in the level, so I can just create maybe two tree models for each type of Aspen, and all the trees will randomly have all the variations of texturing.

[HR][/HR]
There is also another short poem on the wall in the teleport room: What does it mean to be good?

To be good is to live by a law of love.

It is what raises up instead of destroys,
to care about others instead of ourselves,
to give instead of take,
to not use or abuse people for our own desires,
to use your hands to help instead of hurt.

But there is another kind of goodness,
a goodness that does destroy instead of raise up.

For though there is goodness in this world, there is also evil.

When evil comes, what does someone who is good,
do with those who choose to do evil?

Do you allow the evil to continue, hurting and using others?
Or do you end the evil, and allow it to hurt no more?

For how can it be good to allow the unlove, forever?

Such is God’s heart too, that no one would perish,
but if we are not willing to love or care about others,
then what other option is there, but to end that evil by ending us?

People wonder, “How can it be good to destroy a nation?”
To which the question is, “How can it be good to allow people to endlessly hurt each other?”

So out of love Goodness builds up,
but out of love Goodness also destroys,

and such is what it means to be good,
to live by a law of love.
[HR][/HR]
One last thing I almost forgot about that is somewhat related to this is there is a pocket watch I’ve been working on for someone, for probably the last 6 or 7 months now, that uses a 3d model of the earth and moon to tell time with. The really cool thing is it uses all the real data of the earth and moon to calculate all of the animations. Eventually I would like to be able to have something similar inside of the game to change time with, but for now I put it up on SketchFab here:

https://sketchfab.com/models/980882b…5eb86b89807aa5

It’s just kind of a neat thing that I didn’t know if anyone might enjoy seeing or make them smile. I probably wouldn’t have been able to create all of it if it weren’t for doing all the work on this game.

I think that’s everything in this update. The next update I’ll be working on finishing the other wind sounds and adding the randomization to the trunk texture that I mentioned above. Thanks for looking :slight_smile:

Thanks Grot13!

Yeah, I was kind of surprised how well everything ended up working together in the end. That’s awesome you’ve been enjoying listening to it while working on stuff! I was hoping people might be able to. I’ll have to look into ways of trying to sharpen everything, it does seem to get a bit blurry when everything is moving.

Right now the current plan has been to try to get some more variations of aspen done, then start experimenting with having them automatically put around the world with the landscape materials, and see how particle systems like leaves falling would work with all of that, but yeah, I’m planning on working on things like rain and snow during all of that time as well, even if I don’t have it all tied to any kind of weather system yet.

I guess the overarching goal has been to try to get the aspen areas done to completion, and get all of the bugs and systems worked out with them that will be in the final game, then start adding more kinds of vegetation after that and buildings as well. As part of making the Aspen’s to completion, I would love to add those things you mentioned too, like butterflies, and I had thought fireflies for the nighttime. Hopefully soon I’ll be able to start adding some of those smaller details. I say “soon”, but with how long everything takes, it will probably be 4 or 5 months :slight_smile:

I hope everything has been going well with your game :slight_smile:

The next update is ready! I’ve been doing a lot of Spring cleaning lately, otherwise this would have been posted sooner :), but in spite of all that, the Aspen wind is finally done and I think the audio and movement should be pretty much in sync. There are new game builds that can be downloaded here: http://www.artoflightandmotion.com/downloads

and I did some more relaxing videos with the new wind sounds. This first one is just sitting in one spot with the calm, Fall wind blowing:

This next one is also sitting in one spot with the Fall wind, but I tried experimenting with having some of the spontaneous music playing for several of the sections:

I didn’t do any recordings for the Winter wind yet, even though it’s in the game, since there isn’t too much to look at during the Winter right now.

There was someone who gave me a post process material for Unreal, which was very kind, that adds a little bit of post process sharpening, so that’s in the game now. It’s subtle, but still works quite well and makes the small details stand out just a little bit more, adding more clarity overall.

Also, the idea I had for the bark randomization worked out, so all of that is in the game too. I had to redo the way that the sculpts I made for the bottom were laid out. Originally I had each bottom piece in a strip like this:

https://i.imgur.com/2BkXKup.jpg

then I was using vertex colors and a mask to put a certain piece of that strip on the tree mesh. The new way I’m doing it, I separated out each piece into it’s own separate piece that is one third of a strip, like these two:

https://i.imgur.com/wZERTxy.jpg

https://i.imgur.com/Y3KdGjI.jpg

and I have six of them altogether that are then randomly assigned to the mesh using a little bit of math in the material UVs that randomly translates the UVs. Since I have a lot more space to work with though, having basically two strips worth of space instead of only one ( 6 one-third pieces = 2 strips), I’ll have to do some more sculpting work on them so they aren’t so empty. After getting them into Unreal, I also realized some of them are a bit too unique and you start to notice them while walking around, so I’ll have to work on them a bit more to get them looking more similar to each other, so it’s not too noticeable. I thought I would try to do just one on each update or something like that so I don’t get too bogged down in just redoing things over and over. All together though, the new system works quite well and ended up being about 30 less material instructions as well; so that’s a bonus.

I’ve also had some more free time lately, so I was able to record some more spontaneous piano playing. You can find that here and in the game (Sessions 10-12 are the new ones): Stream ArtOfLight music | Listen to songs, albums, playlists for free on SoundCloud

With that free time, I’ve been working some more on the explanation of how the seasons work too, so that’s still coming :). Right now I’m working on the explanations for baking everything into textures to use in Unreal.

The next thing I’ll be working on is trying to do a couple more variants of the Aspens. I still need to do a full grown Aspen where the leaves are just at the top of the tree, and I also need to do some that are about mid height between the full grown Aspens and the bush type Aspens. After those are done, I should be able to start experimenting with putting them over the whole landscape automatically and see how that goes.

Thanks for looking!

Hi, that’s all right, thanks for trying it out! Hmm, that is a very strange error. Everything seemed to be working all right on my computer, but after doing some digging, I think I may have found a bug report that has an answer to the error: Unreal Engine Issues and Bug Tracker (UE-58013). After turning on “force all skinned meshes to recompute tangents” in one of my Unreal projects, like it says in the bug report, I tried playing my game again and got that same error you got. So this could be what’s happening.

Just to give a summary of what to do to see if that’s what’s happening with you, try turning on hidden files, then going to the path: C:\Users<Windows user name>\AppData\Local , and see if there is a folder there called “Unreal Engine.” I was a bit confused at first trying to find it, but you’ll want to look for the one WITH a space between “Unreal” and “Engine.” It seems to only get created when that recompute tangents option is turned on. The one without a space holds other files and is unrelated to the bug.

If the folder with a space is there, try just temporarily moving it, and see if the game works. If it’s not there, I might try turning on that “force all skinned meshes to recompute tangents” in the project settings, then building it and you can see if that works, if you have the time :). I’ll probably turn it on anyway in future builds, just so that error doesn’t happen mentioned in the bug report. Thanks again for letting me know about it!

Oh, wow, thanks a lot for trying everything so thoroughly! I’m glad that bug I found on the bug tracker is what was happening.

That’s good you don’t notice the bark repeating too much and you can’t tell how the textures blend together. In terms of the bark, I think they might be one of the hardest trees to make, with how distinctive the “eyes” are and how much you would notice if it’s the same texture used over and over again. So that’s good everything I’ve done so far seems to be working. You’re right, it is a Poplar or Populus. I think the common name for one of the variants is also called a Birch tree and another variant is also a Quaking Aspen.

With the music, I agree, that would totally destroy the mood of the game to have Marylin Mansion all of a sudden play :), but yeah, I probably won’t ever have the ability to add your own music into the game. I wouldn’t really know where to start coding something like that anyway. For the note in the game though, it was just about creating a playlist of the songs that are already in the game, like the piano and guitar music. I wasn’t sure how much music might be in the game eventually, and if there is a lot, and people start to have favorite tracks they enjoy listening to, I thought I could add the ability to create their own custom playlist that would just be on their computer. Since I don’t have that functionality created yet though, and I don’t know for sure if it will be needed yet, I thought I could just add the playlist manually in the next build, then it would be there for them, but no one else would have to use it. So hopefully that makes sense, that it’s just a playlist of the music I have recorded. I’ll try to word that differently in the game so it isn’t as confusing. That’s nice to know the music that’s in there fits well with the game.

That’s great the teleporter room is looking nice! Sorry that was a bit difficult to find the Aspen teleporter. My current plan is to try and do something with colored floor tiles, where each teleporter would have a different color of tiles under it, in order to identify each teleporter. Kind of the way that the first Mirror’s Edge game used a lot of color to lead the player. If that’s not enough, I might try to add a title under each painting that describes what that area is about. Since it’s not implemented yet though, I just added “Aspen” under that one teleporter. Maybe for now if I put those words up in the air, people would be able to find it better.

That’s wonderful you didn’t run into any bugs. I thought there could be some if someone played it long enough, but that’s great you didn’t find any. That’s fun that the wind started to feel cold. It took awhile to try and make the seasons feel and sound distinct from each other, so I’m glad to know it worked :slight_smile:

Yes, the materials should be able to adapt to other plants easily. It definitely does make things interesting having to make the whole world able to change seasons :), and yes, I’ll be adding that functionality to everything in the world. For the plants, right now, I just use black and white mask textures to create the seasonal transitions, and I’ll just have to create unique ones for each plant in order to have them transition. What makes them actually change with the season is then just three float values in a parameter collection that can be used with any material. The same goes for the wind, it just uses vertex colors to tell the material where to apply three different effects, one for the leaves, one for the overall tree swaying, and one for the branches going up and down. Using those vertex colors, I can then decide how much of each effect to use on each type of tree and each part of the tree. So they both should be pretty versatile in the end.

That would be awesome to be able to use your material; it would be very useful! Thanks a lot for being willing to do that! It would definitely help save time to not have to start from nothing when I go to do more with the landscape. I’m not sure when I’ll be adding the rain, but it is on my list of things to do. It will probably be sometime after I’ve played around with automatically putting the trees on the landscape.

Thanks again for all of your suggestions; I really appreciate you trying it out so thoroughly! I’ll add those issues you noticed into the next update.

Hello, I tried out your game and I really enjoyed walking around listening to the piano and guitar music. I think mixing the music with the art is very powerful. Not sure what your plans are for the game, but I think it would be interesting to have some kind of puzzle to solve inside each one of the portals. The puzzles could tie into the theme and message of the game. I enjoyed reading all of the content on your website and feel like it could be a really interesting game if you were able to get more of those ideas into the game in some kind of interactive way. Not sure how to do that exactly, but I think it could be kewl.

Are you using Distance Field Ambient Occlusion? It looked like you might not be. If you enable it, I think it would add a lot of dimension to your trees.

Great project! Keep up the good work!

Hi, thanks for the encouragement and thanks for trying it out! I’m glad you enjoyed playing it! I’m glad that both the piano and guitar music really added something to it too. I didn’t know how well the music would work in the game, or if it would be enjoyable to other people or not, so that’s good that it’s enjoyable. [FONT=Helvetica, serif]I’ve enjoyed listening to it, but I didn’t know if anyone else would :slight_smile:

Yeah, it would be pretty neat to have some puzzles to solve and have the stuff from the website in there too. That’s great you enjoyed reading everything on there! I’ve actually been thinking of doing something similar to what you mentioned. I’ve had ideas for kind of a story that could be in the game where you’re playing as a more elderly person and each teleporter would teleport into a house that person had owned during their life, or where some event had happened. I thought there could maybe be a letter or something in the house with a date on it that the player could find, and with already being able to go through time, when you go to that date, the house could change to the way it was at that date, and there would be puzzles to solve that would reveal more of the story, both in the house and out in the world. Kind of the character’s, and maybe the player’s, heart opening again as you go through the past and all of the things that happened in the character’s life.

I don’t know how all the details would work, and I would have to write some kind of storyline that would incorporate all those things on my website and the various poems in the game, but it seems like it could be a good direction to go in eventually and seems like it has a lot of potential at least. There could be a way to add a few books in the game too that are readable and could have a few short stories or something that incorporated those ideas and had subjects about the heart opening as their underlying message. I’ll have to see what kinds of ideas come for things as time goes on.

That’s a good idea about the Distance Field Ambient Occlusion; I haven’t tried that yet even though I had seen stuff about it. I’ll have to see if I can get it working. It does seem like it would help quite a bit for when things are in the shade. Thanks for the idea :slight_smile:

The next part of the game is done! There are a lot of things to mention on this update and I added new game builds here: http://www.artoflightandmotion.com/downloads

First thing is I had ideas for another poem, as well as a few others that aren’t quite done yet. This poem is all about the answer, that I’ve found at least, for the purpose of life on earth, and very much goes with the rest of the poems. It was too long to fit on the back of a teleporter, so It’s inside the game on the floor of the teleroom for now, under the teleporter marked Aspen and also here:
What is the purpose of life on Earth?

To find the answer, we must go back to the beginning,
in the choice of Adam and Eve,
and being able to chose what we think is right and wrong.

For when God made man, man lived by His law of love,
but He is a good God, who in His love,
is not going to force anyone to be with Him.

So He created a world where people could choose
what they thought was right,
and how they want to live their lives.

And it isn’t about what we build or doing great things,
for the greatest of things on earth lie in piles of dirt as the years go on,
but it’s being able to choose who we want to be,
the heart of who we are.

And this choice is laid out each day in everything we do,
hidden in the why we do the things we do.

It’s a choice between taking or giving,
living for ourselves or living for others,
to serve or be served.
A choice between God’s way of love,
or using others to our own ends.

But when we chose love or evil,
what do we really chose in the end?
What way of life do we want?

People always wonder,
”How can a good and loving God ever create a place like hell?”

But that is the real choice we make,
and it exists because we choose to be there.
By doing evil to someone,
we choose to be a part of a world that is evil.

And if we don’t want goodness,
and He does not want to force us to be good,
and allow us to choose who we want to be,
then all that is left to have is evil.

Isn’t it good to let people have what they want?

For we reap what we sow,
and if we sow evil, then we will be given evil,
and if we sow love, then we are given love.

And if we only want to do evil,
in all the ways we don’t care about others,
would we ever want to live in a place of only doing good?
Would we want to serve others forever?

And so each day, by our actions and words,
we choose to live in heaven or hell.
For that is hell,
to live in a world where no one cares about each other.

Such is the purpose of the Earth,
to live for 80 years,
making and experiencing our choices each day,
between living in heaven or living in hell,
living in love or living for ourselves,
and by God’s grace, we are saved,
from the evil we chose to be.

I don’t even remember what I was looking up when I ran across it, just one of those times of randomly running across a video while looking for something else, but part of the poem came from a video I had seen just recently of a man in Africa who had died for 3 days, and was actually in the mortuary, then miraculously came back to life. I had actually seen some of the video a number of years ago, but I hadn’t seen him talking about what he experienced while dead. If I remember right from the video I had seen, they had even gotten to the stage of completely replacing all the blood with formaldehyde to preserve his body, so he was definitely completely dead. That’s why at the end of the video below, where they show the actual footage of him coming back to life that they caught on film while they were just recording everyone mourning and praying around him, he is kind of dazed and staggering, because the formaldehyde was still in him when he just all of a sudden woke up, and it was miraculously being replaced by blood again over the course of a few minutes, I think it was.

Whether you believe the story or not, there is a part of this video talking about what he experienced while dead, where an angel was telling him about reaping what you sow, and that, if he was really going to die at this point in his life, he wouldn’t make it to heaven because he had not forgiven his wife, and that because of that, God would not forgive him. I thought that whole concept would actually fit quite well in the poem, so that’s where the couple lines about reaping what you sow came from. It’s actually something in the Bible as well, in Galations chapter 6, verses 7 and 8. Here is the video:Best Vision of Heaven & Hell, Nicely Produced - YouTube

The next thing is, I got the bark for one of the bottom pieces of the Aspen tree re-sculpted and in the game. It’s really a big difference from what it was like before. I think the main problem with how it was before is I had tried following the reference image too closely and the whole thing just looked too perfect in the end. With this new one, I tried leaving things more messy and really focused on the silhouette that was being made. It turned out a lot better. It also helps to have more practice :). Here it is in Blender:

and here it is in Unreal:

The other large thing was getting another taller sapling done. I had to add more leaf cluster types on my main texture in order to do it, so it took a while to make, full of experimenting with different alpha cards and branches, seeing what works and what doesn’t. I had textures that work for being under the leaves, like with the trees, and ones for above the leaves with the small saplings, but nothing for being at eye level. I’m thinking that it will work well for meadowy clearing type areas in the middle of the Aspen grove, and just areas that get a little more light. The next one I’ll be working on is a mid range tree between the tall ones and the saplings that can go at the edges of a grove, where there is more sun, and I’ll also be working on the Aspens that have leaves only on the top.

Here are some images of how the sapling looks in Blender:

and Unreal:

[HR][/HR]

There were also some small tweaks here and there, but they really made a big difference in how everything looks. The first tweak was I made the branches a little thicker. During the winter, most of the branches on the alpha cards with the leaves were disappearing because of being too thin. So I thickened them up and it really helps. Here is how it looks now:

The other thing was the normal maps weren’t working properly on the leaves, and they looked pretty flat. So I got those working correctly again, and also added more texture to the leaves and increased the strength of the normal map, so they’re looking quite a bit better now and feel more 3D. Here is how those look:

Someone had an idea to add Distance Field Ambient Occlusion to the game, and I was able to get that working. It really adds a lot to the lighting in the game. It makes a nice contrast between the lit and dark areas and also adds more variation to the shadowed areas. There seems to be a glitch with my landscape pieces where it makes black splotches everywhere, so I had to turn it off for now on the landscape, but I have it on all the plants. Thanks again to Dartanlla for the idea. Here are some images of that:

One last tweak was I had a simple idea for adding a bit of randomization to when the transitions start on each tree, so now everything changes at different times and feels much better and more natural. You can see it easiest in the Fall transition:

There were a few other small things here and there that someone had ideas for that I changed as well.
[HR][/HR]

Another thing is the Fmod sound system doesn’t have a way to do rectangle audio zones, which would really help for streams and some of the areas with trees. I was finally able to get one working with the blueprints though, and that is what is being used in the new area I added trees to for testing purposes. Since it might be helpful to someone, I thought I would do a small explanation of it in the next few days too. You can faintly see the large box as well as the small box inside of the large box, which represent the audio zone, in this image:

This area can be found by going through the Aspen teleporter, then going in the opposite direction of the cliff, until you see the mountain pictured in the image below. The new area is then behind that:

[HR][/HR]

One more thing is, I got quite a bit done on the explanation of how the seasons work and put pictures with almost everything I have so far. I had to rearrange things and rewrite a lot of things when I started adding pictures, but hopefully now someone will be able to follow along well enough to recreate it. I almost have everything done up to the point of creating the Unreal material. The explanation can be found here: https://www.dropbox.com/sh/v03321o6y…B50CLCYga?dl=0

So yeah, there is a lot that happened since the last update :). Next thing is to make that middle height Aspen, and Aspen with leaves only on the top mentioned earlier. I would have had the mid height one done on this update, but then I realized I really needed to see how much space I would need on the leaves texture for branches that were at eye level first, since they are more visible, so I should be able to have those other trees done in the next update. I’ll also try to get another bark sculpt done. After that, I think it will be on to putting the trees over the whole level, which could take a little while, because I’m still not completely sure what the best method for doing the landscape is, so there will be a lot of experimenting.

Thanks for looking and I hope you enjoy what’s been made of the artwork so far!

Finally got this done :). Here is the post about the Box audio bounds for Fmod mentioned above:

I didn’t know if anyone might need this or not, but as mentioned above, I was able to get a a box audio bounds working for Fmod, and if anyone else is struggling with making a box bounds with a Minimum bounds inside of it, for audio or anything else, I thought I could share what I got working to help out. It’s one of those things that doesn’t look like much when you’ve figured all of it out, but takes a lot of work to think through and get working.

So here are some images and a little explanation of how it works.
First, here is the image again of the Box inside of the world with a large box that is the Maximum bounds of the audio, or the farthest the audio reaches, and the smaller box being the Minimum bounds, or the point where the audio would be at full volume and envelope the player:

The first thing to do was to get the player’s position, so we know where the player is in relation to the box, and convert it into the Box’s local transform. You’ll understand why in the image after this, but this was an important thing that was a little tricky to figure out. Basically I just created an arrow in the blueprint with the Box bounds, then each frame that arrow’s position gets set to the player’s position in world space. Then when you access that arrow’s local position, you know have the player’s position, but in the Box’s Local space. Here the nodes that did that:

Now to use that, here is an image that shows the full node network that calculates how far into the Max bounds the player is, and how close they are to the Min Bounds. This is where putting the player’s position into the box’s Local space is used. It’s much easier to see it node by node then trying to explain it all verbally, so there are explanations on each node that describe how it works. You may have to open it in a new tab in order to see the them.

To summarize what it does, it determines how close the player is to the Minimum bounds on each axis of the box, then outputs a value between 0 and 1, with 0 being when the player is at the edge of the Maximum bounds and 1 being when the player is at the edge of the Minimum bounds:

Then to use that, you can just hook it up to an Fmod “Set Parameter” function, one for the audio volume and another one for the audio envelope amount, and also clamp the player position value from before between 0 and 1:

Then in Fmod, you just set up two parameters on your sound, one on the master volume, going from 0 to 1, equaling -00 to 0:

and another on the Minimum Extent knob of the attenuation setting, going from 0 to 1, equaling 0 to 360 degrees. The button above should be set to User instead of Auto, too:

A couple more things to do is, since we’re using a custom envelope calculation that gets applied to the Min Extent parameter, we need to set the Fmod Sound Size to 0 when the player enters the box:

This keeps Fmod from calculating how much the sound envelopes the player, and let’s us use our own calculations with the Min Extent.

Here is the parameter in Fmod:

The curve looks a bit strange because Fmod does some strange things with all the values on the graph, so in order to get a linear value where setting the parameter to say 400 in Unreal, equals 400 in Fmod, you have to have the line curved like that.

The other last thing to do is to set the normal Fmod Sphere bounds to be bigger than the Box bounds, pictured in this image:

This will make Fmod know that the player is inside of the sound and to play the sound through the speakers.

So altogether, the player enters the Box volume and the Fmod Sphere volume, then the envelope values and attenuation, or volume, get controlled by custom calculations instead of Fmod’s calculations.

That should be everything. The box should now work as an audio bounds, with the volume and envelope amount working the same as if it was one of Fmod’s normal Sphere audio bounds.

Next update is ready! I thought I would do one sooner than normal this time, otherwise it would have gotten quite lengthy again :). The biggest things in this update are that I got two more stages of Aspen growth done. It’s really starting to feel even more like an Aspen grove and there is definitely a lot of potential with all of it. I updated the game builds here if anyone had wanted to see it: http://www.artoflightandmotion.com/downloads. It’s amazing how much having the Aspens with leaves only on the top add to the scene and how it changes the lighting. Without the leaves on the lower areas, you get all of these interesting light shafts coming through to the forest floor and makes the daytime lighting much more interesting and pretty. Before, when it was just the other trees that were full of leaves, during the day, you kind of just have these circles of shadows at the bottom of each tree and was a little bit boring, but with having these other trees, there are a lot of different shapes that are formed and you have light hitting the bark everywhere, which makes it more visually interesting. Just a neat little thing I hadn’t thought about before that it actually adds a lot to a grove to have the leaves only at the top.

The interesting part is going to be placing everything in the level in a way that feels natural, and later on, also keeping all the trees and different biomes feeling cohesive together. I have pretty clear ideas for how certain areas will look, but the rest of the areas I’m not completely sure about. So without further ado, here is a video of being in the groves while changing the lighting and just looking at how everything feels so far. The first grove is of the one that has the teleporter in it, where I added a few boxes that start to give an idea of the house that will be there. The second part is of a different area that tries to give an idea of what the Aspens will feel like surrounded by other trees in a forest:

[HR][/HR]

Probably one of the most exciting things that happened with the project is something that actually happened last update, but there were already so many things to talk about, I thought I would share it with this one. What happened was there was an old friend who was upgrading to a new computer and gave me his old one! Even though it’s pretty old, it’s still a pretty nice computer; one of the old large Mac Pro computers with Xeon processors and 12 cores, which is better than the newer laptop I was using. So I was able to upgrade it with a new graphics card and everything is working quite well. My laptop I was using was really starting to have a hard time working in Unreal, so it was really an incredible blessing and intervention by God that came at just the right time; right before I started adding all this foliage and right before I’ll be putting the foliage on the landscape. The friend who gave it to me didn’t even know about any of the difficulties with the game! He had just been feeling God wanted Him to get a new computer and that he was supposed to give me the old one. I should be able to finish out working on the entire game with it as well!

I also figured out what was wrong with the Distance Fields creating black splotches on the landscape. I realized I needed to turn on double sided distance fields since they aren’t enclosed meshes, and that fixed all the errors. For now, I just turned it on for the ones that have trees under them, since I have to do them each one at a time, and I don’t know for sure yet if I’ve figured out the best way of doing the landscape. So I didn’t want to spend the time yet.

[HR][/HR]

I had ideas for finishing another poem too that’s in the game. I almost had it done on the previous update, but not quite. You can see it here too:

What is true worth?

People’s opinions can give worth for a season, but people’s opinions change in time,
what was once popular in one season, matters little in the next,
and all that is left is the wondering of how worthwhile any of it ever was to begin with.
To say that Van Gogh was once unpopular in his time would be an understatement,
yet his worth changed when he was no more,
and may change again in a generation not yet born.

Could it be the number of people that love you?
But do they love you or the image they have created of you,
and will they still love you when you are no more who they want you to be?
As the curtain fades, what is left of the crowd, the worth?
If they don’t still love you, how much were you truly worth?
Will they sit with you as you die?

Some would say that worth is power,
the ability to be above and control others.
But what happens if you lose power over one,
or someone else controls more pawns than you?

To live by a currency of people is to have a worth that is always changing,
to be worth less because others are worth more,
and to live in slavery to others,
because even one has the power to change your worth forever.

And so you might control an entire atom called earth.
In a universe full of atoms,
you still only have an atom’s worth of worth.

One could say that they’re worth something because they made it in life,
and found success in the things they did.
The belief that you were good enough to make it,
and worth more because others couldn’t.

But what has been gained by that success?
Are you not the same person you were before?

Though it may feel good to look down on others,
are we truly better,
or are they just a mask,
used to hide the things we look down on in ourselves.

And though you may succeed in some things,
you’ll fail in others,
and others will look down on you,
when they were good enough in the things you weren’t.

So is there really any worth in the end?

And if that’s the measure of you’re worth,
then how much are you worth after bankruptcy?

So what is true worth, if all the worth in life can shift in the sands of time,
ebbing and flowing in the waters of life?
Is there any hope?

Yet I find, not just a person, but a God who loved me for who I am,
that before I could ever even try to be good enough for Him,
I was loved and worth so much,
He put me aside and was tortured in my place.

To be worth everything when you have nothing,
this is true worth.

And though the world’s currency of value will always change,
this is a worth that stays the same,
condition-less love that will remain.

It’s a worth that’s just about you, not what you do,
nor the monument of your own greatness,
and the way that people look at you.

A worth not based on quantity,
not tied to a currency of value,
and infinitely more valuable than any other,
because you don’t have to attain it,
or have anything to have it.

It is freely given,
without charge.

Rich or poor, in sickness or in health, failures and success,
that love will always be the same;
a worth that remains, a love that does not change.

True love, true worth,
will I ever be the same?

To give some background of the poem, it’s really the story of my own quest, if you will :), of trying to find worth, and in the end finding it in my relationship with Jesus, and really in His unconditional love. It’s that unconditional part that is really the key thing that makes His love so life changing. The love between spouses, friends and family can very much be a picture of His unconditional love at times, but it’s still tainted here on earth, and you can’t really find a love that will always be truly free. His love is like the pure form of what can be seen on earth, a love that is truly without conditions and so full of acceptance of just you. Even if you were to become the most evil person on earth, or the poorest person on earth, His love for you would not change because it’s all about you and the person He sees inside, and that’s just such a special thing that can be so life changing.

In many ways, the poem is really the story of how we try so hard on the earth to try and get people to love us and feel like we mean something and are worth something, but even if you gain that worth, you can gain so much in the world and yet have so little in the end. Yet with unconditional love and His love, you don’t have to do anything to gain it or attain it, He just loves you. That’s what makes His love so special; that it is completely free. It’s a worth that’s real and solid and doesn’t change because it’s so much about just us, instead of what we’re able to do. With first hand knowledge, I’ve experienced both in my life, and I can say that there is no comparison to His love that is so completely without conditions and just so full and un-lacking. It’s even a bit scary because you have no control over how much He loves you, and there’s nothing you can do to change it, it can only be humbly accepted. A very humbling love.

So anyway, that’s some background of the poem and I hope you enjoyed it :). It’s also similar to the image of the old man on my website, but talks about things in a different way.

[HR][/HR]

For the next update, I’ll work on one of the bottoms of the Aspen bark, and also be experimenting with the landscape, trying to see what the best option is performance wise. The real difficulty is there will be so many different types of trees and areas by the end that will need different textures for the ground, that I think I’m going to have to figure out a way to do a mixture of static meshes that are separate from the landscape, as well as have a large landscape that has the materials for things like streams and paths that need to be the same throughout the world.

Next update is done! There were some things that came up, so I didn’t have as much to work on things as I usually do, but even so, there were still some important things that happened. I was actually going to do the update last week, saying how I had done some testing and decided to go with the Unreal landscape for the ground, since it seemed to be almost the same FPS as my own landscape, but then I tested the game on another computer, and decided I better do even more testing of things :). So long story short, I’m actually going to go with my own landscape using Static Meshes, but I’m doing it differently than I was before. If it is helpful to anyone, here are the results of some of the testing I did that made me decide to go with my own landscape, and how I created it. I also didn’t update the builds this time since there isn’t really anything new to see yet.

For the first test, I tried out using the landscape that can be made in Unreal using a Heightmap, and also tried using the new things that Epic had added to it since I last tried it. With that I was getting about 73 Frames Per Second, with everything on the highest settings and only having the landscape in the scene, which is about the same as what i was getting with my own landscape made in blender and imported into Unreal as separate models. Both were being limited from going any faster by the “Game” thread part of Unreal’s rendering.

After that test I had thought that, since they were about the same FPS and it would be easier to work with in the end ,I might as well go with Unreal’s landscape. So after getting all of that done, and being just about ready to do an update, I then tested it on another computer that had a weaker GPU, but this time I got quite a large difference between my landscape and the Unreal landscape, where my own landscape was about 10 Frames Per Second better, I think it was. The thing about this though was that it was being limited by the “Draw” part of Unreal’s rendering, which is the part that gets all of the objects and various other things ready to send to the GPU. So if you’re being limited by that, it would partially have something to do with the amount of objects in the scene, which was true with the tests I did because the Unreal landscape had about 200 separate pieces to render, while mine had only 80 some, as well as a smaller triangle count. That gave me an idea that maybe if I did really large tiles, and only had maybe fifty of them, I could get even better performance than either option. So here is how I set things up in Blender. First I made one square tile that was subdivided a little bit just to give a bit of geometry to work with for vertex groups and things like that:

Then I made a grid of 48 of these tiles altogether that are about 1.2 Km on each side. With that, there is also the actual model that is being sculpted on, to create the landscape:

Then each of the 48 tiles are heavily subdivided even more and projected onto the sculpted landscape using a modifier that doesn’t ever get applied, so if there are any changes to the sculpted model, it will automatically update on the tiles… You can see the faint outline of the tiles in this image:

Doing it this way it picks up all the details of the landscape, but everything is still in a nice grid that will fit together with each other, and I can push and pull around the sculpted landscape without the actual grid of squares being moved around. After it’s projected, a decimate modifier is used to bring the polycount down, but still keep the shape of the landscape. Finally, there is a Data Transfer modifier that just transfers the vertex normals from the landscape to the very edge vertices of the tiles. This makes it so there isn’t any visible seam between the tiles. Altogether, the whole process is completely non-destructive and updates automatically with any changes made in the landscape sculpt, since only modifiers are used to change anything. Here are the different settings used:

So now I have 48 tiles altogether in Unreal with all the quality settings set to maximum, and the results of testing them on the computer with the lesser GPU are that I get 48 FPS with being limited by the GPU at about 21 milliseconds for each frame, with only the 48 tiles in the scene, which is a little better than what I had with my previously made landscape. Then with only the Unreal landscape in the scene, I got 33 FPS and about 30ms on the GPU thread.

On the other computer that has a better GPU, I get about 83 FPS with the tiles, while being limited by the Game thread at about 11.5ms per frame. Then with the Unreal landscape, it’s still at about 73 FPS, while still being limited by the Game thread at about 12ms. So the grid of tiles ended up being about 10 frames per second better with that computer, and about 15 with the other one! I’m not actually sure why it helped so much on the better computer, since as far as I know, the “Game” thread doesn’t have anything to do with rendering models, but for some reason it really helped quite a bit.

So in the end, I decided that it would probably be best to go with the custom made tile grid. Even though it is going to be more difficult to work with, I think the extra FPS you get from it are worth it, and I’ll be able to use those extra frames to add other things that you notice a lot more. So that’s a little summary of the whole setup and how things turned out with it.

A couple other ideas I tested and got working are that, irrelevant of which landscape I’m using, I think I’m going to try using a separate model for both the stream beds and the paths, instead of trying to do the texturing for those as part of the landscape. The main reason for doing it with the streams is that they can be quite different from each other with how sharp the edges are. Like with this picture of a meadow, the edges go straight down, which can’t really be done with just the landscape, but can be done when using a separate mesh:

The other reason for doing it with both the path and the streams is that there can be a lot of variety with how the textures look, and it seems like it would be quite boring if it was all the same texture throughout the level. The problem is that if I was doing it with just the landscape, I wouldn’t be able to add very many textures, since you’re limited to only 11 textures in a material, and I need to use the textures for other things. I’ll be using texture atlases as well, but I would still run into that 11 texture limit. So doing it this way, I’ll really have a lot of freedom to do lots of different textures for the paths and the stream beds, while also freeing up space on the main landscape for other textures and things.

To actually do it, all it takes is just creating another more rectangular grid model in Blender. Then you can create a bezier curve as a way to place the grid onto the landscape, by adding a curve modifier on the rectangular grid . After that, you just project the vertices of the rectangular grid onto the landscape, like I did with the 48 tiles, to make sure it follows the landscape in the up and down direction. As the last thing, I then just used the Data Transfer modifier again to transfer the vertex normals from the landscape onto the edges of the path or stream model, which makes the shading seamless between the transition. Here are the settings for the path. The stream is pretty much the same. I also added a decimate modifier, but I’m not sure if I’m going to keep that:

Then on the edges, I’ll just use vertex colors with the height textures I’ll be making later to blend between the landscape and the path mesh, using transparency to do the blending. In the end, it will look and be almost the same as if I was blending between two different textures using only the Unreal landscape. I’ll still have a little bit of work to do when I make the final meshes to make sure the landscape doesn’t intersect it, but here is how the basic idea works out in Unreal:

Something else I did on this update is I separated out the large rock features from the landscape grid of tiles. The main reason for doing this is, since I’m projecting the tiles on to the landscape only in the up and down direction, I can’t have any overhangs in order to do that. I also wouldn’t be able to have them with the Unreal landscape either, since you have to bake a Heightmap in order to create the landscape in Unreal. So they are separated now and will be ready to eventually create into final cliff faces and such. Here are some images of how that turned out:

Only the landscape without Rock Features:

Landscape with Rock Features:

I also figured out how to get the transition between the landscape and the top of the rock features pretty much unnoticeable. There are a few that will need more work, but I’ll work on those when I’m working on the final models. For most of them, you really can’t tell at all:

One last thing on this update is I also, almost, got another lower Aspen bark piece sculpted:

Something I wanted to show on the previous update, but didn’t have room to show, was all the trees shown together in Blender, since I think all the types of trees are done now, and it’s just working on variants next. So here is one of each size of tree all finished, with wireframes:

Another thing from the last update is a little bit about applying the leaves to the trees. In the end, I found the best way to do it was to create a bunch of small branches and bake those into a texture atlas. Then after putting the texture on planes, or maybe a plane and a few triangles that could change the shape a bit, I used them as almost kitbash pieces to create a large branch that looked good at all angles. Afterwards the large branch can be duplicated over and over again onto the tree using an instanced, or linked, model. Doing it this way, you can create nicely detailed branches, but you only have to create a few of them, and if you need to change something on one of them, all the duplicates update as well. Here are some screenshots of the large branches I made for the medium sized tree with a height between the saplings and the full grown trees:

One last thing is I also got the explanation of how the seasons work to the point of starting to explain how to create the Unreal materials to create the final effect. So slowly but surely, it will be done eventually :slight_smile:

The main things I’ll be doing for the next update are creating the texture for the landscape to use under the aspen trees, making the flat plane mesh and textures to use as the last LOD for the Aspens, and also then putting the trees on the whole landscape. After that, I should be able to start adding small details and fleshing out the game world much more. So that will certainly be exciting!

Finally got the next update ready! I may have tried to do too many things at once for one update :). I went ahead and did new game builds for this update as well: http://www.artoflightandmotion.com/downloads, so if you want to see some of the things I talk about below, you can try it out. One of the builds is with a normal amount of trees that I’ve been doing in previous updates, with a few large clumps of trees to get a sense of scale in areas, and the other one is with trees covering the whole map, which I talk about below.I also go into more of this below, but one thing to note before trying the one with a dense amount of trees is that it doesn’t run on my laptop that has a GeForce 650m, but it does run well enough at around 30 - 60 fps onalmost the highest settings on my main computer that has a GTX 1060, which I hear is equivalent to a 980 or 970. So probably a 900 series graphics card and above should run after playing with the settings a bit and possibly the 800 series as well. Also, whatever equivalent AMD GPUs should run okay too, but I’ve not tested them. So just to let people know, the test with lots of trees isn’t going to be playable on all computers.

A lot of the time for this update was spent working on the landscape some more.I kept having all of these small problems that meant having to change the way I was doing the whole landscape, which took a while to do each time I had to change it, but in the end I figured out a way to get through each problem and the performance of the landscape is even quite a bit better than it was!I thought it could help someone out, so if anyone is interested in that, you can find a summary of everything I tried for it in the post that will be right below this one. I could be wrong, but in the end, I think doing the landscape this way might be the only way to have so many trees, with the seasons on them as well, and still have the game be playable on a mid range GPU.So it’s really a big blessing to have figured out so much with the landscape.Here are some other things that I’ve been experimenting with since the last update:
[HR][/HR]

As I mentioned above, one important thing I tried is covering the whole landscape with trees, and I’m very happy to say that even with it covered in trees, it’s still playable on my computer at 1920 x 1080 with almost everything at the highest settings. For the test, I added trees more densely than they will be in the game, and also added the undergrowth very densely in areas. I was planning on adding the undergrowth over the whole map, but it was taking several hours to add it to each landscape tile, because of it adding around 2 million bushes each time, and since the bushes are only rendered around 100 meters around the player, it didn’t seem to be making any difference with performance each time I added them to a tile, so I stopped at around 10 million bushes. The final count for all the trees was around 1.3 mil.

Now for the results of the test, the worst it seems to get is down to about 12 FPS during the winter, from the branches being transparent, and about 20 FPS during the summer and fall, butit seems to only be right when the sun comes up in the morning, but isn’t quite visible, and the whole map is shadowed. Then as the sun keeps going up, the FPS go up as well, into the 30s or above. So there is definitely something I’ll have to look into with that.For the most part though, performance is on average20s or abovewhen everything is on the highest settings, which seems quite good for how big of a landscape it is and how many trees and bushes are on it.I also don’t even have the best graphics card you can get, and if someone had a better one, they would get even better performance.If the shadow qualityis turned down to medium, which turns off shadows for the foliage in the distance and makes the close shadows a little more blurry, the FPS goes quite a bit higher into the 30 - 40s and above as the worst it gets, which still looks good and is pretty playable. So really an exciting test with some good results! Here are some pictures of that, and a bit of fun covering the whole landscape in trees :):

[HR][/HR]

There was someone who mentioned things felt a bit too tiled in the world, which is quite true, and although there isn’t a whole lot I can do right now, because I haven’t created all the other models, I tried experimenting with changing the density of the vegetation, making some areas really dense while others are more sparse, and trying to pay attention to how much light areas might get. So hopefully it feels less the same when walking around and in some of those pictures above. Those experiments can be seen easier in the game build without trees covering the whole landscape, if you go through that painting labeled Aspens.Here is an image that shows a bit of that:

[HR][/HR]

I also did a little experimenting with getting the look I’ve seen in some images of right before you enter an Aspen grove from a meadow or something like that, and there is a feel of the leaves almost being painted with the end bristles of a paintbrush. It just feels quite painterly with how the leaves look like they are in splotches. So I tried seeing if I could get that kind of feel and it seemed to turn out well. I wish they were a little more splotchy, but it’s not too bad for all the limitations there are in a game:

[HR][/HR]

Another thing that can be seen easier in that game build without all the trees is I got the texture done for under the Aspen tree areas, using Blender to create it. I went with kind of a dried muddy look for the ground, with dead leaves and sticks laying everywhere. Here is how it looks in Unreal:

I’ll probably have to change the previous path texture I made to fit better with the Aspen areas, but this is the path going through the grove:

[HR][/HR]

With that, I’m happy to report that the idea of using a separate mesh for the path and stream beds does indeed work, but there is one Material setting to know about to get it to work called Dithered AA. The main problem in Unreal with trying to do transparency that fades out is you can’t have nice shadows being casted onto the material as well. The only way to have those shadows is to use the Opacity Mask input in the material that’s used for things like leaves to cut out the leaf, but the drawback to that is the surface can only being either completely opaue or completely transparent. Apparently a way to get around that though for when you want it to fade is to turn on Dither Opacity Mask in the Material settings:

or do it manually with a function like this:https://youtube.com/watch?v=ieHpTG_P8Q0
Here is how it looks up close on the path:

There is a little bit of banding that occursfrom how it works, but it’s not something that’s very noticeable. One nice thing about using the separate mesh is I may be able to use tessellation on them without having much of a performance hit, since they are separate low poly meshes. That would be quite nice for having large rocks on the path, as forest paths tend to have at times.

[HR][/HR]

The billboard meshes for the last LOD on the trees are also in the game, which can be seen in those above images of all the trees covering the map :D. They really turned out quite well and you can’t really tell when they transition very well. The only thing I haven’t figured out yet is how to do the transition during the winter. Because of the way Unreal works, it makes alot of the branches completely transparent on the normal tree meshes as you get further away from them, then when it switches to the LOD boards, the tree becomes much more opaque all of a sudden. There are a few things I’ve tried for that, but so far they haven’t worked very well yet. Thankfully it’s only noticeable when you’re going from a meadow type area into a tree area though, so it may not be too big of an issue in the end. Once the pine trees are in their too that don’t lose their leaves, it will be even less noticeable.

[HR][/HR]

So all in all, it was an important update, and I know the art/game will still be playable even when everything is covered in foliage. There were also really a lot of neat ideas I had for doing different things on this update.I don’t mean to make anyone feel uncomfortable, but I feel a bit like saying, “This update brought to you by God,” haha, “without whose support, none of this would be possible.” Really the whole game has been that way too with so many ideas for things that I know didn’t come from my own ability to figure out.

So at this point it’s kind of an open slate of what I’ll be working on next. I’ll just be adding all those fun details to the Aspen areas, mainly just trying to create the Aspen area fully to figure out all the systems that will be needed for all the other areas. I may start working on some of the buildings too, which would be quite fun. So stay tuned :smiley:

Here are the things about the landscape mentioned above for anyone interested in that.

The landscape I was working with from my previous update, where precut tiles with a high density of polygons were projected on to a sculpted landscape, then decimated afterwards to bring the polycount back down, ended up not working in the end because it wasn’t really able to pick up the smaller details of the sculpt when I added the path into the sculpt. It was mainly the way the path can kind of cut into the ground a little bit from being walked on all the time. So that meant having to go back to using the sculpted landscape where I was able to sculpt certain areas like the path with a finer density of triangles and still export it that way. The downside of this though was that the edges of each tile were all jagged because of the way the Dynamic Topology mode in Blender that creates geometry as you’re sculpting works only with triangles. So the edges of each tile looked like this:

The problem with that became apparent in Unreal when I used the automatic LOD generator to create the LODs for each tile. When it creates the LODs at the really low amount of polygons, it takes away all of those triangles and leaves a somewhat straight line, but one that is a bit wavy. So you end up with lots of holes between tiles that are quite visible. So to fix that I ended up using the knife tool in Blender to cut actual straight lines through those triangles for each tile edge:

That way the edges would still be right up next to each other when the LODs were made.

To do any sculpting work, you then just recombine the tiles you’re working on, do your sculpt work, cut the triangles that changed while sculpting, then separate the tiles again.

This ended up working quite well in the end and really combined the best of both the projected landscape, which had straight edges for each tile, and therefore straight lines for the LODs, and the sculpted landscape, which could have small details in specific areas.

The other really great thing I tried with it was to do custom settings for each of the generated LOD meshes in Unreal. It takes more time to set up, since you have to set things manually, but with the straight lines on each tile, you can get away with taking down the triangles in the mesh by very large amounts and also have it change to those LODs a lot closer to the camera than with the automatic LOD generation. This helped quite a bit because I was able to have the first LOD go down by 33% of the original mesh, then the next one down to 6%, and the last one down to 1.5%, or only 4,500 triangles for a mesh that’s originally around 300,000 triangles. This really cuts down on the amount of triangles being rendered for something that isn’t really seen much, which allows for adding more things that are seen to the game. You also can’t even tell when the meshes change either.

One really nice thing about all of it is I can also do a separate material instance that only mixes between basic colors,instead of mixing between all the Diffuse, Normal, etc. ground textures. So the further away tiles have a lot fewer instructions. Here is a view of the shader complexity to see that, where the darker green has more instructions being processed:

Since the LODs reduce the amount of triangles so heavily, there is also not much overdraw from triangles occupying the same pixel and therefore rendering the same pixel over and over again:

Also here is a view that shows the LOD meshes where white is LOD 0, red is LOD 1, green LOD 2, and blue LOD 3:

The last thing that needed solved after all of that was to do the collision mesh for each tile. With the way Unreal does the LOD generation, you don’t have control over how many triangles it takes away in different areas, so the path was basically being taken away completely for the collision mesh. To solve that, I just used Blender’s decimate modifier with the vertex group settings to control how much the path gets taken away, so it ends up like this:

Then you just import that as one of the LODs on the landscape, choose to use that LOD for collision, and you have good collision again.

I think that’s everything of how the landscape is set up now. Hopefully it helps somebody out!