반응형 분류 전체보기2046 잡학지식) 90/90 법칙(Ninety-Nienty Rule) 90/90 법칙(Ninety-Nienty Rule) Tom Cargill가 말한 90 / 90 법칙(Ninety-Nienty Rule)은 개발이 마무리가 되는데 걸리는 과정이 '코드의 90%가 개발기간에 완성되고 코드의 나머지 10%는 추가적인 90%의 개발 기간에 완성된다'라는 법칙으로 총 180%의 개발기간이 필요하다는 것을 말한다. 실제 마무리에 걸리는 시간이 그전의 기간만큼 든다는 이야기이다. 실제 서비스나 런칭을하는과정도 비슷하다. 개발하는 기간보다는 QA와 버그 수정 및 폴리싱을 하는데 굉장히 시간이 많이 든다. 그러한 이유는 처음과 다른 개발방향 이라던지, 방치된 버그 및 확인되지 않는 사항들이 디테일하게 확인되는 과정에서 발견돼서 그런 게 아닐까..? 조심스럽게 생각해본다. ★★☆☆☆ 2020. 6. 4. 잡학지식) 보이 스카웃 규칙(The Boy Scout rule) 보이 스카웃 규칙(The Boy Scout rule) 보이 스카웃 규칙은 '떠날 때는 뒷정리를 반듯이 깨끗이 해야 한다.'라는 규칙이 있다. 설명 코드 주석과 문서화 주석을 추가해서 코드의 의도를 명확히 설명해서 다른 개발자들의 실수 및 의도하지 않은 경우를 감소한다. 효율적인 자원 사용 내장 기능을 활용해서 코드를 간결하고 효율적으로 작성한다. 에러 처리 적절한 예외 처리를 통해 예상치 못한 상황에 대비하는것이 중요하다. 코드 리뷰와 협업 읽기 쉬운 코드는 협업과 코드 리뷰를 향상 시킨다. // 좋은 예시: 코드에 설명적인 주석 추가 public double CalculateArea(double radius) { // .. 2020. 6. 4. 소식) 패스오브액자일(수확 리그 6월 20일) 패스 오브 액자일(수확 리그 6월 20일) 이번에 시작되는 패스오브액자일의 시즌 콘셉트는 '수확'이다. '신성한 숲'에서 씨앗아이템을 심으면 해당 몬스터가 생성되고 생기를 수확해서 더 좋은 등급의 아이템으로 업그레이드시키는 시스템이다. URL :youtu.be/QkK044Zzudw 추가로 이번에 새로운 스킬은 '강타'류와 '함성', '낙인' 스킬들의 개편이 있을 예정이라고 한다. 추가로 신규 그래픽 렌더링 엔진 'Vulkan'을 적용해서 더 좋은 그래픽이 연출되었다고 한다. 저번 시즌(환영) 리그는 시간이 없어서 못해봤는데 이번에는 조금 즐겨볼 예정이다. 정식 출시일은 6월 20일이기 때문에 조금 기다려야 하지만 이번에도 새로운 콘셉트로 새로운 경험을 하게 되어서 너무 기다려진다. 디아블로와 비슷한 게임.. 2020. 6. 3. 개발)훌륭한 프로그래머 되는법(Becoming a Better Programmer) 훌륭한 프로그래머 되는 법(Becoming a Better Programmer) 좋은 프로그래머가 되기 위해서는 코드에 신경 써야 한다. 어떤 환경에서 단지 작동하는 것처럼 보이는 코딩을 거부해야 하고 올바르게 작동하는 훌륭한 코드를 짜도록 노력해야 한다.(+ 올바른 작동을 테스트하고 검증하는 테스트 환경도 갖춰야 한다) 보이는 것은 강력하다. 코드 에러를 줄이고 사이드 이펙트를 줄이려면 영리하게 짜는 것보다 명확하게 짜는 것이 더 중요하다. 읽기 어려운 코드는 작업하기 어렵다. 다른 사람을 위해 코딩하는 것을 잊지 말자 작업하기 전에 일관성에 대한 이야기를 해라. 한 번에 모든 레이어를 적용하기는 힘들다. 이후에 도입하는 것도 힘들다. 어디서부터 어디까지 변경해야 하는지 곤란하다. 이럴 땐 템플릿을 사.. 2020. 6. 3. 잡학지식) 가스 라이팅(Gaslighting) 가스 라이팅(Gaslighting) 가스 라이팅은 타인의 마음에 스스로에 대한 의심이 생겨서 현실감과 판단력을 잃게 됨으로써 그 사람의 정신력이 황폐해지고 무기력감에 빠지게 되고 결과적으로는 그 사람이 타인에게 지배력에 사로잡히게 돼서 파국으로 몰아가는 '심리학' 용어이다. 직장생활을 하게 되면 위와 같은 상황을 많이 겪는다. 자존감을 깎아 먹는다라는 표현으로 많이 사용했는데 '가스 라이팅'이라는 심리학 용어로 표현될 수 있다. ★★☆☆☆ 2020. 6. 3. 소식) 롤(LOL) 검색 알고리즘 개선 및 랭크 게임 소식 롤(LOL) 검색 알고리즘 개선 및 랭크 게임 소식 리그 오브 레전드 이하 롤(LOL)은 5인 대전 게임이다. 5인 대전게임인 만큼 5명의 플레이어의 협동 플레이가 중요되는 게임인데 실상은 많은 트롤들과 비속어를 접하게 된다. 이번에 롤의 앞으로의 개발방향과 개선사항에 대해서 업데이트 소식 중 가장 반가운 소식들이 나와서 포스팅하게 되었다. 가장 주된 내용은 다음과 같다. 1. 포지션 자동 선택 공평성 양 팀에 자동 선택된 플레이어의 수를 일치시켜주는 기능 2. 자동 선택된 포지션 교환 자동 선택 기능에서 팀원의 포지션 선호도가 정확하게 일치하지 않는 문제 해결 3. 사전 구성 팀 공평성 양 팀의 팀의 수가 균형을 이룰 수 있도록 수정 4. 새로운 대전 검색 알고리즘 승률 예측의 기준으로 검색 알고리즘 .. 2020. 6. 3. Unity) 워크플로우 속도 향상을 위한 기능 5가지(2019 v) 워크플로우 속도 향상을 위한 기능 5가지(2019 v) 워크플로우 속도 향상을 위한 5가지 기능을 발췌했다. 1) 플레이 모드(Enter Play Mode) 2) 에셋 임포트(Asset Import Pipeline) 3) 에셋 관리(Addressable) 4) 디바이스 프리뷰(Device Simulator) 5) 패치 빌드(Script Only Patching) Unity Korea에서 공개한 기능으로 'Dev Week : 워크플로 속도 향상을 위한 기능 소개'를 편집한 포스팅입니다. 원본 URL :https://www.youtube.com/watch?v=Kel7NIP2AOg ------------------------------------------------------------------------.. 2020. 6. 1. Unity) 프로파일러( Profiler ) 프로파일러( Profiler ) 프로파일러는 게임을 최적화하는데 최적화된 툴이다. GPU, CPU, 렌더링, 메모리 등 여러 가지 정보를 보여준다. 프로파일링을 켜놓고 게임을 재생하면 성능에 대한 데이터를 기록해준다. 사용방법은 다음과 같다. [Window] -[Analysis] -[Profiler] 하게되면 Profiler 창이 나온다. 프로파일링을 켜놓고 게임을 재생하면 성능에 대한 데이터를 기록해준다. 개발을 진행하면서 많이드 보는 카테고리는 CPU 항목과 렌더링 항목이다. 런타임 상황에서 오브젝트를 생성하거나 연산을 하는 과정에서 유니티 특성(C#)에서 GC 콜이 발생하는 과정에서 많은 부하가 생기고 프레임 드랍을 많이 경험하기 때문이다. 프로파일러의 항목을 자세히보면 상세정보를 볼 수 있는데 현.. 2020. 6. 1. Unity) MeshCollider.convex MeshCollider.convex 오늘의 삽질은 Fbx의 파일에서 충돌 영역 관련돼서 맵에 구멍(Hole) 처리를 한상황에서 물리를 적용했을 경우에(RigidBody) 충돌 여부 관련돼서 convex의 여부를 깜빡해서 나왔다. ' MeshCollider.convex '의 설명음 다음과 같다. 충돌 감지를 위해 사용되는 메쉬 오브젝트를 나타냅니다. 이것을 true로 설정하게 되면, 해당 메쉬 충돌체는 구멍(holes)이나 입구(entrances)를 갖지 않습니다. 컨벡스 메쉬는 다른 컨벡스 충돌체나 컨벡스가 아닌 메쉬들과 충돌이 가능합니다. 따라서 만약 제공되는 기본 충돌체보다 더 디테일한 충돌체가 필요한 경우라면, 컨벡스 메쉬 충돌체는 강체들에서 적합합니다. 체크를 하게 되면 메쉬의 콜라이더가 구멍을 .. 2020. 6. 1. 잡학지식) 모네타이제이션(Monetization) 모네타이제이션(Monetization) 모네타이제이션은 데이터를 기반으로 수익을 창출하는 방식을 통칭해서 표현하는 표현이다. 대체적으로 웹사이트, 유튜브 등 영상 미디어 등등과 개인정보 등 여러 가지 경우에서 적용된다. 가장 많이 접하는 방식은 '광고'라고 생각한다. CPI(Cost per impression) - 광고 클릭당 지불 비용 CPM(Cost per thousand impression) - 광고 노출당 지불 비용 등등이 있다. 요즘은 데이터도 돈이 되는 시대이다. 지금 포스팅하고 있는 블로그도 모네타이제이션의 한 가지 방법이다. ★★☆☆☆ 2020. 6. 1. 소식) MWU Korea Award 2020 MWU Korea Award 2020 유니티 코리아가 주최하고 유니티로 만든 (Make With Unity) 2020 어워드 투표에 관련된 소식이다. 조건은 Unity 기반으로 개발된 모든 콘텐츠면 참여가 가능하고 조건은 '대한민국'에서 서비스 중이거나 서비스 예정 중인 작품들이라는 제한이 있다. URL : youtu.be/FIiiNQZC_WY URL :http://www.unitysquare.co.kr/madewith/mwu Unity Square www.unitysquare.co.kr TOP 24에 대해서 알아보자 후보들을 보니 처음 보는 게임도 있고 학교에서 만든 작품도 많이 보인다. 유니티로 이런 퀄리티와 게임들을 낼 수 있다는 거에 대해 놀랍고 나도 많은 노력을 해야겠다. 베스트 그래픽 (Bes.. 2020. 6. 1. 게임리뷰) 스톤샤드(StoneShard) 스톤 샤드(StoneShard) 이름 :스톤 샤드(StoneShard) 개발사 :Ink Stains Games 장르 : 턴제, 로그라이크, 던전 등급 : - 가격 : (Early Access Game) 16,000 URL : youtu.be/xwPAr4V3oK0 턴방식의 로그라이크 게임으로 늙은 대머리 용사인 '베른'이 지하 감옥을 탈출하면서 시작된다. 중세의 용병인 세계관으로 오염된 땅과 마을, 던전을 탐험하며 캐릭터는 점점 성장해간다. 시야가 존재하고 이동도 턴제로 이동하게 된다. 전략적인 선택을 해야 한다. 여러 가지 무기 종류가 있고 아이템을 파밍 할 수 있고 아이템들은 많은 고유한 능력치가 존재한다. 이동하다가 디버프로 인해서 사망하는 경우도 종종 발생하게 된다. 정식 오픈된 게임은 아니지만 충.. 2020. 5. 31. 소식) 블리자드 - 블리즈컨 2020 취소 블리자드- 블리즈컨 2020 취소 블리자드가 매년 자사의 게임을 소개하는 자리인 '블리즈컨'을 공식적으로 취소를 결정했다. 건강과 안전이라는 관점에서 행사에 대한 많은 고민들을 했고 끝내는 취소를 결정했다. 오프라인 행사는 취소를 했지만 온라인에서는 블리즈컨에 대한 소식을 지속적으로 커뮤니케이션할 예정으로 보인다. 연례행사였던 블리즈컨을 기대한 많은 팬들에게는 조금 아쉽지만 시국이 시국인만큼 이런 결정을 한 블리자드도 대단한 것 같다. URL : https://blizzcon.com/ko-kr/news/23434523 블리즈컨에 대한 업데이트 블리즈컨 총괄 프로듀서 Saralyn Smith가 전하는 블리즈컨 관련 업데이트 blizzcon.com ★☆☆☆☆ 2020. 5. 30. 코드) 리스폰 가능한 포지션 가져오기(방해물 영역제외) 리스폰 가능한 포지션 가져오기(방해물 영역제외) 게임을 만들다보면 게임 장르특성에 따라 다르긴하지만 . 리스폰영역에대한 고민을 할때 구현했던 코드들이다. 기본적으로 겹쳐서 생성하면안되는 로직으로 처리를 했고 distance를 기반으로 해당 위치를 제외하고 리스폰 영역을 구하도록 작업했다. public Vector3 GetNotObstaclePosition(List _obstacle) { Vector3 returnValue = Vector3.zero; bool flag = false; do { returnValue = this.GetIntPosition(Random.insideUnitSphere * 100f); returnValue.y = 0f; if(false == Utill.Instance.CheckM.. 2020. 5. 29. 코드) c# 날짜계산하기(DateTime 비교) c# 날짜 계산하기 게임 작업을 하다 보면 시간을 기준으로 처리하는 로직들이 꽤나 많이 필요하다. 유틸 함수로 따로 처리해두고 필요할 때 사용하면 편리하다. 현재 날짜와 저장된 날짜와 비교하기 System.DateTime currentDate = System.DateTime.Now; System.DateTime prevDate = DateTime.Parse(missionAttendanceValue); System.TimeSpan timeCal = currentDate - prevDate; if( timeCal.Days == 0 ){ //return; //같은날인경우 } 하루를 기준으로 갱신되는 시간 값 가져오기 private void UpdateTimeInfo() { DateTime today = Dat.. 2020. 5. 29. 이전 1 ··· 112 113 114 115 116 117 118 ··· 137 다음 반응형