C 언어 팀 프로젝트 – 스페이스 인베이더

개발 | 2013/06/18 07:29

저번 학기에 이어서 이번 학기에도 C 언어 수업을 들었습니다. 따라서 C 언어로 팀 프로젝트를 하게 됐습니다.

Space Invaders

1978년에 TAITO에서 출시한 아케이드 게임 ‘Space Invaders’

뭘 만들까 고민하다가 스페이스 인베이더를 만들어보자는 생각을 했습니다. 큰 이유는 없고, 그냥 재밌을 것 같았어요. 적들은 계속해서 플레이어쪽으로 다가오고, 플레이어가 있는 곳으로 오기 전에 맞춰서 없애야 하는 게임입니다. 갤러그(원래는 갤러가 Galaga)의 원조격 게임이죠!

저번에 했던 팀 프로젝트보다 난이도가 올라가서 어려움도 있었습니다. 실력이 부족해서 원작과 똑같이 만들지 못한 부분도 꽤 되고요.
제작 후기 전에 먼저 완성된 게임의 플레이 영상부터 보여드리겠습니다. 말로만 하면 재미없잖아요?

쉬운 것 같으면서도 은근히 어려워서 짜증을 불러옵니다.

대부분의 조별 과제가 그렇듯이 저 혼자 만들었는데요. 날짜 상으로는 일주일이 걸렸지만, 실질적으로는 4~5일 정도 걸린 것 같습니다. 원작에 비해 수준이 많이 떨어지지만, 제가 만들어서 참 애착도 가고 재미도 있네요.

소스 코드

총 750줄 정돕니다. 중복된 코드와 엔터가 많아서 그렇게 길지는 않습니다.

만들다가 가장 문제가 됐던 것은 이었습니다. CPU를 100%씩 잡아먹는 것도 아닌데, 렉이 계속 있더라고요. 그래서 한 번 뒤엎고 다시 만들었습니다.
그런데도 고쳐지지 않더라고요. 일단 원인을 찾아보기로 했습니다. 테스트 하다보니까, 적이 움직일 때 공격을 하면 느려지더라고요. 그래서 문자 출력 부분도 고쳐보고, 반복문도 줄였습니다. 조금 나아졌지만, 그래도 느립니다.
그러던 중 학교에서 테스트를 하는데, 적의 이동속도가 빠를수록(=적이 조금 남아있을수록) 렉이 많이 걸리는 걸 발견했습니다. 그래서 조건문을 다시 손 봐줬습니다. 필요 없는 계산(이미 죽은 적의 피격판정 등)을 최대한 줄였습니다. 고쳐졌습니다!

이것 말고도 꽤 많은 버그가 있었고, 열심히 고쳤습니다. 바보 같은 버그도 있었죠. 그래도 이 버그를 고치는데 가장 오래 걸려서 그런지 기억에 남네요. 요즘 컴퓨터 속도가 워낙 빨라서 반복문, 조건문 몇 번 더 하는 건 별거 아닐 거리고 생각한 건 제 큰 착각이었네요.

스페이스 인베이더의 대표 캐릭터

원작에선 그냥 적인데, 제가 만든 게임에선 보스입니다.

글이 꽤 길어졌네요. 이만 줄이고 여러분께서도 플레이 해보실 수 있도록 exe 파일을 올려드리겠습니다. 플레이 시간도 짧고 은근히 재미있으니 한 번쯤 플레이 해보시는 걸 추천합니다.
파일에 문제가 있습니다. 나중에 다시 올려드리겠습니다.

추신 : 글을 쓰면서 알았는데, 원래 게임 이름은 Space Invader’s’네요. s를 안 붙이고 만들어버렸습니다.

태그 :

“C 언어 팀 프로젝트 – 스페이스 인베이더”에 대한 2 댓글

  1. 대전팔경 댓글:

    와 ㅋㅋ 굿 다음엔 너랑 팀 해보는것도 좋겠군 ㅋ 마지막에 한대 맞았어 아놔 빨갱이 되니까 겁나쏴대 ㅋㅋ

    • 포태토 댓글:

      빨개졌을 때가 HP가 30 밖에 안 남았을 때라서 공격이 최상의 방어야 ㅋㅋㅋ
      다음 학기에 팀 프로젝트 하면 같은 조 하자!

댓글 달기