Super Mario War는 팬이 만든 멀티플레이어 Super Mario Bros. 스타일의 데스매치 게임으로, 플레이어는 다양한 게임플레이 모드에서 서로를 이겨야 합니다. 팀으로 플레이하고, 자신만의 레벨을 디자인하고, 자신만의 세계를 디자인하는 등 다양한 작업을 수행할 수 있습니다!
이 페이지를 다른 언어로 읽어보세요: English
오리지널 마리오 워(Mario War) 는 2002년 사무엘레 폴레토(Samuele Poletto) 에 의해 만들어졌으며, 4명의 슈퍼 마리오 캐릭터가 서로의 머리 위로 점프하여 다양한 레벨에서 싸울 수 있었습니다. Pascal/Assembly로 작성되었으며 DOS용으로 출시되었습니다. 최신 버전에는 지도 편집기도 포함되어 있습니다.
2004년에 72dpiarmy 포럼의 창립자인 Florian Hufsky는 Super Mario War가 된 오픈 소스 재작성 작업을 시작했습니다. 이 버전에는 사용자 정의 캐릭터, 추가 게임 플레이 모드, 지도 메커니즘, 아이템 및 파워업이 도입되었습니다. 사용자 정의 사용자 콘텐츠는 수천 개의 맵과 스킨을 사용할 수 있는 smwstuff.com
사이트(현재는 존재하지 않음)에 저장되었습니다. 오픈 소스 특성으로 인해 이 게임은 거의 모든 데스크톱 및 콘솔 시스템으로 이식되었습니다.
2009년 말에 플로리안이 사망했습니다. 게임 개발 속도가 느려지고 결국 중단되었으며 SMW 1.8 베타 2가 마지막 공식 릴리스가 되었습니다. 개발을 계속하거나 다시 시작하려는 시도가 여러 번 있었지만 장기적으로 성공한 것은 하나도 없는 것 같습니다. 또한 기술적인 문제로 인해 전체 smwstuff.com
사이트와 모든 콘텐츠가 손실되었으며 포럼에서 업로더의 부분 백업을 사용할 수 있습니다.
이것은 제가 2014년경에 작업을 시작한 포크입니다. 초기 목표는 서로 다른 장치 간 크로스 플랫폼에서 작동하는 네트워크 멀티플레이어 지원을 구현하는 것이었습니다. 포럼에 흩어져 있는 내용을 한자리에 모아두는 사이트를 다시 한 번 만들어보고 싶었습니다. 이것이 smwstuff.net
이 되었습니다.
게임에 관해서는 불행히도 원본 소스 코드의 품질과 구조로 인해 효과적인 작업이 불가능하다는 것이 곧 분명해졌습니다. 대부분의 소스 파일은 "약 10000줄" 범주에 있었고 1000개 이상의 LOC 기능이 일반적이었습니다. 전역 변수를 수정하고 심지어 100개의 분기가 있는 if-else
도 있었습니다.
결국 네트워크 멀티플레이어가 작동하도록 만들었지만 완벽과는 거리가 멀습니다. 조건이 좋으면 로컬 네트워크에서는 제대로 작동할 수 있지만 미묘한 버그와 지연으로 인해 일반적으로 인터넷을 통한 게임 플레이가 최적의 상태가 아닙니다. 적절한 구현을 위해서는 게임의 여러 핵심 부분을 재설계하고 코드를 유지 관리할 수 있도록 수백 개의 정리/리팩토링 패치가 필요할 수 있습니다. 그리고 물론 이런 종류의 프로젝트에서는 다음날 아침 어떤 회사로부터든 중단 편지를 받을 가능성도 있습니다.
나에게는 이것이 이 프로젝트(2016)에 더 많은 시간을 투자하는 것을 중단한 지점이었습니다. 장기적으로는 수년 동안 원래 게임을 패치하는 것보다 완전히 다시 작성하는 것이 더 빠르고 효과적일 수 있습니다. 어느 쪽이든, 나는 프로젝트를 이전보다 더 나은 상태로 남겨두고 미래의 개발자들에게 도움이 되기를 바랍니다. 재미있게 보내세요!
Mario War 및 SMW의 이전 릴리스는 여기에서 찾을 수 있습니다.
슈퍼 마리오 워(Super Mario War)는 슈퍼 마리오 멀티플레이어 게임입니다. 목표는 가능한 한 많은 마리오를 밟아 게임에서 승리하는 것입니다. 게임에는 Capture-The-Flag, King of The Hill, Deathmatch, Team Deathmatch, Tournament Mode, Collect The Coins, Race 등과 같은 다양한 게임 플레이 모드가 있습니다. 이 게임에는 처음부터 자신만의 지도를 만들거나 좋아하는 Mario 게임의 섹션을 다시 만들 수 있는 레벨 편집기도 포함되어 있습니다. 상상력은 한계가 없습니다! 최근에는 지정된 조건으로 여러 레벨을 연결하여 플레이와 같은 토너먼트와 병합된 SMB3와 같은 경험을 만드는 월드 편집기가 포함되었습니다. 이 게임은 더 중요하게도 Nintendo와 Samuele Poletto의 오리지널 팬게임 게임인 Mario War에 대한 찬사입니다.
이 게임은 Nintendo 게임의 삽화와 사운드를 사용합니다. 우리는 이 비상업적 팬게임이 공정 사용 저작물로 간주되기를 바랍니다. 우리는 우리가 Nintendo의 캐릭터와 게임을 얼마나 좋아하는지 보여주기 위해 이 게임을 만들고 싶었습니다.
이러한 종속성을 가져오기 위해 패키지 관리자를 사용할 수 있습니다.
apt-get install cmake libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev zlib1g-dev
yum install cmake SDL-devel SDL_image-devel SDL_mixer-devel zlib-devel
pacman -S cmake sdl sdl_image sdl_mixer zlib
pacman -S mingw-w64-x86_64-SDL mingw-w64-x86_64-SDL_image mingw-w64-x86_64-SDL_mixer mingw-w64-x86_64-zlib
다른 시스템의 경우 다음 위치에서 개발 파일을 수동으로 다운로드할 수 있습니다.
이 저장소에는 OS에 대한 종속성을 사용할 수 없거나, 오래되었거나, 단순히 시스템에 설치하고 싶지 않은 경우 사용할 수 있는 일부 하위 모듈이 포함되어 있습니다. 포함된 라이브러리를 사용하려면 재귀 복제를 수행하십시오.
git clone --recursive https://github.com/mmatyas/supermariowar.git
또는 수동으로 하위 모듈을 초기화할 수도 있습니다.
git clone https://github.com/mmatyas/supermariowar.git
cd supermariowar
git submodule update --init
시스템 라이브러리를 사용하려는 경우 이 기능을 비활성화하려면 빌드 구성 섹션을 참조하세요.
빌드 디렉터리를 만들고 거기에서 CMake를 실행하여 프로젝트를 구성합니다. 그런 다음 빌드할 때마다 make
호출하면 됩니다. 간단히 말해서:
mkdir build && cd build
cmake ..
make -j4 # -jN = build on N threads
./smw --datadir ../data
make
의 주요 빌드 대상은 다음과 같습니다.
IDE(CodeBlocks, Eclipse 등) 내에서 작업하려는 경우 CMake를 사용하여 프로젝트 파일을 생성할 수도 있습니다. 자세한 내용은 빌드 구성에서 확인할 수 있습니다.
설치 가능한 패키지를 생성하려면 make package
실행하면 됩니다. 그러면 TGZ, DEB 및 RPM 아카이브가 생성됩니다.
아마도 Xcode와 해당 명령줄 도구가 필요할 것입니다. 해당 사이트에서 SDL 및 CMake를 수동으로 설치하거나 Homebrew( brew install cmake sdl2 sdl2_image sdl2_mixer
사용하여 설치할 수 있습니다. 그런 다음 Linux 지침에 따라 SMW를 빌드합니다.
MinGW Shell/MSYS 또는 Cygwin을 사용하는 경우 Linux 가이드를 따르세요. CodeBlocks, Eclipse 또는 Visual Studio와 같은 다양한 IDE용 CMake를 사용하여 프로젝트 파일을 생성할 수도 있습니다.
자세한 내용은 Wiki: Windows 기반 구축을 참조하세요.
Linux 지침에 따라 Raspberry Pi와 같은 ARM 장치에 SMW를 구축할 수 있습니다. 수행 방법을 알고 있다면 크로스 툴체인을 설정하거나 장치를 에뮬레이션하는 등 일반적인 방법으로 크로스 컴파일할 수도 있습니다. 자세한 내용은 Wiki: ARM으로 크로스 컴파일을 참조하세요.
빌드 구성에는 이미 몇 가지 기본 컴파일러 플래그가 포함되어 있지만 가능한 조합(하드 플로트, Thumb, NEON 등)이 많기 때문에 사용자 지정 매개 변수를 사용할 수도 있습니다. 이 경우 CFLAGS 및 CXXFLAGS 변수를 정의하고 DISABLE_DEFAULT_CFLAGS
옵션을 사용하여 CMake를 실행합니다(빌드 구성 참조).
Android 포트는 다른 빌드 시스템을 사용합니다. 자세한 내용은 여기에서 확인할 수 있습니다.
SMW는 Emscripten을 사용하여 브라우저에서 실행되도록 구축할 수 있습니다. 위키에서 빌드 지침을 찾을 수 있습니다.
SDL(1.2 또는 2.0)이 작동하는 모든 장치에 SMW를 포팅할 수 있어야 합니다. 일반적으로 여기에는 다음 단계가 포함됩니다.
TODO: 이 섹션을 확장하세요
다양한 CMake 플래그를 설정하여 빌드 구성을 변경할 수 있습니다. 이를 수행하는 가장 간단한 방법은 Build
디렉터리에서 cmake-gui ..
실행하는 것입니다. 요소 이름 위에 마우스를 올려 요소에 대한 간단한 설명을 읽을 수도 있습니다.
또는 이러한 옵션을 -DFLAGNAME=VALUE
(예: cmake .. -DUSE_SDL2_LIBS=1
)로 CMake에 직접 전달할 수 있습니다.
docs/ 디렉토리에 있는 문서를 참조하세요.