- 24년 회고 여러모로 바쁜 한 해를 보냈습니다! 이전까지는 공부도 하고, 약간 여유가 있던 상태였는데 정말 숨 가쁘게 달린 한 해였던 것 같고.많이 지치고 많이 힘들었습니다. 좋아해보려고 노력했고아직 좋아하는 건 아닌 것 같은데일단 노력은 계속 해보려고 합니다. (^^) 그래도 이제는 사이드 프로젝트도 병행해보려구요!최근에 바닐라 언리얼을 쓸 일이 생겼는데 정말 충격과 공포가 많았습니다.카메라 세팅은 어떻게 하는지, 프로젝트 빌드는 어떻게 하는지,패키징이 어떻게 되는지 정말 아무 것도. 모르더라구요. ㅎ.회사에서 배운 내용들은 아무래도 어디에 적기는 어렵습니다만! 아무튼 바닐라랑은 그래도 다르더라! 이제 어디가서 경력 6년차라고 말도 못 함 ㅋㅋ3년 전에, 첫 입사때 만났던 지인 분이 (당시 5년차 쯤이셨으니 이제는.. 2024.12.13
- 게임 프로그래밍 패턴 11장 ~ 13장 (22. 06. 09) 5주차 (22. 06. 09) 행동 패턴 게임 내 개체들이 해야 할 일을 알려주는 대본에 해당하는 행동behavior. Chapter11. 바이트 코드 가상 머신 명령어를 인코딩한 데이터로 행동을 표현할 수 있는 유연함을 제공. 성능과 안정성을 위해 C++ 같은 중량 언어heavyweight language를 사용. ⇒ 하드웨어 성능을 최대한 끌어낼 수 있는 저수준 표현과 버그를 막거나 적어도 가둬두기 위한 풍부한 타입 시스템을 함께 제공. 게임 출시 이후에도 업데이트를 통해서 버그를 고치거나 콘텐츠를 추가할 수 있어야 함. 전부 하드코딩되어있다면 변경사항이 있을 때마다 게임 실행 파일을 패치해야 한다. 심지어 모드mod를 지원해야 한다면? 유저가 게임에서 커스텀을 하고 싶다면? 게임을 빌드하기 위해 컴.. 2023.06.25
- Metal 스터디 8주차 (23.02.02) Interaction 게임의 실패 시나리오는 Player가 Paddle에서 공을 놓치고 공이 보드 뒤쪽이나 Paddle 뒤에서 튀는 경우이다. 또한 Player에게 3번의 기회를 준다. 먼저 lives 속성을 설정한다. var lives = 3 bounceBall에서는 공이 테두리의 상단과 하단에 대해 튕기는지 확인한다. func bounceBall() { ... if abs(ball.position.z) > gameArea.height / 2 { ballVelocity.z = -ballVelocity.z lives -= 1 if lives < 0 { print("GAME OVER - YOU LOST") } else { print("Lives: ", lives) } } ... } 볼 위치 Z를 확인한다... 2023.04.16
- Metal 스터디 7주차 (23.01.26) Introduction 게임 엔진에 대한 Metal Rendering 이후, 게임을 작성하는 방법에 대해 알아보자. Breakout* 게임을 따라 Raybreak라는 프로젝트를 만들어볼 것이다. Breakout (비디오 게임)은 1976년 아타리가 개발한 아케이드 게임. 간단한 게임이지만 대부분의 게임에서 사용하는 많은 원칙이 포함되어 있다. 새로운 Model이 있는 새로운 Scene을 만든다. 게임 경기장의 크기를 결정하고 모든 Model의 시작 위치를 계산한다. 그런 다음 Models bounding Box를 사용하여 2D에서 간단한 충돌 검사를 수행한다. (=모든 방향에서 모델의 높이와 너비를 알 수 있다.) 효과음과 음악을 게임에 추가하고 게임을 마무리하기 위해 승패 여부를 보여주는 두 번째 Sc.. 2023.02.11
- Metal 스터디 6주차 (23.01.19) Function Specialization 두 가지 다른 대안을 처리해야 하는 Fragment Shader에 문제가 있다. Model의 Texture에 UV 좌표가 있는 경우 Rendering에 Texture 색상을 사용한다. 그렇지 않은 경우 Material 색상을 사용한다. 예시는 단순한 상황이고, 대부분의 Model에는 Bump Map, Ambiens Occlusion 및 Spercularity에 대해 4개 또는 5개의 서로 다른 Texutre가 존재하기도 한다. Model은 사용 가능한 Texture 중 일부를 사용할 수 있지만 모든 Texture가 동일한 Texture를 사용하지는 않는다. 조건 분기와 GPU Shader 함수는 비용이 크므로 배제한다면, 함수 전문화Function Special.. 2023.02.06