전체 글 64

#2 gulender 개발일지 : GUI 개발

저번 글에서 버텍스를 수정하는 기능을 만들었다.앞으로도 여러 기능이 추가될텐데..기능이 추가되기 위해서는 입력을 컨트롤 할 수 있어야 한다.그래서 기능을 더 추가하기 전에, 먼저 GUI를 만들었다. 외부 라이브러리처음에는 외부 라이브러리를 활용하려고 했었다.https://github.com/ocornut/imgui GitHub - ocornut/imgui: Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependenciesDear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies - ocornut/imguigithub.comhttps://g..

#1 gulender 개발일지 : 기본적인 조작, 버텍스 수정 기능

우선 openGL에 대한 기본적인 지식을 learnOpenGL 이라는 사이트에서 공부했다. https://learnopengl.com/ Learn OpenGL, extensive tutorial resource for learning Modern OpenGL Welcome to OpenGL Welcome to the online book for learning OpenGL! Whether you are trying to learn OpenGL for academic purposes, to pursue a career or simply looking for a hobby, this book will teach you the basics, the intermediate, and all the advanced..

#0 gulender 개발일지 : 개요

작년 이맘때쯤에, 오리키우기 이후 만들 게임을 구상하고 있었다. 여러가지 아이디어가 있었고, 그 중에 생각했던게 방치형 모바일 3d 농장 게임이 있었다. 3d 게임 포폴이 취업시장에서는 높게 쳐준다는 말도 있었고, 쉐이더에 관심이 있어서 쉐이더를 다뤄보고 싶었다. 그런데 가장 큰 장벽은.. 당연히 3d 모델링 그런데 당시 내가 원하는 스타일이 사실적인 느낌의 3d가 아니라 오리키우기처럼 캐주얼한 스타일이였기에 그림도 그릴줄 아니깐.. 내가 만들 수도 있을 것 같았다. 이런 느낌으로 만들고 싶었다. 그래서 호기롭게 블렌더3d를 깔아서 좀 다뤄보고 느낀 소감은.. 너무 어렵다 음..그냥 상상해보기엔 그냥 구 하나 늘려서 잎부분 만들고 원통 하나 늘려서 가지 만들어서 붙이면 나무를 만들 수 있을 것 같다고 생..

크래프톤 정글 게임랩 1기 회고 (2)

https://san10.tistory.com/51 크래프톤 정글 게임랩 1기 회고 (1) 작년 8월, 2023년 8월부터 2024년 1월까지 크래프톤 정글 게임랩을 다녀왔다. 기억이 다 날아가기 전에 기록하는 목적도 있고, 다음 기수에 참여할 사람들에게 도움이 되길 바라며 회고글을 쓰기로 san10.tistory.com 전편에 이어서 작성합니다.. 4. 에픽 프로젝트 준비 (5~ 9주차) 사실 딱 이 기간부터 에픽 준비합니다! 라고 하는건 아니였지만 돌이켜 생각해보니 이 시기부터 주제가 에픽 프로젝트를 위한 것들 아니였나 싶다. 5주차 : 피쳐리스트 및 핵심 피쳐 구현 지금까지 주구장창 게임만 만들다가 처음으로 뭔가 다른 주제가 나온 주였다. 팀원들끼리 잘 알고, 좋아하고, 좋은 게임을 하나 선정해서 ..

회고 2024.03.07

크래프톤 정글 게임랩 1기 회고 (1)

작년 8월, 2023년 8월부터 2024년 1월까지 크래프톤 정글 게임랩을 다녀왔다. 기억이 다 날아가기 전에 기록하는 목적도 있고, 다음 기수에 참여할 사람들에게 도움이 되길 바라며 회고글을 쓰기로 결심했다! 1. 정글 게임랩에 지원한 계기 https://kraftonjungle.notion.site/1-35dce7ea4bc9432cbdd0574178135dc8 크래프톤 정글 게임랩 1기 모집 (마감) | Notion kraftonjungle.notion.site 나 같은 경우에는 동아리 단톡방에서 소식을 듣게 되었다. 사실 처음엔 크게 지원할 마음이 들지 않았다.. 모르는 사람들과 함께 22주 합숙? 거기에 랜덤 게임잼?? 나같은 씹프피에겐 상상도 할 수 없는 일이였다.. 그런데 사실 게임쪽에서 이런..

회고 2024.03.03

#22 odyssey 개발일지 : (또) 동적 지형생성

동적으로 지형을 생성하는 건 이전에도 사실 만들었지만.. https://san10.tistory.com/26 #9 odyssey 개발일지 : 동적 지형생성과 오브젝트 풀링 (드디어) 중간고사가 끝나서 다시 스터디와 개발을 시작하려고 한다! 지형을 어떻게 만들지 생각해 봤는데... 미리 여러 패턴의 지형을 생성해놓고, 런타임중에 적당히 이어붙이려고 한다! 우선 san10.tistory.com 이때는 위치만 맞춰주기에 곡선이 연속적이지 않다는 문제가 있다. 그래서 저번에 만든 지형을 부드럽게 만들어주는 기능을 바탕으로 지형과 지형을 부드럽게 이어주는 지형을 계속 만들어주며 동적으로 지형이 생성되는 기능을 만들었다. 구현 //다음 지형 생성 TerrainType selectedTerrainType = (Ter..

odyssey 2024.02.03

#21 odyssey 개발일지 : 지형과 지형을 부드럽게 잇기

지형을 만들때 베지어 곡선을 통해 만들었는데, 전에 언급했던 것처럼 곡률이 안맞아서 어색한 지형이 생기기도 한다. 이런 식으로 곡률이 안맞는 문제는 동적으로 지형을 이을 떄도 문제가 되지만, 지형 프리셋을 만들 때도 일일이 곡률을 맞춰서 지형을 만들어야 하니 엄청 불편하다.. 감으로 맞추니깐 약간 어색한 부분이 생기기도 하고.. 이런 일을 해결하기 위해, 저번엔 캣멀롬 스플라인을 이용해서 해결하려 했으나.. https://san10.tistory.com/42 #16 odyssey 개발일지 : 캣멀롬 스플라인으로 지형 보간 베지어 곡선으로 지형을 만들고 붙이는건 좋은데.. 지형의 곡률이 안맞아서 어색한 장면이 생기기도 한다.. 그래서 보간 곡선으로 지형과 지형을 자연스럽게 이을 수 있는 지형을 만들려고 한..

odyssey 2024.01.21

#20 odyssey 개발일지 : 플립 및 부스트 추가

보통 2d 레이싱 게임에서는 플립했을 때 보너스가 있다! odyssey에서도 그런 요소를 추가하고자 한다. 부스트 추가 원래는 부스트를 하나의 상태로 취급했었는데 생각해보니 부스트는 어떤 상태든지 적용될 수 있게 만들고 싶어서 상태에서 뺐다. private void ActivateBoost() { if (isBoost&&isGrounded) { if (!boostParticle.isPlaying) { boostParticle.Play(); } if (rigid.velocity.x >= 0) { rigid.velocity += rigid.velocity.normalized * boostForce * Time.deltaTime; } boostTimer -= Time.deltaTime; if (boostTimer

odyssey 2024.01.19

[React] 컴포넌트와 props

컴포넌트 리액트는 컴포넌트 기반의 구조를 가지고 있다. 컴포넌트 기반이라는 것은 작은 컴포넌트가 모여 하나의 컴포넌트를 구성하고, 이러한 컴포넌트들이 모여서 전체 페이지를 구성한다는 뜻이다. 리액트 컴포넌트의 역할은 props를 받아서 리액트 엘리먼트를 리턴하는 것이다. 이러한 컴포넌트와 엘리먼트의 관계는 클래스와 인스턴스의 개념과도 유사하다. props 위에서 props를 받아 엘리먼트를 리턴한다고 했는데, 여기서 props는 property의 줄임말 prop에 s를 붙여 복수형으로 만든 것으로, 리액트 컴포넌트의 속성을 말한다. props는 컴포넌트의 모습과 속성을 결정지으며, 컴포넌트에 전달한 다양한 정보를 담고 있는 자바스크립트 객체이다. props의 특징 props의 중요한 특징 중 하나는 읽기..

React 2024.01.17

[React] 엘리먼트 렌더링

엘리먼트란? 리액트 엘리먼트는 리액트 앱의 가장 작은 단위이다. 리액트 엘리먼트와 DOM 엘리먼트는 다른 것인데, DOM 엘리먼트는 실제 브라우저의 존재하는 엘리먼트이고, 리액트는 Virtual DOM 에 존재한다. 그렇기에 리액트 엘리먼트는 DOM 엘리먼트의 가상 표현이라고 할 수 있다. (뭔소리지?) 그리고 리액트 엘리먼트가 기술한 내용을 토대로 실제 화면에서 보는 DOM 엘리먼트가 만들어진다. const element = Hello, world 이런 JSX 코드가 실행될 때, 대입연산자는 createElement() 함수를 사용해서 리액트 엘리먼트를 생성하게 된다. 그리고 리액트는 이러한 리액트 엘리먼트를 이용해서 실제 화면에서 보이는 DOM 엘리먼트를 생성하게 된다. 엘리먼트의 생김새 리액트 엘리..

React 2024.01.15