본문 바로가기

분류 전체보기86

Node.js와 Socket.io를 이용한 멀티플레이 탄막피하기 게임 개발기 (2) | 21-05-10 지난 글 [프로젝트/학교 수업] - Node.js와 Socket.io를 이용한 멀티플레이 탄막피하기 게임 개발기 (1) | 21-05-06 다음 글 [프로젝트/학교 수업] - Node.js와 Socket.io를 이용한 멀티플레이 탄막피하기 게임 개발기 (3) 개발 상황 이전 진행상황은 클라이언트가 게임에 접속한 뒤, 키보드 방향키를 통해 공을 움직이면 그 공이 socket.io서버를 통해 연동이 되어 실시간으로 플레이어의 위치가 전송되는 것 까지 개발했다. 학기중이라 바빠서 이것만 할 수는 없어 진행이 조금 느리다. 현재까지 변경된 점은 크게 세 가지 이다. 첫째, 적들의 생성 둘째, 적들의 이동 셋째, 적들과의 충돌판정 변경된점에 맞춰 코드를 올리고 코드 분석을 해 보려 한다. 마찬가지로 짧은 기간동안.. 2021. 5. 10.
Node.js와 Socket.io를 이용한 멀티플레이 탄막피하기 게임 개발기 (1) | 21-05-06 개발 동기 이번 학기에 외국인 교수님의 수업을 듣고있는데, 이 수업에서 협업 방법, OOA, OOD 설계 방법과 디자인 패턴들을 배우면서 실제로 적용해보는 팀 프로젝트를 하고있다. 프로젝트는 어떤 만들고싶은 게임을 하나 정해서 제안서를 작성하고, OOA, OOD를 설계 한 뒤, 설계된 구조에 맞춰서 개발을 하는 것이다. 프로젝트를 하면서, 몇 주 간격으로 Milestone을 진행하고, 한 주 간격으로 Sprint를 진행하면서 개발 상황을 계속해서 브리핑을 해야한다. 중간고사가 끝나고, 이제 실제로 개발할 단계가 되어서, 개발기와 함께 개발 과정을 작성해보려 한다. 게임에 사용되는 툴은 자유롭게 선택하면 되고, 다만 Client-Sever Architecture는 필수로 들어가야 한다. 먼저, 우리 팀은 .. 2021. 5. 6.
운영체제 || 10. Process Scheduling III 1. Real Time System a) Hard real time system > 어떤 task가 주어진 시간안에 반드시 완료되어야 함 > 자동차 에어백, 자율주행 등등 b) Sort real time system > 데드라인이 중요하긴 하나 못맞춰도 기능적 문제는 없음 > 실시간 스트리밍, 온라인게임같은거 > RealTime CPU scheduling은? > Preemption이 가능한 우선순위 기반으로 스케쥴링함 > 왜냐면 non-preemptive 알고리즘을 채용하게 되면 데드라인을 만족하기 어렵기 때문 + Real Time에서는 Task(Process)가 주기적임을 가정함 t는 한번 수행시 t만큼의 시간이 걸리는 것 d는 데드라인 p는 주기 2. RMS - Rate Monotonic Schedu.. 2021. 4. 17.
운영체제 || 9. Process Scheduling II 1. Priority Scheduling > 우선순위를 어떻게 할당하냐에 의해 알고리즘이 달라짐. > preemptive, non-preemptive 둘 다 디자인 가능 > 이 우선순위 알고리즘에 몇가지 문제가 존재함 a) Starvation 문제 >> 높은 우선순위가 계속 들어오게되면 낮은 우선순위를 가진 프로세스는 실행되지 못함 >> 해결방법으로는 ready queue에 있는 시간이 길어지면 일시적으로 우선순위를 높여주는 방법이 있음 b) Priority inversion problem >> 우선순위 역전 문제 >> 순위 높은순으로 진행해야하는데, 경우에따라 낮은 프로세스가 먼저 실행될 때가 있음. >> 가장 유명한 예시로 PathFinder > Low 프로세스에서 LOCK을 걸어서 HIGH 프로세스.. 2021. 4. 17.
운영체제 || 8. Process Scheduling I 1. What is Process Scheduling? > 각 프로세스들은 각자 주소 공간을 가지고 있음 > 멀티 프로세스 환경에서는 각 코어가 각각의 프로세스 코드를 실행함. >> 그렇다면 단일 프로세스인 경우에는?? >> 각 프로세스의 실행을 CPU가 번갈아가면서 작업함. >> 1번 프로세스 조금 2번 프로세스 조금 3번 프로세스 조금 이런식으로 스위칭 >> 그럼 이 순서는 누가 정하냐? >> 당연히 OS가 정하게 됨 OS에서 어떤 프로세스가 실행 될지 정해줌 프로세스 스케쥴링의 목표는 CPU 리소스에 대해서 여러 프로세스들을 가능한 빠르게 교체하는 것. 즉 프로세스간 스위칭을 굉장히 빠르게 하는 것. 스케쥴링 하는 방법을 말하기 전에, 프로세스들의 타입에 대해 설명하려 함. A) CPU-bounde.. 2021. 4. 17.