Daybreakin Things

Posted
Filed under 컴퓨터

예전에 포스팅했던, 장시간 컴퓨터를 켰을 때 화면 깨짐이 발생했다는 글과 관련된 것이다. 그때 VGA 제조사에 찾아가 A/S로 신품 교환도 받아왔었지만 해결이 계속 안 되어 아예 다른 기종으로 바꿀까까지 고려를 하고 있었다. 그런데, 얼마전 수프림커맨더 관련 자료를 찾다가 XP SP2용 듀얼코어 패치에 관한 게시물을 보게 되었고, 그것을 그대로 따라한 이후로 현재 50시간 가까이 컴퓨터를 켜놨지만 전혀 문제가 발생하고 있지 않다. -_-; 그러니까 문제는 VGA 자체에 있었던 것도 아니고, 드라이버에 있던 것도 아니고, XP 자체의 문제였던 것이다.

수프림 커맨더 때문에라도 VGA를 업그레이드할까 해서 8800GTS 320MB짜리를 눈여겨보고 있었지만 아무래도 좀더 미룰 수 있을 것 같다. 가격대가 20만원대로 떨어지면 사든지, 아니면 2분기쯤 나온다는 R600이나 G90 시리즈 등을 기다리는 것이 좋을 것이다. (G90을 기다리는 이유는 65nm 공정을 통해 전력 소모와 발열이 더 적어질 것이라 예상하고 있기 때문이다)

그나저나, 이와 함께 또다른 문제를 발견했다. 바로 2GB의 RAM을 쓰는 시스템에서는 XP의 최대절전모드가 제대로 동작하지 않는다는 것. 아주 드물게 되는 경우가 있었는데 십중팔구 '리소스가 부족하여 API를 완료하지 못했습니다'라는 에러가 뜨는 것이다. 처음에는 메인보드와 뭔가 호환이 안 되나 했는데 XP 자체의 결함으로 보이며, Vista에서도 같은 증상이 발생하는 경우가 있다고 한다. -_-;

뭐 나는 어차피 데스크탑이라서 최대절전모드보다는 그냥 대기모드를 쓰는 경우가 많고, 특히 화면 깨짐 현상이 해결되었기 때문에 별로 상관 없을 것 같다.

어쨌든 은근히 신경쓰이던 문제가 예기치 않게 해결되어서 기쁘다.

Posted
Filed under 컴퓨터

2004년 3월 1일 JH님의 발표를 통해 태터툴즈가 세상에 처음 알려지게 되었습니다. 내일이 그 3주년이 되는 날로, TNC에서는 축하 메시지 및 "나의 첫번째 포스트"의 트랙백 등을 통한 소정의 이벤트를 준비하고 있다고 합니다.

TNC가 참여하는 태터툴즈 1.0 개발은 2005년 겨울에 시작되었고, TNF가 참여하기 시작한 것은 2006년 4월경입니다. 그 동안 정말 많이 변해왔고, 태터툴즈 자체도 엄청나게 큰 프로그램이 되었죠. 하지만 그 무엇보다도 국내의 설치형 블로그 시장을 확대하는 데 중요한 역할을 했다는 것을 잊지 말아야겠습니다.

흐흐, TNF의 일원으로써 태터툴즈 탄생 3주년을 축하합니다!

Posted
Filed under 컴퓨터

드디어 몇 년을 기다려온 게임, Supreme Commander의 한정판 패키지가 택배로 도착했다. 게임에 대한 구구절절한 설명은 위키백과(내가 쓴 글이다 -_-)로 대신하고, 한정판 내용물 사진으로 포스팅을 대신한다. :)

User inserted image

한정판 패키지 및 기숙사의 24인치 모니터 (Intro 재생 중)

Posted
Filed under 컴퓨터

어쨌든 ESCamp를 통해 최고의 두뇌들이 모였다는 세 학교(서울대, 포항공대, 카이스트) 컴공/전산과 사람들이 모여서 친목 도모도 하고 인공지능 대회를 하는 것은 참 좋은 일이다. 같은 분야를 공부하고 있는 다른 학교 사람들은 어떤 사람들인지 알 수 있는 기회도 되고, 아무래도 혼자 컴퓨터 앞에 앉아있는 시간이 많은 사람들이 바깥에서 사람들과 부대끼며 뭔가 할 수 있기 때문이다. (게다가 넥슨의 후원으로 돈 걱정 없이 마음껏 먹을 수 있는 술과 안주 또한... =3=3)

앞으로도 ESCamp가 계속되었으면 좋겠고, 이번 행사도 즐거웠지만 몇 가지 바라는 점을 적어보겠다. 다음 번은 이번 여름에 서울대에서 개최한다고 하는데 담당한다는 학생분과도 잠깐 얘기했던 것이다.

  • 인공지능 대회 외에도 머리를 겨룰 수 있는 다른 종목 추가. 예를 들면 Codegolf 같은 것은 일반적으로 인정받는 알고리즘 코딩 스킬하고는 약간 다른 스킬이기 때문에 좀더 많은 학생에게 기회가 갈 수 있을 것이다.
  • 인공지능 대회 프레임웍 개선. 현재는 문서화도 잘 안 된 것 같고, 매번 다른 사람들이 같은 코드를 이용해 만들다보니 버그 발생 소지가 높은 것 같다. 또한 C++ 외의 Java, Python 등 다양한 언어로도 쉽게 짤 수 있도록 기반 코드를 제공하면 좋겠다.
  • 인공지능 대회때 사용하는 게임을 AI를 짜서 겨루는 것 외에도 사람이 직접 해서(!) 겨루는 것도 재밌을 것 갈다.
  • 수업 시간에 배우지 않는 프로그래밍 언어들(Python, PHP, lua 등)의 기초 세미나 및 짝프로그래밍을 통한 간단한 문제 풀이 시간. (상품도 있으면 좋을 듯?)
  • 각 학교 동아리나 과별/개인별 작품 전시. 복잡한 프로그램이나 프로젝트가 아니더라도, 토끼군의 code obfuscation을 통한 그림그리기부터 시작해서 Firefox 확장기능 등 비교적 자그마한 것들. 동기부여를 할 수 있는 적절한 보상도 있으면 좋을 것이다.
  • 뒷풀이로 술집만 가지 말고 다른 것도 했으면 좋겠다. 술집은 테이블 단위로 사람들이 잘게 나눠지기 때문에 좀더 넓은 공간에서 함께 이야기할 수 있는 자리가 있었으면 한다. (첫째날 정도에 이런 자리를 마련하고 마지막날에 술집을 가는 것이 행사 진행에 차질이 없도록 하는 데 도움이 될 것 같다)
  • KLDP 10주년 컨퍼런스에서 했던 것과 같은 BoF 섹션 마련. 사람들과 삽질 경험담을 공유한다거나 각종 기술적인 주제의 토론, 혹은 여자친구 이야기라든가... 술집에서 결국 모든 이야기가 전공으로 귀결되는 현상을 막아봤으면 한다. -_-; (미리 이야깃거리를 준비할 수 있도록 할 필요가 있다)
  • 큰 규모는 아니어도 ESCamp를 위한 커뮤니티가 있으면 좋겠다. (이미 있는지는 잘 모르겠다) 한 번 만나고 헤어진 사람들과 지속적인 교류가 가능하도록 하는 장치가 있다면 더욱 좋고.

물론 이런 사항들이 하루아침에 다 반영될 수는 없겠지만, 나는 위의 내용들을 ESCamp에 제안하고 싶다. 뭔가 더 할 말이 있었던 것 같은데 너무 졸린 관계로(이틀 동안 6시간 정도밖에 못잤다) 생각나면 나중에 추가하도록 하겠다.

Posted
Filed under 컴퓨터

서울대, 포항공대, KAIST 컴공/전산과 학생들이 모여 게임대회 및 인공지능대회를 하는 ESCamp에 참가하러 포항공대에 내려와있다. 지금은 청암학술정보관 4층에서 원격 데스크탑 접속 중.; inureyes님 말마따나 학교가 언덕길과 계단이 많아서 자전거 타기는 힘들게 생겼지만 여기저기 둘러보니 숲속에 있는 것 같은 조용한 느낌이 좋다. (방학이라 더 그렇겠지만 단점이라면 너무 사람이 없는 것 같달까.) 무엇보다도 도서관은 너무 부럽다. ㅠㅠ 울학교 과학도서관의 그 덜컹덜컹 비상버튼에 손이 가게 만드는 엘레베이터와 이곳의 투명 유리 엘레베이터는 너무나 대조적이다.;;

User inserted image

청암학술정보관 내부

기숙사에 도착해서 inureyes님한테 연락했더니 마침 학교에 계셔사 잠시 학교를 한 바퀴 돌며 토끼군과 함께 산책했다. 뭐 이런저런 잡담도 하고 사진도 찍고;; 노트북은 있으나 카드리더기가 없는 관계로 사진은 이틀 후에나 올릴 수 있을 것 같다. 기숙사 방은 신발을 신고 생활하게 되어 있는 게 특징이고, 각 층이 상층/하층으로 반층씩 나누어져 있어 처음에 방을 찾을 때 헷갈렸다. 휴게실은 (inureyes님의 설명에 따르면) 포스코 이사장인가 하는 사람이 와서 보고는 너무 후졌다며 20억을 던져주고 가서 싹 리모델링한 거라는데 무려 벽걸이 TV가 달려있고 일부는 학생들이 구입한 XBOX 등의 게임기도 있다고 한다. -_-; (그러나 그외 기숙사 나머지 부분은 우리학교가 더 나은 것 같다)

오늘 저녁 때 진행할 게임대회 종목은 바로 빅샷. 작년 여름이었나, 그 전이었나.. 갑자기 말려서 꽤나 재밌게 했던 게임이다. (아, 후원사가 넥슨이라서 넥슨 게임으로 대회를 한다) 보아하니 요즘은 인기가 별로 없는 것 같은데, 그 덕분(?)에 이 게임을 해본 사람이 별로 없어서 상대적으로 내가 유리할 듯하다. (그러나 워낙에 감각이 없어서...orz)

User inserted image

빅샷 게임대회 장면. (나중에 추가)

내일은 하루종일 인공지능 대회를 한다. Problem Solving 기말프로젝트로 했던 것과 거의 같은 방식으로, 위의 게임대회와 인공지능대회 모두 서울대, 포스텍, 카이스트 학생들을 섞어서 조를 짜놓았다. (아까 조원 찾아봤더니 한 명은 카오스하러 가고 한 명은 어딨는지 안 보여서 포기. -_-) 아직 어떤 형태의 게임을 놓고 하게 될 것인지는 알려주지 않아서 꽤 기대된다.

어쨌든 사람들도 사귀고 재미있는 행사가 될 것 같다. :)

글 수정 : 2월 9일에 쓴 글을 2월 11일에 고침. (이미지 추가)

Posted
Filed under 컴퓨터

둘째날은 인공지능 대회가 있는 날이었다. 이번에 했던 게임은 비주얼드를 변형하여 커서와 방해블록 개념이 추가된 형태였다. 또한 기존 비주얼드 게임[footnote]Bejeweled. PopGames 참조.[/footnote]은 두 블록을 맞바꿨을 때 없어지는 블록 조합이 있어야 바꿀 수 있지만 이 게임은 그런 제한이 없었다. (따라서 의도적으로 연쇄 제거를 만들기 위해 미리 판의 상태를 바꾸도록 할 수 있다)

뭐, 대략적인 게임 화면은 아래와 같다. 작년인가 ESCamp 및 카포전 인공지능 대회에 참여했던 상위 랭킹 학생들이 만든 서버-클라이언트 프레임웍을 이용해 개발된 것이다.

User inserted image

UPNL팀이 만든 AI 동작 화면

팀 구성은 서울대, 포항공대, KAIST 사람들을 한 명씩 섞어서 3명씩 조를 만드는 방식이었다. 나는 포항공대 04학번 송종혁 형(한살 위)과 서울대 06학번 김은솔 양(동갑)과 함께 팀이 되었는데, 은솔은 알고리즘을 짜는 아이디어는 있었지만 구현을 못한다고 해서 종혁이 형과 내가 다 짜게 되었다. 우선 기본으로 주어진 simple AI와 같이 당장 없앨 수 있는 조합을 찾아서 처리하는 것을 만들고, 한 수를 놓았을 때의 판 상황을 시뮬레이션하는 것과 이를 바탕으로 game tree[footnote]게임 AI 프로그래밍을 할 때, 내가 어떤 수를 놓았을 때 상대방이 어떤 수를 놓을지, 또 그에 대해 어떻게 대응하는 수를 놓을지, 또 그에 대한 상대방의 반응 등을 적절한 평가함수를 통해 예측하여 각 게임 진행과정을 모두 시뮬레이션해보고 가장 좋은 점수를 얻은 경로를 따라 게임을 진행하는 방식이다. 트리의 depth가 깊어질수록 더 멀리까지 내다보게 되지만 연산량이 급격히 증가하는 경우가 많아 최적화를 하지 않는다면 3~4 depth까지 하는 것이 보통이다. 이번 게임의 경우는 번갈아 가며 수를 놓는 방식이 아니라 같은 판으로 시작하여 동시에 실시간 진행을 하는 방식이라서 의미가 조금 다르기는 하다.[/footnote]를 구성하여 평가함수를 통해 최적의 수를 찾아내는 방식으로 만들기로 했다. 그러나 3년째 ESCamp에 참가한다는 형의 조언에 따라 우선 형은 없앨 수 있는 조합을 찾아내는 것을 먼저 완성하기로 했고, 나는 그것과 동시에 같은 기능을 짜고 시간이 허락하면 게임트리를 짜기로 하였다. (사실 하다보니 그렇게 되었다 -_-) 즉, 단시간 내에 구현해야 하므로 너무 완벽하게 짜려고 한다면 아주 실력이 좋지 않은 이상 돌려보지도 못할 가능성이 높다는 것이었다. (실제로 작년 ESCamp에서 우승했던 민종이형의 경우 multithreading을 시도하다가 꼬이는 바람에 기권하고 말았다. -_-)

오전 11시쯤 게임 규칙 설멍을 듣고 코딩을 시작했고, deadline은 오후 8시였다. 문제는, 일단 나와 형 모두 C++에 익숙하지 않았다는 것과, MYTRACE라는 매크로를 이용하여 별도의 디버거 프로그램으로 디버깅 메시지를 출력하는 방법을 제대로 몰라 한참 동안 간단한 버그로 삽질했다는 것, 그리고 내가 평소에 행렬 기반의 알고리즘을 짤 때 사용하는 좌표계(배열의 1차원 index가 x좌표이고 2차원 index가 y좌표인...)와 프레임웍에서 사용된 좌표계가 반대라서 헷갈렸던 것, 그리고 일정 시간 간격으로 호출되는 Action 메소드를 통해 코딩해야 하면서도 모든 오브젝트가 매 호출시마다 새로 생성되기 때문에 별도의 static value들이 보관되지 않는다는 프레임웍 특성을 몰라 삽질했던 것 등으로 초반에 시간을 너무 많이 보냈다는 것이다. Simple AI와 비슷한 수준을 구현하고 나니 오후 5시가 넘었다. 그러나 종혁이 형은 boundary 검사를 잘못해서 발생한 불규칙적인 메모리 오류로 또 한참 삽질하고, 나는 게임트리로 변환하기 위해 코드를 리팩토링하다가 꼬여서 바꾼 블록을 다시 제자리로 되바꾸는 무한 루프에 빠져서 결국 헤어나오지 못했다. (다른 팀에서도 그런 무한 루프가 많이 있었는데 일부는 어찌저찌해서 랜덤하게 탈출하도록 만들기도 했다)

그래도 대진운(?)이 있었는지 부전승, 종혁이 형의 AI 1승으로 8강까지 갔으나 결승진출팀을 만나 5초만에 방해블록이 꽉 차 개관광 당하는 것으로 끝났다. -_-; (이 게임에서 하나의 조합을 없애고 나서 생기는 판의 변경 후 없어질 수 있는 조합이 있을 경우 연쇄가 일어나는데, 이 연쇄 횟수에 따라 점수는 제곱으로 증가하고 상대방 판에 놓아지는 방해블록 개수는 점수에 비례해 증가한다. 따라서 연쇄를 얼마나 빨리 만들어내는지가 관건인데, 우리팀이 1연쇄 정도 만들 동안 그 팀은 6연쇄 만들어서 터뜨림으로써 한 방에.....orz)

User inserted image

결승전 장면. 두 팀의 실력은 비슷하지만 한 번 저렇게 당하고 나면 속수무책이다. -_-

어쨌든 AI 대회는 그렇게 끝났다. 몇 가지 아쉬웠던 점이라면, 코딩스킬이 높은 사람들(특히 ACM ICPC 쪽에서 두각을 보인 분들)와 다른 사람들의 격차가 너무 커서 대부분의 팀이 1사람이 코딩하고 나머지는 구경하거나 전략 보조 정도만 하게 된다는 것, 그리고 잘못된 http 요청을 받으면 out of memory를 뱉고 뻗어버리는 프레임웍의 패킷 검사 버그로 인한 대회 진행 차질이다. (그나마 토끼군이 netstat을 해보라고 해서 겨우 찾아내었다) 프레임웍 코드 자체가 그다지 깔끔하지 않았던 데다가 다른 사람들이 짠 코드를 조금씩 고쳐서 쓴 거라 그런 버그 발생 소지가 더 높았다. (차라리 프레임웍을 새로 만들고 싶었지만 그 또한 삽질이라... -_-)

이 대회를 통해 다른 학교 사람들도 좀 사귀고, 색다른 프로그래밍 경험도 쌓을 수 있어서 좋았다. 역시 경시대회 준비할 때처럼 단시간 내에 주어진 문제를 푸는 훈련이 어느 정도 되어야 이런 인공지능 대회에서 성과를 거둘 수 있는 것 같다. (PS 기말 프로젝트는 시간이 충분히 주어졌기 때문에 토너먼트 2등을 기록할 수 있었다)

Posted
Filed under 컴퓨터

내가 컴퓨터를 산 작년 10월 말의 VGA 메인스트림은 GeForce 7600급이었다. 나는 우선 Windows Vista와 Supreme Commander 등이 어떻게 보급되는지 등을 보고 VGA 카드를 결정할 생각이었기 때문에 그보다 더 좋은 성능의 VGA를 살 수 있었음에도 우선 저걸로 1년 정도 버텨보자라는 생각에 고른 것이었다.

당시에는 몰랐는데, 내가 산 게 알고보니 '변종'이라서, 레퍼런스 제품에 비해 살짝 오버클럭이 되어 있는 거였다. 처음엔 몰랐으나 원격데스크탑 등 오랫동안 컴퓨터를 켜두는 일이 많아지자 2D 화면에서 깨짐이 발생하기 시작했다. 오히려 3D 게임 등에서는 별 문제가 없었는데 컴퓨터를 켠지 약 40시간이 넘어가면 저런 증세가 나타났던 것이다.

마침 2주 전에 룸메가 서울 갈 일이 있다고 해서 용산에 있는 VGA 제조사 A/S 센터에 들러 새 것으로 교환을 받았지만, 이전보다 약간 더 증세가 늦게 시작될 뿐 같은 현상이 계속 나타나고 있다.

원래 '버티기' 용으로 산 VGA라서 좀 어중간한 성능—내가 모니터를 24인치를 쓰기 때문에 풀해상도 쓰기에 좀 무리가 있다—으로 산 것이고, 게다가 GeForce 8600/8300 등 DirectX10을 지원하는 차기 메인스트림급 VGA가 3월 정도에 나온다고 발표까지 된 상황이라 바꾸기도 좀 애매하다. (아마도 초기제품보다는 좀더 상황을 보고 올 여름이나 가을쯤 VGA만 업그레이드를 하게 되지 않을까 싶다)

하아, BIOS 업데이트나 VGA 드라이버 업데이트 등이 모두 소용 없었고, 다나와의 상품평을 보면 이 제품에서 특히 불량에 관한 댓글들이 많은 걸 보니 아무래도 계속 문제가 나타날 것 같다. 돈 들여서라도 확 바꿔버릴까...-_-

Posted
Filed under 컴퓨터
Tattertools 1.1.1 Vivace

간만에 뽀샵질;

태터툴즈의 새로운 버전이 공개되었다. 아직 태터툴즈 공식 홈페이지에는 올라오지 않았지만 TNF 포럼에는 먼저 공개되었다. 이번에는 최적화를 거치지 않은 원본 소스 코드와 TNF 검증을 거친 인기 플러그인들이 포함된 Expansion 판도 함께 배포된다. 얼마 전 있었던 rel-tag 사건의 결과로 추가된 rel-tag 지원, 시간 정보가 없는 RSS 피드를 읽지 못하던 문제 수정 등 내가 기여한 부분도 들어가 있고, 예전에 만들었던 '새 창으로 열기' 링크 추가 플러그인은 Expansion pack에 새로 포함되었다.

사실 1.0.6에서 1.1로 넘어올 때는 관리자 화면이 다 뒤집어지는 대변화에도 불구하고 무려 XHTML Specification 담당이라고 적혀있는 내가 거의 한 일이 없어서 해당 작업을 담당하신 graphittie님께 다소 죄송한 마음이 있었는데, 그래도 이번에는 코어 개선에 참여하고 스스로 태터툴즈의 소스코드를 어느 정도 따라갈 수 있게 된 것이 기쁘다.

벌써 TNF가 설립된 것도 1년이 다 되어간다. 수 차례의 오픈하우스 및 내부 오프모임을 통해 이 강력한 참여자들로 이루어진 개발 그룹이 발전하는 과정을 지켜봤고, 나 스스로도 참여자가 되었다는 것이 뿌듯하다. 웹의 생태계를 유지하고 사용자에게 개방형 플랫폼을 제공하자는 목적을 잊지 않고 앞으로도 더 발전해나갈 수 있었으면 좋겠다.

Posted
Filed under 컴퓨터

...뭐 다 그런 법이다.

PS 인공지능 프로젝트를 할 때 멀티스레드를 썼었는데, 요즘 관심을 갖고 있는 게임인 Supreme Commander도 그렇고 하나의 CPU에 물리적으로 두 개의 연산 코어가 내장된 멀티코어 cpu를 지원하는 프로그램들이 점점 늘어나는 추세이다. 그래서, 단순히 스레드를 생성하는 것 외에, 정말로 코어별로 할당하는 API 같은 게 있나 궁금해졌다. -_-;

그래서 찾아낸 것은 SetThreadIdealProcessor 함수다. 아직 Linux에서는 어떻게 하는지 모르겠으나(OpenMP라는 것이 있는 것 같긴 한데.. 사실 서버 관련해서 리눅스 쪽에서 써먹을 일이 더 많을 것 같다), 윈도우 프로그래밍이라면 멀티코어를 지원하는 NT 계열에서는 다 써먹을 수 있으니 꽤 편리할 것 같다.

멀티코어 시스템에서 돌아가는 윈도우즈에서는 작업관리자에서 프로세스를 오른쪽 클릭하면 '선호도 설정'이라는 메뉴가 생긴다. 이것은 해당 프로세스가 어떤 코어에서 돌게 할 것인지 선택하는 것인데, 역시 API로도 존재한다. 자신이 어느 코어에서 돌도록 할당되었는지 알아내거나 설정하는 GetProcessAffinityMask 함수가 있었다. (Set 함수도 있음)

왜 .NET Framework에 포함이 안 되어 있는지는 모르겠으나(적어도 내가 찾아본 바로는 관련 클래스나 메소드/속성 등이 없었다) 앞으로 멀티스레드 프로그램을 짤 때 써먹으면 좋을 것 같다. 언제 한 번 테스트 프로그램이나 만들어봐야지;

Posted
Filed under 컴퓨터

하아... 드디어 대장정을 끝냈다. 전산과 2학년 전공 중에 SP(System Programming)와 함께 양대산맥을 이루는 가장 어려운 과목인 Problem Solving의 인공지능 토너먼트가 오늘 있었다. (게임 규칙은 이곳 참고) 준수, 상돈, 나로 구성된 우리팀은 이번 카포전에서 인공지능 대회 우승을 이끌었던 멤버들로 구성된 본좌팀(...)을 결승전에서 만나 아쉽게 1점 차이로 져서 2등을 기록했다.

지난 주 주말부터 조교님이 잘못(-_-) 짜신 Java Client 디버깅하느라 이틀 삽질하다 포기하고—조교님이 잘못 짜신 걸 고쳤음에도 결국 Java 소켓의 문제인 것 같다고 결론이 났지만—결국 C#으로 처음부터 아키텍처 다시 잡아서 시작, 지난 주 내내 알고리즘 설계하고 이번 주말 내내 알고리즘 구현 및 뒤집어엎기(;;)를 반복했다. 처음에는 현재 게임판의 상태만 보고 적당히 내가 다음 수를 확보할 수 있는 장소를 찾는 알고리즘을 쓰다가, 그걸 좀더 발전시켜서 내가 수를 확보하고 상대방 수를 막는 장소를, 그러다가 내가 어떤 수를 놓았을 때 상대방이 어떤 수를 놓을지 예측하고 내가 그 다음에 놓을 수가 어떻게 되며 그때의 score는 얼마가 되는지 계산하고 그 중 max값을 주는 수를 선택하는 것 등을 순차적으로 구현했다.

특히 마지막 방법은 Game Tree를 구성하는 것으로, 현재 게임판 상태로부터 내가 놓는 수에 따라 어떻게 게임이 진행될지를 미리 시뮬레이션해보는 것이라고 볼 수 있는데, recursive하게 돌리다보니 생각보다 처리 시간이 매우 오래 걸렸다. (게임 규칙으로 한 수를 놓는 데 10초 이내여야 한다는 제한이 있었음) 멀티쓰레드로 구성하여 인공지능 처리 시간이 9.5초를 넘을 경우 강제로 종료시키고 그때까지 구해진 최선의 수를 선택하도록 제한한 후 알고리즘에서 정확도는 높여주지만 시간을 많이 잡아먹는 부분을 조금 잘라냄으로써 그럭저럭 빠른 실행 속도를 구현할 수 있었다.

일단 예선 리그전에서 seed 배정 받을 때 그 본좌팀하고 맞붙지 않게 되었던 것이 운이 좋았고, 우리가 상대했던 팀들을 생각보다 쉽게(알고리즘이 중간부터 계속 꼬여서 많은 부분을 포기했기 때문에 솔직히 1승이나 하자고 했었으니까..) 이겼던 것이 도움이 되었다.

User inserted image

우리팀 클라이언트 화면 (Manual AI)

사실, 알고리즘에 그다지 자신이 없었기 때문에, "멋진 UI 점수" (프로젝트 홈페이지 참조)로 가산점을 받으려고 했으나, 그 본좌팀(...)에서 단 하루만에 DirectX를 이용한 3D 화면을 구현해버리는 바람에(.....) 그것도 2등으로 밀린 게 아쉬웠다. 하지만 UI 자체의 완성도나 편리함은 우리팀이 가장 좋았다고 말할 수 있겠다. 특히 AI 종류를 선택할 수 있도록 설계하여, Manual AI를 선택할 경우 블록 선택창이나 방해블록 배치, 다음 수 선택하는 것을 직관적으로 구현(마우스로 위치 잡고 클릭 가능하게 구성)했기 때문에 알고리즘 개발 과정에서 테스트할 때 큰 도움이 되었다. (다른 팀에게 이 Manual AI 부분만 사용할 수 있도록 한 버전을 공유하기도 했다) 또한 멀티쓰레드로 만들었기 때문에 GUI가 돌아가는 Main Thread, 그리고 서버 접속과 게임 진행을 관리하는 Game Thread, 거기서 파생되어 인공지능이 작동하는 AI Thread로 나누어 프로그램 안정성과 GUI 응답성을 높일 수 있었다.

어쨌든 그동안 쌓았던 각종 코딩 스킬을 총동원해본 프로젝트였고(특히 위의 그림에 나오는 것과 같은 마우스 선택 화면은 중학교 때 한창 맵에디터 만들어본답시고 삽질을 꽤 해봤던 것인지라..), 아쉽게 명예의 전당까지는 못 올라갔지만 그래도 노력한만큼 좋은 성적을 거둔 결과를 얻었다. 상당히 빡센 과목이었지만 그만큼 남는 것도 많고 알고리즘 생각하는 방법을 많이 배울 수 있었다. (그나마 ACM에서 삽질하고 숙제에서 삽질했던 것들을 기말 프로젝트로 메꿀 수 있게 되어서 다행이다 -_-)

덧. 기쁜 소식 하나 더. 영어2 Writing class에서 기말 에세이 시험 본 게 (완전 개발로 썼음에도 불구하고) 만점(..)이 나왔다. 그나저나 Reading class는 완전 본문 암기 시험일텐데...

덧2. 역시 콘로 CPU를 쓴 새 데탑이 위력을 발휘했다. 클라이언트 제작 과정에서 쓰레드 처리를 잘못하여 무한루프에 걸린 AI가 CPU를 100% 점유하는 경우가 종종 있었는데, 내 컴퓨터는 듀얼코어였기 때문에 전혀 먹통이 되지 않았지만 다른 팀원들 컴퓨터는 원격접속 상태에서 룸메한테 전화해 재부팅시켜달라고 여러번 부탁해야 했었다.

Posted
Filed under 컴퓨터
오늘 저녁은 시간도 좀 남고 해서 이제 지를 일만 남은 새 컴퓨터에 대해 여러 사람들의 의견을 수집해봤다. 그 의견들을 종합해본 결과 크게 두 가지 방향이 있는데, 호환성이나 새로 나올 기술에 대비하여 본체를 하이엔드로 가는 것과, 어차피 CPU와 메인보드의 수명은 함께 하는 것이라 보고 차라리 모니터를 하이엔드로 가는 것이다. 전자라면 인텔 i975X 칩셋으로 켄츠필드까지 대응하는 것이 되겠고, 후자라면 22인치 이상 되는 고성능 대형 LCD를 쓰는 것이 되겠다. 전반적으로 생각해보고 내린 결론은, 전자제품―특히 컴퓨터―을 살 때는 미래지향적으로 생각하면 안 되겠다는 것이다. 주요 부품별로 생각을 정리해봤다.

메인보드
인텔 계열은 CPU가 새로 나올 때마다 바뀌는 MCH 칩셋으로 인해 메인보드로 호환성을 유지하는 것 자체가 거의 불가능하다. (그나마 i975X가 쿼드코어까지 지원한다고는 하나, 분명히 쿼드코어에 더 잘 들어맞는 칩셋이 나올 것이기 때문이다) 따라서 무난한 P965 칩셋에 안정성 등이 비교적 보장되어 있는 ASUS 제품 중 저렴한 편에 드는 것을 선택.

CPU
숱하게 말했다시피 이건 인텔 콘로 E6600으로 확정. 본격적인 4MB L2 Cache를 가진 것 중에 가장 저렴(?)하다.;; 솔직히 그 이상의 클럭은 내겐 필요 없을 듯. (사실 오버가 잘 되기도 하고.)

RAM
PC6400 800MHz급의 호환성 문제가 거의 해결된 상태이기 때문에 이를 지원하는 모델로 가기로 했다. 요즘 많이 알려지고 있고 평도 좋은 편이 디지웍스 제품 선택. (삼성은 PC6400으로 1G 모델을 내놓지 않고 있다) 용량은 넉넉하게 2G다.

VGA
이 부분은 내년~내후년 쯤 지각변동(DX10의 출시와 통합 쉐이더 모델 도입)이 예고되고 있는데다 nVidia와 ATI의 개발 방향이 완전히 달라 선뜻 고를 수 없는 상태다. 따라서 현재 상황에서 가장 많이 사용되고 대형 모니터를 가장 무난하게 지원하는 것을 골랐다. (그래픽카드를 1년 반 정도 쓴다는 가정이다)

HDD
하드디스크의 경우 2개를 달아 쓸 수 있는 RAID0까지 생각했었으나, 데이터 안정성 문제도 있고 해서 내년 중반 이후 본격 보급될 플래시 메모리 기반의 SSD(Solid-State Disk)를 기다렸다가 데이터 저장용으로 쓰는 것이 더 나으리라는 판단 하에 용량이 좀 큰 것을 골랐다. 그 전에는 이미 가지고 있는 USB 메모리 등으로 Vista의 Ready-boost 기능을 활용할 수 있을 것이다.

LCD 모니터
모니터의 경우는 본체에 비해서 상대적으로 기술 발전에 둔감하다. 물론 가격 자체는 지속적으로 떨어지겠지만, 메인보드/CPU나 그래픽카드처럼 갑자기 뭔가 뒤집는 기술이 나오기는 쉽지 않으며, 나온다고 해도 높은 가격으로 인해 일반화되기까지 많은 시간이 걸릴 것이기 때문이다. (LCD 모니터가 이만큼 일반화되는 데에 걸린 시간만 해도 지금까지 3년은 족히 될 것이다.) 굳이 짚어보자면 LED를 백라이트로 사용하는 LCD의 등장을 들 수 있겠으나 현재의 LCD도 일반 용도로 쓰기엔 손색이 없기 때문에 별다른 문제가 되진 않을 것 같다.

그래서 현재 최종적으로 마음에 두고 있는 것이 다음의 견적이다. 처음 예상했던 예산보다30만원 가량 더 나오긴 했지만(-_-), 모니터 쪽에 더 투자를 하는 것이 나을 것 같다.
예상 견적표

danawa에서 작성한 예상 견적

본체는 하이엔드급을 따르나 아주 비싸지는 않은 쪽을 택하고, 모니터에 과감히 투자(....)를 하는 것이다. 아까 형에게 보냈던 견적은 이와 다르며 초기에 작성한 것이다.

몇 가지 바라는 게 있다면 제발 콘로 CPU 값 좀 내렸으면 좋겠다는 것과(11월에 쿼드코어까지 나온다는데... 게다가 난 오버를 안 할 것이기에...), RAM 가격이 더 오르지 않았으면 한다는 것이다. PC6400 1G RAM들이 얼마 전에 최저가 9만원선을 치고 계속 가격 상승 중이라고 한다. ㅠㅠ

어쨌든 이 정도 선에서 지름에 대한 고민을 마무리하고자 한다. 이제 남은 일은 지르는 일. 형이 잘 아는, 용산에 계신 분한테 부탁을 드리게 될지, 아니면 따로 구입하게 될지는 모르겠으나 일단 사게 되면 잘 써야겠다. :)

ps. 비싸지만 DELL 모니터를 선택한 이유 중 하나는 3년 A/S라는 것. 일반 중소기업 제품들은 1년인 경우가 대부분이다.

ps2. 약간의 사양 변경 : 케이스는 기왕 좋은 거 쓸 바에 GMC 풍II로 가기로 했고, 마우스는 위에 고른 제품이 포인터를 왼쪽으로 빠르게 이동할 때 멈추는 현상(-_-)이 발생한다는 보고가 많아 예전에 봐뒀던 한 단계 상위 제품(Razer Krait 디지탈파이오스, ₩39,000)으로 골랐다.;
Posted
Filed under 컴퓨터
이미 노트북으로만 2년이 넘었다. 고등학교 1학년 겨울에 노트북을 샀고, 고등학교 2학년, 대학교 1학년, 대학교 2학년해서 만 3년이 다 되어 간다. 기존에 쓰던 데스크탑은 성능이 떨어져 조금씩만 쓰다가 결국 HDD 등의 업그레이드를 통해 서버로 바꿨다가 얼마 전 메인보드님이 사망(.....)하시는 바람에...-_-;

노트북을 데탑 대용으로 쓰다보니 여기저기 다니면서 내 PC 환경을 그대로 쓸 수 있다는 것은 상당한 매력이다. 하지만 최근에는 네트워크 발달과 원격데스크탑 등으로 굳이 작업 환경을 다 가지고 다닐 필요가 없어졌을 뿐더러, 노트북을 쓰려면 정말 휴대하기 좋은 소형으로 쓰는 것이 좋다는 것이 지금의 내 생각이다. 어차피 지금 노트북이 살 때부터 데탑 대용을 생각한 거라 당시로서는 거의 최상급에 가까운 사양이었고, 따라서 무게(-_-)도 2.4kg으로 휴대용으로 쓰기에는 조금 부담이 되는 수준이다.

무엇보다 노트북을 쓰면서 안 좋았던 건 자세가 나빠진다는 것. 때때로 '모니터로 빨려들어가지 마라'라는 소리를 들은 적도 있다.; 15.1"에 1400x1050 해상도를 쓰니까 글자가 작은 것도 한 몫 한다. 또한 본체에서 발생하는 열이 몸에 그대로 전달된다는 것도 문제고, 그만큼 전자파 노출도 심한 것 같다. (개인적인 느낌이다) 이런저런 이유로 노트북은 최대한 가볍게 쓰는 것이 좋은데, 데탑 대용인만큼 별의별 것들을 다 깔아서 한창 작업 중일 때는 프로그램을 10여 개 이상 띄우기도 하고 백그라운드로 돌아가는 것도 많으니 노트북으로서는 확실히 무거운 작업을 돌리기가 버겁다. (나름 놋북 업그레이드를 좀 해줘서 RAM 1.25GB에 HDD 80GB/5400rpm이긴 하지만 발열이 더 심해졌다는 문제가 있다)

그래서 올 연말 쯤 듀얼코어 데스크탑을 하나 구성하려고 생각 중이다. 이미 콘로의 성능은 꽤나 좋다고 입증이 되어가는 것 같고, 어쨌든 기본적으로 노트북에 비해서 VMWare(-_-) 등의 무거운 작업을 돌리기엔 수월할 것이기 때문이다. 원체 멀티태스킹을 많이 돌리는 나로선 듀얼코어가 당연히 매력적일 수밖에. (문제는 사고픈 E6600 값이 아직 너무 비싸다는 것..)

그와 함께, LCD 모니터 또한 새로 장만하여야 할 것이다. 옛날 데스크탑에 있던 모니터는 17인치 CRT였고, 스팍스 IDC 서버관리용으로 기증(...)해서 잘 쓰고 있다. (고해상도를 쓰면 약간의 화면 떨림 및 일그러짐이 나타나는데 콘솔 화면 보는 덴 아무런 문제가 없다. -_-) 지금 가장 유력한 후보로 생각하고 있는 건 BTC 정보통신에서 나온 Zeus2000 시리즈. 20.1" 와이드에 pivot을 지원하고 해상도는 1680x1050이다. 15.1"에 1400x1050을 쓰던 걸 생각하면 픽셀 사이즈가 상당히 커짐을 알 수 있는데, 이것은 모니터를 좀더 멀리서 볼 수 있게 하는 데 도움이 될 것이다. Pivot 기능도 지원되므로 화면을 돌려서 상하로 길게 쓴다면 그야말로 최적의 코딩 환경이 될 것 같다.; (Pivot이 되는 와이드 모니터를 찾기가 쉽지 않았다. 가격이 100만원 대 정도 되는 24" Dell 모니터 같이 초하이엔드급으로 가지 않는 이상...) 사실 여유만 된다면 같은 모니터를 두 개 질러서(.....) 듀얼모니터를 써보고 싶은 생각도 있는데(한쪽은 reference, 한쪽은 coding..), 일단은 하나만 사서 써보고 나중에 더 싸고 더 좋은 모델이 나오면 그때가서 고려해볼 참이다. 이미 노트북 LCD의 수십ms 정도 되는 응답속도에도 적응을 해버린 터라 12ms 정도의 응답속도 자체는 그다지 중요하지 않을 것 같다.

그와 함께 차후 듀얼모니터에 대응하기 위해서는 그래픽 카드 또한 성능이 꽤 되는 걸 써야 하는데, 바로 여기가 문제.;; 너무 비싸다. orz 고해상도 듀얼모니터 제대로 쓰려면 최소 20만원 이상 하는 그래픽카드를 써야 한다는 결론이 나오는 것이다.; (싼 걸로도 쓸 수는 있는데 최대 해상도를 못 쓴다거나 하는 문제가 발생하는 경우가 왕왕 있는 듯..) RAM은 역시 멀티태스킹이 많은 만큼 2GB 정도는 있어야 할 것 같고, 곧 나올 Windows Vista도 원활히 돌릴 수 있을 것으로 생각된다. (사실 Vista의 그 AeroGlass라는 UI를 쓰려면 그것만 해도 그래픽카드를 엄청 좋은 걸 달아야 하니..-_- OS를 최대 사양으로 돌리기 위해서 3D 가속이 필요한 시대가 드디어 온 것이다.)

사실 컴퓨터는 죽기 전에 사는 게 가장 잘 사는 것이라는 말이 있을 정도로, 시간이 지날수록 더 좋은 하드웨어들이 더 싼 가격에 나오는 것이 사실이다. (작년 초만 해도 17인치 LCD가 30만원 대였다. 지금은 그 돈으로 20인치 와이드를 살 수 있다. 내년이 된다면? -_-) 하지만 어쩌랴. 필요한 건 또 사야겠지.;;

지금 생각하고 있는 건 일단 모니터를 먼저 사서 노트북에 연결해 듀얼모니터를 쓰고, 연말에 CPU 값이 좀 내리면 그때 데스크탑을 구성한다는 것이다. inureyes님의 경우는 남자답게(-_-) 24인치를 지르라고는 하시는데, 그건 기숙사에 놓을 자리가 있을지부터가 걱정.; 노트북 화면을 안 보고 짱박은 다음 모니터만 쓴다면 모를까..; 기숙사 이사할 때도 꽤나 큰 장애물이 될 것이다. (동방에 갖다놓고 쓰는 게 좋겠으나 신축기숙사에 있는 동안은 동방살이하기가 힘드니..) 사실 대장금 한 학기 받는 액수 중 1/3만 털어도 원하는 만큼(?!) 지를 수는 있겠으나 그 돈은 최대한 아껴두기로 하였으니 일단 패스다.

그렇게 구성하고 나면 지금 쓰는 노트북은 일단 포맷한 후 최대한 가볍게 돌릴 생각이다. 나중에 학사지역으로 기숙사 옮기게 되면 동방에 데스크탑 놓고 기숙사에서는 노트북으로 원격접속해서 쓴다거나 할 수도 있겠고. 이 노트북의 수명이 다하면(아마도 몇 년 후가 되지 않을런지.. 지금도 상태가 아주 좋다) 그 다음에는 맥북을 쓸 생각이다. 아직까지는 게임도 중요한 고려 대상이 되는지라 데스크탑까지 Mac으로 이전하고 싶지는 않다. Vista를 본격적으로 쓰게 된다면 그것 또한 괜찮을 것이기도 하다.

하아, 어쨌든 주저리주저리 생각은 해봤는데 당장 고려할 것으로는 하이엔드급 데스크탑 하나와 중형급 LCD 하나라는 결론. 확실히 옛날에 비하면 훨씬 좋은 성능의 것들을 훨씬 싼 가격에 살 수 있게 되었다. 전에 어느 블로그에서 봤던 것처럼, 확실히 몸과 직접 상호작용하는 것들(모니터, 키보드, 마우스 등..)은 좀 돈을 들여서라도 좋을 걸 쓰는 게 낫겠다는 생각도 든다. 한편으로는 괜히 눈만 높아진 것 같기도... -.-;;

ps. 내가 이런 고민을 하는 것을 본 룸메가 덩달아 지름신이 발동하여(...) LCD TV를 지르겠다는 둥 하다가 다시 잠잠해졌다.;;
Posted
Filed under 컴퓨터
대학생 프로그래밍 경시대회라고 불리는 ACM ICPC에 처음으로 출전해봤다. 인터넷 예선이 오늘이었는데, 총 8문제 중 4문제는 쉽고 4문제는 어려웠다. (나중에 결과를 보니 3~4문제를 푼 팀이 거의 대부분이고 5문제 이상 푼 팀은 10팀도 안 되었다. 전체 참가 팀 수는 200팀 정도.)

모르시는 분들을 위해 :

ACM ICPC에 대하여


어제 예비소집 때 미리 개발환경 세팅을 했으나, 윈도우 사용자 계정 차이로 인해(그때는 관리자 암호를 알고 있는 사람이 있어서 관리자 계정으로 했으나 실제 대회 때는 일반 사용자 계정으로 했다) Java runtime의 PATH 설정이 꼬이기 시작하더니 Eclips에서 컴파일 후 실행이 안 되는 사태가 발생하여 (다행히) 미리 세팅해둔 cygwin을 이용해 대체 실행을 하는 등 초반에 삽질을 좀 해주었다.; 덕분에 갑자기 긴장해버린 탓인지 엉뚱한 실수를 많이 해서―디버그용 메시지 출력하는 코드를 submit해서 wrong answer를 받는다든가―시간을 많이 오버했고, D번 문제를 풀다가 문제를 잘못 생각하는 바람에 답은 나오지만 시간복잡도가 큰 알고리즘을 내버려서 결국 time limit exceed 받고 3번까지밖에 못 풀었다.

4번까지 제대로 풀었다면 아마도 전국 팀순위 51등 정도 하지 않았을까 싶다. 그래도 갑자기(-_-) 나가게 된 것에 비하면 괜찮은 결과였고, 내년에 다시 나간다고 했을 때 어떤 것들을 중점적으로 준비하면 될 지 알 수 있었다. (다음 번엔 꼭 SP Spirit으로 팀 이름을 정할 것이다. -_-) 일단 이번 학기 Problem Solving과 다음 학기 Algorithm 과목을 잘 들어두고, 여름학기 때 약간의 연습을 해준다면 인터넷 예선까지는 어떻게 통과가 가능하지 않을까 싶다. (그럼에도 불구하고, 워낙 KAIST 자체가 국제정보올림피아드 출신 등 상당한 실력자들이 많아서 쉽지는 않을 듯하다. 이번에 같이 출전한 팀 중에 한 팀은 인터넷 예선 1등.. 알고보니 3명 다 IOI 출신. -_-;;)

그러나 한 가지 가능성을 느낀 건, 비록 중고등학교 때부터 특출한 실력을 발휘했던 사람들일지라도, 내가 체계적으로 배우고 노력함으로써 어느 정도는 따라갈 수 있다는 점이다. 중고등학교 때라면 꿈도 못 꿨을 것 같은 알고리즘 설계와 그에 관한 geek스러운(-_-) 대화들이 이제는 꽤 자연스럽게 생각되는 걸 보면 말이다. 잘 했든 못 했든 이런 대회에 참여하는 것은 그 자체로도 흥분을 가져다주기 때문에 한 번쯤 경험해볼 만한 일이다. 이번에 유독 KAIST 참가자들이 적었는데 내년엔 좀더 많은 팀들이 나와주었으면 좋겠다. (그래야 다시 도전했을 때 예선 통과할 확률도 높아질 것이고. :)


Posted
Filed under 컴퓨터
결국 유럽 여행 가 있던 동안 접속이 중단됐던 날뷁서버(...)는 메인보드가 뻑난 것으로 판명되었다. 더이상 동아리방에 짱박은 조립서버에 의존하면서 IP 충돌, 순간 정전과 같은 문제로 정신적 스트레스를 받기는 싫다는 생각과, MetaBBS와 같이 공식적인 프로젝트 활동을 하려면 좀더 안정적인 환경이 필요하겠다는 생각이 들어 결국 IDC에 서버를 입주시키는 서버호스팅을 신청해버렸다. -_-; (그리고 초기 세팅 비용으로 들어가는 금액이나 고장난 서버 고치는 금액이나 피차일반이라는 것도 이유가 되었다)

돈이 꽤 들지만, 토끼군과 serialx군과 공동 운영을 하여 3명이서 나눠서 부담하기로 했다. 2년 동안 쓰면 서버 자체의 소유권이 나한테 양도되는 방식이다. (그때는 상면비와 회선비만 내면 된다) 처음엔 여러 사람이 추천해 준 FirstDedicated로 하려다가, 100dedi(현재는 스마일서브로 이름을 바꿈)가 회선 과금 정책이 마음에 들어서 그쪽으로 바꿨다. 보통 서버호스팅을 하면 100M Shared Line에 초당 3MBit 제한을 거는 방식인데, 100dedi는 무조건 100M/1G Dedicated Line을 꽂아주고 전체 트래픽 양으로 과금을 하는 방식이다. (기본 한달에 600GB, 1GB 추가될 때마다 150원 부과) 따라서 전체 트래픽 양으로 그만큼 쓸 일이 없는 나로서는 속도가 빠른 이쪽 편이 훨씬 유리했던 것이다.

어쨌든 오늘 그쪽 호스팅 담당자와 전화로 이야기를 해서 OS는 Ubuntu Dapper Drake 6.06 Server용 최신판으로 설치하기로 했고, 세팅 및 IP 발급, IDC 입주는 내일 오전 중으로 완료된다고 한다. Debian만 쓰던 내가 Ubuntu를 선택한 것은 일단 업데이트가 빠르게 이루어지고 있다는 점과 Debian과 거의 동일한 관리 방법을 쓸 수 있다는 점, 그리고 속도가 매우 향상되었다는 점 때문이다. 서버 사양도 내가 조립했던 것보다 훨씬 좋고, IDC에 입주하는 방식이니 특별히 루트 계정에서 실수만 하지 않는다면 상당히 안정적으로 운영할 수 있을 것이다.

그리고 서버가 입주하는 IDC가 분당에 있어서 만일의 사태가 발생하여 직접 들어가 작업하는 일이 생기더라도 집과 가깝다는 점이 중요한 이점이 된다. (호스팅 서비스로 바이오스부터 접근 가능한 원격 콘솔이 제공되기 때문에 사실 그럴 일은 별로 없을 것 같긴 하다)

일단 이 서버에는 MetaBBS 홈페이지와 개발 서버가 올라갈 예정이고 x-y.net의 내 웹호스팅 계정이 만료되면 내 홈페이지 전체도 이쪽으로 이전할 것이다. 또한 Total Annihilation 팬사이트를 위한 간단한 자료실 계정이 추가될 것 같고(트래픽을 고려해서 어느 정도로 쓰게 될지는 잘 모르겠다.), 토끼군과 serialx군의 개인 계정 및 기존에 내 서버를 이용하던 다른 사람들의 계정도 들어간다. 어차피 세 사람이 root 권한을 공유할 계획이긴 하나, 문제 발생의 소지를 줄이기 위해 quota 제한을 거는 것이 필요할 듯 싶다. (root 권한을 가진 사람들은 한 5G 정도를 할당하고 나머지 사람들은 인원수에 따라 1~2G를 주는 게 적절하지 않을까 싶다. 물론 나중에 하드디스크를 추가할 수도 있다.)

후아, 이제 내일은 다시 서버 세팅 삽질 신공을 발휘해줘야겠다; 그와 함께 Linux Kernel 세미나 준비도..;
Posted
Filed under 컴퓨터

주변 사람들은 내가 게임을 거의 하지 않는다고 알고 있지만, 실은 수 년째 이런 대작을 기다리는 중이다. 바로 Supreme Commander(이하 "SC")다. Total Annihilation(이하 "TA")의 후속작으로, 제작사인 Cavedog이 망한 이후 메인 개발자였던 Chris Taylor가 Gas-powered Games라는 회사를 따로 만들어 새로이 개발에 착수하였고, 2007년 그 모습을 드러낼 예정이다.

작년에도 preview 성격의 스크린샷들이 올라왔었는데, 이젠 실제로 "playable"한 상태인 것 같다. 동영상으로 데모만 되는 건가 했더니, 그게 실제 게임 화면이었고, 특히 Chris Taylor가 실제로 시연하는 영상을 보니 거의 눈물이 다 나올 지경이다.

화질은 다소 떨어지지만 게임의 특징은 모두 볼 수 있을 것이다. Big Bertha와 같은 성격의 초장거리포도 보이고, Krogoth와 거의 동급으로 보이는 거미 형태의 수퍼유닛도 등장한다. 전작의 단점이었던 1개의 유닛만 수송 가능했던 수송선도 여러 유닛들을 실을 수 있게 바뀌었고, shield라는 개념이 추가되었다. 이미 전작 TA에서도 nuke rain이라 불리는 전술이 있었지만 SC의 핵미사일은 실제 스케일의 핵미사일과 같은 수준이다. 화질이 좋지 않아서 잘 안 보이지만, 그래픽도 정말 뛰어나다. 바다를 확대하면 물이 찰랑거리는 것이 보일 정도고, 유닛들의 디테일도 TA하고는 비교조차 되지 않을 만큼 상세하다.

겉으로만 보이는 걸 제쳐놓고도, 정말 유닛 컨트롤에 전념할 수 있는 시원한 인터페이스(물론 데모용이라서 일부러 감추었을 수도 있다)와 무려 듀얼 모니터까지 지원하고, 미니맵이 필요 없을 정도의 빠른 zoom-in, zoom-out은 경탄을 자아내게 한다. (내 생각엔 미니맵 대신 듀얼모니터를 쓰라는 것일지도..?)

TA Korea Fansite에서 봤던 글처럼, 기존의 전략시뮬레이션이 자원과 물량 싸움, 그리고 상당히 정형화된 전술 패턴으로 이루어졌다면, SC는 전장 자체를 엄청나게 확장해버림으로써 패턴화가 어렵게 되었다. 초반 압박 같은 것이 사실상 불가능해졌고, 다양한 유닛들을 활용하여 어떤 경로로 보내고 배치하는가가 더욱 중요해지는 것이다. 자원은 얼핏 보기에 metal과 energy라는 형태가 유지될 것 같아 보인다. Chris Taylor 본인조차 정신적 계승을 받은 기존 TA와는 확실한 차별화를 선언했던 만큼 실제 전략적 요소가 얼마나 강조될 지 기대된다. (동영상에서 해전 부분을 설명하는 말을 들어보면, 경로를 지정할 때 무조건 유닛 속도에 따라 도착하는 게 아니라 다른 그룹과 동시에 도착하도록 한다든가 하는 세세한 설정도 가능한 것 같다)

어째 사양의 압박이 좀 있어보이긴 하지만, 내가 유일하게 좋아하는 게임이라 할 수 있는 TA의 후속작이니만큼 그렇게 투자할 만한 가치가 있으리라 본다.