12월, 2023의 게시물 표시

새로운 조원들

 새로운 조에 들어와서 작업하게 되었다 이전조보다 이야기를 하려 다들 노력하는게 보여서 맘이 편했다 다만 한분을 제외하고 아무도 캠을 키지 않았다 그렇게 부끄러울게 있는가? 솔직히 난 잘 이해가 안 갔다 오늘 줌 발표에서 말하길 강의 숙제는 하지말고 개인 프로젝트만 하라고 했다. 하지만 그렇게 말하면 더 하고 싶은 생각도 들어버린다 그리고 보아하니 게임구현의 난이도가 뭔가 내가 챌린지하기 딱인듯 했다 이게 진짜 챌린지지! ...하지만 시간 끌어 개인과제 못 하면 혼나겠지................................. 다음날 30일까지 끝마치지 못하면 그냥 포기해야겠다. 뭐 말은 그렇게 했어도 성공 할거다 ...성공해야한다 성공하려나 성공했으면 좋겠다.... 구현하고자 하는 게임은 스네이크 게임 블랙잭인가 하는 게임도 있었지만 그건 내가 무슨 게임인질 몰라서 구현하고 말고 이전의 문제다;; 이 게임을 구현하기 위해 오늘 배운걸 소개하고자한다 먼저 내 게임은 이 두 함수가 반복해서 나와야했다 map.mapSetting(user); map.mapScreen(); 위쪽은 말 그대로 맵을 셋팅해주고 아래는 셋팅해 둔걸 기반으로 콘솔에 띄워주는 함수다 반복해서 나와야하니 while을 사용했지만.... 빠르다 너무  너무 빨라 스크린이 다 나오기도 전에 순식간에 사라지고 나타난다 유니티도 아니라 invoke도 쓸수가 없다 c#내에서 다룰수 있는 시간관련된 것들을 찾아봤을때 가장 쉬운건 이거였다. 아니 쉽다고 하기 여려운가 아직 난 이걸 이해하고 쓰는게 아니라 일단 되니깐 쓰는거다 이 캠프중에 선생이 이렇게 말했다 왜를 따지지 말라고 그러면서 뭐라 말을 했었는데 하여튼 그러하여 나는 이 키워드에 대해 일단 왜를 냅두고 쓰고 있다. async/await   이 두가지 키워드를 사용하면 시간을 조금 컨트롤할수 있다. .... 비동기 함수가 뭐지? Task도 붙여줘야 하던데 자세한 정리는 다음 시간에 하자 잠깐 알아본걸로 끝날게 아닌듯한 기분...

텍스트 게임이라....

 조 과제를 끝내고 다음은 개인과제로 c#에 대한 이해도와 텍스트 게임 만들기를 진행한고한다. 아무래도 그렇다면 유니티를 다루지 않고 vs만 사용하는 것일지 참고로 여기서 배운걸 토대로 똑같이 조 프로젝트로 텍스트 게임 만들기를 할거라 했던거 같다 내 뇌의 메모리가 외곡된게 아니라면 비주얼 적으로 최악의 감각을 가지고 있는 나에게 텍스트 게임은 좋은 장르이다 ..좋은 장르일거다 좋은 장르였으면 좋겠다..... 스파르타 강의실에 새로운 강의가 생겼다 근데 이거 사전캠프때 했던거 아닌가?? 조금 의아스러웠다 내용은 그래도 볼만 했지만.... 이거 강의의 구성을 c# 사전문법을 없애버리고 그 자리에 이걸 넣은 다음 유니티 미니게임 만들기로 구성하는게 훨~~씬 좋아보이는데??? 배열에 조금 불만이랄까나.... 뭐 아직 2주차 중간까지만 봤으니 벌써 평가하기엔 이른것이겠지 강의 내용은 string에 대해 좀 자세하게 다루었다 아무래도 string은 조금 특별한 변수니까 char의 배열 불변객체라던가.. 라고 말은 해봤지만 이해는 부족하다 string의 각각의 함수랑 또 뭐라부르더라 \을 활용한 것들을 총칭하는 말이있었는데.... 아무튼 그것들을 다룬 내용이였다 (근데 이건 필요할때마다 구글링하면 될듯하니 내가 여기에 392582385157번째 string함수를 다룬 블로그 글이 될 필욘 없을듯하다)

첫 팀 과제를 마치며

 오늘 팀 과제를 마무리고 내일이 발표인데 정말로 정말로 기대가 된다. 다만 각 팀별로 권장 시연 영상이 1:30초 내외라 게임의 모든 요소를 보여주기 너무 짧은게 아닌가 싶은 생각도 들었다. 다른 조의 시연 영상을 봤을때 우리조의 연출이 가장 괜찮았다 ....괜찮았나 괜찮았을것이다 괜찮았으면 좋겠다.... 게임 씬에서 중간에 멈추고 타이틀로 돌아가는 부분을 구현하지 않아서 조금 아쉬웠다. 딱히 난이도 적인 문제라기보단 ui 배치할곳도 마땅치 않고 또 시간도 마무리에 다가와서 게임을 반복 플레이하며 버그가 있는지 더 돌려보았다. 버그를 찾을수 있게 다양한 방법으로 게임을 탐색.... 버그는 다양한 이유로 나왔다 int와 float을 햇갈렸다던가 오브젝트 명을 다르게 했다던가 오브젝트 활성화/비활성화를 착각했다던가 아니면 생각해뒀던 방법으로 다른 씬에 넘어가게 해놨는데 작업을 하다보니 그 외의 방법으로도 씬을 넘길수 있게 되어서 기존 방법에 문제가 생겼다던가 하여튼 다양했다. 또 한편으론 쓸모없는 부분 삭제 정리도 일이였다 작업을 하다보니 쓸모없는 함수나 변수들이 쌓여서 보통 난감한게 아니라 한번씩 지워줘야한다. 하지만 지우면서 필요한 변수인지 아닌지 확인도 필요한 상당히 꼼꼼함이 필요한 작업이며 스크립트 게임 오브젝트의 이해도가 부족하면 할수 없는 작업이다. 잘못하면 다른이의 작업에 방해를 줄수 있지도 않은가 그런 의미에서 중요한건 소통이다. 이거 필요없제?? 타인의 작업물을 열심히 들여다 봐도 머리가 부족해 이해하는데 큰 시간이 필요하며 시간을 들인다해도 이해가 완벽하게 되지 않기에 잘 구현해 주길 바랄뿐이다 프로잭트 내의 변수 함수 쓰임세 하나하나 외울순 없지 않은가.... 오늘은 작업하면서 큰 문제는 없었다 게임 초기화랑 스테이지 언락 및 선택 기능을 구현했는데 양쪽 다 큰 난이도가 있진 않아 만들고 난후 게임을 반복하며 버그가 더 없나 찾아다니고 있으면 문제를 공유했다. 이 작업이 생각보다 재밌었다.

내배캠 3일차

우리조의 결과물이 어떤식으로 나올지가 흥미롭다 다들 게임의 부분부분을 구현해 나가는데 이 작품의 마지막은 어떤 모습일지 이 내배캠을 시작할때 튜터님이 좋은 개발자는 쉽게 말해 같이 작업하고 싶은 사람이라고 이야기 했다. 나는 거기에 해당된다 ...해당됐을거다 해당될까? 해당됐으면 좋겠다..... 이렇게 3일정도 작업해보니 같은 조원들의 특징도 여러모로 느껴졌다. 좋은점도 나쁜점도 잘 취합해서 내가 더 좋은 사람이 되기 위한 경험으로 써야한다. 그나저나 어제 브랜치로 갈라져야 겠다 했는데 이게 각자 갈라진곳을 분기로 새롭게 만들어져서 누군가 작업을 마치고 매인에 업데이트하면 내 작업물엔 그 업데이트 내용이 없어서 내 작업물을 머지했을때 타인의 작업물이 날아간다 .... 어떤 방법으로 이걸 해결하는 수단이 있을텐데 역시 툴에 대한 경험이 부족하다 막상 배워보면 분명 대단한 방법도 아닐텐데 어쨌거나 지금 당장의 해결책은 같은 브랜치에서 같이 작업하는거다 수시로 업데이트 되고 풀 푸시도 자유롭다 마지막으로 오늘 작업하면서 안 됐던 이야기를 해보자면 canvas는 ui를 관리하는 오브젝트인데 내가 ui를 프리팹으로 만들어 instance 함수로 새롭게 만들고 canvas의 자식으로 할당을 했는데 어째선지 만들어진 ui가 보이질 않는다. 안 만들어진건 아니다 분명히 만들어졌고 scene으로 확인해도 해당 위치에 존재한다고 pivot이 보였다. 하지만 pivot만 둥둥 떠 있을뿐 아무것도 보이질 않았다. 납득 못할 현상에 고치는걸 포기하고 그냥 다른 방식으로 구현했다. 원래 하려던 방법은 instance로 만들고 세부 내용을 설정한뒤 각각의 위치에 배치하려 했는데 그냥 instance를 사용하지 않고 하이어락키에서 오브젝트를 만들어서 위치에 배치시키고 세부 내용만 코드로 건드는 식으로 바꿨다. 사실 알맞은 곳에 배치하는건 나에게 있어 고난인데 (내배캠 1일차 참조) 오히려 잘 됐다 싶었다.

내배캠 2일차

 Git이라는 툴을 통해 드디업 협업을 해봤다..? 했던거 같다.. 했을것이다.. 한거면 좋겠다.... 첫주차 프로젝트의 목적이 소통이였나 협업이였나 그랬던걸로 아는데 그 이유를 절감하고 있다. 사실 프로젝트 자체는 이미 사전캠프에서 했고 챌린지도 그렇게 하이 난이도가 아니라서 기간내에 혼자서도 소화할 정도다만 역시 문제는 협업이다 내가 특정 스크립트를 수정하고 올리려할때 누군가 그 스크립트를 먼저 수정하고 올려버리면 내가 올리고자한 스크립트와 충돌이 자꾸만 발생한다. 때문에 브런치로 갈라져서 작업을 해야할듯하다 또 스크립트나 씬을 변경하면 수정했다고 고지할 필요성이 느껴진다. 그리고 자기가 하려는 작업이 누군가와 겹치지 않게 말 해야한다만.... 뭐 아직 깃을 쓴 첫날이니까 깃 데스크탑의 활용도 부족해서 재앙이다. 뭔지 모르겠지만 카드 프리팹 정보에 데미지가 있던거 같다 아.. 튜터님 왜 자리에 안 계십니까.. 9시가 지나도 그렇지 24시간 있으란 말이예요 다음부턴 브런치로 갈라지자.. 아 그나저나 다른조의 분위기나 진도는 어떨까? 젭에서 다른 조를 염탐하고 싶었다 궁금하니까..

내일배움캠프 Unity 3기를 시작하는 마음

이제껏 살아보며 많은 게임을 해보며 살았다. 게임이라는 매체가 비록 인식이 좋은 편은 아니다. 하지만 내가 여러 게임을 해본 결론은 게임이야 말로 뛰어난 매체이다. 여러 게임을 하며 여러가지 이야기들에 몰입하며 다양한 경험을 배움을 가질수 있었다. 나 또한 그렇게 좋은 경험을 할수있는 창작을 하고 싶단 생각이 들었다. 그것이 내가 게임개발을 시작하고자 한 이유이다. 학습 내용 오브젝트들을 한줄로 새우는것도 보통일이 아니다. 너무나 간단한 일이지만 난 아직 이것조차 씨름을 할 수준이다. 단순히 나열만 하는것이 아니라 오브젝트의 스케일과 카메라의 크기 그리고 오브젝트의 갯수까지 고려하며 알맞게 알맞게 정렬된것을 원했다. 고려 해야하는 것들은 카메라 크기,갯수,오브젝트의 스케일이다만.... 카메라는 모르겠다 빼자 남은건 갯수와 스케일값 아 그리고 오브젝트들의 간격 변수까지 3가지다 근데 난 원하는 포지션에서 나열이 시작되길 바란다 그러니 시작 좌표까지 추가해준다. 이제 이것들을 어떻게 더 하고 빼야할지가 난감하다. temp.transform.position = new Vector3(card.transform.localScale.x * i * Spacing - 2.25f, 0, 0); 이 짧은 코드 한 줄을 위해 시간을 얼마나 태웠는지 모르겠다 근데 문제는 -2.25f 부분 이 시작 좌표값이다 앞의 부분들은 이제 인스펙터 창에서 조율하면 되는 것이지만. 시작 지점의 변수는 어떻게 줘야한단 말인가? 내가 바라는건 스케일값과 간격값을 조절하면 시작지점도 자동으로 계산되길 바라지만 능력밖의 일이다 뭔지 모르지만 카메라의 좌표값도 필요해보인다 ....알아야만 한다! ....알게 될거다? .....알게 되었으면 좋겠다