C 언어 팀 프로젝트 - 스페이스 인베이더
개발 | 2013-06-17 22:29저번 학기에 이어서 이번 학기에도 C 언어 수업을 들었습니다. 따라서 C 언어로 팀 프로젝트를 하게 됐습니다.

Space Invaders
뭘 만들까 고민하다가 ’ 스페이스 인베이더‘를 만들어보자는 생각 을 했습니다. 큰 이유는 없고, 그냥 재밌을 것 같았어요. 적들은 계속해서 플레이어쪽으로 다가오고, 플레이어가 있는 곳으로 오기 전에 맞춰서 없애야 하는 게임입니다. 갤러그(원래는 갤러가 Galaga)의 원조 격 게임이죠!
저번에 했던 팀 프로젝트보다 난이도가 올라가서 어려움도 있었습니다. 실력이 부족해서 원작과 똑같이 만들지 못한 부분도 꽤 되고요. 제작 후기 전에 먼저 완성된 게임의 플레이 영상 부터 보여드리겠습니다. 말로만 하면 재미없잖아요?
쉬운 것 같으면서도 은근히 어려워서 짜증을 불러옵니다.
대부분의 조별 과제가 그렇듯이 저 혼자 만들었는데요. 날짜 상으로는 일주일이 걸렸지만, 실질적으로는 4~5일 정도 걸린 것 같습니다. 원작에 비해 수준이 많이 떨어지지만, 제가 만들어서 참 애착도 가고 재미도 있네요.

소스 코드
만들다가 가장 문제가 됐던 것은 렉 이었습니다. CPU를 100%씩 잡아먹는 것도 아닌데, 렉이 계속 있더라고요. 그래서 한 번 뒤엎고 다시 만들었습니다. 그런데도 고쳐지지 않더라고요. 일단 원인을 찾아보기로 했습니다. 테스트 하다보니까, 적이 움직일 때 공격을 하면 느려지더라고요. 그래서 문자 출력 부분도 고쳐보고, 반복문도 줄였습니다. 조금 나아졌지만, 그래도 느립니다. 그러던 중 학교에서 테스트를 하는데, 적의 이동속도가 빠를수록(=적이 조금 남아있을수록) 렉이 많이 걸리는 걸 발견했습니다. 그래서 조건문을 다시 손 봐줬습니다. 필요 없는 계산(이미 죽은 적의 피격판정 등)을 최대한 줄였습니다. 고쳐졌습니다!
이것 말고도 꽤 많은 버그가 있었고, 열심히 고쳤습니다. 바보 같은 버그도 있었죠. 그래도 이 버그를 고치는데 가장 오래 걸려서 그런지 기억에 남네요. 요즘 컴퓨터 속도가 워낙 빨라서 반복문, 조건문 몇 번 더 하는 건 별거 아닐 거리고 생각한 건 제 큰 착각 이었네요.

스페이스 인베이더의 대표 캐릭터
글이 꽤 길어졌네요. 이만 줄이고 여러분께서도 플레이 해보실 수 있도록 exe 파일을 올려드리겠습니다. 플레이 시간도 짧고 은근히 재미있으니 한 번쯤 플레이 해보시는 걸 추천합니다. 파일에 문제가 있습니다. 나중에 다시 올려드리겠습니다.
추신 : 글을 쓰면서 알았는데, 원래 게임 이름은 Space Invader’s’네요. s를 안 붙이고 만들어버렸습니다.
태그 : c/c++