PancakeGenie If the spot's good, the building stays visible; if not, it disappears.

It's probably more convenient to make the building semi-transparent, so that it doesn't completely disappear.

    Tomcat Thanks for the suggestion!

    I didn't yet figure out how to approach it completely. I am considering making it semi-transparent even if it is on buildable tile but to color it either green (if can be placed) or red (if can't be placed). This way the player knows that the building isn't built.

      PancakeGenie I am considering making it semi-transparent even if it is on buildable tile but to color it either green (if can be placed) or red (if can't be placed).

      That would be the best option, but the building itself is red, so I'm not sure it would be clear. But it's possible to try.

      Update [0.270923]


      Sumarry
      This update might not look like much, but it took a good bit of work to get here. I managed to move from a single item list to separate databases for each civilization. It was a bumpy road with a few editor crashes along the way, but now everything auto-updates from Google Sheets. It's a small but important step that should make things easier down the line.


      What's New:

      • Civilizations: After some steady work, the game now features two foundational civilizations: England and France. I've structured things in a way that should simplify the addition of more civilizations in future updates.

        • Buildings: Each civilization has its own set of buildings. To give you an idea, the Archery Range for England is visibly different than the one for France. This brings an extra layer of immersion to the game.
        • Selection: With this update, the selection mechanism has become more nuanced. When you select a building, the available units and upgrades you see will vary based on the civilization you're playing. This means that an English Archery Range will offer you an "Archer" unit, while the same building for the French civilization will not.
      • Item Database A significant behind-the-scenes change is the switch from a centralized item database to civilization-specific databases. Each civilization now has its own database of items, loaded at the start of the game. This way, players are limited to building what is actually available for their chosen civilization, much like in the Age of Empires series.


      Up Next: A Foray into "Artistic" Modeling!

      Look, I'm not exactly Michelangelo with 3D models, but I'm ready to take a swing at it. Consider this my artistic cooldown lap after a marathon of code. Expect some... let's call them "minimalist" models making their debut in the game. They may not win beauty contests, but they'll certainly add character!

      And why the single-color palette, you might wonder? Well, it's all about "optimizing the render pipeline," obviously. Totally not because my modeling skills mirror my cooking abilities: functional but unremarkable.

        PancakeGenie Look, I'm not exactly Michelangelo with 3D models, but I'm ready to take a swing at it. Consider this my artistic cooldown lap after a marathon of code. Expect some... let's call them "minimalist" models making their debut in the game. They may not win beauty contests, but they'll certainly add character!

        In order not to make models from scratch, I suggest to pay attention to programs that facilitate their creation.

          Tomcat I looked into the discusion but those are for the characters and trees. I might be missing something. I need to make buildings (barracks, archery range, stables, etc).

          But my idea for units will be similar to how the Battle Brothers did it or something close to it! To simplify is as much as I can without taking it too seriously.

          But I will, maybe, use the Make Human Blender plugin. Will see! Thanks for the tip!

            PancakeGenie I need to make buildings (barracks, archery range, stables, etc).

            Sweet Home 3D, which is also mentioned there, is good for creating buildings.

            To simplify is as much as I can without taking it too seriously.

            MakeHuman has models of different polygonality. Very low poly

            Update [0.011023]


            Summary
            Hey folks! Life's been keeping me on my toes lately, so I haven't been able to dedicate as much time to this project as I'd like. I've also started planning another game, but this project remains my detailed sandbox where I learn and experiment. My journey with Godot has taught me a lot, and I'm cautiously optimistic about the games I can create in the future.

            Enough about that—let's talk about what's new here! I've added a handful of features, each contributing in its own small way to the project. Yes, that includes implementing drag-and-move, object pooling, and a 3D model! Let's dig deeper into these updates.


            What's New:

            • Building Placements: Taking into account some helpful suggestions, like the one from @Tomcat, buildings that can't be placed on a particular tile will now appear transparent. This is a simple yet effective way to provide immediate feedback to the player.

            • Drag-and-Move: I've implemented a more intuitive drag-and-move system. By holding down the right mouse button, players can now pan around the map with greater ease.It's a quality-of-life improvement that makes exploring the game world a bit more comfortable.

            • Object Pooling: Resources appearing on the map are now managed through object pooling. This means that only the required number of resources will be created and displayed at any given time, conserving system resources. If more are needed, they'll be dynamically added to the existing pool. This should help in keeping the game performance more stable.

            • Archery Model: I'm pleased to have completed a simple yet functional model for the Archery Range building. The model has been optimized for game performance, using just a single material and eliminating unnecessary polygons.

            • Other Changes: Some not so visual changes that affect the game:

              • Raycasting Adjustments: As the game screen has been stretched to fit various display sizes, some new challenges emerged with raycasting, particularly when the window is resized. After a bit of work, I've managed to modify the raycasting logic so it now takes into account the window size and aspect ratio. It's not something you might notice outright, but it's crucial for maintaining the integrity of player interactions within the game.
              • Building Height Calculations: Previously, all buildings were placed at a uniform height, which led to some unrealistic scenarios — buildings would sometimes appear to be submerged in the ground or hovering above it. To address this, I've adjusted the building placement algorithm. Now, each building's height is calculated based on the specific tile it's placed on, ensuring that structures are neither buried nor floating, but instead fit naturally within the landscape.

              PancakeGenie Archery Model: I'm pleased to have completed a simple yet functional model for the Archery Range building. The model has been optimized for game performance, using just a single material and eliminating unnecessary polygons.

              This is very strong work — a small amount of polygons, but the building is very expressive! 🏹

              Update [0.031023]


              Summary
              Hi all, I've been spending some time on UI work, logic adjustments, and a bit of modeling lately. While there's still much to learn and refine, the project is coming along. The codebase is getting quite extensive, making it a bit more difficult to keep track of everything. I'm considering adding more comments for clarity, although I usually rely on well-named methods, variables, and classes to keep things understandable.


              What's New:

              • Building Hotkeys: Simplifying player interactions, you can now use hotkeys for selecting and building structures, eliminating the need for repeated button clicks.

              • New Building - Barracks: A humble addition to the game. The Barracks model follows a similar aesthetic to the Archery Range. It's designed to be efficient with a minimal vertex count and shares the same color palette texture as previous models.

              • Revamped Building Selection UI: The previous UI had sections for "Battle," "Resource," and "Economy," which felt cumbersome to navigate. The new UI layout places all these elements under one umbrella but categorizes them for easier navigation. Added a bit of smoothness to the transitions as well, thanks to Godot's Tweening capabilities.

              • Drag-and-Move Building:: A small but handy change—while dragging the map to explore, any "ghost" buildings you're holding won't be canceled. The building will only be placed once you stop moving the map.

              • Building Canceling: Added the ability to cancel "ghost" buildings using the "Escape" key, right-click, or "B" key to select a new building. A tiny feature that makes a big difference in gameplay fluidity.

              • Civilization Colors: All civilizations now share the same building models, but the building colors change depending on the chosen civilization. In the future, players will have the option to customize these colors. This change required a slight alteration in rendering, requiring two draw calls instead of one.

              • OtherChanges:

                • Instant Placement: Now, buildings appear immediately on the selected tile.
                • Build Rule: You must deselect a selected building to build another.
                • File Format: Switched from .GLB to .OBJ for models.
                • Resource Icon Positions: Slight improvements to resource icon placements on the screen.
                • UI Hotkeys: Building hotkeys are now displayed in the UI.

                PancakeGenie File Format: Switched from .GLB to .OBJ for models.

                What's the reason for the change? What are the disadvantages and advantages?

                  Tomcat Ah, because I needed only the mesh so that I can place it directly on the Packed Scene with MeshInstance3D as root component.

                  Each building has the same two materials: Color Palette and Civ Color. So, for the whole game I only need a two material resource objects that I apply to every unwraped model. This makes it so the renderer finishes rendering in only two drawcalls (because all of the models use the same material). At least this is how Unity did it.

                  I never used .GLB but it seems to be that there is no easy way to add resource material to it. Also, it creates a packed scene that I can't edit by placing StaticBody3D and CollisionShape3D under it.

                  I didn't play with .GLB long enough and I am much more familiar with the .FBX or .OBJ formats in games.

                  Update [0.061023]


                  Summary

                  Though my birthday celebrations and diving into procedural generation in another project ate into some development time this week, I still managed to make some important updates to the game. Let's dive into what's new.


                  What's New:

                  • Turns: After some development effort, a turn-based system has now been implemented into the game. Each game will have a last turn capped at 65,535. While this might seem like an arbitrary number, it's set high enough that it should never become a limiting factor in any game scenario.

                  • Building Delay: The instant build mechanism has been replaced with a more realistic building delay feature. Now, constructing a building takes a specific number of turns based on what you're trying to build. For instance, a Barracks will now require 2 turns to complete, and a Market will take 3 turns. The visuals for this feature are still in the works, but functionally, it's operational.

                  In addition to these updates, I've made a number of bug fixes and logic alterations to ensure a smooth integration of the new "Turn system".