게임 프로그래밍(C, C# ..)3 [유니티 서버 연결하기] City Chat Practice(with Photon Pun2)_1 : 로비 만들기 포톤 서버를 이용하여 간단한 음성 채팅 프로젝트를 하겠다. 오늘은 그 첫 시작으로 로비를 만들었다. 처음 오프닝 씬에서 이름을 입력하여 로비로 들어간다. 로비에서는 현재 로비에 있는 방 리스트를 볼 수 있다. 방 리스트에서 참여하고 싶은 방의 버튼을 클릭하면 해당 방에 참여할 수 있다. (*참여할 수 없는 방은 비활성화 되어 있다) 또는 자신이 원하는 방을 만들어 참여할 수 있다. 1. ScrollView의 Content 크기 조절하기 로비 씬에서 방 리스트는 ScrollView로 만들어졌다. 해당 부분에 방 리스트는 동적으로 생성되는데, 이에 맞추어 ScrollView 내부의 Content의 크기를 조절하고 싶었다. (Content는 ScrollView에서 해당 ScrollView가 보여줄 내용물들이 .. 2022. 9. 19. 게임 프레임워크 작성하기#2 - Screen Tearing(스크린 태어링), Double Buffering(더블 버퍼링) Screen Tearing 화면이 찢어지는 것처럼 보이는 현상 Screen Tearing이 일어나는 이유 첫번째, 현재 화면이 있는 와중에 다음 화면이 그려지고 있기 때문에. 이는 다음에 설명할 Double Buffering으로 해결할 수 있다. 두번째, 모니터의 주사율(1초에 얼마나 많은 화면을 보여주는가)과 GPU의 프레임이 맞지 않기 때문에. 둘의 싱크를 맞추면 해결이 될 수 있다. 이번에는 첫번째 이유의 해결책인 Double Buffering을 설명하겠다. Double Buffering 스크린 테어링을 방지하기 위한 일환으로, 결과가 나타나는 화면을 구성하는 버퍼를 하나 더 두어 나타내는 방법 더블 버퍼링 방법 현재 보여질 버퍼와 백버퍼를 두어서, 백버퍼에 보여질 화면을 미리 연산하여 그려두고, .. 2022. 5. 11. 게임 프레임워크 작성하기#1 - The Game Loop(게임 루프) The Game Loop 전체 게임 프로그램에서의 전반적인 흐름을 조절하는 것 게임 루프의 구조 게임 루프는 위에서 설명했던 것과 같이 게임의 전반적인 흐름을 통제한다. 때문에 위의 그림과 같이 게임이 시작하고 끝날 때까지 해당 과정을 무한반복한다. # Process Input (입력 처리) 사용자로부터 들어온 입력을 처리해준다. 다음 흐름에서 어떤 처리를 할지는 이 입력 처리에 달렸다. # Update (연산 처리) 입력 처리 단계에서 받은 입력을 갖고 연산을 진행한다. 실질적인 계산을 처리하는 곳인다. # Render (출력) 연산 처리 단계에서 나온 결과를 사용자에게 출력하여 보여준다. 위와 같은 처리가 순서대로 이루어져야 하기 때문에, 초기의 게임은 싱글 쓰레드로만 작업할 수 있었다. 하지만 다양.. 2022. 5. 11. 이전 1 다음