아이폰 해커로 유명한 George Hotz군이 플레이스테이션 3 exploit을 공개한지도 어언 3개월이 흘렀다. 소니는 그들의 남은 자존심 PS3의 잠재적 해킹을 막기위하여 OtherOS를 완전히 봉쇄하는 3.21 펌웨어 업데이트를 강행했고, Hotz군은 소비자의 권익을 보호한다는 주장하에 7일자로 OtherOS를 작동하는 3.21 커펌을 선보였다.
블로그에 적어놓은 글을 인용해보면,
Note to the people who removed OtherOS, you are potentially turning 100000+ legit users into "hackers." There was a huge(20x) traffic spike to this blog after the announcement of 3.21. If I had ads on this site I guess I'd be thanking you.
사실 이말이 틀린 건 아닌것이, 나 마저도 해킹된걸 알아도 그다지 관심이 없다가 우리집의 플스에 들어있는 리눅스가 날라간다는 소식에 솔깃해서 서칭하다가 알게된 것이기 때문이다.
현재는 아직 비디오 샷만을 보여주고 있는것이, 기존 PSP 커펌에서처럼 PSN에 접속시에 버전체크에 문제가 있다고 한다. 아마 프록시등으로 우회하는 루틴을 넣고서 공개할 듯.
BLOG ARTICLE PlayStation 3 | 14 ARTICLE FOUND
- 2010.04.10 플레이스테이션3 3.21 해킹 :: OtherOS's working fine 1
- 2008.02.28 PS3 EYE를 이용한 해드트랙킹 데모 2
- 2008.02.27 PhyreEngine :: XNA에 대항하는 소니의 무료 크로스플렛폼 3D 엔진 3
- 2008.02.24 플레이스테이션 홈 HDK :: UGG를 향한 소니의 전략 1
- 2007.06.08 PS3 개발툴 유출!! 6
- 2007.04.20 플스3 리눅스 실시간 Ray-tracing 시연영상 by iRT(IBM Interactive Ray-tracer) 2
- 2007.04.16 플스3 클러스터링 제품 등장 5
- 2007.03.27 Folding@Home :: 플스3와 PC버전의 성능 비교 12
- 2006.12.16 플스3 컨트롤러 PC에서 구동가능
- 2006.12.07 Wii 컨트롤러(Wiimote) PC 구동기 (2부) 6
SCE's new free to use graphics engine
- Run time
- Art pipeline & tools
- 70+ samples and full documentation
Cross Platform (PS3 & PC), optimized for multi-core
- OpenGL & Direct3D
- Simple recompile for PS3
Works with standard tools
- Maya & Max exporters
- COLLADA compatible
- Bullet, Havok, Ageia Physics
Runs on PS3 debug systems
- PS3 development for less than $1200!
Ongoing development & support from SCE
재밋는 사실들을 요약해보면,
- XNA와 마찬가지로 무료를 원칙으로 하지만, 더 나아가 소스코드까지 완전 공개하겠다고 밝히고 있다. 다만 완전 공개 배포인지 여부는 밝혀지지 않았다. (소규모 개발사이상에게만 공개할지도)
- 따라서, PS3와 PC뿐만이 아니라 XBOX360용으로도 컴파일이 가능하다고 전해진다.
현재까지 PhyreEngine를 이용하여 개발된 게임들은 다음과 같다고 한다.
flOw |
GripShift |
DiRT |
왜 크로스플렛폼일까를 생각해볼만한데, 소니의 전략은 "일단 PS3로 만들어라, 그리고 XBOX360이나 PC로 배포하여 채산성을 높여라"라고 한다. 현실적으로 PS3전용게임을 만들어서 이득을 보기란 어렵다. 특히나 소규모 제작사의 경우 더더욱 꺼리게 되는데, 이러한 고민을 해소하기 위해 내부에서 사용하던 크로스플렛폼 엔진을 전격 공개한 것이 아닐까 생각된다.
개인적으로 PS3의 전략들은 SCE가 PS1, PS2때 겪었던 모든 경험을 총동원한다는 생각이 든다. PS1시절에 FROM같은 소규모 개발사들을 육성하여 큰 효과를 냈던 경험을 살려, HOME Development Kit (HDK)나 PhyreEngine로 PS3 컨텐츠를 다양하게 만들고 있으며, PS2시절에 DVD 조기도입으로 가졌던 장점들을 살려, 블루레이도입과 경쟁에 큰 투자를 하고 있다. (많은 전문가들이 워너 브러더스 영입에 큰 검은 돈이 오갔을 것이라고 예상한다.)
블루레이가 이기고, Home 플렛폼과 PhyreEngine가 공개되는 순간부터 차세대 콘솔전쟁의 2회전이 시작되고 있다.
Playstaion Blog GDC 관련글 바로가기
Joystiq 기사 바로가기
플레이스테이션 3의 구세주(?)로 불리는 차기 Social Network Platform인 HOME의 초기 모습은 다소 Flexible하지 않은 모습의 세컨드라이프로서 자유로운 커뮤니티와 개인공간을 제공하지만, 내부 컨텐츠는 미리 정해진 것들을 사용하는 방식이었다. 스크린샷에서는 함께 즐겁게 춤추는 노는 파티의 향연같지만, 그러한 Interactivity가 겉만 번지르르한 외향적 친밀감만을 제공한다는 것은 90년대말 VR의 환상이 깨지고 싸이질과 페이스북세대가 대세인 지금은 말해봐야 입만 아프다.
모두가 즐겁게 춤추는 이 장면의 내막에는 멀뚱거리며 패드로 춤추기를 명령하는 유저들이 있을 뿐이다. No social interaction! Yay를 외치는 단 한명의 유저(사실은 개발자)가 적막함을 배가시켜준다.
GDC 2008에서 발표한 HOME의 내용에 인상적인 부분이 있어 짚고 넘어가겠다. 이번 발표에서 인상적인 부분은 바로, UGG ( User Generated Game ), 즉 유저가 만든 게임을 공유하는 것이 가능하다는 말이다. 발표 내용을 보자.
HDK contents includes...
3D export pipeline tools
Scene & Object Editors
Latest developers build of Home included for both online & offline viewing and testing
Online build access with scene key validation
HDK는 Home Development Kit의 약자로 HOME 플렛폼 위에서 새로운 컨텐츠를 개발하기 위한 API와 Toolkit을 지칭하는 것이다. 또한 만들어진 패키지는 ActiveX나 Java처럼 일종의 인증서를 가지게 될 것 같다. 높은 자유도 때문에 유저에게 해를 주는 컨텐츠 제작이 가능해지므로...
HDK documents includes...
Maya & 3ds Max user guides with tutorials
Scene Editor user guide
Lua Arcade Games, Mini-games and Scripting Reference, tutorials & samples
Character Components Authoring and Furniture Creation with samples
Particle System Tool user guide with samples
All released in English, Japanese and Korean
HDK는 전문가가 아니라 일반유저가 활용할 수 있도록 최대한 다양한 도움말을 제공한다는 뜻이다. 한국어가 제3언어도 있다는 것이 특이하다. 한국의 게임제작에 대한 관심과 인디개발력을 높이 평가한 것이 아닐까.
Scene Editor
Use the Scene Editor to add:
Collisions and Graphics
Triggers (Areas & Events)
Game Elements (Seats, Picture Hooks, Furniture Points etc.)
Screens
Particle Effects
2D Arcade games
3D Mini-Games
Sound Objects (Ambient, Point Emitters, Sound Zones)
Scene Editor는 쉽게 말하면 워크레프트3나 스타크레프트에 포함된 맵에디터와 유사한 것이라고 보면 된다. 마야나 맥스를 통해 Import된 3D 오브젝트들을 배열하고, 게임에서 사용할 수 있도록 충돌조건을 설정하거나, 트리거(일종의 이벤트)를 설정할 수 있다. 또한, 게임내의 아이템(가구, 악세사리)을 위한 여러 조건들(어디에 앉을 수 있는지, 벽에 걸린다면 어떤 방향으로 걸리는지 등등)을 조절할 수 있다.
SceneEditor 스크린샷. 윈도우 기반에서 돌아가는 것을 알 수 있다. End-user를 위한 툴이라면 보다 상큼한 이름으로 지었으면 좋았을 것 같은데..
Lua Home API Overview
Functions & Events:
General
- OnInitialise, OnRender, OnLocalPlayerJoin
Network
- OutboundMessage, ReceivedMessage, NetPropertyBag
Camera Controls
- IsCameraActivated, SetCameraViewPortFOV
Other Library Interfaces:
OSD, Input Handlers, Local Player, Persons, SoundBanks
싸이의 미니홈피꾸미기와 차별되는 대표적인 부분으로, 자신만의 프로그램을 짤 수 있으며, 이 프로그램은 자신의 3D 오브젝트, 맵, 캐릭터를 통하여 다양한 컨텐츠를 제작할 수 있게 된다. 더우기 그 프로그램은 유저는 다른 유저들이 함께 즐길 수 있도록 연결해준다. (다만 게임에 참여하는 로비의 역할은 HOME플렛폼이 처리)
2D Arcade Games
Walk up to an arcade game console, choose to player and the screen apperars
Attached to screens
Scripted in Lua
Use Scene Editor to place the screen on top of your pre-created arcade game console
3D Mini-Games
Walk up to an area and choose to interact. You are moved within the mini-game but still can view those around you
Based in environment
Scripted in Lua
HDK를 통해서 만들 수 있는 컨텐츠는 무궁무진하다. 2D/3D 미니게임도 있지만, 자신의 얘기를 3D 영화로 보여줄 수도 있고, 교육용 컨텐츠 역시 작성이 가능하다. 일전에도 소개됐던 Sony의 UGG전략에서 짐작할 수 있었지만, Unreal에 이어 HOME과 Little Big Planet으로 이어지는 소니의 횡보가 과연 플레이스테이션3를 살릴 수 있을지 기대된다.
HOME에서 UGG를 즐기게 되는 시나리오. 개인홈으로 초대한 유저에게 부탁한다. "내 게임 좀 테스트 해줄래?"
LUA 스크립트를 실행하겠냐는 물음에 Yes하면, 바로 게임에 들어간다.
PS3Hax에 익명으로 포스팅된 스레드에는 개발툴 파일로 추정되는 스샷과 함께 디테일한 파일 목록이 첨부되어 있습니다.
유출됐다는 파일 리스트입니다.
PS3_CP_Update-150_004.zip Reference Tool CP update file
PS3_SDK_SampleData-160_008.zip Sample Data
PS3_Toolchain-Win_160_008.zip gcc/gdb Windows
PS3_Toolchain-Linux_160_008.zip gcc/gdb Linux
PS3_SDKDoc-160_01-Latest-x.zip Documents
PS3_Generator-115.zip Disc Image Generator
PS3_Eclipse_Plugins-150_004.zip Eclipse Plugins
PS3_PA_150_004.zip Performance Analyzer Tools
PS3_at3tool-2000.zip at3tool
PAMF_Tools-100.zip PAMF Tools
MultiStream_Tools-135.zip MultiStream Tools
SEdit-1200.zip SEdit
VAGconverter-1.0.zip VAG Converter
세부 파일 목록 다운로드
진위 여부를 가리기는 힘들지만 만일 사실일 경우라도 아직은 PS3용 홈브루의 탄생을 속단하긴 어렵습니다. 왜냐하면 개발툴은 다양한 개발사에 이미 배포되어 있고, 그들이 원한 경우 백업이 가능하기 때문에 유출이 가지는 의미가 획기적이라고 보기 어렵고, 더불어 이러한 유출 시 악용되는 것을 방지하는 여러가지 장치를 SCE에서 마련했을 것이기 때문입니다. 하지만, 유출이 사실이고 해당 파일 내부에서 PS3의 약점을 조금이라도 알아낸다면 PS3의 보안장벽이 허물어질 가능성 역시 높습니다. (리눅스에서 RSX 엑세스 권한만이라도 얻는다면 큰 소득이겠죠.)
인원감축 소식과 더불어 악재가 겹치는 암울한 소니군요..
Youtube에 올라온 이 영상은 IBM에서 발표한 iRT를 이용하여 3대의 PS3를 이용하여 실시간 Ray-tracing랜더링을 보여주고 있다. 이 영상을 보기 전에 알아야할 부분은 영상의 퀄리티나 해상도가 그리 좋지 않은데 왜 이것이 대단하냐고 반문하실 수 있는데, Ray-tracing은 자연에서 발생하는 빛의 움직임을 재현하는 랜더링 기법으로 마야나 MAX같은 3D 이미지 랜더링에서나 쓰이며(물론 요즘은 GI를 쓰겠지만), 실시간으로 구현되는 것은 거의 불가능하다. 그란투리스모나 기타 자동차 게임의 차체에 비치는 매끈한 광원효과는 환경맵핑이라는 기법을 이용한 것이며, 자세히 살펴보면 반사되는 이미지는 미리 만들어진 것이거나 디테일이 떨어지고, 자신이 반사되는 경우도 없다.
동영상 내용
- Ray-tracing은 720p이며 4x super sampling이 적용되어 있음.
- 3대의 PS3를 리눅스 환경에서 기가빗이더넷으로 연결하였다.
- 각 PS3는 7개의 SPE중 6개를 iRT에 할당하고 있다. (나머지 1개는 OS용이거나 I/O 용도인듯)
- 3대중 한대는 최종 이미지를 만드는 역할을 수행하며 1개의 SPE를 최종 이미지 압축용으로 사용한다.
- 각각은 1개의 SPE를 이미지 전송 압축용으로 사용한다.
- 따라서, 이미지 전송용 1대는 4개의 SPE를 나머지 2대는 5개의 SPE를 랜더링에 활용한다.
- 랜더링 영상은 100% Ray-casting이며 유리와 차 표면에 Reflection과 Refraction이 구현되어 있다.
- 실시간이기에 다양한 Light source를 부여할 수 있다.
- 뒷부분에 보이는 네모들은 각각 어떤 하드에서 랜더링되고 있는지를 보여주며, 맨 아래쪽은 4개의 블럭이 있는데 이유는 클라이언트라서 4개의 SPE만을 사용하기 때문이다. 나머지는 5개의 블럭이 보인다.
영상을 보면서 느끼는건, 대단하긴한데 이거 PS3용 게임을 만들 수도 없고, 그렇다고 Real-time Global Illumination처럼 Wow Factor가 있는것도 아닌 게 일반 유저들이 봐서는 그닥 관심이 대상이 되긴 어렵겠다는 생각이었다. 하지만, 대단한건 인정!!
사이트 바로가기
PS3에서의 구동
Folding@Home의 구조를 간단히 보자면,
- 처음 시뮬레이션할 작업량을 네트워크를 통하여 받아온다.
- 내부 컴퓨팅파워(CPU+GPU)를 이용하여 시뮬레이션을 수행한다.
- 시뮬레이션이 끝나면 자료를 전송한다.
- 이를 반복한다.
보고있자면 단백질 구조가 무섭도록(!) 덜덜 떨면서 각 상황의 접힘을 시뮬레이션하는데, 자꾸 보고 있으노라면 세뇌가 되는지 오랫동안 쳐다보게 된다. 배경에는 지구상에서 Folding@Home 프로그램이 가동중인 지역이 밝게 표시되어 나타난다. (클라이언트 수가 많을수록 밝은 곳으로 표시된다.)
PC버전과 PS3버전과의 비교
혹시나 해서 필자의 PC에서 Folding@Home PC버전을 돌려보았는데, 결과가 의외여서 놀랐다. 본인의 PC사양은,
AMD X2 3800+ / 1.5GB RAM / GeForce 6100 통합칩셋 / 500GB HDD
정도인데, 아래 실행화면을 보면,
내부에서 수행되는 작업의 내용을 정확히 알지 못하기 때문에 단정짓기 어렵지만, Folding@Home에서 작업의 최소단위는 frame으로 정의하고, 여러개의 프레임이 모여서 하나의 시뮬레이션을 이룬다. 참고로 PC버전과 PS3버전의 시뮬레이션 분량이 다른데, PC버전은 20000개의 프레임이 하나의 시뮬레이션이고, PS3버전은 40000프레임이 하나의 시뮬레이션을 이룬다.(왜인지는 나중에 나온다.) 결국 한 프레임을 계산하는 작업시간은 해당 머신의 성능과 거의 직결된다고 볼 수 있다. 위 사진에서 보면 16s/frame으로 나타나 있는데 이것은 한프레임을 계산하는데 드는 시간이 16초라는 것이다. 그럼, PS3버전의 한 프레임당 작업시간은 얼마인지 살펴보자. 16초 대 0.07초...이거이거 같은 작업분량으로 보기가 어려운 값인데, 일단 PC버전은 다중코어지원이 안되기 때문에(Linux나 Mac버전에서만 가능) 싱글코어 100%사용량으로 설정했을때의 성능이다. 그렇다고 하더라도 너무 차이가 난다. PS3 버전의 구동원리도 묘연하다. 셀만을 이용하는 것인지 RSX(GPU)도 연산에 이용하는 것인지를 알 수 없다. 하지만, Wikipedia에 따르면 PS3용 Folding@Home이 배포된 이후, 최고의 연산 피크를 기록했다고 한다. (990 teraFLOPS in 3/25/2007) PS3의 참여로 인하여 가시적인 퍼포먼스 향상이 있다는 것이다. 곧 있으면 petaFLOPS(페다플롭스)에 도달할 예정이라니, 소니의 Folding@Home 홍보가 단지 Eyecandy만은 아니라는 것은 인정해줘야 하겠다.
Folding@Home 사이트 바로가기
사이트바로가기
처음 Wiimote를 PC에서 구동시키고나서 인터넷에는 내 블로그의 구동 사진들이 허가없이 도배되었었다. (허락 받으신 분도 계셨지만, 외국사이트에서는 전혀 동의없이 게시되었었다. 심지어는 자기 사이트의 워터마크까지 달아 놓은 곳도;;) 어쨌거나 학기말 프로젝트에 정신이 팔린 사이 Carl Kenner가 선수를 쳐서-만들 생각도 없었지만- 완성된 버전의 PC구동 유틸을 만들었다.
그런데, Wiimote의 내부를 들여다보니 내가 잘못 알고 있던 사실들이 있었는데,
- Wiimote는 6 axis(3-axis positional + 3-axis rotational)가 아니라, 단지 3-axis linear force sensor(XYZ)만을 가지고 있다.
- Linear force sensor는 Gravity의 영향을 직접적으로 받고있으며, 필터링되지 않은채 정보가 넘어온다.
- 따라서 3-axis positional 데이터 만으로는 컨트롤러의 local coordinate을 알 수 있는 방법이 없다.
- IR Sensor는 IR emitter의 갯수와 각각의 신호의 강도, 그리고 Wiimote 시점에서의 2D 좌표를 알 수가 있다.
결론은, Wiimote는 3D space상의 위치와 움직임을 완벽하게 알 수 없다는 사실. 재밋는 사실은 와리오웨어 영상을 보면 각각의 게임들이 어떻게 Wiimote를 잡고 게임을 해야하는지 친절하게 설명을 해주는데 그것이 바로 local coordination을 정의하기 위함이었다.
01:21 부분을 살펴보면 친절하게 어떻게 잡아야하는지를 알려준다. 사용자가 어떤 방식으로 잡고있는 지를 모르면 Wiimote는 정확한 입력 정보를 알아낼 수 없다.
PS3의 SIXAXIS보다 절대적 우위에 있다고 확신했던 필자이기에 반성이 필요할 듯하고, 앞으로 두개의 디바이스가 가지는 장단점을 지속적으로 살펴봐야겠다.