본문 바로가기
반응형

개발779

게임개발) 프로토 타입 프로토 타입(Prototype) 게임 개발을 하면 어느정도의 개발이 진척이되면 중간 빌드를 뽑는다. 기본적으로 필요한 주가되는 기능이 포함된 빌드를 프로토 타입(Prototype) 이라고 한다. 프로토타입이라는 원래 뜻은 원초적 형태라는 뜻의 그리스어 낱말 πρωτότυπον (프로토타이폰)에서 왔다. 이는 원초적이라는 뜻의 πρωτότυπος (프로토타이포스)의 중간음에서 온 것으로, 더 들어가서 "최초의"라는 뜻의 πρῶτος(프로토스)와 "인상"이라는 뜻의 τύπος(타이포스)에서 비롯된 것이다. 프로토 타입에서는 최소한의 기능을 확인할수 있는 정도이기 때문에 개발을 진행하면서 1차적인 목표 or 방향성에 대해 고민을 하기 위한 절차로써 많이 활용된다. 의사결정에 많은 영향을 줄수 있는 가장 초반이.. 2019. 10. 10.
디자인패턴) MVC 패턴 MVC 패턴 (Model-View-Controller ) 의존성을 줄이는 코딩을 통해 재사용성을 높이고 수많은 요구사항 변경에 쉽게 대처하도록 만드는 패턴이다. 뷰와 컨트롤러의 부분만 수정을 하면 되기 때문이다. MVC 패턴은 기능적으로 구조를 분해하여 집중 및 관리하기가 편해진다는 장점이 있어 많이 애용하는 패턴이다. 다만. 경계가 모호한 경우가 종종 존재한다. MVC의 구조는 다음과 같다. 사용자는 View 를 통해 이벤트를 변경 - > 컨트롤러에 요청 -> 이벤트를 구분 및 변경해서 모델에게 전송-> 데이터를 재구성 및 변경 -> View를 통해 사용자에게 전달 Model은 Data의 원본 및 가공한 데이터를 구분해서 가지고 있으며 Controller에게 캡슐화된 데이터를 전송 Controller는.. 2019. 10. 8.
게임개발) 코드 프리징 (Code Freezing) 코드 프리징 (Code Freezing) 코드 프리징이라는 단어는 '코드를 더 이상 수정하지 않는 상황'을 통칭해서 표현하는 단어인데 개발의 관점에서 제품을 만들면서 마무리하는 작업에서 기타 여러가지 외부요인에도 대응하기 위한 방식중 하나로써, 중간에 어떠한 추가 개발이나 추가 수정을 하지 않는 것을 말한다. 본인은 게임프로그래머여서 풀스택개발에 가깝게 일을 하고있다. 그렇다 보니 기획데이터라던지, 리소스 데이터, 아트관련 데이터, 추가 이슈 수정들을 굉장히 많이 했었다. 그럴때마다 이거 언제까지 수정할순 없는데 ... 라는 생각을 하곤 했었다. 그래서 찾아보고 하다보니 '코드프리징'이라는 업무 방식이 있었다. 이걸 제안하고 도입해보니 최소한의 빌드의 종료시점과 형상관리가 어느정도는 되었다. 다만. 대형.. 2019. 10. 8.
개발환경) Cocos Creator + VSCode Cocos Creator + VSCode 설치 Cocos Creator URL: https://cocos2d-x.org/download Download Cocos2d-x, Cocos Creator and Cocos | Cocos2d-x cocos2d-x.org VSCode Download URL :https://code.visualstudio.com/ Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and av.. 2019. 9. 30.
잡학지식) 관계연산 == 과 ===의 차이 관계연산 == 과 ===의 차이 관계연산 ==과 ===를 구분해서 사용하는 경우가 종종 있다. 그래서 기본적으로는 어떤건지는 알고 작업에 임하는것이 좋을꺼라는 개인적인 생각에 의거해서 작성하게 된 글입니다. ==의 명칭은 (Equal Operator)이고 ===는 (Strict Equal Operator)라고 합니다. strict는 엄격한 이라는 의미로 좀더 엄격하게 같은지를 보는 연산자라고 생각하시면 됩니다. =는 만약 a=b이라고 했을때, b를 a에 대입해서 a가 b이라고 약속하는 것이라고 합니다. ==는 먄약 a==b이라고 했을때, a가 b과 '값'이 같은지를 판단해서 맞으면 true, 틀리면 false라고 합니다. ===는 만약 a===b이라고 했을대, a가 b과 '값'과 '타입/형식?'이 정확하.. 2019. 9. 26.
자료) 개발자 역량측정 메트릭( 프로그래밍 ) 개발자 역량 측정 메트릭 저번에 이어서 가장 많은 항목이 있는 프로그래밍에 대해서 정리한 내용이다. ★프로그래밍 프로그램 분해 긴 코드로 Copy & Paste 한다. 함수로 나눠서 코딩한다. 재사용 가능한 객체 코드로 작성한다. 디자인 패턴을 적용가능하고 모듈화에 대해 고민하며 작성한다. 적절한 알고리듬 제네릭/OOP 방법으로 써서 변경이 있을 부분을 고려하며 캡슐화 하면서 코딩한다. 시스템 분해 파일 클래스, 클래스 1개 이상 범위밖에 생각하지 못한다. 같은 플랫폼, 같은 범위내에서는 문제를 분리해서 설계한다. 복수개의 기술과 시스템에 걸쳐 있는 문제에 대한 솔루션을 만들어낸다. 복잡한 다수개의 제품을 가시화하여 재 설계하고 , 외부 시스템 및 예외 운영에 대해서 설계할수 잇다. 의사 소통 아이디어와.. 2019. 8. 20.
잡학지식) 기믹요소(Gimmick) 기믹요소(Gimick) 마케팅에서 주로 사용하는 용어로 '제품에 관심을 끌기 위해서 사용하는 독특한 수법이나 특징'을 의미한다. 일반적으로는 기믹은 '독특함을 위한 독특함'을 이르는 것이며, 사기, 속임수, 트릭이라는 뜻을 내포하며 기믹이다라고 하는 경우에는 긍적적인 효과보다는 부정적인 효과로써 접하게 되는 것이 대다수이다. 게임에서도 '기믹'요소를 사용하는 경우가 많다. 진행하기에 방해하는 요소들 맵의 특수성이라던지 블럭이라던지 꼬아놓은 트릭이라던지 이런 요소들이 플레이어를 괴롭힌다. 게임이라는 것은 너무 쉬워도 재미가 떨어지고 너무 어려워도 재미가 떨어지는 그 경계선으로 밸런스를 잘 짜여져야 도전의식도 생기고 도전을 해서 클리어했을때의 성취감도 생기게 된다. ★☆☆☆☆ 2019. 8. 20.
자료) 개발자 역량측정 메트릭( 전산학 이해, 소프트웨어 엔지니어링) 개발자 역량 측정 메트릭 예전에 웹 서핑 도중에서 발견한 내용으로 개발자의 역량을 측정할 수 있는 메트릭이라는 것을 봤었다가 한번 정리했던 기억이 있었다. 그걸 다시한번더 정리한 내용이다. 서브 항목은 Level의 개념으로 생각하면 된다. ★전산학의 이해 자료 구조 Array 와 Linked List의 차이를 모른다. 실제 프로그래밍 환경에서 Array와 Linked List와 Dictionary의 차이를 설명할 수 있다. Array와 Linked List의 시간과 Hash의 Collision 처리를 할 수 있다. B-Tree, 이진트리, 피보나치힙, 고급 스트럭처에 대해 이해하고 있다. 알고리즘 Array의 값의 평균을 구하는 방법을 모른다. Sorting, Searching, Traversing 알고.. 2019. 8. 11.
자료구조) 리스트 (List) 리스트 (List) 리스트는 데이터를 순차적으로 저장하는 단순한 자료구조이다. 구조가 단순하면서도 일반적으로 많이 사용한다. 링크드 리스트 (Linked List) 링크드 리스트는 노드(Node)들이 구성되어있는 형태인데 각 노드들은 다음 노드의 주소번지를 가지고 있다. 첫 시작 노드를(Head)라고 하며, 맨 마지막 노드를(Tail)이라고 한다. 링크드 리스트는 순차적인 데이터를 저장하는 것에는 편리하지만 데이터를 중간노드 사이에 넣기에는 매우 어려운 구조가 된다. Tail에서 데이터를 추가해야하기 때문이다. 더블 링크드 리스트(Double Linked List) 링크드 리스트는 헤드부터 테일까지 탐색해야하는 단방향 구조였지만 더블 링크드 리스트는 각 Node가 이전노드주소와, 다음 노드 주소를 같이 .. 2019. 8. 4.
자료구조) 큐(Queue) 큐(Queue) 큐는 스택과는 다르게 (FIFO - First in First Out) 선입선출 구조이다. 가장 처음 입력된 데이터 위치를 'Front' 가장 마지막(최근에) 입력된 데이터 위치를 'Rear' 큐에서 데이터 삽입 'Insert' 큐에서 데이터 삭제 'Remove' 큐에서 데이터 읽기 'Peek' 배열로 큐를 구현할 경우 배열의 크기를 초과하면 문제가 발생한다. 큐는 전반적으로 모든 곳에서 사용된다. -버퍼(Buffer) -우선순위가 있는 모든 곳 큐의 종류에는 여러가지 형태가 있는데. 기본 큐의 단점을 보완한 다른 형태의 여러 큐도 존재한다. 환형큐(Circular Queue) -큐의 순서가 순환이되도록 만든 것 데큐(Deque) -큐의 입력(Front) 출력(Rear)을 앞뒤에서 가능하.. 2019. 8. 3.
개인생각)좋은 기획자란..? 좋은 기획자란..? 좋은 기획자라는 의문에 대한 글이 있어서 추가 및 나의 개인적인 생각을 공유하고자 한다. 1. 기획의 의도와 목표를 명확히 설정하고 설명할것. 기획이 중간에 변경,획장되더라도 방향을 잃지 않게 기둥 및 중심이 되어야 합니다. 2. 개발에 할당받은 자원을 고려하여 충분히 소화할 수 있는 볼륨으로 기획 할것. 현 상황에서 팀이 소화할 수 없는 기능 및 리소스로 작업을 진행을 하려고하면 업무의 병목현상 및 일정의 딜레이등 여러가지 좋지 않는 상황을 불러 올 수 있습니다. 실무자와 사전에 충분히 협의가 필요합니다. 3. 시스템 기능과 리소스가 명확히 무엇이 어떻게 구현되고 어떤 형태로 제작이되길 원하는지 결과물을 최대한 구체적이게 기획할 것. 실무자(프로그램,그래픽 등)가 업무에 집중할 수 .. 2019. 8. 2.
게임개발 ) HUD (Head Up Display) HUD (Head Up Display) 최초로 개발된 것은 항공기에 적용하기 위해서였다. 항공기의 조종석에 있는 속도계, 고도계, 자세지시계 등 빼곡한 아날로그 계기판들은 조종사가 그냥 보기에도 벅찰 정도로 복잡했는데, 그래서 조종사가 계기판을 보기 위해 고개를 숙이지 않고 고개를 든 채로 볼 수 있게 해주는 디스플레이라는 의미로 'Head Up Display' 또는 'Heads Up Display'라는 명칭이 붙었다. HUD가 다른곳들에 많이 사용되면서 디스플레이 위에 많은 정보들이 노출되는 형태로 변화되었다. 게임에서도 사용되는데 대표적으로 FPS의 게임들에서 게임화면에 노출되는 UI가 HUD라고 이해하면 된다. 게임 플레이 시에 현재 플레이어 본인이나 게임 상황에 대한 정보를 알리는 데 사용된다. .. 2019. 7. 30.
게임개발) 코드 규약 코드 규약 코드 규약이라는 것은 한 사람이 아닌 다수의 사람이 같이 프로젝트를 진행하기 위해서 서로의 코드의 형태를 통일화 작업을 하는 것을 의미한다. 코드 규약은 프로젝트의 성향에 따라 순서가 달라지기는 하지만 공통적으로는 설계의 단계에서 실제 작업자들끼리 어떤 형태로 작업을 진행할지에 대해 이야기를 하게 된다. 첫 단추를 어떻게 끼냐에 따라 뒤에 작업이 영향이 받기 때문에 코드 규약을 생략하고 프로젝트를 진행하면 어느 정도 진행된 이후에 리팩터링(Refactoring)을 진행하던가 재설계를 하기도 한다. 필자는 개인적으로는 마소의 c# 코딩 규칙을 기본으로 이야기를 많이 하는 편이다. 코드 규약이라던가 코딩 습관은 개인적인 성향이니 협업하는 작업자와는 조심스럽게 이야기하는것을 추천한다. 참고: htt.. 2019. 7. 30.
자료구조) 스택 (Stack) 스택 (Stack) 스택(Stack)이란 데이터를 접근하거나 저장하는 자료 구조이다. 가장기본이되는 자료구조로써 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조로 선형 구조(LIFO - Last in First Out)의 특성을 가지고 있다. 자료를 넣는 행위를 (Push)라고 하고 자료를 빼는 행위를 (Pop) 이라고 하는데 이때 꺼내지는 순서는 스택에 가장 마지막에 저장된 데이터가 먼저 꺼내어진다. 스택을 사용하는 용도는 어떤 시스템으로 복귀하거나 가장 최근에 대한 데이터를 컨트롤해야 하는 과정에서 많이 사용한다. 찾는 알고리즘에서도 많이 사용된다. LIFO라는 특성을 정확하게 알고 있으면 필요한 상황에 잘 쓸 수 있다. ★★☆☆☆ 2019. 7. 24.
반응형