원본 Ultima Online 서버의 dynamic0.mul, dynamic0.bkp, regions.txt, resbank.mul 파일을 가진 사람이 있다면 보내주면 정말 고마울 듯함
1997~2003년 무렵 서버 저장 게임, 스폰 정의, 리소스 정의 파일이고, 특히 dynamic0.mul이나 dynamic0.bkp가 여러 안전한 장소에 백업됐을 테니 완전히 사라졌다고 보긴 어려움
이 파일들은 Ultima Online 세계 콘텐츠를 매우 정확하게 재현하는 데 극도로 가치 있음
정말 멋짐. 마침 옛 Ultima 게임 사운드트랙을 듣고 있다가 이걸 봤다는 게 신기함
원본에서 쓰던 C++98 이전 C++ 방언으로 디스어셈블리 결과를 작성하고 원래 컴파일러를 대상으로 삼는 걸 고려했는지 궁금함
빈티지 시스템에서 돌던 바이너리를 디스어셈블한 적이 있는데, 가능했다면 원래 툴체인을 목표로 했을 것 같음. 꽤 흥미로운 철학적 질문임
eqclassic의 마지막 생존 개발자로서 흥미롭게 읽었지만, 도구를 어떻게 썼고 전체 과정이 어땠는지에 대한 더 깊은 이야기를 기대했음. 그래도 좋은 글임
당시에는 LLM이 없었지만, 3년 뒤의 PowerPC 바이너리에서 나온 일부 디버그 심볼이 있어서 조금 도움이 됐음
packet_handler나 entitylist 같은 파일 이름이 묘하게 익숙함 :D
마지막 관문은 나머지를 다듬기 전에 사실상 완벽한 네트워크 코드를 갖추는 일인데, 이미 여기에 수백 시간을 날렸음
소스를 조금 훑어봤을 뿐이지만, 전부 TCP 기반이라 그 위에 별도의 신뢰성 메커니즘을 얹은 것 같지는 않아 보임. 그렇다면 당시 MMO치고는 꽤 “느린” 선택처럼 느껴져서 흥미로움
UO를 해보고 싶은 사람이라면 아직도 활성 플레이어 기반이 있는 게임. UO Outlands 같은 서드파티 서버는 원래 게임플레이에 더 가까운데, 요즘 MMO에 익숙한 기준으로는 꽤 가혹함
다른 플레이어가 와서 갱킹할 수 있고 장비를 잃을 수도 있음
지금도 해당 서버에 2500명 이상이 접속 중이라 여전히 매우 활발함
UO Outlands는 원래 UO보다 운영이 더 잘되는 느낌임. Discord도 꽤 활발하고 사용자가 약 2만 명쯤 있음
내 첫 진짜 프로그래밍 성취는 Ultima Online 샤드 웹사이트를 만든 일이었음
형편없는 PHP와 HTML을 썼지만, 이후 20년 넘게 동작했음. 좋은 추억임
UO 주변에 아직도 활발한 커뮤니티가 있다는 점이 놀라웠고, 어쨌든 이 프로젝트는 정말 멋짐
비슷하게 웹사이트 제작을 돕고, 포럼 설치를 관리하다가, 샤드를 운영하던 사람들이 나중에는 에뮬레이터 코드도 맡겨줬음
당시 12~13살이었고 90년대 말~2000년대 초였음. 에뮬레이터 이름은 이제 기억나지 않지만 아마 POL이었을 가능성이 큼
샤드의 목표는 UO:Renaissance 이전 공식 서버에 최대한 가깝게 만드는 것이어서, T2A처럼 보이고 느껴지게 하려고 꽤 많이 작업했음
많은 걸 배웠고, 이후 RunUO가 나오고 2003년쯤 어느 정도 안정화되자 POL에서 만든 것들을 RunUO용 C# 코드로 옮기는 작업도 도왔고, 따라가려면 더 많이 배워야 했음
그 샤드에서 함께 일하던 사람들은 모두 대학에서 컴퓨터과학을 공부하거나 이미 프로그래머로 일하고 있었고, 나는 스크립트 몇 개 쓸 줄 아는 어린애였음
이 경험이 나중에 프로가 되는 데 결정적이었다고 봄. 실제 기술 회사에서의 첫 직장도 그중 한 명이 인턴 자리가 났을 때 추천해줘서 얻게 됨
어떤 의미에서는 UO와 사설 샤드 덕분에 지금의 커리어가 생긴 셈임
내 경우는 UOInject라는 보조 도구로 광석 채굴을 자동화한 것이 시작이었음. 그 언어는 Visual Basic이었던 것 같음
순전히 필요해서 프로그래밍을 시작했음
MMO나 온라인 게임이었다면 사설 서버 커뮤니티는 끝없이 생김
게임 이름은 잊었지만 아마 City of Heroes였던 것 같고, 몇 년 동안 종료돼 있다가 어느 날 누군가 사설 서버를 다시 띄웠음
예전 Shockwave 온라인 게임들도 틈새 커뮤니티가 서버를 재구축하고, Shockwave 런타임과 디컴파일러를 만들고 있음
서로 비슷한 문제를 풀다 보니 게임 간 커뮤니티도 겹침 ;)
나도 첫 진짜 프로그래밍 성취가 Ultima Online 샤드 웹사이트였음
두 번째는 지도를 바꾸는 일이었고, 정적 아이템 제거, 새 섬과 건물 추가 같은 걸 했음
세 번째는 verdata.mul을 바꿔 새 애니메이션과 아이템 그래픽을 추가하는 일이었음
비공식 POL 서버에서 Ultima Online을 한 덕분에 말 그대로 IT에 들어오게 됐음. 그전에는 회계사가 되려고 공부하고 있었음
내 첫 웹사이트는 Chesapeake의 내 길드용이었고, 각종 스킬을 매크로로 올리는 스크립트를 엉성하게 만든 것이 첫 “실제 프로그래밍” 프로젝트였음
이것 때문에 처음 IRC에 들어갔고, 나중에는 freenode까지 이어졌음
UO 에뮬레이터 씬이 나를 네트워크 프로그래밍으로 이끌었음
온라인 게임 중에서 이렇게 많은 부수적·창발적·우연적 게임플레이 메커니즘을 잘 담아낸 사례를 본 적이 없음
이후 3D MMO들은 UO가 제공했던 흥미로운 경제, 건축, 탐험 요소를 많이 낮춰버린 것 같음
PvP나 퀘스트류는 다른 게임들이 더 나을 수 있지만, UO는 여전히 매력적이었고 혼자 하거나 그룹으로 하거나 낯선 사람과 가볍게 상호작용하다가 기분에 따라 자연스럽게 전환할 수 있었음
아쉽게도 두 가지가 사실로 드러났음
대부분의 사람은 이런 걸 원하지 않고 정해진 레일 위에 있는 걸 선호함
그리고 이런 게임에 가장 끌리는 두 집단은 한쪽이 있으면 다른 한쪽이 게임을 떠나는 역학에 빠짐. 그런데 두 번째 집단은 첫 번째 집단이 플레이하기를 필요로 함
몇몇 오래된 3D MMORPG는 그런 메커니즘을 넣으려 했음
예를 들면 Asheron's Call은 모드 커뮤니티가 매우 활발했고 지금은 에뮬레이터 씬도 있음. 다만 서버 인기는 UO만큼은 아닌 것 같음
Shadowbane은 길드 중심이 강했지만, 약간 무법자처럼 굴면서 임의의 사람이나 길드와 PvP하는 재미가 있었음
그쪽에 기회가 있을지도 모름. 솔직히 지금 MMO 시장에는 별로 움직임이 없음
WoW, Old School RuneScape, Final Fantasy Online 정도 말고는 크게 할 만한 게 많지 않음
10년 동안 간헐적으로 이 프로젝트를 진행하다가, 최근 LLM 발전 덕분에 끝이 없어 보이던 작업을 마침내 완료할 수 있었다는 대목이 인상적임
나도 MFC C++ 디컴파일 프로젝트를 하고 있는데, 이런 작업에서 LLM이 말도 안 되게 유용함
이 작업에 LLM을 자동화된 방식으로 쓰고 있는지 궁금함. 로컬인지 클라우드인지도 궁금함
예전에 Ultima Online을 즐겼음
최근에는 TazUO 게임 클라이언트에서 Python 스크립팅을 재미있게 하고 있음. 약간 오래된 Python 3 버전이지만 Razor나 SteamUO에서 스크립트 짜는 것보다는 훨씬 나음
조용한 싱글플레이어 샤드에서 이것저것 해보고 싶다면 Memento가 괜찮았음
Ultima 4 NES 버전의 스페인어 또는 프랑스어 현지화 모바일판을 찾고 있었음. 다른 작품들도 마찬가지임
FF 시리즈의 Pixel Remaster처럼 처리된 형태를 원함
현재는 에뮬레이터로만 플레이할 수 있음
텍스트가 많은 현지화 RPG는 외국어를 “놀면서 배우는” 데 아주 쉬운 방법이고, 읽기에도 좋음
이런 게 만들어지면 좋겠음
아, UO… 정말 좋은 추억임. 카드가 있을 나이가 아니라 Palo Alto의 Cybersmith까지 자전거를 타고 가서 선불 시간을 사던 기억이 남
예전에는 Napa Valley 샤드에서 꽤 열심히 했음. Catskills에 갈 만큼 용감하진 않았음
요즘은 UO 같은 경험이 그립지만, 그런 게임에 쏟을 시간이 도저히 없음
왜 Catskills는 안 됐는지 궁금함. 달랐나? 더 어려운 규칙 세트가 있던 Siege Perilous를 떠올린 건 아닌가?
Hacker News 의견들
원본 Ultima Online 서버의 dynamic0.mul, dynamic0.bkp, regions.txt, resbank.mul 파일을 가진 사람이 있다면 보내주면 정말 고마울 듯함
1997~2003년 무렵 서버 저장 게임, 스폰 정의, 리소스 정의 파일이고, 특히 dynamic0.mul이나 dynamic0.bkp가 여러 안전한 장소에 백업됐을 테니 완전히 사라졌다고 보긴 어려움
이 파일들은 Ultima Online 세계 콘텐츠를 매우 정확하게 재현하는 데 극도로 가치 있음
정말 멋짐. 마침 옛 Ultima 게임 사운드트랙을 듣고 있다가 이걸 봤다는 게 신기함
원본에서 쓰던 C++98 이전 C++ 방언으로 디스어셈블리 결과를 작성하고 원래 컴파일러를 대상으로 삼는 걸 고려했는지 궁금함
빈티지 시스템에서 돌던 바이너리를 디스어셈블한 적이 있는데, 가능했다면 원래 툴체인을 목표로 했을 것 같음. 꽤 흥미로운 철학적 질문임
eqclassic의 마지막 생존 개발자로서 흥미롭게 읽었지만, 도구를 어떻게 썼고 전체 과정이 어땠는지에 대한 더 깊은 이야기를 기대했음. 그래도 좋은 글임
당시에는 LLM이 없었지만, 3년 뒤의 PowerPC 바이너리에서 나온 일부 디버그 심볼이 있어서 조금 도움이 됐음
packet_handler나 entitylist 같은 파일 이름이 묘하게 익숙함 :D
마지막 관문은 나머지를 다듬기 전에 사실상 완벽한 네트워크 코드를 갖추는 일인데, 이미 여기에 수백 시간을 날렸음
소스를 조금 훑어봤을 뿐이지만, 전부 TCP 기반이라 그 위에 별도의 신뢰성 메커니즘을 얹은 것 같지는 않아 보임. 그렇다면 당시 MMO치고는 꽤 “느린” 선택처럼 느껴져서 흥미로움
UO를 해보고 싶은 사람이라면 아직도 활성 플레이어 기반이 있는 게임. UO Outlands 같은 서드파티 서버는 원래 게임플레이에 더 가까운데, 요즘 MMO에 익숙한 기준으로는 꽤 가혹함
다른 플레이어가 와서 갱킹할 수 있고 장비를 잃을 수도 있음
지금도 해당 서버에 2500명 이상이 접속 중이라 여전히 매우 활발함
내 첫 진짜 프로그래밍 성취는 Ultima Online 샤드 웹사이트를 만든 일이었음
형편없는 PHP와 HTML을 썼지만, 이후 20년 넘게 동작했음. 좋은 추억임
UO 주변에 아직도 활발한 커뮤니티가 있다는 점이 놀라웠고, 어쨌든 이 프로젝트는 정말 멋짐
당시 12~13살이었고 90년대 말~2000년대 초였음. 에뮬레이터 이름은 이제 기억나지 않지만 아마 POL이었을 가능성이 큼
샤드의 목표는 UO:Renaissance 이전 공식 서버에 최대한 가깝게 만드는 것이어서, T2A처럼 보이고 느껴지게 하려고 꽤 많이 작업했음
많은 걸 배웠고, 이후 RunUO가 나오고 2003년쯤 어느 정도 안정화되자 POL에서 만든 것들을 RunUO용 C# 코드로 옮기는 작업도 도왔고, 따라가려면 더 많이 배워야 했음
그 샤드에서 함께 일하던 사람들은 모두 대학에서 컴퓨터과학을 공부하거나 이미 프로그래머로 일하고 있었고, 나는 스크립트 몇 개 쓸 줄 아는 어린애였음
이 경험이 나중에 프로가 되는 데 결정적이었다고 봄. 실제 기술 회사에서의 첫 직장도 그중 한 명이 인턴 자리가 났을 때 추천해줘서 얻게 됨
어떤 의미에서는 UO와 사설 샤드 덕분에 지금의 커리어가 생긴 셈임
순전히 필요해서 프로그래밍을 시작했음
게임 이름은 잊었지만 아마 City of Heroes였던 것 같고, 몇 년 동안 종료돼 있다가 어느 날 누군가 사설 서버를 다시 띄웠음
예전 Shockwave 온라인 게임들도 틈새 커뮤니티가 서버를 재구축하고, Shockwave 런타임과 디컴파일러를 만들고 있음
서로 비슷한 문제를 풀다 보니 게임 간 커뮤니티도 겹침 ;)
두 번째는 지도를 바꾸는 일이었고, 정적 아이템 제거, 새 섬과 건물 추가 같은 걸 했음
세 번째는 verdata.mul을 바꿔 새 애니메이션과 아이템 그래픽을 추가하는 일이었음
비공식 POL 서버에서 Ultima Online을 한 덕분에 말 그대로 IT에 들어오게 됐음. 그전에는 회계사가 되려고 공부하고 있었음
이것 때문에 처음 IRC에 들어갔고, 나중에는 freenode까지 이어졌음
UO 에뮬레이터 씬이 나를 네트워크 프로그래밍으로 이끌었음
온라인 게임 중에서 이렇게 많은 부수적·창발적·우연적 게임플레이 메커니즘을 잘 담아낸 사례를 본 적이 없음
이후 3D MMO들은 UO가 제공했던 흥미로운 경제, 건축, 탐험 요소를 많이 낮춰버린 것 같음
PvP나 퀘스트류는 다른 게임들이 더 나을 수 있지만, UO는 여전히 매력적이었고 혼자 하거나 그룹으로 하거나 낯선 사람과 가볍게 상호작용하다가 기분에 따라 자연스럽게 전환할 수 있었음
대부분의 사람은 이런 걸 원하지 않고 정해진 레일 위에 있는 걸 선호함
그리고 이런 게임에 가장 끌리는 두 집단은 한쪽이 있으면 다른 한쪽이 게임을 떠나는 역학에 빠짐. 그런데 두 번째 집단은 첫 번째 집단이 플레이하기를 필요로 함
예를 들면 Asheron's Call은 모드 커뮤니티가 매우 활발했고 지금은 에뮬레이터 씬도 있음. 다만 서버 인기는 UO만큼은 아닌 것 같음
Shadowbane은 길드 중심이 강했지만, 약간 무법자처럼 굴면서 임의의 사람이나 길드와 PvP하는 재미가 있었음
WoW, Old School RuneScape, Final Fantasy Online 정도 말고는 크게 할 만한 게 많지 않음
10년 동안 간헐적으로 이 프로젝트를 진행하다가, 최근 LLM 발전 덕분에 끝이 없어 보이던 작업을 마침내 완료할 수 있었다는 대목이 인상적임
나도 MFC C++ 디컴파일 프로젝트를 하고 있는데, 이런 작업에서 LLM이 말도 안 되게 유용함
예전에 Ultima Online을 즐겼음
최근에는 TazUO 게임 클라이언트에서 Python 스크립팅을 재미있게 하고 있음. 약간 오래된 Python 3 버전이지만 Razor나 SteamUO에서 스크립트 짜는 것보다는 훨씬 나음
조용한 싱글플레이어 샤드에서 이것저것 해보고 싶다면 Memento가 괜찮았음
Ultima 4 NES 버전의 스페인어 또는 프랑스어 현지화 모바일판을 찾고 있었음. 다른 작품들도 마찬가지임
FF 시리즈의 Pixel Remaster처럼 처리된 형태를 원함
현재는 에뮬레이터로만 플레이할 수 있음
텍스트가 많은 현지화 RPG는 외국어를 “놀면서 배우는” 데 아주 쉬운 방법이고, 읽기에도 좋음
이런 게 만들어지면 좋겠음
아, UO… 정말 좋은 추억임. 카드가 있을 나이가 아니라 Palo Alto의 Cybersmith까지 자전거를 타고 가서 선불 시간을 사던 기억이 남
예전에는 Napa Valley 샤드에서 꽤 열심히 했음. Catskills에 갈 만큼 용감하진 않았음
요즘은 UO 같은 경험이 그립지만, 그런 게임에 쏟을 시간이 도저히 없음