Conference

2017 TGDF Notes: Survival Rules for Game Software Engineers

Speaker | Rayark Games | Alvin Chung

Alvin Chung is the CTO and co-founder of Rayark. He worked on front-end and back-end development for games including Implosion, VOEZ, Sdorica, and Soul of Eden. He also helped plan development processes and build internal infrastructure for Rayark’s game software development.

─ Excerpted from TGDF official

These are personal notes and may not fully represent the original speaker’s intent.

Responsibilities

  • Ensure code quality
  • Build an efficient and friendly development environment
  • Recruit and train talent

Programmer ratio

Roughly 3X programmers out of 14X total staff, or about 20%.

Deemo program architecture

TGDF_Programmer_1

Engineering career

  • Coding skill
  • Knowledge
  • Direction

Coding skill

  • Object-oriented programming (Java / C# / C++)
    • Single Responsibility Principle
    • Open Close Principle
    • Liskov’s Substitution Principle
    • Interface Segregation Principle
    • Dependency Inversion Principle
  • Functional programming (Python / JavaScript / Go)
    • Pure Function
    • Immutable State
    • Function Composition
    • Avoid shared state
    • Avoid side effects
  • Onion design

TGDF_Programmer_2

  • Abstract design: interfaces should express intent, not implementation.

TGDF_Programmer_3

Knowledge

  • GC (Garbage Collection)
    • Heap
    • Boxing
    • Value type
    • Reference type
  • Trial and error vs. best solution
  • Systematic learning
    • Algorithms/data structures
    • Computer architecture
    • Operating systems
    • Network architecture
    • Graphics rendering
    • Software engineering
    • Systems and signals
  • Learning on the job
  • Engine familiarity
  • Learning new things

TGDF_Programmer_5

Direction

  • Do not forget the nature of engineering work.

Being passionate about games is a double-edged sword. If you are not careful, you end up only discussing game content and neglecting engineering fundamentals.

TGDF_Programmer_6

  • Become an expert.

TGDF_Programmer_4

Other notes

  • Time must be spent on program architecture planning, project maintenance, function expansion, and team understanding.
  • Architecture planning process: sample code -> architecture documentation -> code review.

Attribution

Please credit ARKAI Studio and link back to this article when quoting or reposting.