How To Build Your Own Third Person Camera System | Jacob Grossman | NZGDC 2025

How To Build Your Own Third Person Camera System | Jacob Grossman | NZGDC 2025

🎙 Jacob Grossman 👥 1K 📅 October 9, 2025 ⏱ 29 min 👁 167 📄 tutorial 🧭 2026-08-16
Available in: English (current) Français

Keywords

camera systemthird-persongame developmentUnitycamera math

Summary

In this talk from NZGDC 2025, Jacob Grossman, a gameplay programmer on Tales of the Shire, shares his approach to building a custom third-person camera system. He explains why rolling your own system is beneficial for achieving high-quality game feel, citing the lack of online resources on the actual programming and math involved. The talk covers defining essential camera parameters (tracking point, pitch, yaw, framing, field of view), constructing the camera location using trigonometric calculations, and modifying parameters at runtime with animation curves. He also addresses solving constant camera control through an auto-assist feature that smoothly rotates the camera to follow the player’s movement direction, using springs and dead zones to avoid oscillation. Finally, he emphasizes the importance of debug tools for visualizing and tuning the many variables involved. The presentation includes code examples and references to a demo project on GitHub.

142 words

Critical Evaluation

Value of the Information & Strength of the Argument

The talk provides valuable, practical insights into a niche area of game programming. The argumentation is solid, grounded in real-world experience from a shipped title. The speaker clearly explains the reasoning behind design choices, such as using animation curves as multipliers rather than absolute values, and the pitfalls of naive implementations. The mathematical explanations are accessible and well-illustrated with diagrams and GIFs.

Scientific Rigor, Source Quality, Title Accuracy

The speaker credits Max Kaufman’s blog post as the basis for the camera location function, and references the influential GDC talk ‘50 Game Camera Mistakes’ for broader principles. The title accurately reflects the content. The talk is well-structured and the technical details are presented with clarity. The demo project on GitHub provides a valuable resource for further study.

135 words

Title / Content Match

The title accurately reflects the content: a detailed guide on building a third-person camera system.

Quality & Reliability

8/10

The talk is a practical tutorial by an experienced game programmer, grounded in real project experience (Tales of the Shire). It references established practices (e.g., GDC talk '50 Game Camera Mistakes') and provides a demo project. The mathematical explanations are clear and correct, though some simplifications are made for presentation.

Key Moments

Cited Sources

  • GitHub demo project — Referenced at the beginning and end of the talk as a resource for the code and math discussed.
  • Max Kaufman's blog post — Credited as the basis for the camera location function.
  • GDC talk: 50 Game Camera Mistakes — Referenced for the principle of varying camera distance with pitch.

Concurring Sources

  • Max Kaufman's blog post — The camera location function is based on this blog post, which the speaker modified and expanded upon.

Contribution & Novelties

The talk fills a gap in available resources by providing a step-by-step guide to programming a third-person camera system, including the underlying math and practical considerations. It offers a clear structure for defining parameters and constructing the camera location, and introduces a method for solving constant camera control using springs and dead zones. The demo project on GitHub allows viewers to explore the implementation directly.

Pour aller plus loin :

111 words

Radar Profile

The radar profile shows high scores in quantity and quality of information, with a slightly lower but still solid technical level. This indicates a well-balanced talk that is both informative and accessible, with a strong practical focus.

Reliability 8/10

💬 No comments were provided for analysis.