[PORTFOLIO] 으쌰 으쌰

suyoung·2023년 5월 1일
0

portfolio

목록 보기
1/4

이 프로젝트는 19학년도에 대학교 공학작품전시회에 출품하기 위해서 만들어진 게임 개발 프로젝트입니다. 물과 불 포레스트 게임에 영감을 받아 개발 했으며, 짝과 경쟁형 게임이 아닌 협동형 게임 개발을 목표로 했습니다.

안녕하세요!
19년도 개발 프로젝트인 "으쌰으쌰"에 대해 설명 드리겠습니다.

으쌰으쌰는 자바의 Native GUI 개발 도구인 SWING을 이용해서 만들어진 프로젝트입니다. 게임 엔진이 아니기 때문에 제공해주는 도구가 없어, 충돌 과정부터 움직이는 로직까지 팀원과 교수님의 조금의 도움으로 다같이 구상하고 개발했습니다!

이 게임은 팀프로젝트로 진행 되었고, 3명의 팀으로 이루어져 있습니다.
저는 팀원으로써, 충돌 알고리즘과 캐릭터 이동, 음악 삽입의 로직을 구현해 냈고, 스테이지 2 개발에 참여했습니다.

일단, 개발 초기 단계를 보여드리겠습니다.

개발 초기에는 이 게임을 만들기 위해서 많은 고민이 있었습니다. 초반에 플로우차트를 이용해 맵의 진행 단계를 설정하고, 어떤 캐릭터를 이용할지, 맵은 어떻게 구상할지 등을 직접 그리는 그래픽 디자인 단계 순으로 진행했습니다.

  1. flow chart


    게임 진행단계를 표현한 플로우 차트 입니다. 메인 메뉴에서 종료와 게임을 시작할 수 있고, 플레이를 진행하면 각 스테이지를 차근차근 깨나갈 수 있습니다. 하지만 각 스테이지를 깨려면 협업이 되어야 합니다!
    게임을 실패하거나 종료하게 되면, 모든 변수들이 리셋되기 때문에 두 캐릭터 모두 죽지 않고 진행되어야 한다는 점이 가장 중요합니다.


  2. 그래픽 설계

    이 이미지는 맵구상도 입니다. 위 두 이미지는 캐릭터와 모든 오브젝트의 충돌검사를 위해 Rectangle 클래스를 이용하기 위해서 사용된 로직도 입니다.
  3. 코드설계_나의 개발 부분
    이 두단계를 거친 후에 모든 개발이 시작되었고, 초반에 캐릭터 이동 알고리즘을 구현했습니다.

  • 자바를 이용한 이동 알고리즘

    키보드 누름 -> 키보드 이벤트 발생 -> 인식 -> 해당 키보드에 대한 좌표 이동 -> 그래픽 업데이트

  • 자바를 이용한 충돌 알고리즘

    각 객체마다 Rectangle 클래스를 이용해서 상하좌우에 씌어준다. 그리고 매 이동마다 각 객체가 다른 객체와 Rectangle클래스의 intersects함수를 이용해 교차를 검사한 후, 겹치거나 닿을 경우에 충돌이 됐다고 인지한다.

  • 움직이는 블록, 또 다른 장애물 구현

    특별한 장애물 같은 경우에는 중앙에 작은 Rectangle 객체를 넣고 충돌 검사를 하였고, 움직이는 블록같은 경우에는 1초 프레임당 좌표를 매번 업데이트 시키는 방법을 사용하였다.

  1. 실제 구현된 게임_stage 2

실제 구현된 코드와 영상은 아래 링크에서 자세하게 확인 할 수 있다.

https://youtu.be/9Poa4dhMnAQ
https://github.com/songsuyoung/MMU_teamProject

회고
이 개발 할 당시에 나는 갓 객체지향언어에 대해 익숙해진 학부생이였다. 팀원 중 한명이 다른 개발로 인해 빠지고, 나와 15학번 오빠 둘이서 실제 개발을 진행했다. 이때 당시에 4학년만 출품한다는 공학작품전시회에 전시하기 위해서 정말 서로에게 의지를 많이 했었다. 이 개발로 나와 그 오빠는 공학작품 전시회에서 장려상을 받았고, 많은 학부생 친구들과 선배,후배들이 내 작품을 보고 좋아하는 모습을 볼 수 있었다. 이때부터 나는 게임 개발자로서 걷기로 마음을 먹게 된 계기되었다.

  1. 상장
profile
게임 개발자 지망생

0개의 댓글