Book Introduction
Learn from the Basics! 3D Game Programming
After the Dragon Book 🐲 and Skull Book 💀, a new book is finally getting ready to be released after a long time.A beginner's guide to 3D game programming is here to introduce to you. This book allows you to build a 3D rendering library and understand its principles using only C++ and OpenGL, without relying on a game engine.
3D games, can't you just make them easily with Unity or Unreal?
Of course, games are usually made with game engines like Unity or Unreal. However, if you understand the underlying principles and look at the engine from that perspective, you can use it much more deeply and diversely. How about exploring the inner workings of a game engine with this book? Aspiring game programmers will gain a solid foundation, and professional programmers will strengthen their core skills.
This book has unique features that set it apart from existing books.Three Key Features that I can confidently share with you.
First, it's easy.
Question 1. Do you know the basic syntax of C++?
Yes -> Go to number 2.
No-> Sorry. ㅠ_ㅠ
Question 2. Can you do addition, subtraction, multiplication, and division?
Yes -> Congratulations! This book is perfect for you.
No -> 1+1=?
You only need to prepare two things.Basic knowledge of C++ syntax, Arithmetic operations Level of math skills that can handle basic calculations.
Shader? Matrices? Trigonometry? You can't know everything from the start.
After reading this book, at the very least,Aha! So this is how you use it in this situation. You will come to understand.
Second, we have selected only the essential core topics.
We boldly removed features that are too complex or already specialized for game engines. The focus is on understanding the fundamental principles that apply to any game engine.
- Principles of polygon rendering
- Game math such as vectors, matrices, and trigonometry
- Shader programming
- Spline
Triangle rendering, which can be called the "Hello World" of 3D programming
Third, it bridges the gap between theory and practice.
| ⬆️Practical Area | Game EngineImplementing spectacular features |
| ↕️Middle Ground | Understanding 3D rendering principles with C++ and OpenGL |
| ⬇️Theoretical Area | With just a single point-drawing functionSoftware RendererCreating |
This book is positioned exactly in the middle between low-level theory and high-level application. It thoroughly fills in the often overlooked and easily forgotten areas for both aspiring and current game programmers.
It may not be flashy, but you can build a solid foundation.
Target Readers
Aspiring 3D Game Programmers
Game programmers should not remain merely asusers of the engine. To truly use a game engine properly, you must understand the underlying principles and know how to apply them.
Of course, it may seem to take longer and appear slower. However, taking each step properly is the way to grow into a programmer with a strong foundation.
Math Quitter
During my school days,Math Quitter It was. Even after becoming a game programmer, I tried to avoid math for a while. I lacked confidence whenever I saw a math formula. I would just think, 'I can just use another function...' and move on.
However, after I started learning from the parts I didn't know using a very easy book, I was able to apply math formulas to games and understand engine code. It felt like entering a whole new world.
To all math-avoiders! You can no longer turn away. This book will guide you step by step.
Professional game programmer
I also dedicate this book to all programmers who are passionately working in the field. Use this book to neatly organize the basic principles you may have forgotten due to work fatigue.
Table of contents
Part 1. Basic knowledge of 3D rendering
CHAPTER 1. Getting started with OpenGL
What is OpenGL?
Why use OpenGL?
Setting up the development environment
Creating a window
Summary
CHAPTER 2. Drawing a triangle
Basic knowledge
Vertex buffer
Index buffer
Summary
CHAPTER 3. Colors, Texture Mapping
Changing Polygon Colors
Texture Mapping
Texture Composition
Summary
Part 2. Principles of 3D Rendering
CHAPTER 4. Transformation
Translation, Scale, Rotation Matrices
Basics of Shader Programming
Space
Summary
CHAPTER 5. Basic Mathematics
Vectors
Vector Addition, Subtraction, Multiplication, Dot Product, Cross Product
Trigonometric Functions
Tangent, Sine, Cosine
Circle and Trigonometric Functions
Pi, Radian
Summary
CHAPTER 6. Rendering Library Development
Class Structure
Game Object
Camera
Light
Scene
Mesh, Material, Shader
Loading OBJ Files
Creating a 3D Scene
Summary
Part 3. Shader Programming and Curves
CHAPTER 7. Shader Programming
Solid Color Shader
Lighting Techniques
Rim Lighting
Creating Outlines
Adjust body shape
Summary
CHAPTER 8. Spline
Bézier spline
Hermite spline
Catmull-Rom spline
Summary
Preview content
Basic knowledge of 3D rendering



Concept of space
Learn how a single vertex passes through local space, world space, and view space to be displayed on the screen.

Game mathematics
Discover how vectors, matrices, and trigonometry are used in 3D game programming. Math that once seemed difficult becomes fun, and as you read the book, you'll find yourself understanding it naturally.



Rendering library development
Try creating a 3D rendering library. Through this process, you will learn how individual pieces of knowledge come together to support each part of 3D rendering.

Shader programming and spline techniques
Learn advanced topics such as shader programming and splines. By writing basic lighting shaders, rim lighting, and character body shape adjustment shaders, you can experience the essence of 3D game programming.
We guide you into the mysterious world of curves by implementing various curve algorithms along with the principles of Bézier curves.


This is the appearance of the actual printed sample book.
Front cover view.
Back cover view.



The reason I wrote this book.
There are many books about game development in the world. If this book simply expressed the same content in a different tone, there would have been no need to write it. I would like to share the reason I wrote this book and why it is being launched on Wadiz funding.
Let's create an easy-to-learn 3D programming book.
When I was an aspiring game programmer, books that specialized in game mathematics were too difficult for me. Even though I wanted to make games with DirectX or OpenGL, I was often frustrated by unfamiliar concepts like coordinate transformation, matrices, and shader programming.

Even after becoming a professional programmer, I always avoided looking into engine code and only made games within the provided features. I always felt a sense of lacking in my heart as I continued my career as a programmer.

Then, I read a book that explained middle and high school mathematics very easily, and after that, I started to dig into the principles of game mathematics and 3D rendering one by one. Ironically, the more I studied the basic theories thoroughly, the more diversely I was able to use game engines.
At first, I approached it easily, but gradually increased the difficulty, and eventually, I was able to implement features needed for commercial games, even those that go beyond the limits provided by the engine.
It felt like such a waste to keep this experience to myself, so I started writing this. Learning easily means it is easier to step into the field, and once you take that first step, you gain the strength to find the right path on your own. I wanted to create a book that could build such foundational strength.
A series of articles that started as an online lecture.
A serialized lecture posted on the game developer community 'GameCodi'.
This book was not written with the intention of publishing from the beginning. I just wanted to organize the knowledge I had learned and share it on the internet. So I started posting on a game developer community, and the response was quite good. In particular, I received a lot of feedback that it was easy to understand and highly readable, which made me think I should expand it into a book and share it with more people.
Finding a publisher is like picking stars from the sky.
Writers write the text, but publishers make the book. So I submitted my manuscript to publishers, and after more than 20 rejections, I was grateful to receive a contact from a publisher who wanted to publish my book.
However, a few days after the first meeting, the team I belonged to was disbanded and I had to urgently move to another department. After that, I wanted to quickly adapt to the new team, so the workload was heavy, and naturally, writing the manuscript was put on the back burner. In the end, the hard-won publishing plan fell through, and my manuscript was not made into a book.
The reason for writing this in the era of AI.
The regret from that time remained in my heart, and I had a strong desire to turn this writing into a book. After that, I made proposals to several other publishers, but was rejected every time. While I was keeping the manuscript stored safely on my computer, AI, including ChatGPT, began to emerge rapidly.
Some people even said that accumulating development knowledge is now meaningless. In this situation, writing a book, a traditional medium, especially one that deals with basic principles in the fastest-changing IT field, seemed obviously unlikely to sell well to anyone.
However, I saw a small niche among the flood of AI technologies. I recalled the motivation that first led me to write this book.
Organize knowledge and share it with the world in my own message.
What I truly wanted was to communicate with readers in a uniquely human language that cannot be felt from information simply provided by AI.
'Why did I start writing this?' I believed that only by being able to answer this question would this book have meaning. And I wanted to capture that meaning in the book, so that even though it is a technical book, readers could feel the author's sincerity. If it were merely a list of knowledge, there would be no need to waste paper, and it would be a much better choice to use faster and more accurate AI.
Motivating myself in this way, I began revising the manuscript again. I enjoyed the process of connecting fragmented writings, dividing chapters, and adding illustrations. I spent each day wondering how readers would perceive this writing and which words I should use.
However, one unresolved issue was how to turn this writing into a book. I thought there might no longer be any publishers willing to accept my manuscript.
Deciding to make the book myself

At this point, I decided to make the book entirely on my own. Since I was familiar with word processing, basic document creation was not a problem. I had also used an image tool called GIMP from time to time, so I could create and edit the illustrations for the book myself. By incorporating exactly what I had learned and experienced in the field, I was confident I could write content that would be easily understood by readers.
'When I don't know something, I approach it in the simplest way first. With this mindset, I decided to try publishing the book myself as well.
Editing and cover design
Turning the first draft into a publishable manuscript was difficult but enjoyable and challenging. As I found typos and corrected awkward sentences, I realized just how tricky Korean grammar can be.


I decided to design the cover myself as well as the book's content. No matter how technical the book, I couldn't just make the cover carelessly. I ended up reworking the cover design five times and was able to complete a perfect cover that made the manuscript shine even more.
Endless editing and test printing process
Test printing revealed to me that there are many types of paper.
Afterward, I changed the book's format to make it easier to read, selected fonts, adjusted margins, and went through multiple rounds of editing, gradually transforming the raw manuscript into the form of a book. Referring to books from other publishers on the market, I explored the world of book shapes, paper types, and binding methods as if I were venturing into an unknown world.
Through this process, I wanted to share not only the book's content but also the process of making the book and my feelings throughout. Since technical books don't always have to be rigid, I wondered if I could make a more interesting book. Like a gamebook, I even included quizzes inside the cover so readers could enjoy flipping through the book.
Choosing the offset printing method
I had to choose a sturdy production method suitable for technical books that are often flipped through. I decided to use offset printing, which produces hundreds of copies at once, rather than digital printing, which prints one copy at a time. Although offset printing has high initial costs, its print quality is superior, making it much more readable and durable—perfect for a technical book.
What I want to share through funding is the "process of knowledge sharing and publishing."
I wanted to share every step of the process, from an ordinary game programmer writing and creating a book to publishing it. I thought funding was the best way to do this, and beyond simply receiving production support, I wanted to share my thoughts and writing with people living in the same era and receive their encouragement. I also believed that sharing the process of making a book with other developers who, like me, want to turn their knowledge into a book would be a meaningful endeavor.
There are no fancy goods or success stories in my funding. It is not a book by a famous author, nor does it feature trendy AI technology. However, just as every food in the world has its own unique taste and feel, my book also contains my own message. As a writer and a book creator, my wish is for this book to find its rightful place.
Book Specifications
Paperback
- Size: 183mm X 235mm
- The size matches that of recently published IT books.
Compared to A4 paper, it is about this size. - Pages: 288 pages
- Weight: Approximately 716g
- Thickness: About 1.5cm
- Inner paper material: New Plus cream 100g (subtle gloss for good readability and page turning)
- Cover material: Rendezvous 210g matte coating
- Main text: Black and white double-sided printing
- Cover: Full color 4-color printing
- Binding method: Perfect binding, soft cover
- Retail price: 22,000 KRW
There may be slight changes in material and size depending on the final printing and binding conditions,
but I will try to match it as closely as possible to the current appearance.
The Wadiz funding reward price is 10% off the retail price. (In compliance with the fixed book price system)
E-book
- File format: PDF
- Delivery method: Google Drive download link provided
- DRM: No DRM
- Regular price: 15,000 KRW
A Google Drive download link will be sent to supporters.
You can access and download within a certain period (30 days).
The Wadiz funding reward price is 10% off the regular price. (In compliance with the fixed book price system)
Funding goal amount
We aim to produce 500 copies for the first edition, first printing.
Required funds
| Cost | Detailed type | Unit price (KRW) | Quantity | Amount (KRW) |
| Production cost | Printing and binding | 5,000 | 500 | 2,500,000 |
| Shipping fee | Shipping fee | 2,500 | 500 | 1,250,000 |
| Packaging cost | Packaging box | 500 | 500 | 250,000 |
| Cushioning material | 500 | 500 | 250,000 | |
| Labor cost | Maker labor cost | 250,000 | 1 | 250,000 |
| Contingency fund | Payment failure and returns | 500,000 | ||
| Total | 5,000,000 |
Since I have not yet received an official quote from the printing company, I have roughly gathered information to set up the budget.
The total is expected to be around 5 million won, but it is not an easy amount to achieve through funding.
Therefore, I will refer to the average successful funding amount on Wadiz,1,500,000 won as my goal.
If the funding is successful, I will use the support of the backers as my driving force.
I plan to cover the remaining insufficient costs with my own funds.
Post-funding plans
This book is scheduled to be sold at bookstores about 7 to 14 days after all funding rewards have been shipped.
I would like to offer more price benefits to backers, but due to the fixed book price system, I can only provide a 10% discount. I ask for your understanding.
I also considered exclusive rewards for backers only, but decided to exclude them for various reasons.
- As a small-scale solo maker, I am concerned about increased costs and production time.
- Given the nature of IT technical books, I believe that providing high-quality content is more important than fancy rewards.
However, I felt it would be a shame to end it like this, so I have created a small online communication space.
https://cafe.naver.com/3dgamebook
This is a space where you can ask and discuss not only the contents of the book but also general programming topics.
Based on my over 20 years of experience in game development, I aim to create a space where backers can resolve career concerns, development questions, and share information with each other.
FAQ
Is this an officially published book with an ISBN?
At the start of the funding, the book does not have an ISBN, but it will be issued during the funding process. The reward will include an official ISBN issued and a barcode printed on the back cover.
Are you planning to establish a publishing company?
Yes. I am still an individual, but soon I plan to establish a one-person publishing company. This is because you need to register as a publisher to receive an ISBN. In the end, I will be both the author and the representative of a one-person publishing company.
I will also share the process of establishing the publishing company in real time through updates.
Will the book be sold in regular bookstores after the funding ends?
Yes. The book is scheduled to be sold in regular bookstores about 7 to 14 days after the rewards are shipped.
I wanted to offer a bigger discount to backers, but I couldn't do so because I have to comply with the fixed book price system.
Since you can use mileage and other benefits at online bookstores, some may feel that there is no additional advantage to backing the project.
Therefore, I have created a Naver Cafe where you can always ask questions about the book or discuss other programming-related topics even after the funding ends.
https://cafe.naver.com/3dgamebook
In addition to Q&A about game programming, I will sincerely share my know-how and experience with backers regarding career concerns and questions about the game industry.
Typhoon Ground