Robot Warfare 1 (RW1) --> Robotic Wapenshaw 2D (RW2D)

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 25120
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Re:

Post by Shaos »

Shaos wrote: 01 Sep 2024 22:37 P.S. Может переделать название игры из "Robot Warfare 1" в "Robby Workout 2D" (с сохранением аббревиатуры RW2D) раз уж язык программирования роботов уже 8 лет как Robby называется, а словосочетание "Robot Warfare" уже много лет используется другой игрой? :lol:

P.P.S. А может быть даже назвать игру «Robotic Wapenshaw 2D» чтобы лучше гуглилось? :)
https://en.wikipedia.org/wiki/Wapenshaw (старо-английское слово, означающее оружейное шоу)
Язык роботов при этом всё также будет называться Robby, а в качестве расширения файла робота наряду с .R поддержать .Robot

P.P.P.S. Может ещё добавить оборудования - DIPPER (ковш) и PLANTER (минёр)? :roll:
Похоже термин "Robotic Wapenshaw" уже устоялся из-за этого поста 2024 года :lol:
Screenshot from 2026-06-18 22-35-01.png
Который помечен гуглом как пост от 2013 года почему-то...

P.S. Короче при общении с Google AI (Gemini) у меня возникла гениальная идея - возобновить соревнования роботов, но кроме старых людских роботов пустить туда новых роботов написанных разными AI coding agents - Gemini меня отчаянно поддержал и уже выдвинул своего робота для соревнований :mrgreen:

Code: Select all

Robot "GeminiPrime"
author "Gemini"
color 00FFCC  // Cyberpunk Cyan

// Hardware Loadout
front eye
left gun

main()
{
  while(1)
  {
    // Scan the environment directly in front
    act front

    // Target acquired (N=6 means enemy robot)
    if(N == 6)
    {
      right       // Align left-mounted gun
      act left    // Fire!
      left        // Realign facing forward
    }

    // Wall/Barrier detected (D=1 means distance to obstacle is 1)
    if(D == 1)
    {
      right
      right       // 180 degree turn to bounce off the wall
    }
    else
    {
      // Evasive/Hunting movement using the R (Random) register
      // Modulo 4 means it has a 25% chance to randomly turn
      if(R%4 == 0)
      {
        right     // Turn right to sweep a new area
      }
      else
      {
        step      // Otherwise, advance forward
      }
    }
  }
}
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 25120
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Robot Warfare 1 (RW1) --> Robotic Wapenshaw 2D (RW2D)

Post by Shaos »

При тестировании оказалось, что та версия робота от Gemini оказалось не сильно рабочая - поработали с ним над более рабочим вариантом :)

Code: Select all

Robot "GeminiPrime"
author "Gemini"
color 00FFCC  // Cyberpunk Cyan

// Hardware Loadout
front eye
left gun

main()
{
  while(1)
  {
    // Scan the environment directly in front
    act front

    // Combat Reflex (Enemy = 6) - MULTIPLE commands: requires brackets!
    if(N == 6)
    {
      right
      act left
      left
    }
    // Loot Reflex: Hungry? Take it.
    else if(N == 3) step
    else if(N == 4 && E < 13) step
    // Avoidance Reflex: Wall OR Full Reactor = Turn away
    else if(D == 1 || N == 4)
    {
      left
      left
      step
      right
    }
    // Evasive maneuver - Contains an if/else structure inside: requires brackets!
    else
    {
      if(R%4 == 0) right
      else step
    }
  }
}
User avatar
Shaos
Admin
Posts: 25120
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Robot Warfare 1 (RW1) --> Robotic Wapenshaw 2D (RW2D)

Post by Shaos »

Нашёл всех роботов (600+) которые участвовали в 144 чемпионатах с января 1999 по январь 2006 - также нашёл всю статистику и все нагенерённые таблицы с результатами в формате HTML - наверное надо выложить на http://rwar.net? ;)

И можно новые соревнования начинать по старым правилам :mrgreen:

Причём сразу включить туда ВСЕХ роботов, что были :roll:
User avatar
Shaos
Admin
Posts: 25120
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Robot Warfare 1 (RW1) --> Robotic Wapenshaw 2D (RW2D)

Post by Shaos »

Внезапно наткнулся на ФОРК RW2D от min0ru Vladimir Suravtsov :)
Robot Warfare 2D

An AI-porting experiment — this fork uses AI agents to modernise the original codebase: CMake build system, Linux/SDL2 backend, MinGW cross-compile, and an expanding test suite. See ai/ for the task log.

Robot Warfare 2D is a programmable-robot battle game originally written for Windows with Borland C++. Robots are programmed in a simple custom language, compiled to bytecode, and fight on a tile-based 2D arena.

Origin

This repository is forked from the original source release by A.A. Shabarshin:
Copyright © 1998–2013 A.A. Shabarshin me@shaos.net
Released under the MIT licence (see LICENSE).

The robot source files in robots/src/ were taken from the original project website archive: http://robots.chat.ru/robot_s.zip

Project Goal

This fork is an experiment in AI-assisted software porting. The goal is to take the original Windows/Borland codebase and bring it to a modern, cross-platform toolset using AI agents as the primary development driver:
  • CMake build system replacing the original Borland makefiles
  • Native Linux backend (SDL2 rendering)
  • MinGW-w64 cross-compilation for Windows (preserving the original Win32/GDI frontend)
  • Automated test suite (compiler regression tests, headless runtime tests, render checks)
No manual refactoring of the core game logic — only the platform layer and build infrastructure are touched by the port.
https://github.com/min0ru/rw2d
User avatar
Shaos
Admin
Posts: 25120
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Robot Warfare 1 (RW1) --> Robotic Wapenshaw 2D (RW2D)

Post by Shaos »

Сделал пример запуска 10x10
Screenshot from 2026-06-21 08-31-29.png

Code: Select all

killer.rw0
nsimple.rw0
follower.rw1
-hShaos
-dx10
-dy10
-s0
-n0
-gr
-a0,0,0
-a1,1,1
-a2,2,2
-a3,3,3
-a4,4,4
-a5,5,6
-a6,6,6
-a7,7,6
-a8,8,6
-a9,9,6
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 25120
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Robot Warfare 1 (RW1) --> Robotic Wapenshaw 2D (RW2D)

Post by Shaos »

Добавил опцию -tN которая задаёт лимит времени (пока лимит времени был лишь у опции -i которая включала режим соревнований с 10000 тактами ограничения по времени и текстовым отчётом в конце), а также поправил кое-какие мелочи и ещё восстановил историю изменений виндовой версии в файле HISTORY:

Code: Select all

RW2D HISTORY
============

v2.2.1 (22-JUN-2026)
 - Clarified descriptions of some options
 - New command-line flag -tN to specify a custom maximum time limit for robot fight
 - Correctly set version of compiled binary to 1 to match v1.99 behavior of compiler
 - If robot binary of version 2 is saved again then version is correctly staying 2

v2.2.0 (21-JUN-2026)
 - Integrated some fixes from min0ru fork
 - Graduated project from the legacy v2.2-alpha tag to a stable release

v2.2-alpha (20-JAN-2013)
 - Officially published source code of RW2D under the MIT License
 - Various internal compatibility tweaks to support future porting efforts (including macOS X tests)
 - Rewrote all C++ parts to pure C

v2.1-beta3 (30-NOV-2005)
 - Unreleased version that was never used to conduct championships

v2.1-beta2 (26-JAN-2003)
 - Last official shareware version (after 2006 it got a free registration key for all to use)

v2.1-beta (22-OCT-2002)
 - Early version of v2.1

v2.0.6 (14-AUG-2001)
 - Stable version that was used to conduct RW1 championships from #106 (Jan 2002) to #144 (Jan 2006)
 - Added undocumented option -p2-name.spr to test tile engine for RW1P2
 - Fixed assignment operator for registers A,B,C
 - No more error message in case of arithmetic overflow
 - All shifts are unsigned

v2.0.5 (05-AUG-2001)
 - Stable version that was used to conduct RW1 championships from #103 (Aug 2001) to #105 (Jan 2002)
 - Ability to fill map by hand through options -a
 - Map generation option -n0 makes empty map
 - Added options -dxN and -dyN to define size of the map

v2.0.4 (01-JUL-2001)
 - Stable version that was used to conduct RW1 championships from #101 to #102 (Jul 2001)
 - Removed scrollbars
 - Winner rules relaxed (be alive is enough)

v2.0.3 (21-JUN-2001)
 - This version was used to conduct RW1 championship #100 (Jun 2001) - 1st for v2 robots
 - Modified for championships using -i option (10000 ticks limit)
 - Map number could be decimal or hexadecimal now (-n14 or -n#0E) 
 - If both option -i and -f2 used then program is minimized
 - Fixed bug of SAY array element
 - Fixed bug of array initialization

v2.0.2 (31-MAY-2001)
 - Showing list of options if EXE launched without arguments
 - You can select robots by mouse and see their energy level and missiles number
 - Option -hAUTHOR enables sending doubleclick to robots with matching author name as events from source -1

v2.0.1 (15-APR-2001)
 - First working version of RW1_WIN.EXE
 - Fixed bug in processing Var(1) in case of a register

v2.0-alpha (22-JUL-1999)
 - Started work on Windows version of RW1 fight visualizer based on classic RW1_DUEL v1.x
Приаттачиваю сюда архив с исходниками, куда вручную добавил rw1_win.exe собранный фриварным компилятором Borland C++ v5.5.1 (2000) - должно работать даже на Win95 :mrgreen:
You do not have the required permissions to view the files attached to this post.