Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

1

Share

Download to read offline

NDC 2017 라이브 프로세스 분석을 통한 효율적인 게임 로직 개발 - 김성은

Download to read offline

라이브게임 개발 프로세스 분석을 통해
현업에서 발생하고 있는 여러 문제점들을 각 사례를 통해 살펴보고
이를 해결하기 위해 시도했거나 혹은 현재 시도 중인 여러가지 대안들을 살펴봄으로써
라이브 게임 컨텐츠 개발에 완성도를 높이는 대 도움을 줄 수 있습니다.

Related Books

Free with a 30 day trial from Scribd

See all

NDC 2017 라이브 프로세스 분석을 통한 효율적인 게임 로직 개발 - 김성은

  1. 1. 넥슨 코리아 김성은(build88@nexon.co.kr) 라이브 프로세스 분석을 통한 효율적인 로직 개발
  2. 2. 발표자는....
  3. 3. 발표자의 경험...... 계기..
  4. 4. 지구 반대편도 비슷한데??
  5. 5. 다른 개발자들과의 대화..
  6. 6. 그래서 얻은 결론…
  7. 7. LIVE PROCESS
  8. 8. 기획서 이해 기존 코드 분석 구조 설계 코드 작성 완성 QA & 버그수정
  9. 9. Before you can change the code to add a new feature, to fix a bug, or for whatever reason caused you to fire up your editor, you have to understand what the existing code is doing. We tend to gloss over this step, but it’s often the most time- consuming part of programming. 기능추가,버그수정 그 외 무슨 이유든 코드를 고치려면 먼저 기존 코드를 이해해야 한다. 대부분 이 과정을 별것 아닌 것으로 여기지만 사실 프로그래밍에서 가장 오래 걸리는 부분이다.
  10. 10. 못 알아 먹겠다…. 기존 코드는.... 대부분…
  11. 11. 0% 40% 50% 5% 5% 설계 및 구현 기존 코드 분석 꿈 상위 대부분 삶이 힘들다 갈아엎는중.. 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% 항목 1 항목 2 항목 3 항목 4 항목 5 실제 일정…
  12. 12. BAD CODE 분석시간 증가 코드 설계 시간 부족
  13. 13. 그래서 오늘의 핵심!!
  14. 14. 분석에 소요되는 시간을 줄여서!! 코드 설계 & 작성하는 시간을 늘리자!!!!!!!! GOOD CODE 분석시간 감소 충분한 설계 시간
  15. 15. 오또케요~???
  16. 16. 좋은 코드를 많이 만들어 보아요~
  17. 17. 좋은 코드?????
  18. 18. 좋은 코드의 정의 : 새로운 코드를 작성 하기 전, 머리 속에 입력해야 할 정보가 적은 코드
  19. 19. 발표자를 포함한 많은 프로그래머들이 경험을 통해 배운 여러 가지 TIP
  20. 20. ‘코드’적인 측면과 ‘방법론’적인 측면으로 나누어 말씀 드리려 합니다.
  21. 21. 코드
  22. 22. 작명은 중요하다. 정말로 중요하다. ( 변수 , 함수 , 클래스의 작명 ) // 알아보기 겁나 힘들다.. NameGet() GetNameRes() UserIDGet() ... // CS 가 뭐지???, 정의를 찾아 가봐야 한다... if( CS() ) { ... } // 공통적인 내용이 앞에 있어 알아보기 쉽다. GetName GetNameRes GetUserID ... // 한눈에 무슨 일을 하는지 알 수 있다. if( CheckState() ) { ... } 작업자들간의 공유할 수 있는 네이밍 규칙이 필요합니다.
  23. 23. 사용하지 않게 된"#if~endif"은 빠르게 Delete 대부분의 서비스중인 온라인 게임에서 #define 의 개수는 적게는 "몇백개"에서 많게는"몇천 몇만개"에 달한다. #ifdef~#endif 는 “가독성”과 “유지보수” 에 있어 굉장히 중요하고 민감한 부분임을 항상 명심하자. USE_FUNC_A,B,C,D 모두 더 이상 사용하지 않지만 여전히 코드상에 남아있다
  24. 24. Class1 CompareString // Class1 의 스트링 비교 함수 미사용 코드는 꼭 제거하자 완전히 같은 기능을 하는 중복 함수들.. Class2 StringCompare // Class2 의 스트링 비교 함수 Class3 CompareStr // Class3 의 스트링 비교 함수 #ifdef CASE_NEW int nCase = 0 ; #else int nCase = random(0,2); #endif // CASE_NEW if( nCase == 0 ){ ... } // 여기부터는 필요가 없어 졌다. else if( nCase == 1 ) { ... } else if( nCase == 2 ){ ... } 무쓸모 코드 발생 int nCase = random(0,2); if( nCase == 0 ){ ... } else if( nCase == 1 ) { ... } else if( nCase == 2 ){ ... }
  25. 25. 적재적소의 주석! , 미사용 주석은 빠르게 제거~!! 실제로 동작하는 코드는 한줄!!?? 직관적으로 이해 가능!! OnExcuteSpecial()이 무엇을 하는지는 오로지 작성자만...
  26. 26. ‘코드’적인 측면의 공 통 점
  27. 27. 작은 불씨가..
  28. 28. 큰 불로..
  29. 29. 업무 하다가 남은 시간에 정리하자
  30. 30. “남은 시간” 은 없다. 반드시 “업무” 로 할당하여 해결하자.
  31. 31. 방법론
  32. 32. 짧은 개발 기간 동안 무리한 양의 개발 지양
  33. 33. 개발완료 이후 출시 전 사이 여러 번의 내용 변경 시도 (지양x3)
  34. 34. 그래도 정말 어쩔 수 없이! 꼭!! 이번만큼은 해야 한다면!!??
  35. 35. 업데이트 이후 스케줄은 반드시 !! 무리한 개발에 따른 비효율적 코드(땜빵코드) or 리소스의 정리(리펙토링)가 되어야 한다. 무리한 개발을 진행하였으면 반드시 그에 따른 결과를 기록해야 하고 이를 향후 비슷한 이슈가 발생했을 때 참고자료로 사용해야 한다.
  36. 36. 신입은 야생동물이 아닙니다. 야생에 방치하면 아니되오~!! 첫 출근!! 전쟁터.. 여긴 어디 나는 누구.. 탈선..
  37. 37. 새로운 환경과 업무에 잘 적응 할 수 있도록 많은 관심과 노력이 필요합니다.
  38. 38. 퇴사 예정자에게 새로운 업무부여는 XXX 이번 개발은 진짜 중요한 건데 퇴사 전에 , 마지막으로 멋지게 마무리 하고 가자. 잘 할 수 있지?? 너만 믿는다~ “근데 너는 이 개발이 성공하더라도 그것에 대한 보상은 단 하나도 받을 수 없어 하지만 일은 정말 멋지고 완벽하게 해내야 해 알았지?” 그럼 수고해~
  39. 39. 퇴사 예정자가 진짜 해야 할 업무는 “신규개발” 이 아닌 “인수인계” 입니다.
  40. 40. 직간접적인 "코드리뷰"!! must have!! 나는 10줄의 코드로 구현 가능하다고 생각한 기능을 다른 프로그래머는 단 2줄의 코드로 구현 가능한 방법을 알고 있을 수도 있다.
  41. 41. 직간접적인 "코드리뷰"!! must have!! 직접적인 코드 리뷰 ( 결과물에 대해 모두가 토론 ) 간접적인 코드 리뷰 ( 리드 프로그래머의 검수 ) 30 % 70 %
  42. 42. 직간접적인 "코드리뷰"!! must have!! 팀원들의 리드 프로그래머에 대한 "신뢰도" UP Code talks bullshit walks 프로젝트의 코드 퀄리티가 뛰어나다 응답 작업자와 1:1 대화를 통한 코드 리뷰 or 관련 컨텐츠의 샘플 코드 제시 방향을 제시 (리더가 직접 코드를 작성하며 게임 코드의 변화를 자세히 파악하고 있어야 한다.)
  43. 43. “원래 다 그런 거지..”
  44. 44. 이 세상에 원래부터 그런 것은 없습니다.
  45. 45. 오래된 관습 만이 존재할 뿐입니다.
  46. 46. 각 팀에 맞는 해결책을 지속적으로 논의
  47. 47. 재미있는 게임 만들어 보아요~
  48. 48. 감사합니다.
  • ssuser215764

    Sep. 29, 2017

라이브게임 개발 프로세스 분석을 통해 현업에서 발생하고 있는 여러 문제점들을 각 사례를 통해 살펴보고 이를 해결하기 위해 시도했거나 혹은 현재 시도 중인 여러가지 대안들을 살펴봄으로써 라이브 게임 컨텐츠 개발에 완성도를 높이는 대 도움을 줄 수 있습니다.

Views

Total views

329

On Slideshare

0

From embeds

0

Number of embeds

1

Actions

Downloads

5

Shares

0

Comments

0

Likes

1

×