GAME(53)
-
전투 게임 4일차
어제 공격속도를 적용했는데 뭔가 아직 해결되지 않은것같다. 공격속도가 4일때, 1초에 4번 공격하지도 않음!! ㅜㅠ 일단 애니메이션 테스트를 해보니 배속은 정상적인것 같고, 하나는 애니메이션만 재생하는 인형이고 나머지는 일반 캐릭터인데 애니메이터를 보니까 상태 전환이 일어나는 과정에서 애니메이션이 씹히는것 같다.. 지금 상태머신 상 Attack 후 Idle -> Chase - > Attack 인데. Idle상태에서 Walk 트리거가 발동된 상태여서 두개가 가끔 동시에 켜질때가 있는데 이게 Walk로 가버리는 순간 공격이 끊김.. 일단 몇가지 해결 방법을 또 생각할 수 있는데 알고리즘을 수정하거나 애니메이션 타임을 좀 수정하거나 아니면 Attack일때 트리거를 꺼버리는 방법 지금 떠오르는것은 여기까지. 일..
2024.01.17 -
전투 게임 3일차
일단 '공격속도' 라는것을 구현해야 하는데, 일단 처음에 생각한것은 AI측에서 State제어를 걸어주는것. 하지만 이것은 AI가 또 스텟 참조를 해야한다. 그리고 공격속도라는것은 모든 캐릭터에 적용되는 사항이라서 다른 방법이 필요할 것 같다. 그렇다면, 공격속도를 제어해주는 것은 결국 캐릭터측에서 존재해야 할 것 같다. 다시 말하지만 공격속도는 모든 캐릭터에서 존재하여야 한다. 그리고 공격속도는 추상적인게 아니라 어떠한 실체가 제어를 해 주어야 한다. 근데 지금은 모든 캐릭터가 인터페이스만 상속받고있다. 따라서 캐릭터를 관리하는 상위 클래스가 존재하여야 한다. 갑자기 Knight is a Char 와 Char has a Knight 와 조금 헷갈렸다. Char has a Knight는 애초에 뭔가 말이 ..
2024.01.16 -
InputManager
InputManager을 사용하는 이유!! 예들 들어서, 입력을 받는 객체가 있다고 가정해보자. 자 객체가 하나일때는 괜찮다 하지만 여러 객체가 입력을 받는다면? 그 객체의 수만큼 Update에서 계속 입력을 받았는지 안받았는지 if문으로 체크를 하는 상황이 발생한다!! 이는 성능 이슈가 발생할수 있는 충분한 여지이다. 또한? 어디서 입력이 되었고 어떤것을 실행하여야 하는것인지 명확하지 않다. 이를 해결해줄수 있는것이 바로 InputManager이다. 한번 만들어보자. 일단 델리게이트(Action)을 이용한 방식으로 실행이 된다. 이제 간단한 캐릭터 인풋을 구현해보자. Update에서 Input을 계속 체크해주는 모습이다. 만약 이 객체가, 10개 혹은 100개가 있다면 Update에서 100번을 동일하..
2024.01.15 -
전투 게임 2일차
일단, 전에 생각했던 수정사항중 하나를 적용해보자면 알고리즘과 행동에 대한 분리가 필요하다고 생각하였다. AI는 단순히 조건에 따라서 상태를 전이하는 역할만 한다. 일정한 거리에 적이 들어오면 공격 상태로 전이하고, HP가 얼마 남지 않았으면 뒤로 후퇴하고.. 상황에 따라서 다른 알고리즘을 가질수도 있겠지만, 같은 알고리즘을 가질수도 있다. 하지만 여기서 상태전이와 행동(공격,데미지) 등을 같이 처리하게 된다면, 하나의 캐릭터에만 스크립트가 의존하게 됨으로서 또다른 스크립트를 만들어야지 적용할 수 있다. 예를 들어 생각하자면 나는 클래시오브클랜의 바바리안과 바바리안 킹이 있다고 생각하였다. 바바리안과 바바리안 킹은 알고리즘이 아마 비슷하거나 똑같을것이다. (바바리안 킹이 스킬만 추가될 뿐.) 일단 똑같다..
2024.01.14 -
전투 게임 1일차
1일차! 스텟관리 및 AI를 손보았다. 친구랑 롤 하면서 매치 돌리는 시간에 틈틈히 만들어봄! ㅋㅋ 일단 테스트삼아서 해 보려고 했는데 판이 커짐.. 열거형으로 변경해야 함. 간단한 AI 제작.. 개판으로 한번 싸워보았따. 그냥 테스트 삼아서 해 본거니까 AI도 미흡하고 설계적인 문제가 있다. 나중에 고쳐야지..ㅎ
2024.01.09 -
작곡 프로그램 개발 일지 26
최근 몇일간 일지를 올리지 못하였다. 왜냐하면 마감 처리를 해야해서 빡시게 해야했기 때문이다. 이제 마무리를 한 후, 개발 과정을 소개하자면.. 요청하는 부분을 조금 더 수정했다. 기본적으로 요청 구조는 이렇게 잡고 HttpRequest에 맞는 Builder 클래스를 제작해서 이런식으로 Builder 패턴을 적용해서 요청을 제작하면 좀 더 구분지어 명확하게 볼 수 있다. 이런식으로 서버랑 연동하고 TokenManager에서 토큰을 관리함!! 멀티 채팅도 만들어야 하는데, '멀티' 와 '채팅' 을 분리해서 설계했다. 먼저 채팅기능은 ChatService라는 클래스를 제작하고 Create Chat이라는 메서드를 작성한다. AdjustView는 채팅창 크기를 조절하는 코루틴 포톤 채팅을 이용해서 진행! 어쨋든..
2023.11.28