O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Advanced C Programming_FinalPPT.pdf

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 13 Anúncio

Mais Conteúdo rRelacionado

Semelhante a Advanced C Programming_FinalPPT.pdf (20)

Mais recentes (20)

Anúncio

Advanced C Programming_FinalPPT.pdf

  1. 1. 도플갱어 C programming Final plan announcement Team 세 얼간이(정보융합학부) - 이현수 (2018204079) 송인범 (2018204061) 안태현(2018204051)
  2. 2. Table of Contents 1. Introduction 2. System Design 3. Related Works 4. Proposal Program 5. Experimented Method 6. Experimented Result 7. Gantt chart 8. Conclusion 9. References
  3. 3. 1. Introduction  프로젝트명 : 도플갱어 (Doppelganger)  주제(Concept): 친구와 함께 할 수 있는 우주에서 떨어지는 운석을 제거하는 친환경 다이나믹 슈팅게임  제안배경: 고급 C프로그래밍에서 배웠던 지식을 활용하여 80-90년대 추억의 향수를 느껴보는 게임을 만들어보 자. 1/11
  4. 4. 2. System Design  회원가입 및 로그인 시스템 (삽입, 제거 )  90년대 느낌의 레트로(Retro) 감성의 Title Figure 1: Left: images of Introduction screen. 2/11 고요한 우주에서의 파란색 전투기 들의 움직임
  5. 5. 3. Related Works Left: Image of Battle Garegga (first shooting game with a barrage of bullets) Right: Image of starwars tar fighter mission. Center: Image of 똥피하기 3/11
  6. 6. Image: process of program flow chart 4. Proposal Program 4/11
  7. 7. 5/11 오른쪽 레이아웃에 정보표시 현재 스테이지 체력 카운트(0이면 게임종료) 스테이지 클리어 시 까지 남은 시간 (모두 소진 시 다음 스테이지 시작) 4. Proposal Program
  8. 8. 4. Proposal Program • 남은 시간은 30초를 기준으로 clock함수를 통한 알고리즘으로 시간 갱신 1단계 2단계 3단계 1P 2P LEFT: A키 LEFT: J키 SHOT: S키 SHOT: K키 RIGHT: D키 RIGHT: L키 6/11 지구의 표면을 UX화
  9. 9. 5. Experimented Method  File입출력과 메모장 연결로 데이터베이스 역할(회원가입, 점수 기록)  스택(Stack)를 이용한 삭제 구현  조건문을 활용(이중 for 문 등)하여 총알과 운석속도에 대한 알고리즘 설계  키 상태를 불러오는 GetAsyncKeyState method를 통한 움직임 할당  구조체를 선언하여 캐릭터 생성  SetConsoleTextAttribute 함수를 정의하여 색상 시스템 구현  Rand함수를 통한 운석 위치 랜덤 결정  playSound함수를 통해 효과음 삽입 7/11
  10. 10. 8/11 5. Experimented Result
  11. 11. 7. Gantt chart 9/11
  12. 12.  탄막 슈팅 게임의 차별점을 주기위해 구조체를 통한 2인용 모드  Map별 stage별 운석 속도에 대한 알고리즘 개발 완료  함수 사용과 시간 복잡도가 낮은 알고리즘 구현  (O(N^2))  수업시간에 배운 알고리즘을 통해 삭제 기능구현  최적화를 통해 모든 스테이지에 버그 없는 게임 구현 완료  갖고 있는 지식에 더해 많은 시간 도트 구현을 통하여 고전적이고 군더더기 없는 디자인 구성 완료  다양한 라이브러리 검색 및 활용을 통해 풍성한 게임 시스템 구현 10/11 8. Conclusion
  13. 13.  똥 피하기 (간단한 콘솔게임) (코드 저장겸 포스팅) https://erichika.tistory.com/29  [알고리즘] 시간복잡도(Time Complexity) https://gompangs.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98- %EC%8B%9C%EA%B0%84%EB%B3%B5%EC%9E%A1%EB%8F%84Time-Complexity  [C언어 게임 만들기] 자작 비행기 슈팅 게임(Space Fighter) https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=azure0777&logNo=220301534499  Processor register https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EC%84%B8%EC%84%9C_%EB%A0%88%EC%A7 %80%EC%8A%A4%ED%84%B0 11/11 9. Reference

Notas do Editor

  • 안녕하세요 팀 ‘세 얼간이‘ 의 발표를 맡은 이현수입니다. 고급 c 프로그래밍 프로젝트 최종 보고 시작하겠습니다.
  • 목차는 다음과 같습니다.
    먼저 저희 팀 주제 및 배경에 대하여 간략히 소개 드린 뒤, 관련 연구, 프로젝트 목표,
    실제로 진행했던 프로젝트 수행 일정 및 결과에 대해 말씀드리면서 발표를 마치도록 하겠습니다.
  • 저희 팀 세 얼간이 의 프로젝트는 바로 '도플갱어 ‘ 입니다.
    친구와 함께할 수 있는 2인용 슈팅게임으로, 우주에서 떨어지는 운석을 제거하는 친환경 다이나믹 슈팅게임을 제작하는 것이 프로젝트의 목표입니다.
    이번 학기 동안 고급 c 프로그래밍에서 배운 내용을 단계별로 적용해 가면서 재미있는 게임을 만들어 보자는 취지에서 프로젝트를 기획하게 되었습니다.
  • 저희 프로젝트 ‘도플 갱어'의 특징은 다음과 같습니다.
    회원가입 시스템을 통해 회원 정보를 저장할 수 있는 데이터 베이스 시스템을 구축하였고
    90년대 레트로 감성의 게임인 만큼, 레트로 감성의 타이틀로 게임의 시작화면을 구성하였습니다.
  • 프로젝트와 관련하여 기존에 제작된 다른 프로그램들을 조사해보았는데요,
    왼쪽에 보이는 사진 자료는 battle of garegga, 우리나라에서는 ‘배틀 가레라'로 불리는 최초의 탄막 슈팅 게임입니다. 여기서 barrage 탄막이라는 뜻은 사전적의미로 일제 엄호 사격을 말합니다. 실탄을 여러 화기로 일제 사격하여 탄으로 마치 장막을 형성하여 전투기를 공중에서 견제 혹은 엄호하는 개념을 뜻합니다.
    저희 게임은 이렇게 사방에서 날라오는 장애물을 피하면서 운석을 제거하는 컨셉의 탄막 슈팅 게임을 제작할 계획입니다.
  • 저희가 제작한 게임 ‘지구 오락실'의 프로젝트 흐름도는 다음과 같습니다.
    먼저 시작화면에서 실행버튼을 통해 게임을 실행하게 되면 회원정보 시스템을 통해 회원 가입 여부를 파악합니다.
    보이시는 바와 같이 가입 여부를 확인하여 가입한 경우 게임 시작 그렇지 않다면 회원정보를 생성한 후 게임을 시작하게 됩니다.
    이후 게임을 진행하면서 다양한 스테이지를 플레이하게 될 텐데요, 현재 스테이지를 클리어 하여야만 다음 스테이지로 진행, 클리어 하지 못했다면 게임이 종료되고 해당 게임의 기록이 저장되고 게임이 종료가 됩니다.
    이 때 게임이 종료되는 기준은 플레이어의 체력이 0이 될 때, 즉 플레이어가 죽었을 때 게임이 종료되는 구조입니다.
  • 실제 게임 실행 화면을 보여드리면서 설명 드리도록 하겠습니다.
    화면 우측에 현재 게임 상태를 표시하여 게임플레이어가 상태를 파악할수 있도록 하였고,
    표시된 정보들은 다음과 같습니다.
    보이시는 바와 같이 현재 스테이지, 현재 체력, 남은 시간을 표시하여 플레이어가 쉽게 게임상태를 파악할 수 있습니다.
  • 운석은 화면 상단에서부터 내려오며, 플레이어는 세모로 표시된 전투기를 움직여 총알을 발사해 운석을 제거하는 모습입니다.
    보시는 바와 같이 좌측 파란색 네모로 이루어져 있는 바닥은 도트 그래픽을 활용해 지구의 표면을 나타낸 것입니다.
    운석은 스테이지가 진행될수록 높은 난이도의 운석이 높은 확률로 생성되며, 단계가 높은 운석은 더 많은 총알을 사용해 제거하도록 설계하였습니다.
    하나의 키보드로 2인이 플레이하므로 1p는 a,s,d 2p는 j,k,l 을 사용해 플레이하게 됩니다.
  • 다음으로 각 기능을 어떻게 구현하였는지 설명드리겠습니다.
    보이시는 바와 같이 수업시간에 배웠던 지식에 더해 추가적으로 찾아본 부분을 활용해 게임 내 각 기능을 구현 했습니다.
    설명이 필요한 부분들만 소개해드리면서 넘어가겠습니다.
    먼저 회원가입 시스템은 파일 입출력과 메모장 연결을 통하여 데이터베이스를 구축해 구현하였습니다. 실행창에서 입력받은 회원 정보, 게임이 종료된 후 저장되는 게임기록은 데이터베이스에 자동으로 저장되도록 설계하였습니다.
    또한 스택 자료구조를 활용하여 회원정보를 삭제할 수 있는 기능도 추가해보았습니다.
    게임 내 각 기능들은 대부분 자체 정의한 함수를 활용해 구현하였고, 효과음을 삽입하면 게임의 재미를 더할 수 있을 것 같아 자료를 찾아보고 이를 적용해보았습니다.
  • 회원 정보가 데이터베이스에 저장되는 결과는 게임 시연 영상에 보여드릴 수 없어서 따로 소개해 드리겠습니다.
    회원 가입 창에서 회원 정보가 저장된 후 보이시는 바와 같이 프로젝트 폴더에 각 정보가 저장되는 것을 확인할 수 있습니다.
  • 프로젝트는 다음과 같은 일정을 수립하여 체계적으로 수행하였습니다.
    주제 선정 및 구체화, 기본 ui 작업, 게임 내 객체의 움직임 구현, 세부적인 알고리즘 구축, 마지막으로 디자인 구성과 db구축으로 나누어 세부 사항으로 분리 후 적절히 일정을 분배하여 프로젝트를 마무리하였습니다.
  • 마지막 Conclusion 입니다.
    저희 프로젝트의 차별점과 향후 개선방안에 대해 말씀드리며 발표를 마치겠습니다.
    기존 탄막 슈팅 게임과는 조금 다른 차별점을 두기 위하여 구조체를 활용해 추가 캐릭터를 선언한 이후 2인용 모드를 만들어보기로 하였고 이를 바탕으로 프로젝트를 제작하였습니다.
    또한 프로젝트 제작 과정에서 시간 복잡도를 고려하면서 효율적인 프로그램을 만들기 위해 노력하였습니다.
    프로젝트 제작 과정 중에서 수업 시간에 배웠던 내용을 활용해 기능을 추가해 보기도 하였고,
    게임의 다양한 기능을 구현 해보기 위해 추가적인 자료들을 검색 및 참고해보았습니다.
    그 결과 초기 기획단계보다 조금 더 풍성한 게임 시스템을 구현할 수 있었던 것 같습니다.
    중간 피드백에 제안되었던 플레이어 추가 기능을 구현 해보려 시도하였으나, 하나의 키보드로 실행되는 게임 특성 상 세 명이상의 플레이어가 동시에 수행하는 환경을 구성하기 힘들었고 또한 서버를 구축하여 적용하기에는 한계점이 존재하여 향후 이 부분은 개선해보겠습니다.
  • 저희가 참고했던 자료들 소개해 드리면서 발표 마치겠습니다. 감사합니다.

×