「Devtober 02」


오늘의 개발일지

오늘은 옵션 메뉴를 완성하려고 했습니다.

하지만 원인을 알 수 없는 버그로 고전하다 그냥 잠이나 자자는 생각이 들어서 개발일지를 업로드합니다.

옵션을 만들기에 앞서 매번 게임을 실행할때마다 설정값이 초기화되지 않도록 저장파일을 만들어주는것과

저장한 파일을 불러오는것을 만들었습니다.

처음부터 만들었다기보다는 이 게임의 전 버전에서 써놨던 코드를 가져와서 개량한것입니다.

4~5월달쯤에 써놨던 코드인데 그 당시엔 더이상 손볼곳이 없다는 생각이 들정도로 멋진 코드라고 생각했지만

지금의 제가 보니 엉뚱한 부분이 많았습니다.

싱글톤에서 참조한 변수값을 또 다른 변수에 옮겨담아서 사용하고 그 옮겨담은 변수를 다시 싱글톤에 대입한다던지

주석처리해도 아무 문제가 생기지 않는 사용하지 않는 변수들이라던지

위의 두가지가 합쳐진 경우라던지 등등 많았습니다.

이 부분들을 좀더 직관적이고 간략하게 개량하고 최근에 새로운 게임 아이디어를 위해 검색하다가 찾게된 함수들도 사용해봤습니다.

wrapi와 range_lerp 입니다.

wrapi 덕분에 다른 게임들처럼 메뉴를 방향키로 순회할때 마지막 메뉴에서 바로 첫번째 메뉴로 이동시킬수있게 되었고

range_lerp 덕분에 이제 혼자서 복잡하게 게산식을 만들지 않아도 컴퓨터가 알아서 특정범위의 값으로 변환해주도록 만들게 되었습니다.

순조롭게 잘 풀려나가나 했으나 뜻밖의 문제가 생깁니다....

옵션메뉴에서 싱글톤에 적어뒀던 옵션값을 참조해서 Label노드의 text값에 표시하는 부분이 있었는데

match를 사용해서 참조값마다의 케이스를 만들어줬습니다.

하지만 어째서인지 값을 전혀 인식하지 못했고 print를 사용해서 디버그창에 출력해봤지만 값 자체에는 문제가 없었습니다.

_: 라는 예외 케이스를 만들어보니 match로 만든 케이스들이 모두 예외 케이스를 반한했습니다....

그냥 if / elif 로 도배해서 만들어보니 아무 문제없이 잘 적용되었습니다.

엔진 버그인걸까요? 얼마전에도 비슷한 문제가 있었습니다

숫자값을 match로 구별하는것이였는데 한 가지 숫자만 자꾸 인식하지 못해서 예외케이스에서 처리해줬습니다.

아직도 왜 이런 문제가 발생했는지는 모르겠습니다.

좀만 더 물고늘어지면 옵션메뉴를 완성할수있을것같은데...라는 생각이 들었습니다.

평소의 저라면 그렇게 했지만 Devtober는 10월 내내 하는것이기 때문에 장거리 경주를 위해서 조금 체력을 비축해둘겸 쉬는것도 나쁘지 않을까 라는 생각이 들었습니다.

먼저 해야할것들을 한 번에 해놓으면 다음 계획을 세울때까지 뭘 해야할지 알 수 없으니 조금씩 해나가면서 계획도 미리 세워둘까 싶습니다.


Today devlog (Translated into Papago)

I was going to complete the Options menu today.

However, I upload the development log because I thought that I should just sleep while struggling with bugs that I don't know the cause.

Before creating an option, create a save file so that the settings are not initialized every time you play the game.

I made a recall of saved files.

Rather than making it from the beginning, I took the code that was written in the previous version of this game and improved it.

It was written in April or May, and at that time, I thought it was such a cool code that I thought I had no place to fix it.

Looking at me now, there were a lot of strange things.

I'm going to transfer the variable I referred to in a single tone to another variable, and then I'm going to replace it with a single tone.

Or unused variables that don't cause any problems with annotating.

There were many cases where the two above were combined and so on.

I've improved these parts more intuitively and simply, and I've also recently used the functions that I found while searching for new game ideas.

'wrapi' and 'range_lerp'.

Thanks to "wrapi," I was able to move the menu directly from the last menu to the first menu when I was touring the rudder like any other game.

'range_lerp' now allows the computer to convert to a specific range of values without having to create complex equations by itself.

It worked out well, but there's an unexpected problem.... In the Options menu, there was a part that referred to the option value written on a single tone and marked it on the "text" value of the Label node.

I made a case for each reference value using 'match'. But somehow the function didn't recognize the value at all, and I used the print to print it out in the debug window, and the value itself was fine.

When I created an exception case called '_:', all of the cases made of 'match' were against the exception case.... I just plastered it with 'if / elif' and it worked fine.

Is it an engine bug? Not long ago, there was a similar problem. It was to distinguish the number value by 'match', but I couldn't recognize only one number, so the exception case handled it.

I still don't know why this problem happened.

I thought I could complete the option menu if I got a little bit more bite. That's what I usually do, but Devtober does it all October, so I thought it'd be a good idea to rest a little bit for the long-distance race.

If I do what I have to do first, I don't know what to do until I make my next plan, so I'm thinking about doing it little by little and planning ahead.

Leave a comment

Log in with itch.io to leave a comment.