코어 워
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
코어 워는 1960년대 벨 연구소에서 개발된 프로그래밍 게임 "다윈"에서 유래한 게임으로, 두 개의 프로그램이 메모리 공간을 차지하기 위해 경쟁하는 방식이다. 1984년 D. G. 존스와 A. K. 듀드니에 의해 규칙이 정립되었으며, 1985년 국제 코어 워 협회(ICWS)가 설립되어 레드코드 언어 표준을 제정하고 대회를 개최했다. 게임의 목표는 상대 프로그램의 프로세스를 종료시켜 메모리를 독점하는 것이며, 레드코드 언어를 사용하여 프로그램을 작성한다. 다양한 전략과 구현체가 존재하며, 유전자 알고리즘을 활용한 전사 생성 및 생명 시스템 모델링 등 관련 기술 발전에 영향을 미쳤다.
더 읽어볼만한 페이지
- 프로그래밍 게임 - 차근차근 게임 코딩
차근차근 게임 코딩은 비주얼 프로그래밍 언어를 활용해 닌텐도 스위치에서 게임을 만들고 공유하는 소프트웨어로, 노드를 연결하여 게임을 구성하고 가이드 레슨 및 자유 프로그래밍 모드를 제공하며 온라인 공유와 멀티플레이어 기능을 지원한다. - 프로그래밍 게임 - 드림즈 유니버스
드림즈 유니버스는 드림 셰이핑 기능을 통해 사용자가 게임, 아트, 음악, 영화 등 다양한 콘텐츠를 제작, 공유하며 상호작용하는 창작 플랫폼이다. - 프로그래밍 대회 - 경쟁 프로그래밍
경쟁 프로그래밍은 알고리즘 설계 및 구현 능력을 겨루는 활동으로, 국제 대학생 프로그래밍 경시대회(ICPC)를 시작으로 발전하여 현재 전 세계적으로 다양한 대회와 플랫폼에서 활발히 이루어지고 있으며, 문제 해결 능력과 코딩 능력 향상에 기여한다. - 프로그래밍 대회 - 구글 코드 잼
구글 코드 잼은 구글이 주최하는 국제 프로그래밍 대회로, 전 세계 프로그래머들이 알고리즘 문제 해결 능력을 겨루는 행사이다. - 오픈 소스 비디오 게임 - 스텝매니아
스텝매니아는 Dance Dance Revolution의 오픈 소스 클론 리듬 게임으로, 키보드나 댄스 매트를 이용해 화면의 화살표를 박자에 맞춰 누르는 방식으로 진행되며, 사용자 지정 곡, 다양한 모디파이어 등의 기능을 제공하고 MIT 라이선스로 변경되어 상업용 게임 개발에도 활용되었다. - 오픈 소스 비디오 게임 - 프라이데이 나이트 펑킨
프라이데이 나이트 펑킨은 키보드 입력을 통해 리듬에 맞춰 플레이하는 DDR 스타일의 게임으로, 주인공 보이프렌드를 포함한 다양한 캐릭터들과 랩 배틀을 벌이는 스토리 모드와 프리플레이 모드를 제공하며, 중독성 있는 음악과 독특한 아트 스타일로 인기를 얻었다.
코어 워 - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
종류 | 프로그래밍 게임 |
개발자 | D. G. Jones & A. K. Dewdney |
발표일 | 1984년 3월 |
장르 | 프로그래밍 게임 |
모드 | 컴퓨터 대 컴퓨터 2인용 |
![]() |
2. 역사
코어 워는 자기 복제 프로그램인 크리퍼와 크리퍼의 복사본을 파괴하는 리퍼라는 후속 프로그램에서 영감을 받았다.[12] 1961년 벨 연구소에서 빅터 A. 비소츠키, 로버트 모리스, 더글러스 맥길로이가 플레이한 게임 ''다윈''이 그 기원으로 알려져 있다.[12] "코어"라는 이름은 구식 램 기술인 자기 코어 메모리에서 유래했다.
1984년 3월, D. G. 존스와 A. K. 듀드니는 ''코어 워 가이드라인''을 통해 레드코드 언어를 정의하고 게임의 규칙을 체계화했다.[14] 같은 해 5월, 듀드니는 ''사이언티픽 아메리칸''에 코어 워를 소개하는 기사를 기고하여 대중에게 널리 알려지게 되었다.[12]
1985년에는 국제 코어 워 협회(ICWS)가 설립되어 레드코드 언어의 표준을 제정하고 대회를 개최했다. ICWS는 1986년과 1988년에 레드코드 언어의 새로운 표준을 발표했으며, 1994년에는 새로운 표준 초안을 제안했지만 공식적으로 채택되지는 않았다.[17] ICWS는 현재 해체되었으나,[18] 온라인 커뮤니티를 중심으로 코어 워의 개발과 발전이 계속되고 있다.
2. 1. 한국에서의 코어 워
1980년대 후반, 닛케이 사이언스 한국어판의 "컴퓨터 레크리에이션" 코너를 통해 코어 워가 한국에 소개되었다.[25] 당시 PC 통신망을 중심으로 일부 프로그래머들 사이에서 코어 워 관련 정보가 공유되었고 관련 프로그래밍이 시도되기도 했다. 현재는 온라인 커뮤니티를 통해 제한적으로 명맥이 유지되고 있다.3. 게임 플레이
게임 시작 시, 각 배틀 프로그램은 메모리의 무작위 위치에 로드된 후, 각 프로그램은 차례로 한 개의 명령어를 실행한다. 게임의 목표는 상대 프로그램의 프로세스가 종료되도록 하여(유효하지 않은 명령어를 실행하면 발생) 승리한 프로그램이 기기를 단독으로 소유하는 것이다.
최초 공개 버전의 레드코드는 8개의 명령어만을 정의했다. ICWS-86 표준은 이 수를 10개로 늘렸고, ICWS-88 표준은 11개로 늘렸다. 현재 사용되는 1994년 초안 표준은 16개의 명령어를 가지고 있다. 레드코드는 다양한 주소 지정 방식을 지원하며, 1994년 초안 표준부터는 실제 가능한 연산 수를 7168개로 늘리는 명령어 수정자를 지원한다.
레드코드 표준은 기본 명령어 표현을 정의하지 않으며 프로그램이 이에 접근할 수 있는 수단을 제공하지 않는다. 산술 연산은 각 명령어에 포함된 두 개의 주소 필드에서 수행될 수 있지만, 명령어 코드 자체에서 지원되는 유일한 연산은 복사 및 동일성 비교이다.
각 레드코드 명령어는 정확히 하나의 메모리 슬롯을 차지하며 실행하는 데 정확히 한 사이클이 걸린다. 그러나 프로세스가 명령어를 실행하는 속도는 큐에 있는 다른 프로세스의 수에 따라 달라지며, 처리 시간이 동일하게 공유되기 때문이다.
초기화되어 내용이 없는 코어 위에 복수의 Redcode 프로그램(Warrior, 전사)을 배치하여 동작시키고, 마지막까지 동작하여 살아남은 것을 승자로 한다. 프로그램은 자신의 분신을 만들거나, 타인의 코드를 덮어쓰거나 파괴하는 등의 방식으로 싸운다.
3. 1. MARS (Memory Array Redcode Simulator)
MARS는 레드코드 프로그램을 실행하는 가상 머신이다. MARS의 메모리 공간(또는 "코어")은 유한하지만, 상대 주소 지정만 사용된다. 주소 "0"은 항상 현재 실행 중인 명령어를, 주소 "1"은 그 다음 명령어를 의미한다. 최대 주소 값은 메모리 위치 수보다 1 작은 값으로 설정되며, 필요한 경우 순환한다. 결과적으로 주소와 메모리 위치는 일대일 대응되지만, 레드코드 프로그램이 임의의 절대 주소를 결정하는 것은 불가능하다. 유효하지 않거나 점프 명령어를 만나지 않은 프로세스는 계속해서 연속적인 명령어를 무한정 실행하며, 결국 시작한 명령어로 돌아온다.MARS는 낮은 수준의 멀티 프로세싱을 지원한다. 단일 명령어 포인터 대신, 레드코드 시뮬레이터는 각 프로그램에 대한 "프로세스 큐"를 가지고 있으며, 여기에는 시뮬레이터가 순환하는 변수 개수의 명령어 포인터가 포함된다. 각 프로그램은 하나의 프로세스로 시작하지만 `SPL` 명령어를 사용하여 큐에 새 프로세스를 추가할 수 있다. 프로세스는 `DAT` 명령어를 실행하거나 0으로 나누기를 수행할 때 종료된다. 프로그램은 더 이상 남은 프로세스가 없을 때 죽은 것으로 간주된다.
4. Redcode
레드코드(Redcode)는 코어 워에서 사용되는 프로그래밍 언어이다. 레드코드는 MARS(Memory Array Redcode Simulator)라는 가상 머신에 의해 실행된다. 1980년대 초의 실제 CISC 어셈블리어를 기반으로 하지만, 실제 컴퓨터 시스템에서는 일반적으로 찾아볼 수 없는 여러 가지 기능들을 포함하고 있다.
레드코드와 MARS 환경은 실제 컴퓨터와 프로세서의 복잡성 없이 간단하고 추상적인 플랫폼을 제공하도록 설계되었다. 레드코드는 일반적인 CISC 어셈블리어와 유사하게 설계되었지만, "실제" 어셈블리어에 비해 상당히 단순화되었으며, 상대 주소 지정만 사용하고 절대 메모리 주소 지정을 지원하지 않는다.
레드코드의 특징은 다음과 같다.
- 고정된 명령어 길이와 시간: 각 레드코드 명령어는 정확히 하나의 메모리 슬롯을 차지하며 실행하는 데 정확히 한 사이클이 걸린다.
- 순환 메모리: 메모리는 한 명령어 단위로 주소가 지정된다. 메모리 공간(또는 "코어")은 유한하며, 상대 주소 지정만 사용된다. 주소 "0"은 항상 현재 실행 중인 명령어를, 주소 "1"은 그 다음 명령어를 의미한다.
- 낮은 수준의 멀티 프로세싱: 단일 명령어 포인터 대신, 각 프로그램에 대한 "프로세스 큐"를 가진다. 각 프로그램은 하나의 프로세스로 시작하지만 `SPL` 명령어를 사용하여 새 프로세스를 추가할 수 있다.
- 외부 접근 불가: 레드코드와 MARS 아키텍처는 입력 또는 출력 기능을 제공하지 않는다. 시뮬레이터는 닫힌 시스템이다.
4. 1. 명령어
레드코드는 명령어 수가 극히 적다. 초기 레드코드는 8개의 명령어를 가졌으며, ICWS-86 표준에서는 10개, ICWS-88 표준에서는 11개로 늘어났다. 현재 사용되는 1994년 초안 표준은 16개의 명령어를 정의한다.[19] 하지만 레드코드는 다양한 주소 지정 방식을 지원하며(1994년 초안 표준부터), 명령어 수정자를 통해 실제 가능한 연산 수는 7168개에 달한다.4. 1. 1. 주요 명령어 (1994년 초안 표준)
4. 2. 주소 지정 방식
레드코드는 다양한 주소 지정 방식을 지원한다. 1994년 초안 표준을 기준으로 8개의 주소 지정 방식이 있다.[19]기호 | 의미 |
---|---|
# | 즉시 값 (Immediate) |
$ | 직접 (Direct) - $ 기호는 생략 가능 |
* | A-필드 간접 (A-field indirect) |
@ | B-필드 간접 (B-field indirect) |
{ | A-필드 간접, 선-감소 (A-field indirect with pre-decrement) |
< | B-필드 간접, 선-감소 (B-field indirect with pre-decrement) |
} | A-필드 간접, 후-증가 (A-field indirect with post-increment) |
> | B-필드 간접, 후-증가 (B-field indirect with post-increment) |
이러한 주소 지정 방식들은 CISC 어셈블리어와 유사하지만, 실제 컴퓨터 시스템에서는 일반적으로 찾아볼 수 없는 기능들을 포함하고 있다. 레드코드는 상대 주소 지정만 사용하며, 절대 주소 지정을 지원하지 않는다. 즉, 주소 "0"은 항상 현재 실행 중인 명령어를 가리키고, 주소 "1"은 그 다음 명령어를 의미한다.
5. 전략
코어 워에는 다양한 전략이 존재하며, 크게 복제자(Replicator), 스캐너(Scanner), 폭격기(Bomber) 등으로 분류할 수 있다. 각 전략은 가위바위보와 같은 상성 관계를 가진다.[2]
실제 전투 프로그램에서는 종종 두 가지 이상의 전략이 결합되기도 한다. 주요 전략들은 다음과 같다.
- '''폭격기(Bomber, 바위)''': 일정한 간격으로 코어에 '폭탄'을 무작위로 복사하여 적에게 피해를 준다.
- '''복제자(Replicator, 보)''': 자신을 끊임없이 복제하여 코어 전체를 자신의 코드로 채운다.
- '''스캐너(Scanner, 가위)''': 복제자를 이기기 위해 설계되었으며, 목표를 탐색한 후 공격한다.
- '''뱀파이어(Vampire)''': 상대방의 프로세스를 자신의 코드 조각인 '피트'로 유인한다.
- '''임프(Imp)''': 자신의 유일한 명령어를 명령어 포인터 바로 앞에 계속 복사하는 작은 전사이다.
- '''퀵스캐너(Quickscanner)''': 매우 빠른 스캔을 통해 초반에 적을 잡으려 한다.
- '''코어 클리어(Core Clear)''': 코어의 모든 명령어를 순차적으로 덮어쓴다.
5. 1. 복제자 (Replicator, 보)
복제자(Replicator, 보)는 자신을 반복적으로 복사하여 코어를 채우는 전략을 사용하며, 가위바위보에 비유되기도 한다.[2] 죽이기는 어렵지만, 상대방을 죽이기도 어려워 무승부가 많이 나오는 경향이 있다.5. 1. 1. 실크 (Silk)
'''실크'''(silk)는 매우 빠른 복제자의 특별한 유형으로, Juha Pohjalainen의 '실크 전사(Silk Warrior)'[3]에서 이름을 따왔다. 현대 복제자 대부분은 이 유형에 해당한다. 실크 복제자는 병렬 실행을 사용하여 전체 코드를 하나의 명령어로 복사하고, 복사가 완료되기 전에 복사본 실행을 시작한다.[4]5. 2. 스캐너 (Scanner, 가위)
스캐너(Scanner, 가위)는 복제자를 이기기 위해 만들어진 전략이다. 맹목적으로 공격하지 않고, 표적을 찾은 후 공격을 시작한다. 이는 복제자와 같이 제거하기 어려운 상대를 상대로 효과적이지만, 미끼에는 취약하다.[5]스캐너는 보통 SPL 0영어 명령어로 메모리를 폭격한다. 이렇게 하면 적은 아무것도 하지 않지만 추가 프로세스를 생성하는 많은 프로세스를 생성하게 되는데, 이는 유용한 프로세스의 속도를 늦추는 효과가 있다. 적이 충분히 느려지면, DAT영어 명령어로 메모리를 폭격한다. 스캐너는 다른 유형의 전사보다 복잡하기 때문에 크기가 크고 취약한 경향이 있다.[5]
5. 2. 1. 원샷 (One-shot)
'''원샷(one-shot)'''은 코어를 스캔하다가 처음 발견한 대상을 공격하는 매우 단순한 스캐너이다. 공격은 주로 코어 클리어를 사용한다. Roy van Rijn의 ''미르미돈(Myrmidon)''[6]이 원샷의 한 예이다.5. 3. 폭격기 (Bomber, 바위)
폭격기(Bomber)는 정기적인 간격으로 코어에 "폭탄"을 맹목적으로 복사하여 적을 공격하는 전략을 사용한다. 이 "폭탄"은 주로 명령어를 사용하지만, 다른 명령어 또는 여러 명령어 조합을 사용하기도 한다.[2] 폭격기는 작고 빠르게 만들 수 있으며, 폭탄이 부가적으로 상대방의 주의를 분산시키는 효과도 있어 스캐너 전략에 비해 유리하다.[2]폭격기는 가위바위보 게임에서 '바위'에 비유되기도 한다.[2]
5. 4. 뱀파이어 (Vampire)
뱀파이어는 상대방의 프로세스가 "피트"라고 하는 자신의 코드 조각으로 뛰어들도록 시도하는 전략이다. 뱀파이어는 폭격기나 스캐너를 기반으로 할 수 있다. 주요 약점은 코어 전체에 코드에 대한 포인터를 흩뿌려야 하므로 간접적으로 쉽게 공격받을 수 있다는 것이다. 공격도 느리며, 프로세스가 피트에 도달하는 데 추가 라운드가 걸린다.[7]5. 5. 임프 (Imp)
임프(Imp영어)는 A. K. Dewdney가 처음 발표한 전사로, ''임프(Imp)''[8]에서 이름을 따왔다. 임프는 단일 명령어 모바일 전사로 자신의 단일 명령어를 명령어 포인터 바로 앞에서 계속 복사한다. 공격에는 거의 쓸모가 없지만, 죽이기 어렵다. 임프는 대량으로 쉽게 생성할 수 있고 다른 전사가 죽어도 생존할 수 있다는 장점이 있다.5. 5. 1. 임프 링 (Imp Ring)
Imp Ring영어 (임프 링) 또는 Imp Spiral영어 (임프 나선)은 코어를 따라 같은 간격으로 배치되어 교대로 실행되는 임프(Imp영어)들로 구성된다.[8] 링의 각 팔에 있는 임프는 자신의 명령어를 다음 팔에 복사하고, 거기에서 즉시 다시 실행된다. 링과 나선은 단순한 임프보다 죽이기 훨씬 더 어렵고, 이에 대한 방어책이 없는 전사를 죽일 가능성(작지만)도 있다. 임프 링 또는 나선의 팔 수는 코어 크기와 서로소여야 한다.[8]5. 6. 퀵스캐너 (Quickscanner)
퀵스캐너(quickscanner)는 매우 빠른 언롤 스캐닝 루프를 사용하여 상대방을 초기에 잡으려고 시도하는 전략이다. 퀵스캐닝은 초반 전략이며, 항상 다른 전략을 백업으로 필요로 한다.[2] 퀵스캐닝 구성 요소를 전사에 추가하면 다른 퀵스캐너와 같은 긴 전사에 대한 점수를 향상시킬 수 있다. 그러나 언롤된 스캔은 제한된 수의 위치만 타겟팅할 수 있으며 작은 상대를 잡을 가능성은 낮다.[2]5. 7. 코어 클리어 (Core Clear)
코어 클리어는 코어의 모든 명령어를 순차적으로 덮어쓰는 전략으로, 때로는 자기 자신을 포함하기도 한다.[2] 코어 클리어는 단독으로 사용되는 경우는 드물지만, 주로 폭격기(Bomber)나 스캐너(Scanner)와 같은 전략에서 최종 단계에 사용된다.[2]6. 개발
코어 워 게임 구현은 여러 개발자에 의해 수년에 걸쳐 계속되었다. 다양한 플랫폼에서 이용 가능한 여러 버전의 게임이 포팅되었다. 예를 들어, SourceForge에서 소스 코드를 확인할 수 있는 오픈 소스 소프트웨어인 ''pMARS''[21]와 SDL 기반의 윈도우용 ''SDL pMARS''가 있다.[22]
pMARS는 2000년부터 2021년까지 SourceForge에서 35,000회 이상 다운로드된 일반적인 구현 방식이다.[23] 프로그래머는 『코어 워』 전략을 이해하여 특정 목표를 달성하는 전사(warrior)를 만들 수 있다. 전사는 `.red` 확장자를 가진 ASCII 형식 파일로 저장된다. 대부분의 프로그래머는 이미 공개된 전사를 활용하여 아이디어를 얻지만, 때때로 혁신적인 아이디어가 나오기도 한다. OptiMax나 core-step optimizer와 같은 최적화 시스템은 더 작고 효율적인 전사를 만드는 데 사용될 수 있다.
유전자 알고리즘 또는 유전자 프로그래밍을 통해 전사를 생성할 수도 있다. 이러한 진화 기술을 통합한 프로그램을 '''Core War Evolvers'''라고 한다. 몇몇 작고 빠른 evolver가 『코어 워』 커뮤니티에 소개되었지만, 이들은 주로 더 작은 『코어 워』 설정에 초점을 맞추고 있다. 최근 큰 성공을 거둔 evolver는 극소형 KOTHs를 생성한 [http://www.cad.polito.it/ugp3// µGP]이다. 그러나 진화 전략은 더 큰 언덕(8000개 이상의 코어)에서 아직 효율성이 검증되지 않았다.[36]
6. 1. 구현체
- '''pMARS'''[21]는 가장 널리 사용되는 MARS 구현체 중 하나이다. https://groups.google.com/g/rec.games.corewar rec.games.corewar 뉴스 그룹의 공식 시뮬레이터이며, SourceForge에서 2000년부터 2021년까지 35,000회 이상 다운로드되었다.[23]
- '''SDL pMARS'''[22]는 SDL 기반 pMARS의 윈도우 포팅 버전이며, ICWS-94 드래프트 규격과 호환된다.
- '''[https://corewar.co.uk/wendell CoreWin]'''은 GUI 기반의 윈도우용 코어 워 시뮬레이터로, 확장 ICWS-94와 호환된다.
- '''[https://harald.ist.org/sites/ares/ ARES]'''는 대화형 튜토리얼을 포함한 윈도우용 코어 워 시뮬레이터 및 디버거이다. 확장 ICWS-94와 호환된다.
- '''[https://nmars.sourceforge.net/ nMars]'''는 .NET 기반의 MARS 구현체이다. 확장 ICWS-94와 호환된다.
- '''[https://mark0.net/soft-xrk.html XRK]'''는 어셈블러, 디스어셈블러, 시뮬레이터, 토너먼트(네트워크 지원)를 갖춘 이탈리아산 키트이다. ICWS-86 규격이다.
- '''[https://code.google.com/archive/p/corewars8086 corewars8086]'''는 Java로 작성된 CoreWars 8086 게임 엔진이다.
7. 관련 기술 발전
코어 워 전략을 이해하면 프로그래머는 특정 목표를 달성하기 위한 전사(Warrior)를 만들 수 있다. 새로운 아이디어는 드물고, 대부분의 프로그래머는 이미 공개된 전사를 기반으로 프로그램을 작성한다. OptiMax나 코어 단계 최적화 도구와 같은 최적화 도구를 사용하면 더 효과적인 전사를 만들 수 있다.
코어 워는 자기 복제 프로그램인 크리퍼와 크리퍼의 복사본을 파괴하는 리퍼라는 후속 프로그램에서 영감을 받았다.[12] BBN의 밥 토마스가 크리퍼를 만들었다.[13] 1961년 벨 연구소에서 빅터 A. 비소츠키, 로버트 모리스, 더글러스 맥길로이가 플레이한 게임 ''다윈''이 ''사이언티픽 아메리칸''의 ''코어 워'' 기사에 인용되기도 했다.[12]
"코어"라는 이름은 구식 램 기술인 자기 코어 메모리에서 유래되었다. 이 용어는 오늘날에도 유닉스 및 대부분의 유닉스 계열 시스템에서 작업 메모리 덤프를 지칭하는 용어로 사용된다.
A. K. 듀드니와 D. G. 존스는 1984년 3월 ''코어 워 가이드라인''에서 레드코드 언어를 처음으로 설명했다.[14] 이 게임은 1984년 5월, 듀드니가 ''사이언티픽 아메리칸''에 기고한 기사를 통해 대중에게 소개되었다.
국제 코어 워 협회(ICWS)는 1985년에 설립되었다. ICWS는 1986년과 1988년에 레드코드 언어에 대한 새로운 표준을 발표했으며, 1994년에는 공식적인 새 표준은 아니지만 업데이트를 제안했다.[17] 1994년 초안은 현재 레드코드의 사실상 표준의 기초가 된다.
7. 1. 유전 알고리즘 및 유전자 프로그래밍
유전자 알고리즘 또는 유전자 프로그래밍으로 전사를 생성할 수도 있다. 이러한 진화 기법을 통합한 프로그램은 '이볼버(Evolver)'로 알려져 있다.[9][10] ''코어 워'' 커뮤니티에서는 여러 이볼버를 소개했으며, 이들은 더 작은 코어 설정을 위한 전사 생성에 중점을 두고 있다. 상당한 성공을 거둔 최신 이볼버는 ''μGP''[9][10]로, 몇몇 가장 성공적인 나노 및 타이니 전사를 생성했다. 그럼에도 불구하고 진화 전략은 더 큰 코어 설정에서 그 효과를 입증해야 한다.[11]7. 2. 파생 게임
- CoreWars 8086은 오리지널 코어 워와 매우 유사한 게임을 구현했다. Redcode의 커스터마이징된 명령 집합을 사용하는 대신, CoreWars 8086 전사 프로그램은 8086 어셈블리 언어로 작성된다.
- 토마스 S. 레이가 작성한 티에라는 생명 시스템의 모델링을 이용하는 코어 워의 번안이다.
- 아비다는 티에라를 기반으로 코어 워를 크게 파생시킨 것으로, 진화 과정을 추상화한다. Christoph Adami, Charles Ofria, and Titus Brown에 의해 만들어진 아비다는 진화에 대한 과학 연구에 사용되고 있다.
참조
[1]
웹사이트
rec.games.corewar on Google Groups
https://groups.googl[...]
2023-05-29
[2]
웹사이트
Intro to Art in '88: Paper - Stone - Scissors Trilogy
https://corewar.co.u[...]
2023-05-27
[3]
웹사이트
Silk Warrior 1.3
https://users.obs.ca[...]
2023-05-27
[4]
웹사이트
replicators? -> Phoenix & TimeScapesource
https://groups.googl[...]
1995-04
[5]
웹사이트
Anatomy of the Scanner, A Basic Introduction
https://corewar.co.u[...]
2004-04
[6]
웹사이트
Myrmidon
https://users.obs.ca[...]
2023-05-27
[7]
웹사이트
myVamp v3.7
https://users.obs.ca[...]
2023-05-27
[8]
웹사이트
Imp
https://users.obs.ca[...]
2023-05-27
[9]
웹사이트
μGP (MicroGP v2)
https://github.com/s[...]
2018-09-10
[10]
논문
Evolving Assembly Programs: How Games Help Microprocessor Validation
https://citeseerx.is[...]
2005
[11]
웹사이트
An Evolutionary Approach Generates Human Competitive Corewar Programs
https://corewar.co.u[...]
2023-05-27
[12]
간행물
In the game called Core War hostile programs engage in a battle of bits.
https://corewar.co.u[...]
2023-05-27
[13]
간행물
The 'Worm' Programs - Early Experience with a Distributed Computation
1982-03
[14]
웹사이트
Core War Guidelines
https://corewar.co.u[...]
2023-05-27
[15]
간행물
A Core War bestiary of viruses, worms and other threats to computer memories.
https://corewar.co.u[...]
2023-05-27
[16]
간행물
A program called MICE nibbles its way to victory at the first Core War tournament.
https://corewar.co.u[...]
2023-05-27
[17]
웹사이트
Annotated Draft of the Proposed 1994 Core War Standard
https://corewar.co.u[...]
2023-05-27
[18]
웹사이트
A Brief History of Corewar
https://corewar.co.u[...]
2023-05-27
[19]
웹사이트
The beginners' guide to Redcode, v1.23
https://vyznev.net/c[...]
[20]
웹사이트
The Corewar Emulators
http://corewar.info/[...]
[21]
SourceForge
corewar
https://sourceforge.[...]
[22]
웹사이트
pMARS-SDL
https://corewar.co.u[...]
[23]
SourceForge
download numbers corewar
https://sourceforge.[...]
[24]
문서
Victor Alexander Vyssotsky
[25]
문서
英語版Wikipediaの当該記事によれば、さらに[[デニス・リッチー]]の名が挙げられることもあるが関わっていない、とのことである。
[26]
간행물
In the game called Core War hostile programs engage in a battle of bits.
https://corewar.co.u[...]
2008-11-18
[27]
웹사이트
Core War Guidelines
https://corewar.co.u[...]
2008-11-19
[28]
간행물
A Core War bestiary of viruses, worms and other threats to computer memories.
https://corewar.co.u[...]
2008-11-18
[29]
간행물
A program called MICE nibbles its way to victory at the first Core War tournament.
http://corewar.co.uk[...]
2008-11-18
[30]
웹사이트
Annotated Draft of the Proposed 1994 Core War Standard
https://corewar.co.u[...]
1995-11-08
[31]
웹사이트
A Brief History of Corewar
https://corewar.co.u[...]
2008-11-19
[32]
웹사이트
Intro to Art in '88: Paper - Stone - Scissors Trilogy.
https://corewar.co.u[...]
Mintarjo, W.
[33]
웹사이트
The First International Core War Tournament
https://corewar.co.u[...]
[34]
웹사이트
replicators? - Phoenix & TimeScape source
https://groups.googl[...]
[35]
웹사이트
Anatomy of the Scanner, A Basic Introduction.
https://corewar.co.u[...]
Metcalf, J. A.
[36]
논문
Bvowk, Sasha & Fizmo: An Evolutionary Approach Generates Human Competitive Corewar Programs
https://corewar.co.u[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com