본문 바로가기
반응형

개발/게임) 개발관련168

환경설정) 소스트리 프로젝트 설정 소스트리 프로젝트 설정 소스트리를 다운 받는다. URL : https://www.sourcetreeapp.com/ Sourcetree | Free Git GUI for Mac and Windows A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac. www.sourcetreeapp.com 실행하고 프로젝트에 대한 설정을 해야하는데 프로젝트의 로그인 방법을 SSH Key로 셋팅을 하려고 한다. [도구]-[옵션]을 들어간다. [옵션]-[일반]의 SSH 클라이언트 설정에서 OpenSSH로 설정을 하고 SSH키를 등록한다. 기본적으로 등록되어있는 SS.. 2019. 11. 16.
환경셋팅) 소스트리(SourceTree) 설치하기 소스 트리(SourceTree) 설치하기 소스트리란 Atlassian에서 개발한 Git을 GUI로 사용자가 쉽게 코드에 대한 병합 및 관리를 가능하게 해주는 툴로 무료이다. Git과 연동이 가능하고 Window와 Mac을 지원한다. Download URL : https://www.sourcetreeapp.com/ Sourcetree | Free Git GUI for Mac and Windows A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac. www.sourcetreeapp.com 설치 페이지에서 환경에 맞게 다운로드해준다. 라이선스를 동의.. 2019. 11. 13.
Tip) VScode 정의로 이동이 안되는경우(NETFramework,Version=vX.X.X) VScode 정의로 이동이 안 되는 경우 (NETFramework, Version=vX.X.X) NETFramework, Version=vX.X.X" 프레임워크에 대한 참조 어셈블리를 찾을 수 없습니다. 라는 오류로 정의로의 이동이 안 되는 경우가 있다. 이럴 때 참조 어셈블리가 안 맞아서 그렇다. 오류에서 나오듯이 Net FrameWork를 호환성이 맞는 버전으로 설치하면 된다. Download URL :https://dotnet.microsoft.com/download/archives Download archives | .NET Download archives for all versions of .NET - past and present. Get downloads for all versions of .. 2019. 11. 13.
게임개발) FPS( Frame Per Second) FPS (Frame per Second) 1초에 발생하는 프레임 개수를 의미하는 표현이다. 정지된 사진 사진을 '프레임'이라고 표현하고 연속적으로 1초당 14 프레임 이상 되면 사람은 일반적으로 움직임(동작)으로 인식할 수 있다. 여러 장면을 순차적으로 보여주는 과정을 하게 되면 움직인다라고 생각하게 된다. 이 단위 자체를 '프레임'이라고 하고 프레임이 높으면 높을수록 부드러운 움직임(동작)을 표현할 수 있다. 높은 FPS일수록 동작이 세부적으로 표현이 가능하다. (고 품질 고 퀄리티) 게임 개발하는 과정에서도 FPS를 기본적으로 측정하면서 개발하게 된다. 1초당 화면에 그려지는 횟수를 계산하면 된다. 프레임 = 1초당 그려지는횟수 게임에서는 기본 30 프레를 최저 프레임으로 본다. 30 프레임 이하로 .. 2019. 11. 13.
잡학지식) 버튼 액션 - QTE (Quick Time Event) 버튼 액션 - QTE (Quick Time Event) Quick Time Event의 약자로 버튼 액션이라고도 불리운다. 게임 중간에 화면에 특정 버튼을 누르라는 표시가 뜨고 버튼을 제 시간 안에 눌러줘야 하는 요소를 말한다. 보통 버튼을 제대로 누르지 못하면 좋지 않은 결과가 나온다. 극단적인 경우는 게임 오버로 이어지는 경우도 있고 바로 앞 부분부터 다시 시작되는 경우도 있다. 대부분 콘솔게임기기에서 타이밍을 기반으로 특정액션을 처리하는 방식에서 많이사용되고 게임을 좀더 몰입감있게 즐길수있게하는 방식이다. QTE 방식은 특정 타이밍을 맞춰야 하기 때문에 스트레스적인 요소로 받아드리기도 한다. 이런 비판들 때문인지 초창기의 QTE에 비해 최근 게임들의 QTE는 난이도도 낮아진 편이고 실패 페널티도 그.. 2019. 11. 12.
게임코드) 원 운동(등속) 원 운동(등속) x = Math.cos( angle ) * 반지름 y = Math.sin( angle ) * 반지름 float posX = (Mathf.Cos(radius) * HalfDiameter); float posY = (Mathf.Sin(radius) * HalfDiameter); return Vecter3( posX, posY, 0f) ★★☆☆☆ 2019. 11. 8.
게임개발) 프레임드랍(frame drop) 프레임 드랍(frame drop) 특정순간 에 i / o 입력이나 리소스 로드나 연산처리 등으로 평균 프레임 이하로 떨어져서 끊기는듯한 현상을 프레임 드롭 현상이라고 한다. ​ 프레임드랍을 방지하기 위해서는 다양한 기법들이 존재하는데 자주 사용하는 리소스는 미리 로드 ( preload )를 하거나 오브젝트 풀(object pool)로 작업을 하던가 연산을 줄일 수 있도록 하는 방법, 그래픽 품질 변경, 불필요한 설정 제거 등등 특정 순간에 많은 부하가 쏠리지 않도록 설계해야 한다. 퍼포먼스 확인하는 과정에서 가장 기본이 되는 항목이다. 틈틈히 확인하도록 하자. ★★★★☆ 2019. 11. 4.
게임개발) 코드 리뷰 코드 리뷰 코드 리뷰는 코드를 병합하기 전 단계에서 해당 코드에 대한 검증 및 절차과정으로 작업하는 작업자들의 동의를 얻고 코드를 병합하는 과정을 말한다. 코드 리뷰를 함으로써 이점은 다음과 같다. 버그를 미리 발견 기존 코드와의 적합성 및 스타일 유지 회피 코드의 공유 더 좋은 로직으로 리팩토링할수 있는 여지 재사용성 코드 리뷰의 방법은 여러가지가 있는데 대체적으로 리뷰를 하고자하는 사람이 요청을 하면 회의실을 잡고 실제 코드를 보면서 리뷰어가 설명을 하고 토론을 하고 결정을 하는 형태로 많이 진행을 한다. 리뷰를 하면 좋은 점도 있지만 단점도 있다. 리뷰하는 시간이 들고 리뷰에 대한 준비를 하는 과정이 필수로 동반된다. 그래서 리뷰는 간결하고 서로 스타일에 대한 차이나 현 상황에 대한 포옹력이 기반이.. 2019. 10. 22.
게임개발) 메모이제이션(Memoization) 메모이제이션(Memoization) 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술이다. 동적 계획법의 핵심이 되는 기술이다. 예시로 애니메이션을 처리하는 로직이다. 처음 시작할 때m_strAnimationClipName 에 데이터를 한번 세팅한다. 그 이후에는 해당 로직을 처리하지 않고 값을 가지고 와서 처리를 한다. 단순하게 이런 식으로 이전에 계산한 값을 메모리에 저장해서 반복적으로 수행되는 로직의 실행 속도를 빠르게 하는 것을 말한다. if (null != this.m_Animation) { if (null == this.m_strAnimationClipName) { this.m.. 2019. 10. 17.
게임개발) 레거시 코드(Legacy Code) 레거시코드(Legacy Code) 개발자라면 누구나 필연적으로 다른 사람의 코드를 접하게 된다. 1인 개발자의 특수한 경우를 제외하고는 협업을 하게 된다. 협업을 하는 과정에서 종종 난감한 상황이 벌어진다. 이는 흔히 전문 용어로 '똥 싸놨다.'라고 표현한다. 코드의 가독성이 떨어지거나, 코드의 규약이 없는 경우, 코드의 결합도가 높은 경우, 시간이 없어서 땜빵 코드를 작성한 경우, 이런 여러 가지 원인들로 인해서 화석처럼 굳어진 코드를 흔히 '레거시 코드'라고 표현한다. 레거시 코드는 마이클 패더스의 Working Effectively with legacy code라는 글에 이렇게 정의되어있다. "The main thing that distinguishes legacy code from non-lega.. 2019. 10. 14.
게임개발) 사이드 이펙트 (Side Effect) 사이드 이펙트 (Side Effect) 사이드 이펙트란 사전적의미로는 '원래의 목적과 다르게 다른 효과 또는 부작용' 이라는 상태를 말하는 표현이다. 개발 과정에서도 사이드 이펙트라는 표현을 굉장히 많이 사용한다. 이는 작업 코드가 눈에 보이지 않고 논리적으로 예측을 해야하는 과정에서 많이 일어나기 때문이다. 사이드 이펙트는 개발 영역에서는 버그(Bug)로 치부되기도 한다. 구현하고자하는 형태의 기능이 동작이 되지 않고 어떠한 다른 요인으로 인해서 동작을 못하거나 값이 다른 여러가지 상황을 통상적으로 사이드 이펙트라고 표현한다. 사이드 이펙트를 줄이기 위해서는 예측이 가능한 환경을 만드는 것이 중요하다. 독립성, 약한 의존성, 명시적, 접근제한자, 기능의 분리 등등 으로 사이드 이펙트를 줄이면 안정성을 .. 2019. 10. 14.
게임개발) 스파게티 코드 스파게티 코드 스파게티 코드라는 표현은 일종의 관계가 얽히고 섥힌 코드들을 UML으로 작성했을때 관계나 참조 및 기능의 결합이 스파게티 면과 비슷한 형태를 취하는 것을 표현한 용어로 한개의 클래스가 여러가지의 기능을 하게되면서 여러가지 참조 및 관계가 붙은 경우가 대체적이다. 스파게티 코드라고 표현하는 기준은 사람마드 틀린데. 규정짓기는 힘들지만 대체적으로 다음과 같다. 읽기 어려운 난해한 코드 프로그램의 논리, 흐름이 복잡하게 꼬여 있는 소스 코드 정상 기능 작동은 되지만 조금만 수정해도 많은 버그가 생기는 코드, 여러 함수/메소드들이 지나치게 서로서로를 의존하면서 얽혀있는 코드, 고전 스타일로 되어있는 길게 나열된 소스코드도 포함된다. 응집도와 결합도를 줄여야 한다. ★☆☆☆☆ 2019. 10. 12.
게임개발) MVP(Minimum Viable Product) MVP(Minimum Viable Product) 프로토 타입과 비슷한 의미로 MVP 최소기능 제품이라는 단어도 개발하면서 많이 사용한다. MVP 빌드는 프로토타입보다는 조금더 앞에서 사용하는 용어이다. MVP(최소 기능 제품)과 프로토타입과의 차이는 MVP는 최소한의 기능이 포함된 상태를 말하는 것이고, 프로토타입은 개발과정중 기능개발의 마지막단계에서 나오는 결과물을 이야기한다. ★☆☆☆☆ 2019. 10. 10.
게임개발) 프로토 타입 프로토 타입(Prototype) 게임 개발을 하면 어느정도의 개발이 진척이되면 중간 빌드를 뽑는다. 기본적으로 필요한 주가되는 기능이 포함된 빌드를 프로토 타입(Prototype) 이라고 한다. 프로토타입이라는 원래 뜻은 원초적 형태라는 뜻의 그리스어 낱말 πρωτότυπον (프로토타이폰)에서 왔다. 이는 원초적이라는 뜻의 πρωτότυπος (프로토타이포스)의 중간음에서 온 것으로, 더 들어가서 "최초의"라는 뜻의 πρῶτος(프로토스)와 "인상"이라는 뜻의 τύπος(타이포스)에서 비롯된 것이다. 프로토 타입에서는 최소한의 기능을 확인할수 있는 정도이기 때문에 개발을 진행하면서 1차적인 목표 or 방향성에 대해 고민을 하기 위한 절차로써 많이 활용된다. 의사결정에 많은 영향을 줄수 있는 가장 초반이.. 2019. 10. 10.
게임개발) 코드 프리징 (Code Freezing) 코드 프리징 (Code Freezing) 코드 프리징이라는 단어는 '코드를 더 이상 수정하지 않는 상황'을 통칭해서 표현하는 단어인데 개발의 관점에서 제품을 만들면서 마무리하는 작업에서 기타 여러가지 외부요인에도 대응하기 위한 방식중 하나로써, 중간에 어떠한 추가 개발이나 추가 수정을 하지 않는 것을 말한다. 본인은 게임프로그래머여서 풀스택개발에 가깝게 일을 하고있다. 그렇다 보니 기획데이터라던지, 리소스 데이터, 아트관련 데이터, 추가 이슈 수정들을 굉장히 많이 했었다. 그럴때마다 이거 언제까지 수정할순 없는데 ... 라는 생각을 하곤 했었다. 그래서 찾아보고 하다보니 '코드프리징'이라는 업무 방식이 있었다. 이걸 제안하고 도입해보니 최소한의 빌드의 종료시점과 형상관리가 어느정도는 되었다. 다만. 대형.. 2019. 10. 8.
반응형