Sacred Forest
Sacred Forest
  • Видео 7
  • Просмотров 246 692
Struggling to Optimize My Open World Game
🎮 Wishlist Sacred Forest on Steam Now 🌳👉
store.steampowered.com/app/2864350/Sacred_Forest/
Please subscribe, like and turn on notifications if you enjoyed the video!
🔖 CHAPTERS
0:00 - Intro
0:31 - Camera/Player
1:31 - New Areas
2:42 - Current Performance
3:47 - What Should I Do
4:35 - Structures/Buildings
7:30 - Foliage
This is my seventh devlog for Sacred Forest -- an open world game developed in Godot. In this video I go over my performance issues and various ways of trying to optimize the game.
MultiMeshExtractor Tool: www.patreon.com/posts/multimeshextract-116842066
Test Scripts: www.patreon.com/posts/test-scripts-for-116843218
Spatial Gardener Plugin by Dreadpon:
github.com/dreadpon/godot_spatial_g...
Просмотров: 7 807

Видео

NPC Upgrades, Custom Camera & Effects in Sacred Forest | Devlog #5
Просмотров 7 тыс.3 месяца назад
🎮 Wishlist Sacred Forest on Steam Now 🌳👉 store.steampowered.com/app/2864350/Sacred_Forest/ In this Sacred Forest devlog, I showcase new areas, including the starting camp and training grounds, as I work towards building a playable demo. I discuss my world-building process and share optimization techniques like level of detail, occlusion culling, and custom zone loading to improve performance. P...
NEW Movement Mechanics in Sacred Forest | Devlog #4
Просмотров 9 тыс.4 месяца назад
🎮 Wishlist Sacred Forest on Steam Now 🌳👉 store.steampowered.com/app/2864350/Sacred_Forest/ Please subscribe, like and turn on notifications if you enjoyed the video! This is my devlog #4 for Sacred Forest an open world game developed in Godot. Follow along as I go over all of the changes I've made since the last video as well as how I implemented new wall running and dodge mechanics. Spatial Ga...
Revamping the Look and Feel of Sacred Forest | Devlog #3
Просмотров 13 тыс.5 месяцев назад
🎮 Wishlist Sacred Forest on Steam Now 🌳👉 store.steampowered.com/app/2864350/Sacred_Forest/ Please subscribe, like and turn on notifications if you enjoyed the video! Welcome back to the Sacred Forest devlog series! In this episode, I’ll be diving into the latest updates and enhancements I’ve been working on for my open-world action-adventure game, Sacred Forest. What’s New in Sacred Forest: 🔸 V...
First Characters and Zones in Sacred Forest | Devlog #2
Просмотров 23 тыс.7 месяцев назад
🎮 Wishlist Sacred Forest on Steam Now 🌳👉 store.steampowered.com/app/2864350/Sacred_Forest/ Please subscribe, like and turn on notifications if you enjoyed the video! CHAPTERS 0:00 - Cutscene 0:40 - About Sacred Forest 1:14 - Main Character 2:38 - New Characters 3:36 - Normal Maps 4:53 - Optimizations 6:27 - New World This is my third devlog for Sacred Forest an open world game developed in God...
Scaling Up My First Open World Game | Devlog #1
Просмотров 102 тыс.8 месяцев назад
🎮 Wishlist Sacred Forest on Steam Now 🌳👉 store.steampowered.com/app/2864350/Sacred_Forest/ Please subscribe, like and turn on notifications if you enjoyed the video! CHAPTERS 0:00 - Gameplay Intro 0:09 - About Sacred Forest 0:27 - Feedback 0:42 - Main Character/Visual Style 2:45 - Audio System Redesign 4:12 - Scaling Up My World 5:03 - Optimizations 7:30 - Plugins 9:26 - Zone Streaming This is...
Making My First Open World Game | Devlog #0
Просмотров 86 тыс.9 месяцев назад
🎮 Wishlist Sacred Forest on Steam Now 🌳👉 store.steampowered.com/app/2864350/Sacred_Forest/ Please subscribe, like and turn on notifications if you enjoyed the video! CHAPTERS 0:00 - Gameplay Intro 0:47 - About Sacred Forest 1:31 - My Goals 1:45 - Past Projects 3:08 - Visual Style 3:40 - Gameplay Feel 4:18 - How To Make Good Animations 5:03 - Fun Mechanics 6:16 - Game Setting 6:32 - Challenges ...

Комментарии

  • @cheese_man2717
    @cheese_man2717 2 дня назад

    I love when people make new things and you good sir are making a great new things

  • @HuertaHolistica
    @HuertaHolistica 20 дней назад

    i am in love with this!!! Now in the crazy idea to become a part time game dev. the rest of time, spend in learnig all needed for ai agent models in real life situations, low/medium income households. my dream is to make an educational like game with ai agents being ´tutor´ along with a simulation of the subject. i really love this game,gave me the boost to try this dream path!

  • @Tenduere
    @Tenduere 23 дня назад

    Man, 2d pixelart characters in 3d environments are so weird and ugly.... The 3d looks good, why not make the characters 3d too?

  • @haroldodosbrahmmas258
    @haroldodosbrahmmas258 24 дня назад

    The scenery and leveldesigne lack some art direction. They looks a bit dissassociated with each other

  • @Keynetics
    @Keynetics 25 дней назад

    this is a bit off topic but is there a reason why your player character is wearing so little clothes?

  • @FrozenInIce
    @FrozenInIce 27 дней назад

    those wood beams have way to much vertices from the outpost you show you need to optimize models not just how models are loaded.

  • @videorowtv5198
    @videorowtv5198 29 дней назад

    What do you need 80 gigs of ram for?? :0

  • @pv8685
    @pv8685 29 дней назад

    comon lets team up. i will decimate your high poly models and i bet they will not look that much diffrent than before.

    • @sacredforestgame
      @sacredforestgame 29 дней назад

      Hah I wish I could just decimate them (it doesn't give a great result at least with the current topology), but I've been remeshing them and re-uv unwrapping/re-texturing them since this video launched. So far I've been getting anywhere from 4-40x reduction in faces without changing the look so I'm happy but it's definitely tedious lol

  • @pv8685
    @pv8685 Месяц назад

    i cant wait to play this some day. it looks so awesome!

  • @Capewearer
    @Capewearer Месяц назад

    I know the simplest way to optimize your game: switch to Unity.

    • @sacredforestgame
      @sacredforestgame Месяц назад

      I used to use Unity a lot for many years when it first came out but I just didn't like the direction they went with their licensing where they were really pushing subscriptions instead of perpetual licenses, so Unity 4 was the last version I used. Over the years it's been harder and harder to trust large companies since making a game is a multi-year project and it really sucks when they decide to just switch things up when you're really far in development. I'm really happy with all of the open source choices that are available now so I'll make it work one way or another hah! :)

    • @Capewearer
      @Capewearer Месяц назад

      @@sacredforestgame Godot is not a great way to trust. I am not discussing about management issues, but about hypocrisy of Godot Foundation, which members are involved in selling commercial services to the engine. They are not interested in providing stable engine.

    • @sacredforestgame
      @sacredforestgame 29 дней назад

      There are definitely things I don't like about the Godot engine. Every time I start a game project I always like to look at what options are available and what path is going to be ok for the specific project. When I started Sacred Forest, I felt like the version of Godot that I started with would be good enough to finish the project. Every time they put out an update and it has good features that improve the game it's just a bonus to me. While there are definitely some unstable things in Godot, it really hasn't seemed that much more unstable than other engines I've used in the past, especially for open source software. My goal isn't to use or make the perfect game engine that can create any type of game and run perfectly for every situation. Every engine has its downsides and my only real goal is to make the game that I want to make, which I feel like for Sacred Forest, Godot in it's current state is definitely capable of doing what I want it to and hopefully future versions just improve the experience. Also, since I have the source code, I can freely extend the engine and improve it for my specific needs if I ever run into any shortcomings which I already custom build the engine and have already created plenty of plugins to improve the development of the game. So overall I'm pretty happy so far with using Godot as the basis for Sacred Forest but I'm also open to use new engines/frameworks for future projects it just doesn't really make sense to switch mid development :)

  • @NorinDev
    @NorinDev Месяц назад

    Great video. I have one critic for you, the character looks out of place in this environment, it looks like you've placed Link in Skyrim, maybe less details in env textures would fix that

  • @sealsharp
    @sealsharp Месяц назад

    Interesting. Your geometry looks rather simple, so i wonder what does it look like in overdraw-viewmode? And one more: are the shaders used for grass & trees alpha-cutoff or alpha-blending and do they correctly render in the opaque pass with reading and writing to depth buffer?

  • @SmallusDicckus
    @SmallusDicckus Месяц назад

    She looks hot even in pixelated form

  • @realmcafee
    @realmcafee Месяц назад

    you have such a pretty project. im always jealous when seeing it.

  • @bourbonbobo
    @bourbonbobo Месяц назад

    Really enjoying this devlog series. Those log fences at 3:44 are probably not helping performance I think this game would benefit from leaning into a lower poly style. One thing that also stood out to me is the foliage on your trees. There's a lot of transparent pixels and presumably a lot of overdraw happening there. I feel like the leaves are possibly too high resolution and or at least that there's too much space between them in the texture which makes them look very noisy in motion. Also this is a matter of taste but I think the depth of field effect isn't helping performance and looks kind of intense. it could be worth trying to just have fog and no blur or at least turning down the intensity a little so distant objects aren't completely indecipherable. I really love what you're making here though and I hope you can find a good balance of graphical performance without having to spend too much time optimising.

  • @popsiiv
    @popsiiv Месяц назад

    2:22 Fed to the rules and I hit the ground running Didn't make sense not to live for fun Your brain gets smart, but your head gets dumb So much to do, so much to see So what's wrong with taking the back streets? You'll never know if you don't go You'll never shine if you don't glow

  • @Kry0000
    @Kry0000 Месяц назад

    This video has valuable information, thank you for sharing, it's very much appreciated. Your game looks fantastic and I look forward to seeing how you change your game world for better performance.

  • @iiropeltonen
    @iiropeltonen Месяц назад

    3:40 looking at those meshes you HAVE TO loose atleast 90% of polygons on those log meshes. 😮

    • @sacredforestgame
      @sacredforestgame Месяц назад

      Hah! Yeah it's been on my todo list to go through every mesh and re-topologize them to reduce the poly count and clean up materials. The only reason I've held off is because the last time I worked on a number of meshes and updated the files in my project, when I reopened Godot it reimported them and there must have been a bug or something in Godot because it corrupted tons of my prefab scenes by pretty much randomizing which mesh was which and caused a huge amount of work remaking scenes lol. I'm just really hoping that is fixed since it has happened a few times :)

    • @iiropeltonen
      @iiropeltonen Месяц назад

      @sacredforestgame Nasty.... But my eyes dropped to 30fps just by seeing that wireframe 😂

  • @Interference22
    @Interference22 Месяц назад

    My understanding of MultiMesh is that it can give you a huge performance boost if you're using it on sets of identical meshes where there are a large number of them visible at once. Any scenario where you have a large number of identical meshes but most of them are being occluded isn't going to benefit since a MultiMesh essentially treats all its instances as one mesh, so that occlusion is now only happening at a much larger scale. A 2m long wall segment made of individual logs would benefit from being a MultiMesh because the individual parts being instanced aren't too large and neither is the combined mesh. Doing it to the entire back wall of a house doesn't present any performance gains because looking at any part of that wall renders the whole wall rather than just whatever bits of it are in view. Things you could use MultiMesh for: rows of books, sections of fencing / railings, trees and other thin objects, floor junk (rocks, debris).

    • @sacredforestgame
      @sacredforestgame Месяц назад

      I tried testing MultiMesh in a lot of different combinations in my main game world (fences, rocks, various planks, decorations, floors, walls, trees, etc) things that were close to each other that would group together so they could be occluded/culled as one object. After doing a lot of testing (the video was just a couple of tests I ran) it seems it just isn't worth using multimesh at all unless you start getting in the hundreds-thousands of instances that will group together. Creating a MultiMesh with small groups of less than a hundred seemed to make things worse because each MultiMesh submits it's own draw call, whereas if you use individual MeshInstance3D nodes they automatically all get batched in the same draw calls. Even foliage, trees were almost better off as MeshInstance3D nodes if you have only a hundred or so within a chunk. The only reason I'm not going to do that is because it is just much more convenient to use the same system for all of my foliage (spatial gardener). So my main take away from my testing is that grass is the number one thing to use it for and potentially large swarms of things like schools of fish or massive amounts of birds (although animations are much harder this way). Books could be useful if you have a huge library but a small shelf probably wouldn't be worth it. I could be totally wrong hah! That's just from my own testing :)

    • @Interference22
      @Interference22 Месяц назад

      @@sacredforestgame That sounds about right. MultiMesh3D seems to work best when you're rendering one hell of a lot of identical meshes: orders of magnitude more than most people are doing. About the only times I've used it has been more for convenience rather than performance: procedural props etc.

  • @AnkobiaStudios-bs4vg
    @AnkobiaStudios-bs4vg Месяц назад

    Ok but 80 GB of ram? Which angel did you mug? Otherwise, long awaiting your game! One of my most looked forward to wishlists.

  • @Cluxiu
    @Cluxiu Месяц назад

    I love it, you are inspiring me to start my own project, thank you.❤

  • @wellhellotherekyle
    @wellhellotherekyle Месяц назад

    Cool project! I look forward to finishing this video after work!

  • @j5300
    @j5300 Месяц назад

    I had to pause to do a double take at that log fence wireframe at 3:43. I'm sure there's an extra fps or two to be squeezed out of simplifying that particular topology... Jokes aside, great video as usual. Optimization for this kind of huge game world isn't a topic I'm looking forward to tackling if I ever get there. It's always interesting to see how other people are approaching the problem, and I appreciate you showing your stress testing process.

  • @synccyt_
    @synccyt_ Месяц назад

    so cool man thanks for sharing

  • @silchasruin4487
    @silchasruin4487 Месяц назад

    Impostors are another mesh optimization strategy for buildings and giant structures or rocks and such. You will need to decide the lowest possible system you are aiming to run your game, maybe get a separate computer with those specs and each build, see if you are hitting your desired frame rate. I've got 8GB ram with 1050TI GPU and an Intel i7, I can get up to 11 million polygons drawn on screen before seeing Unity drop frames. Can you also be suffering from overdraw? I know people get tripped up with that, when your foliage textures has alot of transparency but the render engine still draws information as if its still there. I've seen people actually increase performance with mesh based foliage for nearby foliage and then batching the far away low res foliage. Looks great so far!

  • @DelttYouTube
    @DelttYouTube Месяц назад

    Most drastic thing I've seen are by far your wooden village walls meshes, those are grossly high-poly for how they look Also I highly advise against using any hightmaps/depth maps, they look horrible in godot unless used with tiled stones or something like that, and even then only look good if paralaxed which kills performance really quick Great progress! Keep it up Also check out the latest video from Godot con on rendering, I remember they mentioned something about batch rendering shadows beings a huge performance booster in big open worlds, but I don't know if, when or since when thats been inside the engine already PS did you ever experiment with rendering the game world at a lower resolution to match it more with your character? might be worth a try :)

  • @generrosity
    @generrosity Месяц назад

    I wonder if you can force your editor camera to have a different LOD so you can zoom around easier? Like, some kind of @ tool with a if: editor

  • @oleglinkov
    @oleglinkov Месяц назад

    ffs! the polycount on individual logs of that wooden wall... and then we wonder why Steam is full of unplayable shit these days

  • @LegendaryNuggets
    @LegendaryNuggets Месяц назад

    You need to upgrade your CPU, Jesus that thing is going to bottleneck your GPU by about 29.9%

    • @sacredforestgame
      @sacredforestgame Месяц назад

      Hah yeah I'd like to but I'm pretty broke lol. I built this pc in 2018, the only reason I have a newerish gpu is because my vega 64 is d e d :)

    • @exaq
      @exaq Месяц назад

      online bottleneck calculators are not accurate

    • @LegendaryNuggets
      @LegendaryNuggets Месяц назад

      @exaq "by about" either way his cpu is way behind his gpu you get the point

  • @Stavaas
    @Stavaas Месяц назад

    Remember that collisions can also get very expensive, so it's important to make sure they are also optimized, preferably just a box, sphere or capsule where it's possible

    • @Capewearer
      @Capewearer 23 дня назад

      Collisions can be cheap, if they are implemented properly. E.g. implementing static mesh colllisions. Godot doesn't have a concept of a truly static mesh, where everything, including memory allocation, collision and lighting, is optimised. You can exclude unnecessary collision check between immobile meshes with collision masks, but even so, you wouldn't get the same speed as if it was designed with static meshes in mind, because that means you still have to check through flags which objects should collide or not.

  • @abhijitleihaorambam3763
    @abhijitleihaorambam3763 Месяц назад

    3:44 bro you need to make those pillar mesh low poly!, that's too much tris! going there. Make a low poly bake those highpoly details as a normal maps. It should look fine as before.

    • @generrosity
      @generrosity Месяц назад

      I wish there was a node in godot to just handle that for you - auto LOD or something, but not loading/compiling the huge mesh into the running game

  • @lyingpancake95
    @lyingpancake95 Месяц назад

    Ah, yes, the journey of testing several alternatives only time revert back to the intial method. But, I agree with the sentiment "the more you know, the more you know."

  • @bobojenkins5805
    @bobojenkins5805 Месяц назад

    Around 10:08 there is a flash of white light on the screen, when making my game I had the same graphical issue to varying degrees sometimes the white light would consume the whole screen. Do you know what causes this? Is it just an inherent problem with Godot or is it something we're doing that's causing it?

    • @sacredforestgame
      @sacredforestgame Месяц назад

      I didn't have the same issue in Godot 4.2 (it was a black hole instead of a white hole at least on linux, windows was fine) and it seems to be worse on objects where I use visibility range. I haven't spent much time trying to figure it out yet but I'm sort of just hoping it's a Godot bug and it is on my todo list to look into hah! :)

    • @bobojenkins5805
      @bobojenkins5805 Месяц назад

      @sacredforestgame let me know if you figure it out please

    • @sacredforestgame
      @sacredforestgame 28 дней назад

      I've been remeshing/re-uv unwrapping/texturing all the models in Sacred Forest to reduce the poly count and I noticed the flashes went away when I dropped under around the 8 million triangle count (around 25 million vertices). I can't say for sure but I'm guessing the flashes happen when there is just too much geometry being displayed and so maybe it is overflowing a buffer or something. Still I can't say for certain if it is just from the retexturing or the reduction of geometry but it seems to be fixed for me now hah

  • @noblebuild2550
    @noblebuild2550 Месяц назад

    if it has modules and a command bar like roblox studio, you should make a chunk tool with a selection brush or a snapper like minecraft block selection (this could let you edit datavalues for areas of the map, using perlin noise to generate weather from forecast tables)

  • @NugrohooAri
    @NugrohooAri Месяц назад

    you made in godot?😯

  • @BA-oy9uo
    @BA-oy9uo Месяц назад

    upgrade a to 5800x3d would be huge for you

    • @sacredforestgame
      @sacredforestgame Месяц назад

      Just got to get some extra dollary-doos first hah! :)

  • @NorthOfEarth
    @NorthOfEarth Месяц назад

    I think a major issue is your mesh topology. Those pillars at 3:45 and the house at 7:20 are way too dense, even for the highest LOD. Every single vertex is between 16 and 48 bytes, with larger meshes being several megabytes total. Since they're rendered as separate meshes, every single one of those pillars sends a few megabytes from your CPU to your GPU on EVERY FRAME. It adds up extremely fast. People fixate way too heavily on rendered objects and batching, but ignore the underlying framerate-limiting property: data throughput. Reduce your mesh complexity by decimating vertices and stripping unnecessary channels like vertex color. I promise you'll get much better results. At the end of the day, the ONLY thing that matters is how many bytes are sent to the GPU.

    • @bayroot7385
      @bayroot7385 Месяц назад

      This comment is on point, I hope he sees this.

    • @sacredforestgame
      @sacredforestgame Месяц назад

      Yeah I think you're spot on! I was going to simplify a lot of the meshes eventually (and redo a lot of the materials/textures) but since I can do that any time without having to rebuild the world I wanted to see if there were some techniques (multimesh, rendering server, etc) that would help with performance since I would want to know that early on because it would effect how I make the rest of the world :)

    • @HiHi-iu8gf
      @HiHi-iu8gf Месяц назад

      @@sacredforestgame idk if uve alr done this but could also see how baking higher res normals onto lower poly models looks if ur resistant to comprimising lighting detail

    • @croneryveit9070
      @croneryveit9070 Месяц назад

      Isn't batching (and instancing) direct and main ways of reducing data throughput? It's like youre saying "people are way too fixated on X, when they should actually be focused on Y which is achieved by doing X and a bunch of other things"

    • @tmaqq
      @tmaqq Месяц назад

      Im a professional game developer and I immediately scrolled down to write this comment when I saw how dense the meshes for those logs are in 3:45. A major factor for why a lot of games look good and still run well (most of the time) is smart and well thought-out approach to asset creation and optimization.

  • @radianthole
    @radianthole Месяц назад

    Always love it when devs are in their optimization arc

    • @sacredforestgame
      @sacredforestgame Месяц назад

      I think I'll be in the arc for a while hah! :)

    • @repingers9777
      @repingers9777 Месяц назад

      The curse of 3d grass and trees

    • @sacredforestgame
      @sacredforestgame Месяц назад

      It can always use more grass and trees! :)

    • @drinkwwwaterrr
      @drinkwwwaterrr Месяц назад

      I hate doing optimization but seeing others do it is so entertaining and satisfying seeing smart ways to claw back performance

  • @radianthole
    @radianthole Месяц назад

    You can make the windmill turning lead to other things that might advance the story, idk just a thought

  • @Mr-Highball
    @Mr-Highball Месяц назад

    Nice 🍻

  • @Gorom101
    @Gorom101 Месяц назад

    I think the mix of art styles is really cool, and it makes the game stand out more! For me it’s a positive! But I’m still not crazy about the design of the main character..

  • @Whalesharkgames
    @Whalesharkgames Месяц назад

    I have some suggestions: You should maybe have it so that when objects load in, they don't instantly pop in. You could make it so that it is like Breath of the Wild where they are loaded at 0% opacity and then fade in quickly. At 2:02 you can see the trees on the left instantly load in. Another suggestion I have is that you could make the lighting a little better inside structures (like in the windmill at 2:20). You should also add some ambient insects like flies, fireflies and butterflies to add to the theming. I hope my suggestions help!

  • @AchebeGames
    @AchebeGames Месяц назад

    Take a shot every time you hear "MultiMeshInstance3D Nodes"- I love optimization videos like these, so fascinating!

  • @Conlexio
    @Conlexio Месяц назад

    have you considered more pixely textures like valheim? normal maps still look good not even really a suggestion just wondering, it looks good how it is

    • @sacredforestgame
      @sacredforestgame Месяц назад

      I definitely did consider it but when I was deciding on how I wanted the style of the game to look I felt like most 2.5D Pixel Art/HD Pixel Art games also make the world and everything in it pixely looking and it totally makes sense to do that. I know from an artist perspective it really doesn't make any sense the way that I'm doing it for Sacred Forest but I'm not an artist and I personally like the mix of styles. I also feel like it will help in some of the scarier parts of the game :)

    • @dirkygoodness
      @dirkygoodness Месяц назад

      As an artist, throwing in my 2 cents, but I personally like the juxtaposition between the more realism based scene, environment, and monsters as it gives a personal style to the game, and gives a slight uncanny valley feeling esp when you enter the foggy forest! :3

  • @Whalesharkgames
    @Whalesharkgames Месяц назад

    First

  • @sacredforestgame
    @sacredforestgame Месяц назад

    🎮 Wishlist Sacred Forest on Steam 🌳: store.steampowered.com/app/2864350/Sacred_Forest/

  • @Bluhbear
    @Bluhbear Месяц назад

    It would look even better with 16 directions. 😈

  • @StrayaMate1337
    @StrayaMate1337 Месяц назад

    Love this. Seen a lot of people talking about the 2D / 3D being weird, probably because they are not used to seeing it. My opinion, Stylized game world / environment would look great with 2D pixel art. BUT, either way you're doing an amazing job and it looks amazing so far :)

  • @cabeskywalker4346
    @cabeskywalker4346 2 месяца назад

    So excited to play this. Keep up the awesome work man :)

  • @F-aber
    @F-aber 2 месяца назад

    3:50 a small tipp, the tutorial should be the last thing you work on with your game that isnt stuff like polish or localization, its way easier than doing at the start because once the game is more or less finished you have a way better understanding of what you need to teach in the tutorial and how to best do that