• Projects
  • A Struggle to Survive - 2D tile-based survival game set in 1800s America

Greetings,

I would like to introduce my survival game to the Godot community. It is called A Struggle to Survive. I am blogging about the development of the game over on Google's Blogspot platform. Feel free to follow along here. I worked on it using the UNITY game engine for about a year and a half before deciding in September of 2022 to switch over to Godot. I haven't looked back! I am a software engineer by trade and I have found that making a game might just be the most challenging software project I have ever worked on. But I am very encouraged by Godot's design and ease-of-use. I have exceeded what I accomplished in UNITY in less than four months, including learning GDScript. The game is far, far from finished, but I want to announce it here so that I can get some much appreciated exposure for the project. I am still developing in 3.5.x. I will wait for the Godot 4 release before upgrading.

Here is a current screenshot of the game.

Here is a link to a short non-commentary video on my YouTube channel showcasing the progress I have made on the flora engine, which is the focus of this month's development sprint. It also shows some of the inventory system features.
Eyesgood's YouTube Channel
Thank you for your interest and I look forward to sharing my development journey with this amazing community.

Eyesgood

5 days later

I like it.
I am great fan of survival games and had some similar ideas as you had while I was thinking about creating survival game myself. I also read most of your blog posts and find them very intersting. Keep working it looks promising.

Timber! New video up on my YouTube channel where I show off some new flora features including sap collection and tree harvesting in my 2D survival game set in 1700's America titled, A Struggle to Survive!
[

a month later

I'm throwing it out there, the art style would lend itself more than fine to subtle(?) horror aspects.
I think you should consider making it a bit/lot spookier, maybe by injecting some Native myths in the background. Easter eggs, rare events, whatever.
I think people like a little mysticism unless they're hard-core realists.

    packrat Thank you for the suggestions. I am sure that by the time I finish this project, it will morph into something quite different from my initial ideas. The very thoughts of how to implement conflict, danger, fear, and ambiance have been stewing in my mind for a long time. I think if I focus solely on survival, the game will be a boring grind. However, the realities of life 250 years ago was not without these things. Dark nights where you can barely see the trees without light. Wolves howling to indicate they are nearby but cannot be seen until spotted. Bears that roam in the day searching for food. NPC's that can steal from you if they are unscrupulous. Unfriendly natives and white men with dispositions set against the player for various reasons. Dangerous critters that can bite and inflict disease. Weather that can affect movement, wellness, and more. My hope is that somewhere in all that mix of uncertainty, I will be able to capture the essence of surviving alone in an unforgiving wilderness, while also making the game educational, fun, and worth the time. Who knows, maybe Bigfoot will be heard at night and seen at day. Thanks again.

      Bound2bCoding Dude, as an Oregonian, it would make me pretty happy to see bigfoot show up. I'm getting pretty cool visions of what your thing could turn into. I'm holding my breath on you.

      3 months later

      A new video is up on my YouTube channel. This one shows progress made on the performance of my tilemap implementations in Godot 3.5.x.

      Bound2bCoding changed the title to A Struggle to Survive - 2D tile-based survival game set in 1800s America .
      5 months later

      It's been a while, but I finally posted a new video where I demonstrate (with code) how to create a seamless, wrapping tilemap world without using chunks. This one is in Godot 4 and uses C# rather than GDScript. Have a look if you are interested.

        4 months later

        Bound2bCoding

        I posted this question about a Godot 4.2.1.NET+ Multiplayer Seamless Chunk System from scratch in https://godotforums.org/d/39204-godot-421net-multiplayer-seamless-chunk-system . I also asked how to get in contact with you on your YouTube comment section. I have been looking over your videos and in the how you built your seamless chunk / map system you said you worked on multiplayer and web versions of the same project idea in the past. What should be done for a web deployment to run on a browser and host 2K to 16K players on one server? What are your thoughts and suggestions? Any feedback is great.

        Hello. Your previous posts appeared to be spam and were deleted from my channel. I did work on an early web version of my game, but found that HTML, JavaScript, and the web browser were not providing me a sufficient platform for my needs, so I abandoned a web/multi-player approach and went with a single player game. The game was never released - it was just a project. That said, if you are serious about a multi-player game via a web browser, you will need to get assistance from someone else. There are many technical hurdles to jump over, not the least of which is database and service development which can scale to your requirements. Multi-player web games via a browser are not my wheel-house. Best wishes.

          Bound2bCoding
          "That said, if you are serious about a multi-player game via a web browser, you will need to get assistance from someone else."
          Okay there is a working open source Godot 4.2.1.NET ARPG prototype that have solved web browser deployment but it has not solved seamless chunk system data and storage. https://github.com/jonathaneeckhout/jdungeon + https://jonathaneeckhout.itch.io/jdungeon (this had entities / mobs working but they are down for testing).

          How is it possible to take the best of this example and also apply seamless chunk system data and storage management for multiplayer? The example of JDungeon as not built for seamless chunk system at the start they wanted portals but it does work online and cross platform. The various forums and threads I've asked about this question have said to do a fresh build with the multiplayer seamless chunk system.

          "Database and service development which can scale to your requirements." What do you feel is a good set of recommendations to consider for the server and database to work with the seamless chunk system? I have been searching github for open source Godot projects such as minecraft type examples (and I only have a handful).

          Here are some of my best leads so far (you are on it): https://github.com/WithinAmnesia/ARPG/discussions/16#discussioncomment-8513009
          "Leads and Suggestions:
          https://github.com/Solicey/minecraft-made-with-godot/issues/1 (Multiplayer Minecraft clone written in C# with Godot 4.2.1.NET)
          ...
          https://github.com/xellu/xelcraft/issues/6 (Multiplayer Planned Minecraft clone written in C# with Godot 4.2.1.NET)
          ...
          https://github.com/hakanero/minecraft-clone/issues/1 (Minecraft clone written in C# and GDscript with Godot 4.2.1.NET)
          ...
          https://github.com/pvini07BR/mijocraft/issues/2 (GDScript Multiplayer Minecraft in Godot 3.XX)
          ...
          https://github.com/fanherbaty/crustycraft/issues/1 (2D Minecraft with cave levels in Godot 4.2.1.NET+)
          ...
          + https://astruggletosurvivedevblog.blogspot.com/ (C# software engineer seamless large tile / chunk map that can possibly do multiplayer and browser support game)
          ...
          https://github.com/sirarandor/lux-terra/issues/1 (Multiplayer expanding tile / chunk game with fog of war)"

          There are only really about 2-3 maybe 4 examples there in that list that address how to save and maybe integrate with multiplayer. I have been recommend to get a few or more server and database and client systems considered to work with the seamless chunk saving and storage systems at play. What would you recommend as some suggestions for data systems to work with a server that come from the seamless chunk system?

          Also how can we take your example video and have it so that the world is hand made but can be altered by the player (chop trees, farm field, mine rocks, break blocks, maybe build houses and structures etc.)? I want to learn C# better and people keep saying the server part should be written in a fast language like C#. Also you are a master at C# and you want people to write their own version of your scripts; of which I need to do. Yet I am not sure what to best do to custom tailor your beautiful scripting to fit with a less procedural generated world; and one that has no wrapping but a more hand built one that is one really big map with interiors and multiplayer?

          Oh! Can we learn from your code in C# with the really big tile maps system and build a 100 x 1,024x1,024 [104,857,600 16x16 pixel tiles] map / area (with other linked maps like rooms and interiors and subterranean environments). In that the very large (104,857,600+ 16x16 pixel tiles) area map loads what is in the player view port and can host many clients in the same server like (dynamic worlds) Minecraft or Terraria / (non-dynamic worlds) WoW / Runescape? What would thus look like in your mind and what is needed to create of these chunk systems from scratch with C# that works with Godot 4.2.1.NET and can hook up to 2K to (I think it is feasible in at least 2D) even bigger 16k servers?

          Please where can I talk with you and learn how to best master the seamless chunk system example you have? Should I write the script give you a demonstration project and start making little prototypes and asking for help guiding what I should do next for X system or Y requirement when they arise? I need a C# friend to learn from really bad to do this properly and efficiently and to best use C# and Godot 4.2.1.NET and its much funner to work with friends it add a lot of life lol. I want to build as much as I can from the ground up to best work for large multiplayer and Godot 4.2.1.NET.

          What are your thoughts and suggestions? What comes to mind that I should initially start doing to do this properly as view from your vast expertise? All feedback is welcome.

          Chunking is probably a MUST for your project because it will be streamed from the servers to the client(s). I did not do a chunkless system with the web project. Actually, I streamed the data tile-by-tile, necessary because of the web-based design. Think about it. If you tried to send the entire map to every player, it would probably kill performance.

          I would recommend that you spend some time with a sample web-based project and learn the basics of sending/receiving/processing packets of game data to a client. Then, you will learn what can and cannot be done. You can have millions of tiles in a database and only send what the user needs to see on their screen. That would not be the same solution I demoed. Thanks for your interest in my game.

            @WithinAmnesia I moved your last post to your own discussion as it's a big topic to cover that deserves its own space. 🙂