- Waving Plane (23.02.16) Step1. Plane 제작Quad 그리기로 했었던 Metal 강의 자료 + IndexedDrawing 함수를 사용해서 Plane을 그렸다.그리고 임시로 Sin함수만 적용했더니 … ..!잘못됨근데 움직이는 건 묘하게 Sin파같아서 생각해봤는데 Vertex Shader니까 Vertex한테 영향을 주는건데 영향을 줄 점이 단 4개뿐이라는 생각이 들었다.그런 의미로 Plane 대용으로 찾을 Model을 보다가 기존에 게임에 썼던 공 모델을 가져와서 눌러서 폈다. 그리고 다시 수식 적용!Step2. 수식 적용 일반 Sin 함수의 모양은 위와 같다. 그리고 지수 함수의 모양은 위와 같다.가운데는 가장 진폭이 크고, 바깥으로 갈수록 진폭이 작아지는 형태이니 이 두 함수를 합쳐서 Waving Plane을 만들어.. 2025.02.15
- 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