[EN/PT-BR] Horizon Forge - Chapter 2 of the Campaign is ready! Or almost.
https://horizonforge-production.up.railway.app/

HorizonForge Chapter 2 is coming, and it brings something different from anything seen so far.
Unlike Chapter 1, where you faced other heroes, formations, and strategies similar to your own, Chapter 2 pits you against goblins, enemies that don't follow the same rules (I know, it's kind of obvious to say that goblins don't follow rules). But while they don't have levels and don't evolve (at least almost all of them), they don't have the same kind of abilities as your heroes. What they do have is brutality, poison, traps, and a captain waiting at the end of the road with the patience of someone who has seen many commanders try and fail.
Creating this system was technically interesting because the HorizonForge battle engine was built entirely on top of hero logic, with progression, levels, and abilities linked to each character. Goblins didn't exist in this structure. The solution was to create an enemy injection system: before combat begins, the definitions of each goblin are loaded directly into the battle engine without altering the core structure of the game. This means that each goblin has manually defined fixed stats (HP, ATK, speed) and enters the field like any other combatant, but without any of the progression layers that heroes have. Simple to use, but it took some work to arrive at this solution without breaking what already worked.
What took the most time wasn't the technical implementation itself, but thinking about each goblin's abilities in a way that made sense within the existing battle system. The game uses a fixed initiative system; the turn order is defined once at the beginning of the battle and doesn't change. This created a problem right away with the Trapper.

His ability should reduce the enemy's speed by 50%, but "speed" in a fixed initiative system doesn't have much effect after the order has already been defined. The solution was to interpret this as a 50% chance to skip the turn while the Trapper is alive (in this case, his net hindering the opponent), and the effect disappears automatically if he dies. In practice, the result is the same: your hero acts less frequently, is at a disadvantage, and you begin to feel the pressure to eliminate the Trapper before any other enemy.
The Berserker hates the Trapper, and the Trapper loves to trap the Berserker, because when its HP is below 50%, it enters a frenzy and attacks twice per cycle, meaning that a Trapper who manages to ensnare a Berserker can literally save an entire battle by making it lose both attacks at once. These interactions between goblins weren't planned on paper; they emerged as the abilities were defined one by one.
The Shaman generated the most discussion during development. Its ability is simple to describe: When it dies, it resurrects once with full HP. But the impact on the battlefield is completely different from anything else in the game so far. Your heroes are used to eliminating an enemy and moving on. With the Shaman, eliminating isn't enough the first time, and this changes the priority of targets in an entire battle. The Alchemist is similar in that he's treacherous even before you act, as he contaminates the opposing field with poison before the battle begins, dealing 10 damage per cycle to each unit on your team. It seems like a small amount, but in long battles this damage accumulates silently while you're focused on other enemies, and before you know it, half your team is at half HP without any attacks having reached them.
The Overseer works differently from the others; he doesn't have an ability that you can clearly see happening. He has a 5% chance to retaliate against any attack he receives. It's a low number, but in battles with many cycles this counter-attack will appear, and almost always at the most inconvenient moment possible.
Chapter 2 has five stages with increasing difficulty, each introducing new goblins and different combinations. Stage 1 starts simple, with two Scavengers blocking the way, just to set the tone. From stage 2 onwards, things get more complicated with the Trapper and the Shaman together. Stage 3 pits two Berserkers against each other, and you quickly learn that you can't let either of them reach 50% HP at the same time. Stage 4 mixes the Alchemist with an Overseer and a Scavenger, and the pre-battle poison combined with the Overseer's counter-attack creates constant pressure that punishes any battle that drags on. Stage 5 is the Overlord with Shaman, Trapper, and Berserker around him, and it hadn't been shown yet, but the Overlord, below 50% HP, gains an additional 50% ATK, going from 100 to 150.
Chapter 2 is now visible in the game; you can explore all the stages, read the lore of each one, and see the enemies you will face. Battles will open soon, once the rewards for each stage are defined. It's worth taking a look beforehand to plan your formation.
Beyond Chapter 2, the game's inventory underwent a visual overhaul that makes a significant difference in daily gameplay. Until now, each equipment slot was represented by a standard keyboard emoji; it was functional, but far from having the visual identity the game deserves. That has changed. Each slot now has its own image created specifically for HorizonForge: helmet, chestplate, belt, legs, gloves, boots, amulet, ring, special, and weapon. Weapons went a step further; the system identifies the type of weapon equipped by the item's name and displays the corresponding artwork. When no weapon is equipped, the slot shows a different placeholder depending on the hero's class: a warrior sees an empty sword slot, an archer sees a bow slot, a mage sees a staff slot. These are details that individually seem small, but together they begin to give the inventory a look that is ours, not just the operating system's emoji bank.
And to wrap things up, the home screen also got a tavern-themed background image, because there's nothing better than waiting for your next duel sitting in a place with the right atmosphere. A small detail, but it makes a difference.

[PT/BR]

O Capítulo 2 do HorizonForge está chegando, e ele traz algo diferente de tudo que foi visto até agora.
Ao contrário do Capítulo 1, onde você enfrentava outros heróis, formações e estratégias parecidas com as suas, o Capítulo 2 te joga contra goblins, inimigos que não seguem as mesmas regras (eu sei, é meio óbvio falar que goblins não seguem regras). Mas se por um lado eles não têm níveis e não evoluem (pelo menos quase todos eles). Eles não têm o mesmo tipo de habilidade que seus heróis. O que eles têm é brutalidade, veneno, armadilhas, e um capitão esperando no fim do caminho com paciência de quem já viu muitos comandantes tentarem e falharem.
Criar esse sistema foi tecnicamente interessante porque o motor de batalha do HorizonForge foi construído inteiramente em cima da lógica de heróis, com progressão, níveis e habilidades vinculadas a cada personagem. Goblins não existiam nessa estrutura. A solução foi criar um sistema de injeção de inimigos: antes do combate começar, as definições de cada goblin são carregadas diretamente no motor de batalha sem alterar a estrutura central do jogo. Isso significa que cada goblin tem stats fixos definidos manualmente (HP, ATK, velocidade) e entra no campo como qualquer outro combatente, mas sem nenhuma das camadas de progressão que os heróis têm. Simples de usar, mas deu um certo trabalho pra chegar nessa solução sem quebrar o que já funcionava.
O que mais tomou tempo não foi a implementação técnica em si, mas pensar nas habilidades de cada goblin de um jeito que fizesse sentido dentro do sistema de batalha existente. O jogo usa um sistema de iniciativa fixa, a ordem de turno é definida uma vez no início da batalha e não muda. Isso criou um problema logo de cara com o Trapper.

A habilidade dele deveria reduzir a velocidade do inimigo em 50%, mas "velocidade" num sistema de iniciativa fixa não tem muito efeito depois que a ordem já foi definida. A solução foi interpretar isso como 50% de chance de pular o turno enquanto o Trapper estiver vivo (no caso, a rede dele atrapalhando o oponente) e o efeito some automaticamente se ele morrer. Na prática o resultado é o mesmo: seu herói age com menos frequência, fica em desvantagem, e você começa a sentir a pressão de eliminar o Trapper antes de qualquer outro inimigo.
O Berserker odeia o Trapper, e o Trapper adora prender o Berserker, pois quando esta com seu HP abaixo de 50%, entra em um frenesi e passa a atacar duas vezes por ciclo, o que significa que um Trapper que conseguir enredar um Berserker pode literalmente salvar uma batalha inteira ao fazer ele perder os dois ataques de uma vez. Essas interações entre goblins não foram planejadas no papel, foram surgindo enquanto as habilidades eram definidas uma a uma.
O Shaman foi o que gerou mais conversa durante o desenvolvimento. A habilidade dele é simples de descrever: Quando morre, ressuscita uma vez com HP cheio. Mas o impacto no campo de batalha é completamente diferente de qualquer outra coisa no jogo até agora. Seus heróis estão acostumados a eliminar um inimigo e seguir em frente. Com o Shaman, eliminar não é suficiente na primeira vez, e isso muda a prioridade de targets numa batalha inteira.
O Alchemist é parecido nesse sentido de ser traiçoeiro antes mesmo de você agir, pois ele contamina o campo adversário com veneno antes da batalha começar, causando 10 de dano por ciclo em cada unidade do seu time. Parece pouco, mas em batalhas longas esse dano vai acumulando silenciosamente enquanto você está focado em outros inimigos, e quando você percebe, metade do seu time está na metade do HP sem nenhum ataque ter chegado neles.
O Overseer funciona diferente dos outros, ele não tem uma habilidade que você vê acontecer claramente. Ele tem 5% de chance de revidar qualquer ataque que recebe. É um número baixo, mas em batalhas com muitos ciclos esse contra-ataque vai aparecer, e quase sempre no momento mais inconveniente possível.
O Capítulo 2 tem cinco estagios com dificuldade crescente, cada um introduzindo novos goblins e combinações diferentes. O stage 1 começa simples, dois Scavengers bloqueando o caminho, só para estabelecer o tom. A partir do stage 2 as coisas ficam mais complicadas com o Trapper e o Shaman juntos. O stage 3 coloca dois Berserkers na frente, e aí você aprende rapidamente que não pode deixar nenhum dos dois chegar em 50% de HP ao mesmo tempo. O stage 4 mistura o Alchemist com um Overseer e um Scavenger, e o envenenamento pré-batalha combinado com o contra-ataque do Overseer cria uma pressão constante que pune qualquer batalha que se arraste. O stage 5 é o Overlord com Shaman, Trapper e Berserker ao redor, e ainda não tinha apresentado, mas o Overlord abaixo de 50% de HP ganha mais 50% de ATK, salando de 100 para 150.
O Capítulo 2 já está visível no jogo, você pode explorar todos os stages, ler a lore de cada um e ver os inimigos que vai enfrentar. As batalhas abrem em breve, quando as recompensas de cada stage estiverem definidas. Vale dar uma olhada antes pra ir planejando sua formação.
Além do Capítulo 2, o inventário do jogo passou por uma mudança visual que faz bastante diferença no dia a dia. Até agora, cada slot de equipamento era representado por um emoji padrão de teclado, era funcional, mas longe de ter a identidade visual que o jogo merece. Isso mudou. Cada slot agora tem uma imagem própria criada especificamente para o HorizonForge: elmo, peitoral, cinto, pernas, luvas, botas, amuleto, anel, especial e arma. As armas foram um passo além, o sistema identifica pelo nome do item qual tipo de arma está equipada e exibe a arte correspondente. Quando nenhuma arma está equipada, o slot mostra um placeholder diferente dependendo da classe do herói, um guerreiro vê um slot de espada vazio, um arqueiro vê um slot de arco, um mago vê um slot de cajado. São detalhes que individualmente parecem pequenos, mas juntos começam a dar ao inventário uma cara que é nossa, não do banco de emojis do sistema operacional.
E pra fechar, a tela inicial também ganhou uma imagem de fundo de taverna, porque nada melhor do que esperar seu próximo duelo sentado num lugar com a atmosfera certa. Pequeno detalhe, mas faz diferença.
