일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- stl
- 유니크포인터
- multi-core
- vector
- 복사생성자
- random access
- 쓰레드
- MultiCore
- 메모리관리
- observer pattern
- 옵저버
- c++
- material
- 게임공학과
- 한국산업기술대학교
- 옵저버 패턴
- 멀티코어 프로그래밍
- Unreal
- 디자인패턴
- 스마트포인터
- 멀티쓰레드
- 멀티코어
- 프레임워크
- Atomic
- Multithread
- C
- sequential
- Design Pattern
- EFFECTIVE C++
- thread
- Today
- Total
목록분류 전체보기 (57)
태크놀로지
Video : youtu.be/M9ERuROgYPcyoutu.be/Xl8mGCnr3xw Git : https://gitlab.com/aldald1318/cache_cache Projects · Lim Won Taek / cache_cache Indi game named by "Cache-Cache" hide & seek application develop project gitlab.com 자세한내용은 포트폴리오에 서술되어있습니다.
게임소개 Video : www.youtube.com/watch?v=PKQpKVNl_Ew Git : gitlab.com/minjoooo/war_of_nemo Projects · minjoo kim / War_of_Nemo NetworkGameProgramming 한국산업기술대학교 게임공학과(네트워크 게임프로그래밍 텀프로젝트) TCP/IP 멀티쓰레드를 사용한 유저간 통신게임 개발 (2d 4인용 멀티게임) gitlab.com 개발환경 DirectX 2D C++ Window Socket API 개발목적 3인 대전 멀티플레이 게임 개발 멀티쓰레드 활용 능력 배양 서버/클라이언트 동기화 기법 습득 개발인원 3인개발 담당 역할 클라이언트 개발 DirectX 2D를 사용하여 프레임워크 및 컨텐츠 구현 클라이언트 네트워..
Git ReadMe gitlab.com/aldald1318/smartphone_gp Projects · Lim Won Taek / SmartPhone_GP 한국산업기술대학교 게임공학과(스마트폰 게임프로그래밍) gitlab.com 개발환경 Android Studio Java 게임소개 가위바위보로 몬스터를 무찌르는 아케이드 게임입니다. 가위바위보 원정대 게임을 모티브로 개발하였습니다. youtu.be/XAzMY0QeKfo 프로젝트 분석 및 플레이 영상 프레임워크 구현 메인 게임로직 구현 명령 버튼에 따라 게임오브젝트 상태변경 상태에 따른 변경사항(애니메이션 상호작용) 적들의 커맨드큐 구현 씬전환시 라이프사이클에 맞게 게임 오브젝트 생성 및 삭제 UI 버튼 콜백함수 기능 구현 기술적요소 게임의 주요 컨텐츠인 ..
Ranking System 프로젝트 소개 및 구현내용 1-taek-gameprogramming.tistory.com/38 [C++/STL] Ranking System 소개 및 구현 프로젝트 소개 프로젝트 내용: 플레이어 랭킹 관리 프로그램 작성 프로그램 요구사항 STL Container, Iterator, Algorithm을 사용한다. 플레이어는 다른 플레이어와 구분되는 고유ID를 갖는다. 플레이어는 1-taek-gameprogramming.tistory.com 프로젝트 분석 ▶ 시퀀스 컨테이너 vs 연관 컨테이너 프로젝트의 주요 기능은 검색기능입니다. 연관컨테이너는 이진탐색트리구조로 되어 검색 기능의 특화되어있습니다. 시퀀스 컨테이너는 정렬된상태라면 이진탐색이 가능하여 빠른 검색이 가능합니다. 검색기능..
프로젝트 소개 프로젝트 내용: 플레이어 랭킹 관리 프로그램 작성 프로그램 요구사항 STL Container, Iterator, Algorithm을 사용한다. 플레이어는 다른 플레이어와 구분되는 고유ID를 갖는다. 플레이어는 챔피언스리그 / 떼탈출에서 얻은 점수를 멤버변수로 갖는다. 초기화 100,000 명의 플레이어를 생성한다. 랜덤엔진을 사용하여 플레이어의 점수를 생성한다. 게임진행 - 한 번 진행할 때마다 게임 한 시즌이 끝났다고 가정한다. 전체 100,000 플레이어 중 임의의 50,000 명의 플레이어가 떼탈출을 플레이한다. 또 다른 임의의 50,000 명의 플레이어가 챔피언스리그를 플레이한다. 떼탈출에서 획득한 점수는 0~2,905,887,026점 사이의 정규분포값을 갖도록 설정한다. 챔피언스리..
메모리 일관성 지금까지의 프로그램은 공유메모리에 대한 접근(쓰기/읽기)는 Atomic 하다고 가정하고 있습니다. 하지만 PC에서의 메모리 접근은 Atomic이 아닙니다. 메모리에 쓴 순서대로 메모리가 수정되지 않습니다. 매우 낮은 확률로 atomic하지 않게 나옵니다. -> 정확히는 메모리에 쓴 순서대로 메모리의 내용이 관측되지 않음. ※ Atomic : 메모리의 접근이 순간적으로 행해지며, 서로 겹쳐지지 않고(메모리상에 읽거나 쓸때 서로 겹쳐지지 않음) 정해진 순서로 발생하며 모든 쓰레드에서 같은 순를 보인다. 피터슨 알고리즘 / 빵집 알고리즘의 문제점 컴파일러는 문제가 없다. (volatile과 디스어셈블리코드를 살펴봤을때 문제없음) 쓰고 읽는데, 옆에 쓰레드가 쓰기전에 값을 읽음 정말 Atomic하..
베이커리 알고리즘 이론 & 원리 en.wikipedia.org/wiki/Lamport%27s_bakery_algorithm Lamport's bakery algorithm - Wikipedia Lamport's bakery algorithm is a computer algorithm devised by computer scientist Leslie Lamport, as part of his long study of the formal correctness of concurrent systems, which is intended to improve the safety in the usage of shared resources among multi en.wikipedia.org 위를 참고해서 베이커리 알고리..
멀티쓰레드 프로그램 작성시 주의점 컴파일러 CPU 상호배제의 구현 메모리 일관성 문제 상호배제 멀티쓰레드 프로그램에서의 문제는 하나의 자원을 여러 쓰레드에서 동시에 사용해서 생기는 경우가 대부분이다. 해결책은 상호배제 임계영역 Critical Section 프로그램중 상호배제로 보호받고 있는 구간 오직 하나의 쓰레드만 실행할 수 있음 임계영역 구현 - lock & unlock을 사용해서 lock과 unlock 사이에 임계영역을 둔다. lock & unlock의 문제점 병렬성이 없다. 호출하는데 오버헤드가 크다. (cpu를 많이 잡아먹음) 그럼 lock과 unlock을 어떻게 구현해야하나? 공유 메모리를 통해서 구현 피커슨, 데커, 빵집 알고리즘 -> lock을 시스템 콜로 하는게 아니라 알고리즘으로 구현..