분류 전체보기672 미리 컴파일된 헤더의 가상 메모리 범위 초과 error C3859: PCH에 대한 가상 메모리 범위를 초과했습니다. 명령줄 옵션을 '-Zm129' 이상으로 지정하여 다시 컴파일하십시오. 무슨 말이 필요할까요 :) 아래 그림대로 하세요 2012. 11. 23. Bravery Default (브레이브리 디폴트) - 전투 시스템 잘 만든 게임은 게임 도중에 게임의 전투시스템 자체가 변화하게 되는 경우를 볼 수 있습니다 가장 유명한 예로는 'Level 5' 의 '드래곤 퀘스트 8' 으로 초반의 치고 받는 전투에서 중반의 버프 중복 전투 그리고 후반부의 텐션을 올려주는 북아이템이 1개냐 2개냐에 의해서 전략 자체가 완전 히 바뀌게 됩니다.. 거의 다른 게임 수준으로 그리고 국내에도 그런 게임이 있는데 '바람의 나라'가 있죠.. 머리 박고 싸우는 레벨 99까지와 그 이후 HP 를 높여서 힐러를 동반한 HP 소모성 한방 스킬로 한방 사냥을 하는 방식으로 완전히 바뀌 게 됩니다 서론이 길었고 브레이브리 디폴트는 많은 직업들이 있지만 '닌자', '도사', '성기사' 를 얻는 순간 다 른 게임이 됩니다. 그 전까지는 물의 크리스탈을 해방하러.. 2012. 11. 22. Asio Client / Server NetEngine 어떤 엔진에서도 사용이 가능하도록 DLL 로 Server / Client NetEngine 으로 만들어 봤습니다 구조는 흔해빠진 디자인패턴 클라이언트 / 서버를 기초로 제작 했습니다 서버나 클라이언트 같은 구조를 가지고 있습니다 다만 클라랑 서버랑 보내고 받는 쪽 역활이 바뀔 뿐 사용된 것 - Asio - thread - thread group - function bind - shared pointer - posix timer - pool - lockfree queue - queue - tuple - byte streaming - byte encrypt decrypt - callback map - multi index map - program options 2012. 11. 22. ShootingStar 2012 2003년 제대하고 DX9 이 새로 나온 것을 발견하고 감각을 찾고자 만들어봤던 슈팅게임 ShotingStar 그러나 내부 구조는 그다지 스마트하지 못했는데 이번에 라이트한 3D 엔진을 만들면서 그 엔진을 이용 해 옛날 ShotingStar 를 새롭게 복원해 보기로 했습니다 그저 나누기만 하면 멋진줄 알고 개판쳤던 기존의 프로젝트에서 엔진 DLL 을 베이스로 한 심플한 구조로- 사용된 것 들 - DirectX9 - DirectX Input - vector - shared pointer - thread group - shared mutex - multi index map - Actor Based Multi Override title 에서 enter 를 쳐야 넘어가집니다 2012. 11. 22. boost::program_options 응용 프로그램을 아규먼트를 넘겨줘서 실행하고 싶을 때 _CHAR* argv 처리한다고 이렇게 만들고 저렇게 만들고 사람마다 다 다를 꺼라고 봅니다. 이것을 시간낭비하지 말고 program_options 를 이용해서 일관되게 만들면 서로 서로 불편할 일 없겠죠 :) 예제#include "stdafx.h" #include namespace po = boost::program_options; int _tmain(int argc, _TCHAR* argv[]) { // 아규먼트 옵션에 대한 설명 po::options_description desc("사용가능한 옵션들"); desc.add_options() ("help", "도움말을 봅니다") ("ip", po::value(), "접속할 서버의 ip 를 입력합니다".. 2012. 11. 16. boost::function / boost::tuple 의 활용 function callback map 을 만들고 거기에 tuple 을 이용한 변수의 적용을 하는 예제를 만들어 보았습니다 제가 실제 활용한 것은 어떤 패킷에 대한 콜백 처리와 서버 접속자에 대한 send 처리에 활용을 했지요 여기에 템플릿까지 잘 적용하면 더 멋진 모습이 되지만 일단 본 내용에서 전달하고자 하는 취지와는 안맞으니 생략 합니다 :) 예제 소스 #include "stdafx.h" #include #include // 본 예제와는 관계 없음, 다만 BYTE 정의 때문에 추가 #include #include #include class CTestMng { typedef boost::functionTYPE_CNT_CB; std::map m_CallbackMap;// 유저 id 와 send 콜백 맵.. 2012. 11. 7. boost::tuple / tuples / tuples::tuple 여러개의 변수를 주고 받거나 동시에 다뤄야할 때 유용한- 대표적으로 변수는 하나 넘겨줘야되는데 많은 양의 정보를 넘겨줄 때 유용 할 것 같네요 예제 소스 #include "stdafx.h" #include #include #include #include #include #include class CTest { int m_nVal; public: CTest() : m_nVal(0) {} CTest(int n) : m_nVal(n) {} }; // 생성 및 초기화 boost::tuple t0; boost::tuple t1; boost::tuple t2(3);// 3으로 초기화 boost::tuple t3; boost::tuple t4(CTest(1));// 1로 초기화 boost::tuple t5(t2);/.. 2012. 11. 6. Bravery Default (브레이브리 디폴트) 아니에스 정교기사복장 스쿠에니 맴버스 사이트 - 브레이버리 디폴트 http://member.square-enix.com/jp/special/bdff/ 쓸만한 일본 공략 사이트 http://i-njoy.net/bdff_top.html 간만에 영혼을 불태우는 개념 정통 RPG 출현 -_- 완전 즐겜중이네요 2012. 11. 1. boost::shared_ptr 과 Virtual Function 과 boost::timer 가상함수를 더 스마트하게 사용하는 방법. shared_ptr 을 이용한 간단한 게임모드 변경을 예로 예제를 작성하였습니다. 실제 최근 개발한 개인 프로젝트에서도 사용한 방법이지요 게임모드 외에도 엑터 관리나 상속을 통해서 만드는 모든 구조에 대해서 응용이 가능합니다 예제 #include "stdafx.h" #include #include #include #include class CGameMode { public: virtual void Run() = NULL; }; class CLogo : public CGameMode { public: void Run() { std::cout 2012. 10. 25. ggs 2012. 10. 24. boost::random http://www.boost.org/doc/libs/1_51_0/doc/html/boost_random.html boost 에서 랜덤 생성도 제공해 줍니다 rand(time(0)) 을 쓸때 생기는 흔한 (혹은 뻔한) 패턴을 피해서 각자 만들곤 하는데 그런 노고를 안해도 될 듯 하네요 1~6 랜덤 숫자 구하기 #include int GetDice() { boost::random::mt19937 rng; boost::random::uniform_int_distribution six(1,6); return six(rng); } 특정 숫자 범위내에서 구하기 #include #include int GetRand() { boost::random::mt19937 gen; boost::random::uniform_i.. 2012. 10. 24. boost::asio 비동기 서버/클라 step 2 2011/11/09 - [프로그래밍/boost] - boost::asio 비동기 서버/클라 step 1 에 이어서 계속 됩니다 Client -> Recv -> Recv Queue -> Worker Thread -> Send Queue -> Send Callback -> Client 분홍색 까지의 부분을 소스 예제로 봅시다! 어디까지나 예제 차원으로 (원래 asio 예제도 그렇고) class 내부에 막 때려넣었으니 따라하거나 이상한 코딩하는 사람으로 오해하지마세요 ^^; 소스 퍼가실 때 소스코드 부분을 더블 클릭해서 전체 선택 후 카피가 좋습니다 드래그 하면 한줄로 복사되요 컴파일 관련은 이전 글을 참고해 주세요 새롭게 class 가 하나 추가 됐습니다. Worker 인데요 사용된 기술은 boost::lo.. 2012. 9. 25. 오버라이드(Override)와 가상함수(Virtual Function) 오버라이드는 상속관계에서 함수 자신의 내부에서 관련 함수를 찾아서 동작하기 때문에 내부 함수가 있다면 부모쪽으로 넘어가지 않으니 자연히 자기가 가진 함수가 동작하게 된다 가상함수는 내부에서 결정하지 않고 포인터가 실제 가르키는 객체에서 동작을 하게 된다 설명이 조잡하지만, 예제를 보면 이해가 될테고 활용하는데 도움이 될 듯. 관련 내용 추천도서는 effective c++ 이다.. 뭐 지금은 이 바닥 교과서 처럼 된 듯 예제 #include "stdafx.h" #include #include #include class CItem { public: virtual void Run() const = 0; void IsA() { std::cout 2012. 9. 6. boost::asio 비동기 TCP 서버 / 클라 예제 boost asio 안내서에 있는 기본 예제를 응용하여 작성했으며 컴파일러 옵션은 /Mtd 로 해야 합니다. 클라이언트 부분의 const string 은 내 IP 로 수정해줘야 합니다. 기존에 올렸던 내용은 소스 링크가 깨져서 다시 올립니다 (많은 분들이 보러 오셨는데 ㅠㅠ 깨져있었을 줄이야..) 소스는 퍼가실 때 소스 부분을 더블클릭하면 아랫쪽에 작은 창이 뜨면서 ctrl+c 로 전체 카피가 가능합니다 클라 소스#include "stdafx.h" #include #include #include #include const std::string _MY_IP("192.168.25.2 2012. 9. 3. RPG 만들기 (23) 70 여마리의 캐릭터 오브젝트들이 대규모 전투를 하는 것을 꾸며봤습니다, 부하 테스트 겸 시험해 봤는데 애초에 필드 고 뭐고 LOD 전혀 안쓴 상태에 에디터 플레이인걸 감안한다 해도 썩 좋은 성능은 아닌 듯 58 프레임 정도가 나오네요 NPC 와 몬스터 오브젝트들의 전투... 흔히 나오는 디아블로3의 요세전 (물론 이건 AI 는 아니고 연출된 장면이지만) 이 나 블레이드 앤 소울의 세력들 다투고 있는 규모 보다는 조금 큰 정도? 안캠코더로 한번 해 봤는데 ㅠㅠ 아.. 철수형... 촬영 60 프레임은 해줘야지 한계가 30이 뭐야.. 엄청 끊기네 다음엔 다른거로 해야겠군요 2012. 8. 31. 블레이드 엔 소울 2012. 8. 31. RPG 만들기 (2012) 제작 준비 - 2011/12/23 - [프로그래밍/Unreal Engine 3] - UDK > 내 게임 만들기 UDK > 내 게임 만들기 플렛폼 스타일과 레이싱 스타일이 있는데 여기서는 플렛폼으로 http://udn.epicgames.com/Three/DevelopmentKitGemsPlatformerStarterKitKR.html 내 게임 한번 만들어 보는 것도 좋고, 거대한 개발팀이라면 프로.. neive.tistory.com - 2012/01/02 - [프로그래밍/Unreal Engine 3] - UDK > 내 게임 만들기 (2) UDK > 내 게임 만들기 (2) 1. UDK 설치 2. src 추가 Development\Src\MyMod\Classes 의 위치에 압축을 풀어 넣습니다.. 모처럼 UD.. 2012. 8. 31. RPG 만들기 - 마스터 페이지 - 제작 준비 - 2011/12/23 - [프로그래밍/Unreal Engine 3] - UDK > 내 게임 만들기 - 2012/01/02 - [프로그래밍/Unreal Engine 3] - UDK > 내 게임 만들기 (2) 타이틀 - 2012/08/10 - [프로그래밍/Unreal Engine 3] - 내 게임 만들기 (20) 케릭터 셀렉트 인게임 - 2012/08/10 - [프로그래밍/Unreal Engine 3] - 내 게임 만들기 (20) 레벨 - 2012/04/13 - [프로그래밍/Unreal Engine 3] - 레벨 스트리밍 (2) 마을 - 2012/08/10 - [프로그래밍/Unreal Engine 3] - 내 게임 만들기 (20) 필드 - 2012/08/10 - [프로그래밍/Unreal Engi.. 2012. 8. 31. StaticMesh Material 색상 변경 # MaterialInstance.uc // SetParent - Updates the parent. native function SetParent(MaterialInterface NewParent); // Set*ParameterValue - Updates the entry in ParameterValues for the named parameter, or adds a new entry. native function SetVectorParameterValue(name ParameterName, const out LinearColor Value); native function SetScalarParameterValue(name ParameterName, float Value); native functio.. 2012. 8. 27. 게임플레이 프로파일러 http://udn.epicgames.com/Three/GameplayProfilerKR.html http://udn.epicgames.com/Three/GameplayPerformanceOptimizationKR.html 콘솔명령 >> PROFILEGAME START 으로 실행 그러나 용량이 초당 기아급수적으로 커지므로 한 5~10초만 쓰기를 권장하네요. 콘솔명령 >> PROFILEGAME STOP 으로 중단 테스트 필드에서 아무것도 안할때의 프레임.. 120 정도네요 어검술 30개 쏜 후 프레임은 78.. 음? 뭐 때문이지? 프로파일러를 열어봅니다 \Binaries\GameplayProfiler.exe 를 실행시켜 Content 랑 같은 폴더에 Profiling 안의 *.gprof 를 실행시켜서 내용.. 2012. 8. 27. 이전 1 ··· 21 22 23 24 25 26 27 ··· 34 다음