게임 프로그래밍에서 발생되는 버그에 대해서 궁금합니다.
가끔 게임을 하다보면 큰 버그는 아니지만 잔잔한 버그들이 발생하는 경우가 있잖아요? 예를 들어 1번 던전의 보스 색은 파란색이고 2번 던전의 보스 색은 빨간 색인데 1번 던전에서 보스가 사용하는 스킬의 이펙트가 2번 던전의 보스와 같은 빨간 색이 나온다던가 그런 버그들은 단순한 실수가 원인인가요 아니면 다른 원인이 존재하나요?
가끔 게임을 하다보면 큰 버그는 아니지만 잔잔한 버그들이 발생하는 경우가 있잖아요? 예를 들어 1번 던전의 보스 색은 파란색이고 2번 던전의 보스 색은 빨간 색인데 1번 던전에서 보스가 사용하는 스킬의 이펙트가 2번 던전의 보스와 같은 빨간 색이 나온다던가 그런 버그들은 단순한 실수가 원인인가요 아니면 다른 원인이 존재하나요?
===> 이런 실수로 인해 발생되는 에러를 로직에러 라고 합니다
즉, 소스상으로는 에러가 없지만 운영중에 생기는 에러죠
이런 오류가 생기는 이유는 프로그래머가 개발시 이렇게 접근하여 보스에 접근할텐데 하면서 10가지 경우의 수를 생각해서
로직을 만들었는데
사용자중의 그 누군가가 10가지의 경우의 수를 벗어나는 11번째 경우의 수로 보스에게 접근했다면?
위에 질문한 내용처럼 버그가 발생하는것입니다
그래서 게임사들이 실제 서비스 하기전에 클로즈베타,오픈클로즈베타 서비스를 하는 이유이기도 합니다
안녕하세요. 프로그램에서 발생되는 버그의 원인이 궁금하신가보군요!
일단 게임도 그렇고 대부분의 프로그램은 버그를 가지고 있다고해도 과언이 아닐만큼, 버그는 크든 작든 프로그램에 존재할 가능성이 높습니다. 물론 정말 간단한 형태의 프로그램은 버그가 없을 수도 있겠지만, 어느정도 규모가 되는 게임이나 프로그램은 늘 버그 존재 가능성을 안고 있죠.
버그가 발생하는 이유는 다양합니다. 말씀하신대로 프로그래머의 단순 실수가 원인일 수도 있고, 프로그램 설계나 구현 시 전혀 예상치 못한 상황 전개가 될 수도 있겠습니다. 아주 간단하게 예를 들어 프로그래머가 특정 상황에서 1에서 100까지의 입력값이 들어오는 상황이라고 판단해서 프로그램을 짰는데, 의도하지 않은 120이라는 값이 갑자기 입력값으로 들어오게 되는 상황입니다. 이런 경우 프로그램은 예외상황이 발생하는 것이고, 이런 예외상황에 적절히 대처하도록 잘 처리해놓지 않았으면 프로그램이 오동작을 일으키게 되는 것입니다. 이런것들이 버그라고 할 수 있겠습니다.
프로그램은 정말 다양한 변수와 흐름에 따라 처리되는 복잡한 논리구조의 집합체입니다. 그렇기 때문에 프로그램 동작 중에 얼마든지 예상하지 못한 상황이 발생할 수 있는 것이구요. 이런 버그가 발생하면 프로그래머는 패치를 통해 수정을 하게 됩니다. 그래서 프로그램들이 버전업을 하면서 지속적으로 프로그램을 유지보수하게 되는 것이지요. 애초에 완벽하지 않은 인간이 창조해내는 프로그램인만큼 프로그램 역시 완벽할 수가 없답니다. 그래도 프로그래머라면 최대한 버그가 없는 양질의 프로그램을 만들어내기 위해 최선을 다해야겠죠?
답변 조금이나마 도움되었으면 좋겠습니다. 감사합니다.