9월, 2022의 게시물 표시
{{ label!='' ? 'Label : ' : (q!='' ? '검색 : ' : '전체 게시글') }} {{ label }} {{ q }} {{ ('('+(pubs|date:'yyyy-MM')+')') }}

[게임리뷰] Endlss Legend (엔드리스 레전드) 리뷰

이미지
 2016.12.19. 게시글 옮김 <Endless Legend>   4X 장르의 게임을 접하다보면, 늘 싱글 플레이 컨텐츠에 대해 아쉬움이 든다. RTS 장르인 <Starcraft> 시리즈의 캠페인을 보라. 그들은 '인공지능과의 대전'을 넘어서서 <Starcraft>의 이야기를 적극적으로 보여주고 있다. 왜 <Civilization>(이하 <문명>)이나 <Endless Legend>는 그 경지에 도달하지 못하는가? 아무리 고민을 해보아도 게임 개발자들의 역량부족이라 생각할 수 밖에 없다.    예를 들어 <Starcraft>에서는 '케리건', '짐 레이너'와 같이 개성있는 캐릭터들과 다양한 임무(소수 병력을 이용해 적을 섬멸하면서 목적지까지 도달하는 형태라든가, 일반적인 인공지능 대전에서, 제약이 걸리거나 소임무가 주어진 형태라든가)를 통해 스토리를 풀어나가며 싱글 플레이 컨텐츠를 제공한다. 소위 '컴까기'보다 진보한 형태로 게임을 즐길 수 있게 해주는 것이다.   <Endless Legend>에서 등장하는 '교단'의 '예언자 안돔'이 어떤 인물인지 플레이어들은 알 방도가 없다. 그저 일반 유닛들보다 전투할 때 강력한 파워를 자랑할 뿐이고, 수많은 영웅들 중 하나에 지나지 않는다. 훌륭한 세계관을 제대로 활용하지 못하는 것. 그들은 그저 '설정덕후'에 지나지 않는다. 이런 문제점은 앞으로의 4X 게임이 나아가야할 방향이자 숙제이다.

[C++] The C++ Programming Language: 6. Types and Declarations (3) - Sizes

이미지
6.2.4 Integer Types 6.2.5 Floating-Point Types 6.2.6 Prefixes and Suffixes 6.2.7 void (생략) 6.2.8 Sizes   C++의 기본 자료형의 몇몇 측면, 가령 int의 크기는 구현부에서 정의됩니다. 우리는 이러한 영향을 최소화하기 위한 조치를 취하는 것이 좋습니다. 왜 귀찮게 그렇게 해야 하나요? 다양한 시스템과 다양한 컴파일러 위에서 프로그래밍하기 때문입니다. 만약 이를 신경쓰지 않으면 수많은 버그들을 찾기 위해 시간을 낭비해야겠죠. 호환성은 전혀 신경 쓰지 않고 오로지 하나의 시스템에서만 동작해도 상관 없다고 생각하는 사람들에게는 예외일지 모르겠지만, 이는 분명 현명한 선택은 아닙니다. 여러분의 프로그램이 성공하면, 곧 이식될 것이며, 누군가는 이러한 구현에 종속된 문제들을 찾고 해결해야 합니다. 더 나아가, 프로그램은 종종 같은 시스템을 위해 다른 컴파일러로 컴파일될 필요가 있습니다. 혹은 여러분이 선호하는 컴파일러의 새로운 기능이 배포되고 그것이 현재와는 다른 방식으로 동작하게 될지도 모르죠. 프로그램이 꼬였을 때 그것을 바로잡으려고 하는 것 보다, 사전에 미리 이러한 것들을 고려하는 것이 훨씬 더 쉽습니다.   구현부에 종속적인 언어 기능의 영향을 최소화하는 것은 상대적으로 쉽습니다. 시스템 종속적인 라이브러리 기능의 영향을 최소화하는 것은 꽤 어렵죠. 표준 라이브러리 기능을 최대한 적절한 곳에 활용하는 것이 하나의 접근이 될 수 있습니다.   하나 이상의 정수형, 부호 없는 자료형, 부동 소수점 자료형 등을 제공하는 이유는 프로그래머들이 하드웨어 특성에 맞는 이점을 얻도록 하기 위함입니다. 많은 머신들에서는 메모리 요구사항, 메모리 접근 횟수, 서로 다른 기본 자료형들에 대한 계산 속도 등 두드러지는 차이들이 있습니다. 만약 머신을 안다면, 이들을 어떻게 고려할 것인지 생각하기 쉽겠죠. 가령 적절한 정수 자료형을 선택한다든가 하는 것이죠. 저수준의 기계에 호환 가능하도록 코드를 작