/avatar.jpg

Welcome to my world

OOP vs. ECS

In recent years, Entity-Component System (ECS) has been recognized as the most notable architecture for game development. There are many good articles about the architecture that can be found on the Internet, some of them are: Entity Systems are the future of MMOG development What is an entity system framework for game development? Why use an entity system framework for game development? Understanding Component-Entity-Systems gamedev.stackexchange.com Entity Systems Wiki Entity component system Of course these articles are excellent and well-written, but one thing I don’t like about them is that they are not fair at comparing OOP and ECS.

Imperative vs. Declarative

Wikipedia defines imperative and declarative programming as: imperative programming is a style that uses statements that change a program’s state… focuses on describing HOW a program operates. declarative programming is a style that expresses the logic of a computation without describing its control flow… focuses on describing WHAT the program should accomplish in terms of the problem domain. When we read the definition of something, we tend to focus on terms that are already familiar to us, and then use those terms as a metaphor in order to understand the definition.

Hình học xạ ảnh P1

Hình học xạ ảnh (projective geometry) ám ảnh tôi trong suốt một thời gian dài. Đó là vào khoảng cuối năm 2011, khi mà OpenGL ES 2.0 trở nên thịnh hành trên những game cho thiết bị di động. Hệ điều hành iOS của Apple bắt đầu hỗ trợ OpenGL ES 2.0 từ iOS 5.0, còn phía Android là bắt đầu từ Android 2.2 (Froyo). Vì tính chất công việc, tôi bắt buộc phải cập nhật kiến thức để theo kịp công nghệ.

Thứ tự từ điển

Các bài toán về thứ tự từ điển thì có cách giải thông thường là: viết ra giấy vài trường hợp, để ý phân tích, mò ra quy luật, từ đó có phương án implement tốt nhất. Xét ví dụ bài toán phát biểu như sau: Cho số nguyên dương n: Với dãy a là một hoán vị các số nguyên từ 1 đến n, hãy tính thứ tự từ điển của hoán vị này.