전체 글
-
백준 1992번 : 쿼드트리알고리즘 공부 2020. 3. 26. 23:35
백준 2630번 : 색종이 만들기에 이어서 다음 분할 정복 문제다. 거의 비슷한 문제였기 때문에 2630번의 코드를 그대로 사용했다. (2630번 풀이 : https://stillchobo.tistory.com/72) 2630번과 다른 점은 '0 묶음'과 '1 묶음'의 개수를 세는 것과 다르게 4분할 할 시 괄호를 이용해 구분을 해줘야 한다는 점이다. 그래서 4분할 재귀를 하기 전에 괄호를 열고 닫음으로서 그 부분을 해결했다. 의외로 애 먹었던 지점은 input을 읽는 과정이였는데 처음에는 int로 한 줄을 읽고 10씩 나누면서 배열에 할당했다. 그런데 그렇게 하니까 예제는 잘 되는데 틀렸다고 하길래 '도대체 왜?!'라고 10분 동안 짜증내다가 생각해보니까 64자리 숫자는 int는 커녕 long long..
-
백준 2630번 : 색종이 만들기알고리즘 공부 2020. 3. 26. 11:05
한 영역 안에 있는 종이의 색이 같지 않다면 4등분을 하는 문제다. 다행히도 전체 종이의 한 변의 길이가 항상 2^k인 형태이기 때문에 등분을 했을 때 항상 깔끔하게 떨어지는게 보장된다. (만약 한 변의 길이가 7이였다면 4등분 자체를 할 수 가 없다.) 그렇다면 내가 판정해야 할 제일 중요한 요소는 N*N의 이차원 Array 안의 원소가 모두 동일한 색인가?이다. 이것만 따로 코드로 옮겨보면 다음과 같다. void check(int size, int startX, int startY) { int target = arr[startX][startY]; for(int x = startX; x < startX + size; x++) { for(int y = startY; y < startY + size; y+..
-
[03.12] Object Pooling 기법 사용게임 개발 일기 2020. 3. 13. 00:16
『After Dungeon』이라는 게임의 특징은 화살이 벽에 꽂히면 One Way Platform과 같은 기능을 하게 된다. 이로써 플레이어는 플랫폼이 없는 곳에서도 능동적으로 발판을 만들면서 플랫포밍을 진행할 수 있다. 그런데 문제가 생겼다. 화살이 주요한 기믹이다보니까 플레이어도 화살을 자주 쏘고 필드에 존재하는 다른 장치들도 플레이어를 공격하기 위해 화살을 발사하게 된다. 맵이 어려워지면서 화살 쏘는 장치들도 늘어나다보니까 화살을 생성하고 부시는 작업을 많이하게 되면서 게임을 2~3분만 해도 렉이 심하게 걸리게 됐다. 이를 해결하기 위해서 Object Pooling이라는 기법을 사용하기로 했다. 기존에는 화살이 발사되야하는 시점에 화살을 직접 생성하고 화살이 사라져야할 시점에 파괴를 했지만 Obje..
-
[03.11] Precision Platformer에 관한 간단한 고찰게임 개발 일기 2020. 3. 13. 00:01
현재 만들고 있는 3개의 게임 중에 2개가 Precision Platformer다. Precision Platformer를 한글로 번역하기 굉장히 애매한데 굳이 번역하자면 나는 '순수 플랫포머'라고 하고 싶다. 전투가 없고 순수하게 액션만으로 재미를 주는 방식이기 때문이다. 오늘 이 순수 플랫포머를 만드는 다른 팀에서 회의를 하면서 이 순수 플랫포머 게임이 재밌기 위해서는 어떻게 해야하는가에 대해 많이 고민했다. 일단 조작감이 좋아야하는건 기본. 그렇기 위해서는 되게 미세한 부분들에서 엄청나게 많은 테스트와 피드백이 오고가야 할 것이다. 벽점프를 뛴 후 0.15초 동안 조작을 막는다던가 플랫폼을 벗어나고 0.1초 정도는 점프를 허용한다던가 플랫폼에 착지하기 0.1초 전의 점프 입력도 유효한 점프로 허용한..
-
[03.09] 스토리 중심의 게임은 텍스트 파싱이 어려워!게임 개발 일기 2020. 3. 10. 00:14
뭐 이렇게 라노벨스러운 제목인가 싶지만 실제로 최근 작업하면서 느끼고 있다. 이게 제대로 하는 것인지는 모르겠지만 이렇게 바꾸면서 관리하기 편하진 것은 맞는 것 같다. 현재 구조가 스프레드 시트를 이용해서 대본을 작성하고 각 인물에게 대본을 할당해주기만 하면 인물은 대본을 파싱해서 보관하고 있다가 상황에 맞게 출력하는 형태 로 되어있다. 퀘스트의 수락거절이나 호감도 변화, 화면 효과 등등 기본적인 대화 이외의 추가 기능들은 [비고]란에 특정한 명령어를 적어두면 미리 할당된 효과/기능을 수행하는 형태다. 이렇게 해두면 기획자가 대사를 수정할 일이 생겨도 스프레드 시트의 대사를 수정하기만 하면 되기 때문에 대사가 거의 전부라고 볼 수 있는 스토리 게임에서 관리가 쉬워졌다....라고 생각한다! 뭐.. 아니면 ..
-
[03.08] 주말에는 쉬어야지게임 개발 일기 2020. 3. 9. 00:14
주말에는 뭔가 늦게까지 자게 된다. '주말'이라고 인식하고 신경쓰게 되니까 더 그러는 것 같다. 하지만 정말로 '주말'이니까 주중의 생산성을 위해서도 쉬어야 한다고 생각하기 때문에 맘편히 11시까지 침대에서 뒹굴다가 일어난다. 학기 중에 있었던 일정들이 그대로 방학까지 이어져와서 주말에는 작업은 못하지만 꽤나 바쁘다. 토요일은 점심에 과외하고 보드게임 모임이 있어서 그거 하고 나면 밤 9시가 지난다. 일요일은 점심에 과외하고 게임 팀 회의가 2개나 있어서 그거 하고 나면 역시 밤 9시가 지난다. 그러다보니 주말에는 개발할 시간이 없어서 음... 어떤 의미에서는 개발을 잘 쉬고 있긴 하다. 사실 주중의 할 일들이 대부분 다른 사람들과 얘기하는 행위이기 때문에 소통을 좋아하는 나로서는 주말의 일들은 거의 휴..
-
[03.06] 아침에는 코딩을, 저녁에는 기획을게임 개발 일기 2020. 3. 7. 00:22
『Lapin』 무전 시스템 구현 아침부터 밤까지 계속 스터디 카페에 가만히 앉아서, 그것도 혼자서! 코딩을 하려니 죽을 맛인 것이다. 온라인으로 떠드는 것도 한계가 있지...ㅠㅠ 실제 사람과의 대화가 고프다. 그래도 자고 일어난 아침에는 머리가 fresh~해서 코딩이 좀 잘된다. 그래서 아침에 그날 목표로 삼았던 주요 기능을 구현하는 것을 마치고 저녁 먹은 뒤로는 그냥 본능에 따라서 하고 싶은 프로젝트를 하게된다. 진행 중인 프로젝트 3개 중에 『Lapin』이 제일 재미있기 때문에 저녁에는 거의 『Lapin』의 맵을 짜거나 기획을 생각하면서 시간을 보낸다. 사실 어쩌면 밖에서 산책이나 하는것이 더 좋을지도 모른다. 음... 아니다.... 혼자 걷기는 침대에 누워서 유튜브 보는 것보다 심심한 행동이다. 활..
-
[03.05] 아무말이나 소소하게 적는 개발 일기게임 개발 일기 2020. 3. 6. 11:18
그냥 오늘부터 하루를 정리한다는 느낌으로 개발 일기를 적기로 했다. 원래는 스마게 서버개발캠프 하면서 밥 얘기로 적고 있었는데 생각해보니 글 내용도 사실 밥이랑 별로 관련이 없고 하루동안 개발 했던거 정리하듯이 개발 일기 적는 것도 좋을 것 같아서 적기로 했다! 어제 내용만 오늘 적고 앞으로는 자기 전에 짧게 적고 자야지. 서버개발캠프를 할 때는 총 4가지 프로젝트를 동시에 진행하고 있었다. 서버개발캠프 『Final Fiction』 전역 후 계속 이어진 『지하철 토끼 이야기』 2학기 끝나고 사람 모아서 시작한 『Lapin』 동아리 사람들끼리 하는 『After Dungeon』 서버개발캠프가 끝난 지금 하고 있는 프로젝트가 3개로 줄었는데 오히려 뭔가 섭캠을 할 때보다 더 힘든 것 같은 느낌이 든다. 하루 ..