Monday, July 5, 2021

System Engineer로써 갖추어야 할 역량들

* 객체 지향 프로그래밍 언어 사용의 출중한 역량
* 설계, 객체 지향 프로그래밍, 디자인 패턴, 게임 디자인 원칙
* 좋은 커뮤니케이션 스킬, 기술적 & 문제 해결 능력
* 데드라인을 지키는 입증된 능력으로 조직됨
* 게임 개발에 열정적인 팀을 위한 지원. 도구, 시스템, 방법론에 대한 열정.
* 팀으로서 긍정적이며 동기 부여가 높고 인성을 갖추어야 함.
* 다중 작업 및 스케줄 변경에 있어 우선순위 기반으로 작업할 수 있는 능력.
* 품질에 대한 감각, 피드백/피병할 수 있는 자

* 설계할 수 있는자, 엔지니어, 깔끔하고 간결한 APIs 구현 능력
* 중/대기업 개발팀에서 개발한 경험
* 게임 상용화 또는 응용프로그램을 출시하는데 있어 필수 멤버였던 경험.

  • Develop and implement gameplay systems in a multiplayer environment. 
  • Implement game features and integrate engine features as needed to support desired gameplay
  • Provide hooks between low-level technology and game-level systems
  • Design algorithms that provide the desired gameplay results within real-time performance and memory budgets.
  • Analyze and refactor code to optimize performance.
  • Evaluate and communicate the potential impact of code changes
  • Suggest solutions to maximize features and fulfil design desires
  • Provide regular updates on technology risks and obstacles to designers, leads, and producers.
  • Test, debug and document code
  • Mentor junior engineers
Qualifications/Requirements:
  • Bachelor’s degree in Computer Science, Math, Engineering or related area
  • Minimum of 5 years game industry experience with 2 shipped titles
  • Demonstrated proficiency in C++
  • Experience with the Unity 3D Engine preferred
  • Perforce and Jira experience
  • Basic 3D Math
  • Console programming experience (Xbox 360, PS3, Xbox ONE, or PS4)
  • Experience with implementing network gameplay, AI, or physics
  • Capable of working with and creating game scripting systems
  • Practice developing in a Scrum or Agile development environment
  • Strong understanding of the coding process, standards and methodologies
  • Adept at working with game designers and artists to implement gameplay features
  • Ability to judge feature quality in relation to other current competing games
  • Excellent analysis, problem solving, and rapid deployment of effective solutions
  • Ability to prioritize, plan, and organize work
  • Must be an effective communicator, both verbally and written
  • Positive attitude, strong work ethic, and the ability to work in a highly collaborative team environment
  • Passion and enthusiasm for video games
  • Must be fluent in English; bi-lingual (French) a bonus
  • National and/or international travel may be required


  • Work with a small and talented team to develop scalable, highly performant platform services
  • Implement new features and services to support the needs of multiple teams
  • Coordinate with embedded and external teams, create relationships and assist with shared initiatives
  • Participate in the ongoing effort to improve our platform infrastructure, with the goal of achieving ever increasing service availability
  • Perform research to acquire new knowledge necessary to perform assigned tasks and maintain a process of technological evolution
  • Develop unit and integration test code to validate service reliability
  • Mentor and educate more junior engineers on the team


  • A degree in computer science, or a related field
  • A minimum of 5 years of relevant work experience
  • Ability to work in a collaborative environment
  • Excellent communication skills
  • Advanced understanding of C++
  • Prior development work on distributed systems and client/server architectures
  • Strong data-structure, logic, and algorithm skills
  • Knowledge of network and server security issues
  • Experience with performance analysis and code optimization
  • Experience with protocol and API design
  • Database development experience (MySQL, Oracle, Cassandra, etc.)
  • Self-motivated and able to break down complex tasks
  • A desire to help make the service the best that it can be for our players

  • Proficient in at least one scripting language such as Python
  • Linux development experience (server applications, gdb debugging, etc.)
  • Experience with cloud/virtualization/containerization technologies and infrastructure
  • Enthusiastic about supporting a live service
  • Familiarity with Blizzard Entertainment games and features, at least at a casual player level

Wednesday, December 30, 2020

Unity's GUI, Editor and GUILayout and EditorLayout

Difference between GUILayout and EditorLayout in Unity. What is difference between GUI and GUILayout? GUI uses fixed layout which means every gui elements needs specific positions for their's position. so API look like GUI.Button(new Rect(...)) GUILayout uses automatic layout which means we don't need to specifiy positions for their's position. Layout logic will determine gui element's position automatically so API look like GUILayout.Button(...) What is difference between GUILayout and EditorLayout? Do not expect EditorLayout is a super set of GUILayout. Actually GUILayout and EditorLayout are totally different. Each classes has different kind of features so we can choose everything where it needs.

Monday, December 7, 2020

in a perspective projection, make a plane to fill the whole screen.

public class fillPlane : MonoBehaviour { public Camera camera = null; void Update() { if ( camera != null) { float fov = camera.fieldOfView; float pos = camera.nearClipPlane; transform.position = camera.transform.position + camera.transform.forward * pos; float yn = Mathf.Tan(Mathf.Deg2Rad * fov / 2.0f) * pos * 2; transform.localScale = new Vector3(yn * camera.aspect, yn, 1); } } }

Tuesday, November 24, 2020

Online latex editor

very easy to use and quick! https://www.codecogs.com/latex/eqneditor.php

Sunday, September 6, 2020

use case of decorator function in python

def layer(func): def layer_decorated(self): print('func is wrapped'); func(self) return self return layer_decorated class Network(object): data = 0 def __init__(self): self.data = 1024 # conv = layer(conv)와 같은 의미 @layer def conv(self): print('conv is called')

Saturday, September 5, 2020

Task in UnrealEngine

 https://www.youtube.com/watch?v=1lBadANnJaw