검색결과 리스트
Technical Article에 해당되는 글 282건
- 2004.01.10 Skill
- 2004.01.05 비주얼스튜디오 키셋팅
- 2004.01.05 Infinity Engine - FiaScript클래스
- 2004.01.05 Infinity Engine - FiaFile클래스
- 2004.01.05 서버개발패턴 1
- 2004.01.05 서버-클라이언트 시간 동기화 프로토콜 1
- 2004.01.05 서버 프로그래밍에서 주의해야할점
- 2004.01.04 ASE 강좌 (KGDA)
- 2004.01.02 Game Testing 에 관한 글
- 2004.01.02 Nullsoft Scriptable Install System
글
Technical Article/펌 2004. 1. 10. 09:04Skill
씰인지 릴인지 모르겠지만 어떤분 ㅡㅡ;
언어, 툴, 라이브러리
C++/ STL/ boost
Win32 API
MFC
OpenGL / DirectX
Cg / HLSL
3D 엔진 기술
Scene Graph
Map Tool
Path-finding
Vertex/Pixel Shader (all version)
Dynamic Loading
Particle System
3D 지형 기술
indoor.. BSP, PVS, Portal
outdoor.. Height Field, CLOD ROAM(2.0, too), CLOD quadtree
water(using shader)
sky(using shader, multilayered)
cloud... Perlin Cloud, volumetric fog
Terrain Fractal Auto Generate
terrain self shadow
Light Scattering
simple radiosity (and generate lightmap in indoor)
3D 그외 기술
space division - Octree, Quadtree
Generate Normal Map(and, use)
Physics Process - simple process... Sphere, AABB, Plane, Line, Ray, Triangle, Capsule, Ellipsoidalsolid, Lozenge, OBB
fast picking
Lens Flare with query
vertex Caching
Vertex Blend(using shader)
Envirnoment Map
shader tech - Toon Shading, Water Shader, Grass Shader, Silhouette, Crystal/Candy Shader, Bubble Shader, Billboard shader... etc..
Bump - Dot3 Bumpmap / bump mirror
blur - Depth of field / Motion Blur
Fur
Refraction / Reflection / BRDF
Volumetric Fog
Volumetric Explosions
HDR light
mirror - Stencil Mirroring, bump mirroring
Compute static LOD mesh
Per-Pixel Lighting (diffuse map, specular map)
soft cull - frustum cull, faceface cull
Image Processing
ani - Key-frame ani, Hierachy ani, Bone ani(Skinning) matrix pallette using shader
shadow - Terrain Cloud Shadow, terrain self shadow, charactor Shadow Mapping (with self, blob), Volume Shadow (current, not fast)
언어, 툴, 라이브러리
C++/ STL/ boost
Win32 API
MFC
OpenGL / DirectX
Cg / HLSL
3D 엔진 기술
장면 그래프
맵 툴
길찾기
Vertex/Pixel Shader (모든 버전)
동적 로딩
파티클 시스템
3D 지형 기술
실내.. BSP, PVS, Portal
실외.. Height Field, CLOD ROAM(2.0, too), CLOD quadtree
물(shader 써서)
하늘(쉐이더 써서, 여러장 쓴것)
구름... Perlin Cloud, 용적 포그
지형 프렉탈 자동 생성
지형 자기자신에게 그림자 드리우기
빛 분산
간단한 라디오시티 (실내에서 라이트맵 생성)
3D 그외 기술
공간분할 - Octree, Quadtree
노말맵 생성(그리고, 사용까지)
물리 연산 - 간단한 것들. 구, 박스, 평면, 직선, 선분, 삼각형, 캡슐, 원통, 3D마름모, Lozenge
빠른 피킹
쿼리를 사용한 렌즈 플레어
버텍스 캐싱
버텍스 블렌드(쉐이더 사용)
환경 맵
쉐이더 기술 - 카툰 렌더, 풀, 실루엣, 크리스탈/캔디, 비눗방울, 빌보드 기타등등
범프 - Dot3 범프맵 / 범프 미러링
blur - Depth of field / Motion Blur
털 렌더링
굴절 / 반사 / BRDF
용적 폭발
HDR light
반사 - Stencil Mirroring, bump mirroring
정적으로 LOD mesh 계산해놓기
픽셀당 라이팅 (diffuse map, specular map)
소프트웨어 컬링 - 절두체 컬링, 뒷면 컬링
이미지 프로세싱
애니메이션 - 키프레임 애니, Hierachy 애니, 뼈대 애니(Skinning) 쉐이더를 사용한 매트릭스 팔레트
그림자 - 지형에 구름 그림자 드리우기, 지형이 자기 자신에게 그림자 드리우기, 쉐도우 매핑 (셀프 쉐도우와, blob 쉐도우까지), 용적 그림자
언어, 툴, 라이브러리
C++/ STL/ boost
Win32 API
MFC
OpenGL / DirectX
Cg / HLSL
3D 엔진 기술
Scene Graph
Map Tool
Path-finding
Vertex/Pixel Shader (all version)
Dynamic Loading
Particle System
3D 지형 기술
indoor.. BSP, PVS, Portal
outdoor.. Height Field, CLOD ROAM(2.0, too), CLOD quadtree
water(using shader)
sky(using shader, multilayered)
cloud... Perlin Cloud, volumetric fog
Terrain Fractal Auto Generate
terrain self shadow
Light Scattering
simple radiosity (and generate lightmap in indoor)
3D 그외 기술
space division - Octree, Quadtree
Generate Normal Map(and, use)
Physics Process - simple process... Sphere, AABB, Plane, Line, Ray, Triangle, Capsule, Ellipsoidalsolid, Lozenge, OBB
fast picking
Lens Flare with query
vertex Caching
Vertex Blend(using shader)
Envirnoment Map
shader tech - Toon Shading, Water Shader, Grass Shader, Silhouette, Crystal/Candy Shader, Bubble Shader, Billboard shader... etc..
Bump - Dot3 Bumpmap / bump mirror
blur - Depth of field / Motion Blur
Fur
Refraction / Reflection / BRDF
Volumetric Fog
Volumetric Explosions
HDR light
mirror - Stencil Mirroring, bump mirroring
Compute static LOD mesh
Per-Pixel Lighting (diffuse map, specular map)
soft cull - frustum cull, faceface cull
Image Processing
ani - Key-frame ani, Hierachy ani, Bone ani(Skinning) matrix pallette using shader
shadow - Terrain Cloud Shadow, terrain self shadow, charactor Shadow Mapping (with self, blob), Volume Shadow (current, not fast)
언어, 툴, 라이브러리
C++/ STL/ boost
Win32 API
MFC
OpenGL / DirectX
Cg / HLSL
3D 엔진 기술
장면 그래프
맵 툴
길찾기
Vertex/Pixel Shader (모든 버전)
동적 로딩
파티클 시스템
3D 지형 기술
실내.. BSP, PVS, Portal
실외.. Height Field, CLOD ROAM(2.0, too), CLOD quadtree
물(shader 써서)
하늘(쉐이더 써서, 여러장 쓴것)
구름... Perlin Cloud, 용적 포그
지형 프렉탈 자동 생성
지형 자기자신에게 그림자 드리우기
빛 분산
간단한 라디오시티 (실내에서 라이트맵 생성)
3D 그외 기술
공간분할 - Octree, Quadtree
노말맵 생성(그리고, 사용까지)
물리 연산 - 간단한 것들. 구, 박스, 평면, 직선, 선분, 삼각형, 캡슐, 원통, 3D마름모, Lozenge
빠른 피킹
쿼리를 사용한 렌즈 플레어
버텍스 캐싱
버텍스 블렌드(쉐이더 사용)
환경 맵
쉐이더 기술 - 카툰 렌더, 풀, 실루엣, 크리스탈/캔디, 비눗방울, 빌보드 기타등등
범프 - Dot3 범프맵 / 범프 미러링
blur - Depth of field / Motion Blur
털 렌더링
굴절 / 반사 / BRDF
용적 폭발
HDR light
반사 - Stencil Mirroring, bump mirroring
정적으로 LOD mesh 계산해놓기
픽셀당 라이팅 (diffuse map, specular map)
소프트웨어 컬링 - 절두체 컬링, 뒷면 컬링
이미지 프로세싱
애니메이션 - 키프레임 애니, Hierachy 애니, 뼈대 애니(Skinning) 쉐이더를 사용한 매트릭스 팔레트
그림자 - 지형에 구름 그림자 드리우기, 지형이 자기 자신에게 그림자 드리우기, 쉐도우 매핑 (셀프 쉐도우와, blob 쉐도우까지), 용적 그림자
![](https://lh3.googleusercontent.com/-hYZb_novCPQ/V5HuGPkGFUI/AAAAAAAAANk/f8zcKkeTBbA1A-W6yuqfk12fs8bd8FeOQCL0B/banner_468_60.png)
트랙백
댓글
보호글
Technical Article/펌 2004. 1. 5. 16:52Infinity Engine - FiaScript클래스
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.
보호글
Technical Article/펌 2004. 1. 5. 16:52Infinity Engine - FiaFile클래스
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.
글
Technical Article/펌 2004. 1. 5. 10:46서버-클라이언트 시간 동기화 프로토콜
1. S: (현재서버시간, dt)를 보낸다
2. C: 클라이언트시간=현재서버시간+dt
3. C: (클라이언트시간+dt)를 보낸다.
4. S: (현재서버시간)과 (클라이언트시간+dt)과 비슷한지 확인!
5. S: dt=(받은서버시간-보낸서버시간)/2, 1번으로..
2. C: 클라이언트시간=현재서버시간+dt
3. C: (클라이언트시간+dt)를 보낸다.
4. S: (현재서버시간)과 (클라이언트시간+dt)과 비슷한지 확인!
5. S: dt=(받은서버시간-보낸서버시간)/2, 1번으로..
![](https://lh3.googleusercontent.com/-hYZb_novCPQ/V5HuGPkGFUI/AAAAAAAAANk/f8zcKkeTBbA1A-W6yuqfk12fs8bd8FeOQCL0B/banner_468_60.png)
트랙백
댓글
글
Technical Article/펌 2004. 1. 5. 10:41서버 프로그래밍에서 주의해야할점
* 인덱스는 unsigned 형을 사용하도록 하자.
-> signed 형의 경우 유효성 검사를 위해 "변수>=0 && 변수<=최대값" 이런식으로 두번을 체크해야하지만 unsigned 형의 경우 "변수<=최대값" 으로만 해결 가능하다.
* strcpy 등의 길이제한이 없는 함수는 사용하지 않는다
-> 100% 확실한 경우라도 '\0' 값이 없을경우가 생길수 있다. 무조건 길이제한을 둔다. 그런 함수가 없다면 만들어서 써라.
* 리턴받은 포인터값을 바로 사용하지 말아라.
-> 반드시 NULL이 아닌지 확인하고 사용해야한다.
바로 쓰고 싶을 경우는 레퍼런스를 사용해서 항상 유효한 데이터임을 알린다.
* 로그를 저장할때는 리붓할때마다 시간등을 이용한 고유값으로 분리하고
로그마다 인덱스를 남긴다. 예외 종료시에는 에러 로그를 남긴다.
-> 예외 처리시점을 빨리 알아내고
* 로그는 게임서버에 파일로 저장하지 않도록 하자.
-> SCSI 하드디스크라도 파일저장하는데 있어서 부하는 아주 크다.
물론 사용자가 100명도 안된다면 모르겠지만... 여유가 생기는데로
로그 서버를 구축하도록하자.
특히 fopen("log", "a+"); 식은 매번 파일을 오픈하므로;; 치명적!
* 로그는 알기 쉽게 만든다.
-> 로그는 분석하기 위한 도구다. 어떤 사용자가 무슨 일을 한것인지
사람이 알아보기 쉽게 만들자. 사용된 변수값은 모두 적어주는것이 좋다.
* 서식함수 첫번째 인자는 변수를 사용하지 않는다.
-> printf(msg); 식으로 사용할 경우 자칫 "%s %d" 라는 코드가 있으면
에러난다.
* 돈은 sigined 형을 사용한다.
-> unsigned 형을 썼다가 자칫 뺄셈을 잘못할 경우 몇십억이 되는 돈이
들어갈수가 있다.
* 사용자에게서 받은 값은 전부 범위체크를 한다.
-> 어떤값이 들어올지 모른다. 신용은 금물!
-> signed 형의 경우 유효성 검사를 위해 "변수>=0 && 변수<=최대값" 이런식으로 두번을 체크해야하지만 unsigned 형의 경우 "변수<=최대값" 으로만 해결 가능하다.
* strcpy 등의 길이제한이 없는 함수는 사용하지 않는다
-> 100% 확실한 경우라도 '\0' 값이 없을경우가 생길수 있다. 무조건 길이제한을 둔다. 그런 함수가 없다면 만들어서 써라.
* 리턴받은 포인터값을 바로 사용하지 말아라.
-> 반드시 NULL이 아닌지 확인하고 사용해야한다.
바로 쓰고 싶을 경우는 레퍼런스를 사용해서 항상 유효한 데이터임을 알린다.
* 로그를 저장할때는 리붓할때마다 시간등을 이용한 고유값으로 분리하고
로그마다 인덱스를 남긴다. 예외 종료시에는 에러 로그를 남긴다.
-> 예외 처리시점을 빨리 알아내고
* 로그는 게임서버에 파일로 저장하지 않도록 하자.
-> SCSI 하드디스크라도 파일저장하는데 있어서 부하는 아주 크다.
물론 사용자가 100명도 안된다면 모르겠지만... 여유가 생기는데로
로그 서버를 구축하도록하자.
특히 fopen("log", "a+"); 식은 매번 파일을 오픈하므로;; 치명적!
* 로그는 알기 쉽게 만든다.
-> 로그는 분석하기 위한 도구다. 어떤 사용자가 무슨 일을 한것인지
사람이 알아보기 쉽게 만들자. 사용된 변수값은 모두 적어주는것이 좋다.
* 서식함수 첫번째 인자는 변수를 사용하지 않는다.
-> printf(msg); 식으로 사용할 경우 자칫 "%s %d" 라는 코드가 있으면
에러난다.
* 돈은 sigined 형을 사용한다.
-> unsigned 형을 썼다가 자칫 뺄셈을 잘못할 경우 몇십억이 되는 돈이
들어갈수가 있다.
* 사용자에게서 받은 값은 전부 범위체크를 한다.
-> 어떤값이 들어올지 모른다. 신용은 금물!
![](https://lh3.googleusercontent.com/-hYZb_novCPQ/V5HuGPkGFUI/AAAAAAAAANk/f8zcKkeTBbA1A-W6yuqfk12fs8bd8FeOQCL0B/banner_468_60.png)
트랙백
댓글
글
Technical Article/펌 2004. 1. 2. 16:04Game Testing 에 관한 글
031223 - Game Testing
가끔 회사 동료의 Wish List에서 훌륭한 책들을 발견하기도 하는데,
http://www.amazon.com/o/ASIN/155622351X/103-4956644-2426260
아직 출간 되지는 않았지만 Chris Hind씨의 『Game Testing』이라는 책이 눈에 띄였다. 이 책의 내용에 대해선 사실 별로 나와 있는 것이 없기 때문에 구입 해야 할지 여부는 미뤄 두더라도 소개란에 나와 있는 한 사이트 링크가 관심을 끌었다.
iBeta Game Testing lab - http://www.ibeta.com
아무래도 저자는 이 iBeta사와 관련된 사람으로 생각되는데 이 회사는 업무용 응용 프로그램이나 인터렉티브 엔터테인먼트(게임) 소프트웨어의 테스팅을 주로 대행해 주는 업체로 보여진다. 이 회사의 홈페이지에서 아래와 같은
Interative Entertainment QA services - http://www.ibeta.com/services/intent2.html
게임용 QA 서비스에 대한 정리된 목록은 게임 QA에 대한 나름의 체계화된 항목들을 보여 준다는 점에서 주목해 볼만 하다. 안그래도 최근 본인이 참여한 프로젝트가 마무리 단계에 들어 가면서 QA나 옵티마이징등을 신경써야 할 단계인 시기이기 때문에 더욱 관심있게 살펴보게 되었다. 세부 사항은 없지만 QA에 대한 체계적 분류를 보여주는 고마운 글이 아닐 수 없다.
특히 Bandwidth management나 Large-Scale Persistent Online Content/World 같은 것은 실제 서비스에 들어가기 전에는 클로즈 테스트으로도 사실상 알 수가 없는 내용이기 때문에 이 테스트에 관한 실제적인 내용에 관심과 호기심이 생기는데 책에는 자세한 내용이 서술 되어 있을지 기대가 된다.
주목할만한 부분은 Desgin Consulting인데 게임 자체의 버그 라고 할 수 있는 엔지니어링 측면의 테스팅 뿐 아니라 게임 디자인적인 부분에 대해서도 리포팅을 해주고 컨설팅을 해준 다는 점에서 그 서비스 내용과 수준이 어떨지 역시 궁금해 진다.
가끔 회사 동료의 Wish List에서 훌륭한 책들을 발견하기도 하는데,
http://www.amazon.com/o/ASIN/155622351X/103-4956644-2426260
아직 출간 되지는 않았지만 Chris Hind씨의 『Game Testing』이라는 책이 눈에 띄였다. 이 책의 내용에 대해선 사실 별로 나와 있는 것이 없기 때문에 구입 해야 할지 여부는 미뤄 두더라도 소개란에 나와 있는 한 사이트 링크가 관심을 끌었다.
iBeta Game Testing lab - http://www.ibeta.com
아무래도 저자는 이 iBeta사와 관련된 사람으로 생각되는데 이 회사는 업무용 응용 프로그램이나 인터렉티브 엔터테인먼트(게임) 소프트웨어의 테스팅을 주로 대행해 주는 업체로 보여진다. 이 회사의 홈페이지에서 아래와 같은
Interative Entertainment QA services - http://www.ibeta.com/services/intent2.html
게임용 QA 서비스에 대한 정리된 목록은 게임 QA에 대한 나름의 체계화된 항목들을 보여 준다는 점에서 주목해 볼만 하다. 안그래도 최근 본인이 참여한 프로젝트가 마무리 단계에 들어 가면서 QA나 옵티마이징등을 신경써야 할 단계인 시기이기 때문에 더욱 관심있게 살펴보게 되었다. 세부 사항은 없지만 QA에 대한 체계적 분류를 보여주는 고마운 글이 아닐 수 없다.
특히 Bandwidth management나 Large-Scale Persistent Online Content/World 같은 것은 실제 서비스에 들어가기 전에는 클로즈 테스트으로도 사실상 알 수가 없는 내용이기 때문에 이 테스트에 관한 실제적인 내용에 관심과 호기심이 생기는데 책에는 자세한 내용이 서술 되어 있을지 기대가 된다.
주목할만한 부분은 Desgin Consulting인데 게임 자체의 버그 라고 할 수 있는 엔지니어링 측면의 테스팅 뿐 아니라 게임 디자인적인 부분에 대해서도 리포팅을 해주고 컨설팅을 해준 다는 점에서 그 서비스 내용과 수준이 어떨지 역시 궁금해 진다.
![](https://lh3.googleusercontent.com/-hYZb_novCPQ/V5HuGPkGFUI/AAAAAAAAANk/f8zcKkeTBbA1A-W6yuqfk12fs8bd8FeOQCL0B/banner_468_60.png)
트랙백
댓글
글
Technical Article/펌 2004. 1. 2. 15:58Nullsoft Scriptable Install System
Nullsoft Scriptable Install System
오랜만에 하루 종일 집에서 뒹굴며 졸기도 하고 웹서핑도 하면서 보냈다. 게다가 어제는 용평에서 스키를 즐기며 맑은 공기를 마시고 온 덕에 하루 종일 기분 좋게 지낼 수 있었다. ^^
--------------------------------------------------------------------------------
모처럼 주말이기에 그 동안 해봐야지 맘먹고 있던 국내 3D 캐쥬얼 온라인 게임 몇개를 가입하고 인스톨 한뒤에 한 동안 즐기면서 장점과 단점이라던가 수익 모델이라던가 등을 분석하기도 하며 시간을 보냈다. 캐쥬얼 게임이라는 단어의 시작이 어디에서 부터인지는 모르지만 생각 날때 짬짬히 할 수 있는 게임이라면, 하려고 맘먹었을때 부터 시작까지 매우 짧은 시간내에 순조롭게 이루어져야 한다는 생각이 든다.
요즘엔 대부분 『회원 가입, 게임 다운로드, 설치 그리고 웹상에서 런칭』이라는 과정을 통해 게임을 즐기게 되는 것이 거의 정석이 되어 가는 것 같다. 그런데 이 과정에서 개발사 마다 약간씩 차이가 나는 부분이라면 바로 설치에 관한 부분 인것 같다.
국내의 유명 퍼블리셔들의 경우 설치에 관해서 특정 인스톨러를 사용하고 몇가지 규칙을 지켜야 한다는 세부 사항이 정해져 있는 경우도 있지만 소규모 퍼블리셔나 한 게임 만을 서비스 하는 개발사의 경우 제 각각 다른 모습을 보여 주는것 같다.
많은 업체들이 사용하고 본인 역시 익숙한 (그러나 세부 조정까지는 알기가 매우 귀찮은...) 인스톨 쉴드는 뭐 특별히 예기할 것 없을 정도로 유명한 인스톨러 메이커인데 개인적으로는 상업용 임에도 불구하고 만족도는 별로 높지가 않았다. 특히나 압축된 용량이나 실행시 임시 폴더에 풀어 놓고 설치 하는 방식이나 비싼 가격 때문에 한 회사에서 여러 명이 쓰기엔 부담된다는 점이나 불평을 늘어 놓자면 끝이 없다.
이 참에 공짜 인스톨러는 없는지 찾아 보았는데,
http://www.thefreecountry.com/programming/setup.shtml
세상에는 언제나 쓸만한 무료 프로그램이 있기 마련인것 이다. 그 중에서 Winamp와 국내에서는 통합코덱 등에 사용되어 유명한 Nullsoft의 인스톨러(NSIS)가 최근 Source Forge에 올라 갔다는 사실을 알게 되었고 얼마전 Release Cadidate 1이 공개 된 것이 있길래 받아 보았다.
http://nsis.sourceforge.net/site/index.php
기본 옵션으로 인스톨러가 차지 하는 용량이 34KB 밖에 않된다는 점이 돋보이는 NSIS인데, 게다가 이번 RC1에서는 zip보다 압축률이 좋은 bzip2 지원을 넘어서 7-zip에 사용되는 LZMA Compression을 지원한다는 것이 흥미로웠다.
http://www.7-zip.org
7-Zip 홈페이지에 의하면 개인적으로 선호하고 있는 WinRAR 보다 10% 더 좋은 압축률을 보인다니 놀랍기만 하다. 게다가 GNU LGPL 라이센스로 소스 코드까지 공개 하고 있다. 소스 코드가 사용 하기 쉽게 라이버리화 되어 있는 정도는 아니지만 조금만 다듬으면 게임용 리소스 매니져나 업데이트 프로그램에 사용 할 수 있지 않을까 싶다.
NSIS를 설치 하면 몇가지 예제들과 윈도우용 Front End, 그리고 Command Line용 프로그램 등이 생기는데 One Stop Build Script를 통해 인스톨본까지 한번에 생성 또는 매일 매일 자동 생성을 감안하고 있던 차이기에 좀더 살펴 봐야 겠다는 생각이 든다.
오랜만에 하루 종일 집에서 뒹굴며 졸기도 하고 웹서핑도 하면서 보냈다. 게다가 어제는 용평에서 스키를 즐기며 맑은 공기를 마시고 온 덕에 하루 종일 기분 좋게 지낼 수 있었다. ^^
--------------------------------------------------------------------------------
모처럼 주말이기에 그 동안 해봐야지 맘먹고 있던 국내 3D 캐쥬얼 온라인 게임 몇개를 가입하고 인스톨 한뒤에 한 동안 즐기면서 장점과 단점이라던가 수익 모델이라던가 등을 분석하기도 하며 시간을 보냈다. 캐쥬얼 게임이라는 단어의 시작이 어디에서 부터인지는 모르지만 생각 날때 짬짬히 할 수 있는 게임이라면, 하려고 맘먹었을때 부터 시작까지 매우 짧은 시간내에 순조롭게 이루어져야 한다는 생각이 든다.
요즘엔 대부분 『회원 가입, 게임 다운로드, 설치 그리고 웹상에서 런칭』이라는 과정을 통해 게임을 즐기게 되는 것이 거의 정석이 되어 가는 것 같다. 그런데 이 과정에서 개발사 마다 약간씩 차이가 나는 부분이라면 바로 설치에 관한 부분 인것 같다.
국내의 유명 퍼블리셔들의 경우 설치에 관해서 특정 인스톨러를 사용하고 몇가지 규칙을 지켜야 한다는 세부 사항이 정해져 있는 경우도 있지만 소규모 퍼블리셔나 한 게임 만을 서비스 하는 개발사의 경우 제 각각 다른 모습을 보여 주는것 같다.
많은 업체들이 사용하고 본인 역시 익숙한 (그러나 세부 조정까지는 알기가 매우 귀찮은...) 인스톨 쉴드는 뭐 특별히 예기할 것 없을 정도로 유명한 인스톨러 메이커인데 개인적으로는 상업용 임에도 불구하고 만족도는 별로 높지가 않았다. 특히나 압축된 용량이나 실행시 임시 폴더에 풀어 놓고 설치 하는 방식이나 비싼 가격 때문에 한 회사에서 여러 명이 쓰기엔 부담된다는 점이나 불평을 늘어 놓자면 끝이 없다.
이 참에 공짜 인스톨러는 없는지 찾아 보았는데,
http://www.thefreecountry.com/programming/setup.shtml
세상에는 언제나 쓸만한 무료 프로그램이 있기 마련인것 이다. 그 중에서 Winamp와 국내에서는 통합코덱 등에 사용되어 유명한 Nullsoft의 인스톨러(NSIS)가 최근 Source Forge에 올라 갔다는 사실을 알게 되었고 얼마전 Release Cadidate 1이 공개 된 것이 있길래 받아 보았다.
http://nsis.sourceforge.net/site/index.php
기본 옵션으로 인스톨러가 차지 하는 용량이 34KB 밖에 않된다는 점이 돋보이는 NSIS인데, 게다가 이번 RC1에서는 zip보다 압축률이 좋은 bzip2 지원을 넘어서 7-zip에 사용되는 LZMA Compression을 지원한다는 것이 흥미로웠다.
http://www.7-zip.org
7-Zip 홈페이지에 의하면 개인적으로 선호하고 있는 WinRAR 보다 10% 더 좋은 압축률을 보인다니 놀랍기만 하다. 게다가 GNU LGPL 라이센스로 소스 코드까지 공개 하고 있다. 소스 코드가 사용 하기 쉽게 라이버리화 되어 있는 정도는 아니지만 조금만 다듬으면 게임용 리소스 매니져나 업데이트 프로그램에 사용 할 수 있지 않을까 싶다.
NSIS를 설치 하면 몇가지 예제들과 윈도우용 Front End, 그리고 Command Line용 프로그램 등이 생기는데 One Stop Build Script를 통해 인스톨본까지 한번에 생성 또는 매일 매일 자동 생성을 감안하고 있던 차이기에 좀더 살펴 봐야 겠다는 생각이 든다.
![](https://lh3.googleusercontent.com/-hYZb_novCPQ/V5HuGPkGFUI/AAAAAAAAANk/f8zcKkeTBbA1A-W6yuqfk12fs8bd8FeOQCL0B/banner_468_60.png)
RECENT COMMENT