• [AoNW] The Road to Open Source

    At some point after the first proper release of Age of New Worlds, I would like to make the project open source.

    Not immediately. Not while the game is still changing shape every week. Not as a way to avoid finishing it. I want the game to stand on its own first: playable, understandable, and coherent enough that someone can experience it as a game, not only as a repository.

    But after that, I want to open it.

    Because Age of New Worlds has always been more than a private experiment for me. It started as a small project to learn the Apple ecosystem, Flutter, Flame, and the shape of building a game across client and server. Over time, it became a compact 4X architecture study: commands, reducers, projections, fog of war, AI, map editing, multiplayer safety, and a domain model that tries to stay testable.

    That kind of project feels worth sharing.

    (more…)
  • [AoNW] Responsiveness in a Strategy Game: Supporting Phones, Tablets, and Desktop in Flutter

    Responsiveness in Age of New Worlds is not the same problem as responsiveness on a normal website.

    A 4X game is dense by nature. It has a map, units, cities, resources, action buttons, panels, notifications, fog of war, overlays, turn state, and sometimes multiplayer information. The challenge is not only to “fit the UI on the screen”. The challenge is to keep the map playable while still giving the player enough information to make decisions.

    That means I do not treat responsiveness as a final CSS-like pass. I treat it as part of the presentation architecture.

    (more…)
  • [AoNW] Building the UI in Flutter: Palette, Surfaces, and Reusable Templates

    In Age of New Worlds, the UI has a difficult job.

    It has to feel like it belongs to a strategy game, but it cannot get in the way of the map. It has to show a lot of information, but it cannot become visual noise. It has to work for menus, HUD panels, modals, the map editor, multiplayer screens, and developer tools, but it cannot turn every screen into a hand-crafted exception.

    (more…)
  • [AoNW] From Sprites to UI Icons: Building an Asset Pipeline for a Strategy Game

    A strategy game is not only code and rules.

    It is also icons, unit sprites, terrain images, map textures, building symbols, technology art, sounds, music, overlays, and small visual markers that tell the player what is happening.

    (more…)
  • [AoNW] Testing Bounded Contexts: Making Architecture Fail Loudly

    In Age of New Worlds, bounded contexts are not only a design idea. They are something I want the test suite to defend.

    It is easy to draw clean diagrams early in a project. The hard part is keeping them true after months of adding features, fixing UI problems, wiring multiplayer, changing saves, and moving logic between client and server.

    A boundary does not usually break dramatically. It breaks through one convenient import, one shortcut, one helper used from the wrong layer, one piece of presentation logic leaking into the domain.

    So I try to make those mistakes fail loudly.

    (more…)
  • [AoNW] The Test Layer: Keeping a 4X Game Honest

    Testing a 4X game is strange.

    A lot of the game is visible: the map, the units, the HUD, the fog of war, the city panels, the turn button. But the most important parts are not visual at all. They are rules, constraints, transitions, contracts, and boundaries.

    (more…)
  • [AoNW] The Presentation Layer: Showing the Game Without Becoming the Game

    The presentation layer has a tempting job.

    It shows the map. It reacts to clicks. It animates units. It displays city panels, movement previews, action buttons, fog of war, territory, alerts, and turn information. From the player’s perspective, this layer often feels like “the game”.

    But architecturally, it is not the game.

    The presentation layer is the place where the game becomes visible and interactive. It is not the place where the rules are decided. That distinction became one of the most important boundaries in the project.

    (more…)
  • [AoNW] The Flutter and Dart Libraries Behind Age of New Worlds

    When I started development, I was not trying to collect as many packages as possible. I wanted the opposite: a small set of Flutter and Dart libraries, each with a clear responsibility.

    A 4X game can easily become a place where everything talks to everything else. The renderer wants to know about units. The UI wants to know about commands. The save system wants to know about state. The server wants to replay decisions. If I let every layer depend directly on every other layer, the project would become painful very quickly.

    (more…)
  • [AoNW] The Map Editor: Why Developer Tools Matter Early

    At some point, every strategy game becomes a content problem.

    The rules can be elegant. The renderer can be pretty. The AI can make decent decisions. But if creating and adjusting maps is slow, every gameplay idea becomes expensive to test.

    That is why Age of New Worlds has a map editor early.

    Not because the game is finished. Not because the editor is polished enough to be a public tool. But because the editor makes the game easier to build.

    (more…)
  • [AoNW] In Age of New Worlds, ending a turn is not a button

    It looks like one in the UI, of course. The player presses “end turn”, the game moves forward, and the next decision appears. But architecturally, that click is only the entry point into one of the most important pipelines in the game.

    A turn boundary is where delayed systems become real.

    (more…)