자유 게시글2013/11/01 13:53

모든 놀이에는 중독성이 있다.

스포츠 관람, 음악 감상, 우표 수집, 영화, TV.. 심지어 놀이터까지..

디지털 산업이 발전하면서 이 시대의 대표적인 놀이 문화가 게임일 뿐인데

하루 8시간씩 TV 보는 것은 중독이 아니고 게임 하는것은 중독이다?


아무리 제제를 해도 시대의 흐름은 이길수 없다.

결국 다들 게임은 하겠지. 담배, 술이 그렇듯.

하지만 앞으로 우리가 할 게임에 더 이상 국산 게임은 없어질 것 같다.


나도 오늘부터 일본어 공부하기 시작했으니까..

차라리 일본에 가서 게임을 만들련다.

내가 혼을 받쳐 만들고 있는 종합예술 작품을 마약과 같은 평가를 내리는 나라에서는 미래가 없다.


'자유 게시글' 카테고리의 다른 글

4대 중독에 게임을 포함?  (0) 2013/11/01
엔젤 카르텔 로고 완성본  (0) 2013/03/23
시작은 이랬다...  (0) 2011/08/18
Posted by Sierf
Vision Engine 82013/06/13 09:19

Vision 엔진 역시 Terrain에 대한 많은 정보를 Runtime에서 쉽게 얻을 수 있습니다.

// Terrain 개체를 글로벌 매니저에서 받습니다.
// VTerrainManager::GlobalManager().GetResourceCount() > 0 이 진위를 판단한 후 아래 코드를 진행하는 것이 더 안전할 것 같네요.
VTerrain* terrain = (VTerrain*)VTerrainManager::GlobalManager().GetResourceByIndex(0);

// Terrain에서 Terrain Config 개체를 받습니다.
const VTerrainConfig &cfg(terrain->m_Config);

// Terrain Config 개체에는 아래와 같은 Terrain 설정정보를 가지고 있습니다.
VString m_sTerrainFolder;             // Terrain 관련 파일을디 배치된 폴더
VString m_sAbsTerrainDir;             // Terrain 폴더의 절대 경로
VString m_sAbsProjectDir;             // Terrain이 배치된 프로젝트의 절대 경로
bool m_bDistanceBasedLODOnly;   // 거리에 따라서만 LOD 계산을 수행하는지?
bool m_bIgnoreHeightForLOD;         // LOD를 계산할 때 높이(z축)를 무시하는지?
bool m_bUseThreeWayMapping;      // 3 way mapping을 사용할 것인지? (높은 지형을 표현할 때 Texture가 지나치게 늘어나서 깨지는데 그런 현상을 줄여주는 수단입니다.)
int m_iSectorCount[2];                // x, y 방향으로 섹터의 갯수
hkvVec2 m_vSectorSize;             // x, y 방향으로 섹터 마다의 크기
hkvVec3 m_vTerrainPos;             // Terrain의 중심점
int m_iHeightSamplesPerSector[2];     // 섹터 별 높이 Vertex의 x, y 방향 갯수
int m_iTilesPerSector[2];             // 섹터 별 타일의 x, y 방향 갯수
int m_iDensityMapSamplesPerSector[2]; // 섹터 별 Vegetation Density 샘플의 x, y 방향 갯수
int m_iDefaultWeightmapResolution[2];    // Weightmap Texture의 x, y 방향 해상도(크기)
int m_iMaterialMapResolution[2];           // Material ID를 구분하는 Map의 x, y 방향 해상도

처음에 어떤 랜더링 엔진을 구매한 후 6개월 안에 보통 이런 생각을 합니다.
'이 엔진에는 왜 이런이런 정보를 가져올 수 없을까? 왜 이렇게 불편할까?'
그래서 대부분 엔진에 대한 비관이 시작되고 핑게거리가 생기는데요..
현재 시중에 유료로 나온 게임엔진들은 웬만하면 구조화는 굉장히 잘 되어있고
게임엔진 사용자보다 몇 수 위의 설계자가 설계한 것입니다.
남탓하지 말고 계속해서 엔진을 이해하다 보면 모든 것에 해답이 있더군요.
남 탓 하는 프로그래머 중 잘하는 사람 본적이 없습니다. ^^

Posted by Sierf
Vision Engine 82013/04/22 10:37

하복 엔진군에서 사용할 수 있는 hkVec3를 이용하였습니다.

bool IsInSquareRange(hkVec3 test_pos, hkVec3 chr_pos, hkVec3 target_pos, float hori_length, float vert_length)
{
 // z값 무시, 2D 방향에 따른 거리만으로 판단한다.
 target_pos.z = 0;
 chr_pos.z = 0;

 // forward 벡터를 구한다.
 hkVec3 forward_dir = target_pos - chr_pos;
 forward_dir.normalize();

 // up 벡터와 외적하여 right 벡터를 구한다.
 hkVec3 right_dir = forward_dir.cross(hkVec3(0, 0, 1));
 right_dir.normalize();

 // 중심점으로부터 테스트 위치까지의 크기와 방향을 가진 벡터
 hkVec3 center_to_target = test_pos - target_pos;

 // forward, right 방향으로의 거리를 구해서 변의 길이 안에 들었다면 (음의 방향, 양의 방향 모두 적용해야 하므로 절대값 처리함)
 if (abs(forward_dir.dot(center_to_target)) <= vert_length && abs(right_dir.dot(center_to_target)) <= hori_length)
 {
  return true;
 }
 else
 {
  return false;
 }
}

Posted by Sierf