본문 바로가기
개발/회고록

[개발] - 게임인재원 6기 2학기(프로그래밍) 후기

by 수인분당선 2024. 9. 22.
반응형

안녕하세요

1학기가 끝나기 무섭게 2학기를 끝마치고..좀 쉬다가 돌아왔습니다

거두절미하고 이번학기에 대한 후기를 작성해보겠읍니다.

 

1. 정규수업

정규수업은 1학기와 진행 방식이 같지만 과목이 다릅니다. 위처럼 구성되어있습니다.

 

디지털모델링 중급

이번 디지털모델링에서는 이전 학기에서 만들던 3D캐릭터를 이어서 만들어보고,

이후에는 3D 캐릭터에 이미지를 입혀보는? 작업을 해보았습니다.

추가적으로 본 (뼈대)를 이용하여 캐릭터를 움직여보는 작업도 간단하게 해보았고, 이 작업은 3학기로 넘어가서 더 자세하게 배우기로 되어있었습니다.

디지털모델링은 끊임없는 코드의 향연 속에서 잠깐 쉴 수 있는 쉼터같은 존재입니다..

교수님께서 항상 모르는 부분이 있는지 학생들 한 명 한 명을 체크하고 도와주면서 수업을 진행해주시고, 

수업 내용도 여유롭게 천천히 진행되다보니 이 시간만큼은 조금은 마음을 놓고 할 수 있었습니다.

하지만 이렇게 여유로운 시간일 수 있었던 건 아무래도 프로그래밍학과이다보니 해당 수업은 필수적으로 알아야한다기보다는 간단하게 한번쯤 경험해보면 좋은 정도이기 때문인 것 같습니다. 이런 경험을 바탕으로 프로그래밍을 할 때에도 해당 지식이 많은 참고가 될 수 있을 것 같기도 합니다.

아무튼 항상 즐거웠던 수업이었습니다!

D2D엔진 제작

Direct 2D수업으로, 매주 주어진 과제를 수행하는 형식으로 수업이 진행되었습니다. 카메라 행렬, 애니메이션, FSM 등 게임 프로그래밍에 필요한 필수적인 요소들을 배워보았고, 마지막 과제는 개인과제로 간단한 자율 게임을 제작하였습니다.

이 수업은 하나하나 내용을 가르쳐주는 게 아닌 과제형식의 수업이었기 때문에 따라오지 못하는 학생들도 많았던 것 같습니다.

하지만 개인적인 생각으로는 이렇게 과제형식이었기 때문에 오히려 더 배울 수 있었고, 저는 수업보다는 이런 과제형식이 더 취향인 편이었어서 재미있게 들었습니다.

다만, 코드는 언제나 항상 답이 여러개가 될 수 있는만큼, 과제를 구현하였으나 내가 짠 이 코드보다 더 나은 코드는 없을지에 대한 모범답안이 제시되지 않아 매번 조금은 찝찝한 마음이 남았었습니다.

하지만 결론적으로 가장 크게 성장할 수 있었던 수업이기 때문에 유익한 수업이었다고 생각합니다.

프로그래밍 중급

이전 1학기의 C++기초수업에서 더 나아가서 C++을 배우는 수업이었습니다.

템플릿, 클래스, 연산자 오버로딩, 가상함수 등 C++의 기본에서 더 나아가 C++을 제대로 활용할 수 있는 방법에 대해서 배웠습니다.

1학기 당시에도 이 수업을 열심히 듣지 않은 것을 후회했었는데.. 또 후회를 하고 있습니다.

특히나 정규수업이 끝나고 2학기 프로젝트를 하면서 C++에 대한 이해를 키울 필요가 있다고 생각했고, 이 수업을 더 열심히 들을걸,, 하는 후회를 많이 했습니다.

그만큼 이 수업은 게임에 있어서도 정말 중요한 내용을 다루고 있습니다.

제가 열심히 듣지 않은 것 뿐이지 최고의 수업이라고 생각합니다.

 

게임수학

게임 수학은 1학기와 동일하게 게임에 필요한 수학을 배우는 시간이고, 빛, 행렬, 원 등등 여러가지를 배웠습니다.

교수님의 명강의는 중학교부터 수학을 포기한 수포자마저도 이해할 수 있을 정도로 친절한 수업이었습니다. 인프런이나 유튜브 등,, 온라인 강사 뺨치는 교수님의 명강의 덕분에 수학을 싫어하는데도 불구하고 수업에 집중할 수 있었습니다. 

3학기부터는 2학기까지 배워온 내용을 활용해서 직접적으로 셰이더를 제작해보는 등의 실습을 진행한다고 합니다.

자료구조와 알고리즘2

알고리즘 자체에 대한 개념을 알아보고, 그래프와 트리 등의 구조에 관해 배운 후,

해당 구조를 응용한 알고리즘들인 dfs, bfs, mst 등을 배우는 순서로 수업이 진행되었습니다.

dfs나 bfs같은 알고리즘들 같은 경우에는 이전부터 알고있던 개념들이었지만 사실 그 안에 속해있는 트리나 그래프의 구조적 특징이나 개념은 살짝 모호한 편이었습니다. 

이 수업 덕분에 구조의 개념에 대해서 먼저 알아가고 알고리즘을 다시 살펴보니 왜 이렇게 코드가 구성되었는지까지도 잘 이해가 되었고 재미있기도 했고 많은 도움이 되었던 것 같습니다.

너무 백준이나 알고리즘 코딩테스트에 사로잡혀 유형이나 공식만을 가지고 공부했던 건 아닌지 반성하게 되었고, 앞으로는 이런 점을 보완하여 조금 더 깊게 탐구할 수 있도록 노력해야겠다는 생각을 할 수 있었습니다.

저는 개인적으로 정말 좋아했던 수업입니다!

유니티 게임수학

유니티 게임 수학도 이전 수업과 똑같이 진행되었습니다. 베지어곡선, sin함수 활용 등 여러가지 내용을 배웠습니다.

1학기에 비해 확 늘어버린 난이도가 상당히 버거웠고, 그저 교수님의 코드를 붙여넣는데에 급급했던 것 같습니다. 

하지만 수업 구성 자체는 게임을 제작하는 데 필요한 주요 수학 기능을 구현하는 방법을 알려주기 때문에 반드시 필요한 수업 중에 하나지 않았을까 싶습니다. 


1학기는 전체적으로 게임에 발을 담궈보는 느낌이었고, 2학기부터는 본격적으로 물에 들어가는 느낌으로 수업이 진행되었던 것 같습니다.

저는 따라가는 데 적절한 정도였다고 생각합니다. 다만, 수업에 확실히 집중해야하고, 수업 내용이 생각보다 많아 시간을 조금은 많이 투자할 필요가 있었습니다. 


2. 미니 프로젝트 회고.

2학기 미니프로젝트는 이전 미니프로젝트에 비해 1주 더 늘어난 3주의 기간으로 게임을 제작하게 됩니다.

저희는 제한시간안에 카드를 사용하여 스테이지를 클리어하는 덱게임을 제작하게 되었습니다.

총 3명의 프로그래머로 구성이 되었고, 저는 그 중에서 UI, A*구현, 타이머시스템, 스크린시스템, 사운드관리 등의 역할을 맡아서 진행하였습니다. 

이번 프로젝트에서도 느낀 점이 정말 많았습니다. 

이전까지 개인적으로 프로젝트를 진행할 때에는 프로젝트를 완수했다는 점에서 항상 만족감만을 느꼈는데, 인재원에서의 프로젝트는 항상 아쉬움이 많이 남고, 반성해야 할점이 많이 보이는 것 같습니다.

조금 우울한 마음이 들긴 하지만, 어떻게 보면 그런 아쉬운 점을 볼 수 있을 만큼 제가  성장했다는 생각이 들기도해서 뿌듯하기도 합니다.

 

여기서의 회고는 이전에 작성해둔 회고를 따오도록 하겠습니다.

 

1.커밋 시 충돌로 인한 문제사항

사운드, 스크린 매니저,UI툴팁, 사운드 등의 역할을 맡다보니 다른 팀원이 수정하고 있는 코드까지도 수정하는 상황이 꽤 많았지만, 상대적으로 주의하지 않고 커밋하여 다른 팀원의 작업물과 충돌하는 문제가 발생하였습니다.

같은 브랜치에서 작업하는 만큼 조금 더 커밋에 신중했어야 했는데 그러지 못하였던 것 같습니다.

앞으로 협업을 하는 경우에는 귀찮더라도 브랜치를 통해 각자의 작업공간을 분리하거나, 항상 커밋시에는 더 주의를 기울여 커밋 내용을 확인하고 커밋하는 습관을 가져야 할 것 같다고 생각하였습니다.

 

2.코드 컨벤션 규칙

변수명줄이기, 형식 통일화 부족, 초기화 , 암시적 형변환 금지 등의 규칙을 자꾸만 망각하고 코드를 작성하였습니다. 아무래도 손에 익지 않은 방식이고, 당장에 코드를 작성하는 데 있어서 큰 문제가 없는 사항이었기에 무심코 넘어갔던 것 같습니다.

하지만 계속해서 코드의 양이 늘어날수록 가독성의 중요성을 깨달았고, 코드 컨벤션을 지키기 위해 노력하였으나 아직은 잘 지켜지지 않고 있습니다. 앞으로 이 부분 또한 꾸준히 상기하며 습관이 될 수 있도록 노력해야 할 것 같다고 생각했습니다.

 

3.생성과 삭제의 개념 부족

기본 오브젝트들은 스크린에 오브젝트를 생성하고, 컴포넌트를 조작하는 방식이지만, UI의 특성상 부모의 개념 등 여러가지 조건으로 인해 컴포넌트 자체에 오브젝트를 넣는 등의 방식이 필요한 경우가 많았습니다.

구현이 진행된 것 까지는 좋았으나, 구현된 해당 컴포넌트 및 오브젝트를 생성하고 삭제하는 것을 조금 더 정확하게 처리했어야 했는데, 해당 개념이 많이 부족하여 이 문제로 인해 저 뿐만 아니라 팀원 전체의 진행상황이 지체되기도 하고, 많은 부분 오류를 발생시키기도 했습니다.

이러한 문제의 원인이 근본적인 C++의 개념이 부족하다고 생각하며 반성하였고, 다시 한 번 개념적으로 C++을 공부할 필요가 있다는 생각을 많이했던 것 같습니다.

 

4.재사용성, 안정성 등을 고려한 구조 및 코드 작성의 부족

자꾸만 먼저 실행해보며 결과를 확인하고 성급하게 로직을 작성하려는 버릇 때문에 엉성한 코드가 많았다고 생각합니다. 짧은 프로젝트기에 급한 마음에 구현하기에 급급했지만 오히려 그 급한 마음때문에 게임이 완성되어갈수록 구멍난 코드로 인해 많은 고생을 했습니다. 앞으로는 처음 게임을 개발하는 단계에서부터 구조 및 코드를 조금 더 꼼꼼히 고민해볼 것이며, 코드를 작성하는 것은 생각이 끝난 이후로 미룰 것이라고 다짐했습니다.

 

5.전체적인 코드의 이해 부족

다른 사람들이 작성한 코드 중간에서 코드를 추가적으로 수정 및 삽입하는 작업을 많이 진행하였는데, 그럴때마다 코드를 전체적으로 이해하고 숙지하여 코드가 어우러질 수 있도록 하지 않고 단편적으로 코드를 넣을 수 있는 공간을 마련하여 끼워넣었습니다.

협업이라는 활동 자체가 서로의 코드를 함께 이해하고 서로의 코드가 어우러질 수 있어야한다고 생각하지만, 이러한 행동은 협업보다는 각각의 독립적인 코드들이 겉모습만 어우러져 보이도록 만들게 했다고 생각합니다. 때문에 서로의 코드를 분석하고 이해하여 더 나은 코드를 고민해볼 수 있는 협업이 아닌 각자 자신만의 코드만 수정할 수 있는 상황이 발생하기도 했습니다.

이 부분 또한 다음 협업에서는 주의하며 평소에도 다른 사람의 코드를 보는 연습을 해야할 것 같습니다.

 

6.직접적으로 값을 삽입하는 하드코딩

계속해서 수정되는 값들을 자꾸만 직접적으로 입력하는 버릇으로 인해 수정이 많이 불편한 코드를 많이 작성했습니다.

원래부터 이러한 수작업에 큰 거부감이 없어 이러한 코드를 작성하는 데 거부감이 없었지만, 협업을 진행하게 되고, 다른 사람이 제가 만든 코드를 수정해야하는 등의 상황이 발생하게 되면서, 이런 저의 코드는 타인이 알아보기에 너무 불편하며, 수정하기에도 어려운 코드라고 생각되었고 미안한 마음이 많이 들었던 것 같습니다.

이후 최대한 다른 사람도 수정할 수 있는 코드가 될 수 있도록 노력하였지만, 자꾸만 집중력이 떨어지면 그냥 값을 넣어 문제를 해결해버리려는 충동이 들기도 하고, 무의식적으로 값을 넣어 코드를 작성하기도 하였습니다.

나 자신을 위해서가 아니라 내 코드를 보는 다른 이들을 위해서라도 이런 버릇은 꼭 고쳐야할 것 같다고 생각하게 되었던 것 같습니다.


추가

이렇게 2학기의 회고가 끝이 났습니다. 3학기 회고는 올라오지 않을 예정입니다.

저는 2학기를 마치고 인재원을 나가게 되었습니다. 

2학기에서는 깨달은 점이 많았습니다.

스스로 어떤 점이 부족하고, 어떻게 공부해야 할지에 대한 방향을 잡을 수 있었고, 

내가 어떤 것에 더 잘 몰두하고 좋아하고 있는지를 알 수 있었습니다.

게임인재원에 입학하게 된 계기 자체가 앱 개발과 게임 개발 중 어떤 것이 저에게 더 즐거울 수 있을지를 알아보고 싶어서였고, 2학기 미니 프로젝트를 경험하면서 제가 게임 개발보다는 앱 개발에 있어 더 즐거움을 느끼고 있었다는 것을 깨달았고, 성향적으로도 앱개발을 공부하는 것이 더 잘 맞을 것 같다는 판단이 들었습니다.

그 외에도 시간적인 문제, 금전적인 문제 등 여러가지 상황들이 아직 제가 인재원을 다니면서 게임을 공부할 여유가 부족하다는 느낌 또한 많이 들었습니다.

 

앞으로는 다시 플러터를 통한 앱개발을 공부해볼 예정입니다.

그렇다고 게임 개발을 놓지는 않고 계속해서 저만의 방식으로 제가 부족한 점을 채워나가며 제 속도에 맞춰 천천히 게임 개발을 공부할 것 같습니다.

 

제가 인재원을 나가기로 결정했을 때, 많은 분들이 현재까지 다녔던 시간이 아깝지 않느냐고 많이들 물어보셨습니다.

저는 게임인재원을 통해 굉장히 많은 것을 배웠습니다. 

그리고 이 배움은 나의 부족한 점이 무엇인지, 어떻게 공부를 해야하는지, 협업에서 무엇이 필요한지, 맞딱뜨린 큰 문제를 극복하거나 해결하기 위해서 무엇이 필요한지 등 게임 개발이 아니더라도, 심지어는 개발 자체가 아니더라도 제 인생 자체에 도움이 될 수 있는 유익한 것들이었습니다.

그렇기 때문에 저는 그간 6개월 동안의 경험이 너무 소중하고 전혀 아깝지 않았던 것 같습니다.

 

앞으로도 여기서의 배움을 잊지않고 실천해서 항상 성장할 수 있도록 노력할 예정입니다!

 

그럼 게임인재원 회고는 여기까지 마치도록 하겠습니다..

동기분들 앞으로도 제몫까지 파이팅입니다!!

총총..

반응형

 

반응형