Vectors For Game Programmers: Simplified

Belatedly I came to the conclusion that I was going to have to get my head around math, specifically vectors, rotations, collisions, spaces, etc. So I spent some miserable time buried in mathematical jargon figuring it out. What I realized was that the math is just not as complicated as the jargon in which it is written, so I wrote the above book to present the material from a different, and I believe simpler, perspective. The e-book can be found here

C Easily with SDL2

Object Oriented Programming simplifies the task of programming real world problems by breaking the problem into thinkable chunks called objects, and letting each object handle its sphere of the problem in concert with other objects. While C is not designed as a OOP language, a simple protocol can be used to program class like objects in C. This little book demonstrates how C can be organized in a OOP manner.

The demonstration is not just a recipe however. In explaining the protocol, structs, pointers and handling memory are explained in a way that, I hope, removes the scary monsters that seem to lurk in the shadow lands of C. SDL2 and openGL are used to provide an example of how external libraries can be set up alongside mingw, and to provide a moderately complex program that draws text upon a screen aligned quad while illustrating how C can be coded object orientedly. The e-book can be found on Kindle.

Reclaiming Human Reason: Locke to Peirce via Kant and Hegel

Synthesis is the composition of otherwise logically unrelated parts. It is presupposed in the majority of deductive syllogisms because the major premise or ground of most deductions is synthetic. Synthesis itself has two aspects, it is the parts that find themselves composed into the synthesis, and it is the whole that the parts are synthesized into. The two are no more the same than is the truck that provides the template for a Leggo truck, and the Leggo blocks that are combined to build the truck; without the whole providing the reason for combining the blocks the truck would not get built, and this whole is not to be found in any block that Leggo supplied.

The history of philosophy from Locke to Peirce via Kant and Hegel is the articulation of the permutations that might afford the human mind synthesis and therefore deductive capability or reason. Locke presupposed the synthesis could be explained entirely in terms of parts given to an originally empty mind by sensation. Kant realized that the synthetic whole is more than the sum of its parts and proposed the mind was originally populated with wholes into which the content of reality (parts) were understood. His position however relied upon the application of a concept of content (noumena) that by his own definition lay beyond use. Hegel resolved the issue by supposing that the whole and the parts of synthesis were given simultaneously in an act of creative insight, and that they sundered in the human mind into subject and predicates or ground and conclusions. While this resolved the issue of synthesis, Hegel's philosophy rests upon a contradiction ex nihilo (out of nothing). Peirce adopted Hegel's insight that the synthesis of whole and parts is given immediately but writes the concept of idea and truth out of the equation toward providing a coherent philosophy that explains synthesis.

From Kant forward reason becomes the sole provider of all options humans can conceive. Thus reason opens up the field of ethics because reason provides choices and ethics tries to understand how choices are made (morality being a sub set of ethics that proposes there be a good that determines or influences choice).

The ethical positions of the philosophers is presented alongside their theories of reason largely to introduce and background the ethical theory that falls out of Peirce's pragmatism. Peirce, unlike the other philosophers never wrote books on ethics so this work is an extrapolation. It concludes that the moral is the pragmatic and the pragmatic the reasonable. Its point however is to highlight the tension and contradiction surrounding the current conflation of pragmatism with modern economic practice; there is nothing pragmatic nor therefore moral or reasonable in pursuing economic rationales responsible for inequality and environmental destruction. The real moral hazard is that the reasonable have no obligation to follow the unreasonable and that the unreasonable have no moral pulpits from which to convince otherwise.

The e-book can be found on Kindle.

GLES20 on Android: A Game Engine

This book implements deferred shading in openGL, specifically, GLES20 on Android. The book starts by progressing over the same content found in the tutorials in the Java and C# sections as this material is ported through to Android. The differences are not great and I would recommend the book to any openGL programmer who wants an insight into how to set up deferred shading in openGL regardless of language. The book can be found here.

The following links are to code that accompanies the book. Please note that the BSD license on the code only applies if you own a copy of the book.

     01: Basic GLES20

     02: Projection and Depth

     03: Touch Events

     04: Textures

     05: Camera