E cứ suy nghĩ thế này. Giả sử coi việc làm game là "ngồi lên cái xe đạp chạy từ sài gòn ra đà nẵng.
Nếu dùng OpenGL để làm game, thì giống như e muốn đi xe đạp đó, nhưng lại đi tự mua từ sên, xích, bánh xe, khung sườn về ráp thành xe đạp, điều bất lợi là e phải tự tay làm mọi việc trước khi có cái xe đạp, trong quá trình làm thì chưa chắc cái xe đạp đã chạy được ngay mà lắp giữa chừng thiếu bà nó cái ghi đông chẳng hạn =))) rồi lắp xong cái xe đạp thì e còn phải ngồi lên và lái nó ra đà nẵng, tốn biết bao nhiêu là thời gian. Nhưng trong quá trình đó e học được rất là nhiều thứ, từ khí động lực học cho tới cấu tạo xe đạp, cho tới các kĩ thuật vật lý vận hành nên cái xe đạp. Và tất nhiên, vì là e build ra nó, e có thể lắp bình khí nén nitro vào cái bàn đạp, hoặc lắp thêm quả tên lửa vào đuôi xe đạp cho nó bay vèo 1 phát ra tận hà nội tùy thích, vì lúc này e đã hiểu rõ mọi ngóc ngách trong cái xe đạp đó rồi.
Còn những engine có sẵn, là do các hãng sản xuất xe đạp họ cũng bỏ ra thời gian nghiên cứu làm cái xe đạp như e, nhưng họ làm nhiều rồi, lành nghề rồi giờ họ sản xuất hàng loạt với các mẫu mã, kiểu dáng khác nhau, tất nhiên họ bán kèm cái xe đạp với một đống đồ nghề cần thiết, và tài liệu để sử dụng xe đạp. Việc e sử dụng cái xe đạp của mấy hãng đó để đạp từ sài gòn ra hà nội, đơn giản chỉ có việc ngồi lên và lái đi. E ko thể nào mổ bụng chiếc xe đạp ra để thay hệ thống sên, xích, líp của riêng e được. Và cái xe đạp họ bán thế nào e dùng thế đó. Ko thêm ko bớt gì vô cái xe đạp đó được. Nhưng bù lại thì ngồi lên và đạp đi thôi.
Quay lại vụ game engine. Đa phần mấy cái game engine đều sử dụng OpenGL để làm nền tảng render, bên cạnh OpenGL (cho việc render), thì một engine còn tập hợp rất là nhiều thành phần khác như là file system, networking, entity manager, scripting engine,…
Nếu e chỉ muốn làm game, thì a khuyên nên bắt đầu học một engine nào đó luôn (ví dụ Cocos2D, Unity). Còn nếu e muốn hiểu rõ một engine làm gì bên dưới thì có thể nghiên cứu sâu về engine sau.