Project Perfect Mod Forums
:: Home :: Get Hosted :: PPM FAQ :: Forum FAQ :: Privacy Policy :: Search :: Memberlist :: Usergroups :: Register :: Profile :: Log in to check your private messages :: Log in ::


The time now is Mon Jun 15, 2026 10:29 pm
All times are UTC + 0
RA2/YR-Inspired RTS Engine — Powered by AI
Moderators: Generals Moderators, Global Moderators, OpenRA Moderators, Red Alert 2 Moderators, Tiberian Sun Moderators
Post new topic   Reply to topic Page 1 of 1 [3 Posts] Mark the topic unread ::  View previous topic :: View next topic
Author Message
VibeCoder
Civilian


Joined: 11 Jun 2026

PostPosted: Fri Jun 12, 2026 8:10 pm    Post subject:  RA2/YR-Inspired RTS Engine — Powered by AI Reply with quote  Mark this post and the followings unread

Hey everyone,

I'm building an open-source RTS engine from scratch, heavily inspired by Red Alert 2 and Yuri's Revenge. Skirmish and multiplayer only — no campaign, no FMV. The entire point of this project is modding. Not modding as an afterthought, but modding as the core design principle. Every gameplay feature is data-driven, composable, and overridable — and you don't need to be a programmer to use any of it.

This project is made possible by Claude's Fable 5 model, Anthropic's most capable coding assistant. It's being used to architect, implement, and iterate on the engine at a pace that would be impossible for a solo developer otherwise. But more importantly: the same AI technology is baked into the project itself, so that you can use it to create mods without writing a single line of code.

And yes — the goal is to port Red Alert 2 and Yuri's Revenge to this engine once the foundation is solid.

Features That Stand Out


    - YAML instead of INI — Clean syntax with inheritance (inherits: ^base_tank), cross-file imports, and deep merge. No more copy-pasting 50 lines to make a tank variant.
    - PNG/JPEG/BMP instead of SHP — Any image format. No palette limitations. Full color, any resolution. Stable Diffusion, Midjourney).
    - glTF/GLB instead of VXL — Model in Blender, MagicaVoxel, or generate with AI (Meshy AI, Tripo AI, Spline AI). Real-time 3D rendering in the isometric view with smooth rotation.
    - Loose folders instead of MIX archives — Your mod is a directory. No packing, no extracting, no special tools.
    - Moddable shaders — Custom GLSL shaders declared in YAML, loaded from your mod folder.
    - Powerful scripting API — For the 5% of cases where YAML isn't enough. Kotlin scripts (.kts files) wis, and registered systems. Implement complex mechanics without Java.
    - AI-generated assets — Generate 3D models with Meshy AI, Tripo AI, or Spline AI. Create sound effects with ElevenLabs, Stable Audio, Adobe Firefly, or Suno. Generate sprites with Stable Diffusion or Midjourney. The engine doesn't care where assets come from.
    - Online multiplayer (P2P) — Designed to be compatible with mods and scripts.
    - Federated server browser — Multiple community servers see each other automatically. No single point of failure.
    - Moddable AI — AI personalities defined in YAML. Advanced AI via scripting.
    - SHP ? PNG converter tool — Migrate existing sprites.
    - VXL ? glTF converter tool — Migrate existing voxel models.
    - Full validation with real error messages — File, line number, column, what was expected, nearest-match suggestion. No silent failures.
    - Create frameworks — Create framework mods, that only introduces new traits without adding new entities, like Ares or NPatch.


The Modding System in Detail

The engine is built around a trait system. Traits are reusable behavior components that you compose in YAML. The engine owns the behavior; you wire it together and set the numbers.

All the "tags" from the original game will be ported to traits, and all of them will be implemented with the script API.

Example 1: A new unit with a custom weapon

Code:

mods/my_mod/rules/tesla_trooper.yaml

tesla_trooper:
  kind: infantry
  inherits: ^infantry_base
  tags: [elite, coalition_common]
  traits:
    info:
      name: Tesla Trooper
    health:
      max: 80
      armor: flak
    mobile:
      speed: 3.0
      locomotor: foot
    turret:
      weapon: ::tesla_gun
    buildable:
      cost: 500
      time: "10s"
      built_at: [tag:barracks]

tesla_gun:
  kind: weapon
  damage: 50
  cooldown: "0.5s"
  range: 6.0
  projectile: ::tesla_bolt
  warhead: ::tesla_aoe

tesla_aoe:
  kind: warhead
  spread: 3.0
  falloff: linear
  versus:
    none:     100%

  


Example 2: A custom shield trait via scripting
Absorbs incoming damage before it reaches the carrier's health until the shield's strength is depleted, then emits a shield_broken event and restores to full strength after recharge_delay.

Code:

id: shield_lib
name: Shield Library
version: "1.0.0"
framework: true
imports:
- traits.yaml
scripts:
- scripts/shield.kts


Code:

mods/shield_lib/traits.yaml

shield:
  kind: trait
  description: Wraps the carrier in an energy shield that absorbs incoming damage before health is reduced, then recharges after a delay.
  script: scripts/shield.kts
  applies_to: [structure, vehicle]
  params:
    strength:
      type: Int
      required: true
      description: Maximum hit-points of the shield.
    recharge_delay:
      type: Duration
      default: "3s"
      description: Time after the shield is fully depleted before it begins recharging.


Code:

trait.on("engine:attached") { ctx, _ ->
    ctx.vars["shield_hp"] = ctx.params.int("strength")
}


trait.on("core:damaging", priority = -10) { ctx, ev ->
    val shieldHp = ctx.vars.int("shield_hp")
    if (shieldHp == 0) return@on    

    val amount = ev.int("amount")
    val absorbed = if (shieldHp < amount) shieldHp else amount
    ctx.vars["shield_hp"] = shieldHp - absorbed
    ev["amount"] = amount - absorbed  

    if (ctx.vars.int("shield_hp") == 0) {
        ctx.emit("shield_broken")  
        val timer = ctx.schedule(ctx.params.duration("recharge_delay"), "recharge")
        ctx.vars["recharge_timer"] = timer
    }
}

trait.on("shield_lib:recharge") { ctx, _ ->
    ctx.vars["shield_hp"] = ctx.params.int("strength")
}



 No limits on complexity. YAML + scripting covers everything from simple stat tweaks to entirely new game.

 You will also be able to access the renderer in the scripts.

 AI-Assisted Modding

 The project ships with two dedicated AI skills:

 Skill 1: The Modding Expert

 And here's the kicker: want a new feature? You don't need to wait 10 years for someone else to add it to Ares. Build it yourself in 20 minutes with the skills.

 This is the game-changer. Install the skill to Claude, describe what you want in plain English, and the AI generates a complete, working mod.

 "Add a Soviet unit that's a slow heavy tank with a tesla coil weapon that chains to nearby enemies on kill and explodes on death with an EMP effect."

The AI generates the YAML and possibly scripts, if it was needed. No need to compile, just add it and start using it.

 The skill is an expert in:
 - The full YAML schema
 - Every trait and its parameters
 - The scripting API

 Skill 2: The Engine

 For the rare cases where YAML and the scripting API is not enough, you may need to modify the source code. This skill will help you achieve that.  

 The skill walks you through adding new traits, new systems, updating the documentation, and writing determinism tests — all at once.

 I need some help

 I don't have RA2/YR installed, so I'm asking the community:

 1. INI files — If you have them, could you upload all rules.ini, art.ini, ai.ini, and any other gameplay-defining INI files? These are the reference for how the game is actually structured. They'll be used to train Claude on RA2's design patterns, which means the engine will match the original's gameplay more accurately. They will also be used to convert the old game to this.

 2. Format documentation — Since I am planning to port the old game with scripts:
 - SHP format (Westwood sprite format)
 - VXL format (Westwood voxel format)
 - HVA format (voxel animation)
 - MIX format

 Feedback — What do you think of this approach? What would make you actually use this engine?

Back to top
View user's profile Send private message
G-E
Defense Minister


Joined: 09 Feb 2015

PostPosted: Sat Jun 13, 2026 1:30 am    Post subject: Reply with quote  Mark this post and the followings unread

A lot of what you are doing is either mirroring or mimicking what's in OpenRA as far as the basic modding and asset loading ability. It's hard to see what your vibed engine provides that OpenRA doesn't to at least a meaningful degree... especially when OpenRA is largely ignored by the modding community despite its own strengths.

I don't want this to sound highly negative, but it's going to be an uphill battle to find any relevance in this space, unless you yourself made a full fledged game, and inspire people with your example. Re-implementing RA2 differently is obviously not enough.

Your format questions can mostly be answered by looking at the sources of various tools like VXLSE, XCC, etc, and using the website Modenc where we have the bulk of information around the Westwood games.

_________________
http://www.moddb.com/mods/scorched-earth-ra2-mod-with-smart-ai

Back to top
View user's profile Send private message
VibeCoder
Civilian


Joined: 11 Jun 2026

PostPosted: Sat Jun 13, 2026 4:57 pm    Post subject: Reply with quote  Mark this post and the followings unread

I appreciate the honest feedback.

Do you have any theories as to why OpenRA didn't have any breakthrough in the RA2 community? It does after all have a Red Alert 2 mod.

FYI; OpenRA limits scripting to single maps. Custom logic dies when you switch maps. New features require extensive knowledge in the source code and programming skills obviously. Nor does OpenRA allow one to easily share new features. Everything must be recompiled and rebuilt.
OpenRTS lets anyone add complex features using Claude skills while keeping everything in sync online, without the need to rebuild or recompile.

Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic Page 1 of 1 [3 Posts] Mark the topic unread ::  View previous topic :: View next topic
 
Share on TwitterShare on FacebookShare on Google+Share on DiggShare on RedditShare on PInterestShare on Del.icio.usShare on Stumble Upon
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © phpBB Group

[ Time: 0.4324s ][ Queries: 11 (0.2373s) ][ Debug on ]