게임 프로그래머로 성장하기
13011039 강민석
학교에서공부한
개요
자료구조
알고리즘
운영체제
C++
게임개발
JAVA 컴퓨터구조
기타 등등..
개요
뭘 어떻게 짜야
좋은 코드야?
실력 좋은 프로그래머란 무엇인가?
배웠는데 어떻게
써먹지?
어떻게 시작?
개요
방황
진로설정
게임 프로그래머
게임 클라이언트
엔진개발 툴 프로그래머 UI 프로그래머
리드 프로그래머
인공지능 프로그래머
서버 프로그래머
…
진로설정
게임플레이 프로그래머(클라이언트 프로그래머)?
클릭하면 총을 쏘고 적을 맞추면 적이 죽는다.
Q를 쓰면 스킬이 나가고 공격속도가 빨라진다.. 등등
우리가 주로 생각하는 게임개발자의 모습
진로설정
엔진 프로그래머?
엔진은 언리얼, 유니티밖에 없는 거 아니야?
진로설정
툴 프로그래머?
단순 응용프로그램 만드는 사람 아니야?
진로설정
진로를 선택하면 무엇이 필요한지 찾기 수월 해진다.
게임 프로그래머
게임플레이 프로그래머
C++ Unity
알고리즘
진로설정
그래도 모르겠다면?
게임잡, 회사 홈페이지, 사람인 등 찾아보면 무엇을 잘하면 뽑아주는지
조금 나와있다.
프로그래밍스킬
어떻게 짜는게 좋은 코드야?
단순히 생각하면 스파게티가 안되는 코드
실행결과 동작 속도가 빠른 코드
전사 케릭터
Class
파이어 볼트 스킬
Class
마법사 케릭터
Class
전사 점프 동작
Class
전사 점프 동작
Class
중복코드…
재사용불가코드가몇덩어리…
너무못짜서컴퓨터가멈춰버리는
코드…
프로그래밍스킬
그건 당연한 소리 방법이 궁금해!
프로그래밍스킬
이미 선배들을 고민했고 연구했다
코딩 효과적으로 하는 법에 대한 책이 있다…
그렇다 책을 읽자
프로그래밍스킬
디자인 패턴
내가 고민했던 문제는 수많은 다른 사람도 고민했었다.
즉 패턴 화가 된다.
도구
아! 게임 만들어야 겠다!
PC게임이니까 다이렉트X를
이용해볼까? 오브젝트에 텍스처 입히고 조명 추가
해야겠다.
오브젝트들이 겹칠때 이상하게 보이는 문제를
해결 해야 겠는데?
카메라 구현 해야지.
도구
장인 정신 조금은 버리자
가끔씩 장인정신으로 밑바닥부터 구현하려는 사람이 있다.
공부하는 입장에서는 정말 좋은 자세이지만…
그래서 개발은 언제 완료되요..?
도구
STL
더 효율적으로 못 짤 것 같으면 라이브러리를 쓰자
Boost, STL에는 많은 기능들이 있지만 우리가 흔히 아는 자료구조와
알고리즘들도 구현 되어있고 안정성이 검증 되어있다.
도구
게임 만들기 좋은 시대
게임엔진을 이용해서 게임을 개발하면 PC는 물론 모바일, 콘솔 게임기
까지 포팅을 해준다.
무엇인가 필요하다고 생각해서 찾아보면 이미 내장되있는 경우가 많다.
도구
우리를 도와줄 잠재된 도구는 많다.
구글과 github에 열심히 검색해보자 우리들의 고민을 덜어주기 위해
도구를 만드는 자들도 있으니…
돈 주고 파는 곳도 있지만 오픈소스도 많다.
지식의최신화
다익스트라 알고리즘
(1959년 발표)
C++ 1983년 발표
우리가 배웠던 건 훌륭하지만 다 옛날에 발표한 지식들이다
지식의최신화
지금은?
우리가 배웠던 것의 확장적, 더 효율적으로 사용하는 방법들이 나와있다.
모르면? 뒤쳐진 것이다.
다익스트라 알고리즘
확장 => A*알고리즘(1968년)
동적 => D*알고리즘(1994년)
C++
C++11(2011년 표준)
C++14(2014년 표준)
C++17(2017년 표준)
C++20(2020년 예정)
지식의최신화
최신기술들은 어떻게 배울까?
Google, Stack overflow, Github 검색을 적극 활용해보자
누군가가 쉽게 정리를 해놓는 경우가 많다.
지식의최신화
제공하는 Document들을 적극 활용해보자
물건을 사면 설명서가 들어 있듯이 최신 기술들에는 설명서가 있다.
지식의최신화
최신 책들을 조사해보자
어떤 분야가 어떤 라이브러리가 뜨고있는지 방향을 엿 볼 수가 있다.
지식의최신화
끼리끼리 모인다고..
개발자 커뮤니티, 뉴스를 확인해보자
해커뉴스, github트렌드, 스택오버플로우 설문조사 등…
마무리
아! 고민이 좀 해결된 것 같…
마무리
지 않다…
마무리
발표자도 결국 학생 여러 자료를 인터넷에서 조사한
것이기 때문에 실제는 어떤 것인지 정확히 모른다.
마무리
멘토링, 스터디, 컨퍼런스, 검색…
성장하기 위한 중요한 요소는 결국 너의 의지
Q&A
감사합니다
13011039 강민석

[PandoraCube] 게임 프로그래머로 성장하기

Editor's Notes

  • #6 https://en.wikipedia.org/wiki/Video_game_programmer https://github.com/utilForever/game-developer-roadmap 생각보다 다양하게 분야가 존재한다.
  • #8 유니티나 언리얼 같은 통합 게임 엔진이 있으면 물리적 효과를 위한 엔진도 따로 존재합니다. 대형회사의 경우 자체 엔진을 개발하는 경우도 많습니다.
  • #12 https://en.wikipedia.org/wiki/Software_design_pattern 디자인패턴
  • #13 https://en.wikipedia.org/wiki/Software_design_pattern 디자인패턴
  • #14 https://en.wikipedia.org/wiki/Software_design_pattern 디자인패턴
  • #15 https://en.wikipedia.org/wiki/Software_design_pattern 디자인패턴
  • #18 이렇게 생각해보자 직접 퀵 정렬과 리스트를 구현한다고 생각하자 과연 내가 짠 코드는 안정적일까?
  • #21 https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%81%AC%EC%8A%A4%ED%8A%B8%EB%9D%BC_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 https://en.wikipedia.org/wiki/A*_search_algorithm https://ko.wikipedia.org/wiki/C%2B%2B C++ 1983년 발표 C++11(2011 표준) C++14(2014년 표준) C++17(2017년 표준) 다익스트라 알고리즘(1959년 발표) 확장 => A*.알고리즘(1968년) 동적=> D*알고리즘(1994년)
  • #30 현업자에게 멘토링을 받거나 개발 컨퍼런스에 가거나 검색을 하거나 결국 성장에 중요한 건 자신의 노력이 제일 중요하다