Happiness By Vonnegut

Been reading Kurt Vonnegut for the first time. Lots of great wisdom. In his opinion, the problem with the world is we’re still following Hammurabi’s Code–an eye for an eye, tooth for a tooth. Look at how the USA behaves toward terrorism, how so-called “Christians” in this country treat other nations. A nation has a right to defend itself? Sure, but not by Hammurabi’s Code–shouldn’t Christians follow the teachings of–you know–the guy they’re named after? Jesus was truly the Prince of Peace. Why, then, do “Christians” (who shame the name) behave as they do? It was about 10 years ago when we invaded Iraq. As revenge for the 9/11 attack. Which, of course, had nothing at all to do with Hussein, so by even Hammurabi’s Code the USA is guilty of murdering another nation and hundreds of thousands of it’s citizens. Did Hussein need to go? Not our call.

Vonnegut also knows what motivates men and women, what makes us happy. For women, it’s having lots of people to talk to….about everything. For men, it’s having no one angry with you for any reason. The reason why divorce is rampant in the USA is because we’re all so lonely. So terribly, tragically, profoundly lonely. It’s not in our genes to cope with it, as our ancestors were not lonely–they lived in huge family groups of 50 or more and rarely left their homes. Communal living has proven to not work, as the culture doesn’t support it. So our best option is probably to be involved in social communities, like church, bowling, drinking buddies, whatever it takes.

He said, ages ago, marriage was celebrated. Today, it’s basically a sad occasion–if you’re honest. The parents on one side or the other lose a child, or more likely both as kids are encouraged to leave and go start a whole new town on their own. As stupid as that sounds, it is basically what parents are accustomed to doing to their kids at a certain age. It’s not in our genes to cope with loneliness. And even with the world’s population doubling every few decades, we become more and more lonely in the USA. We turn to video games, internet shopping, and TV, rather than being together. You can see the Millennials rebelling against the “Leave it to Beaver” model set by boomers in the way they have embraced social media. The young today do not want to sit at home watching game shows, sponsored by ads sporting the latest crap they should rush out to buy on payday–idolizing free money.

I’m op-ed’ing Vonnegut a bit here, but he lived long enough to see the internet further isolate us. Maybe Millennials will break the trend. But it needs to be more than this capitalistic ad-based system. Question: Would you pay $5.00/month to use a Facebook with absolutely no ads anywhere? I think I would. Even right this moment, to the right of my cursor, there are 6 stupid ads trying to lure me into clicking them. Why would I want to? If I’m not in tune with that “thing” today, why should I be falsely reminded of it, and compelled by very sophisticated brainwashing to desire it? The ad itself, just sitting there, is anathema, hostile, manipulative, whether I respond or not my eyes have seen it and now it occupies a small space in my mind, if only for a few seconds. I should be compensated for anything thrust into my mind like that. Or, if given the option, perhaps I would pay a small reasonable fee to avoid it altogether.

Thinking About Time

I’ve been doing some deep meditation about time, from an intuitive point of view, not subjecting my thoughts to the physics and math–though trying also not to violate what we currently know.

I have had an impression since a very young age that space-time doesn’t quite work how we think it does–namely, Einstein’s theories, plus quantum mechanics. Sometimes after exploring the complex route, you end up learning in the end that the simpler explanation is better. Not strictly Occam’s Razor but a pragmatic approach.

We think of the first dimension as a line of infinite length but no width. But isn’t a line made of points which occupy no space at all, just theoretical estimates of a location? No, it turns out, a point is a vector and is easier to think about in 3D terms.

Next, the second dimension is a plane, flat surface, which might be viewed as made up of parallel lines, infinite in all four directions but flat, having no height.

The third dimension rises upward from the 2D plane, as if there are infinite planes stacked upon each other, and you end up with a cube shape–as a visualization. But it’s not really a cube, as all 6 sides have infinite length. But we think of 3D in terms of objects, it can be viewed abstractly.

What, then, is the 4th dimension, which is commonly misunderstood to be TIME? To understand time, I began thinking about the other three dimensions. When we move around, we are in 3D space, and one dimension of Time, according to Einstein. But time is not MOVING. That’s the misconception I feel intuitively (again, if I were a math/phsics major, these thoughts would have been culled in order to survive), that time does not move of its own accord.

To move in the first dimension requires the second. Why? Because, if you imagine yourself a point, you cannot move along a line without the second dimension pushing you along–there’s no driver, or engine, so to speak. You can’t rise up and choose the location along the line where you wish to be, and place yourself there, without the second dimension–the plane/surface.

Likewise, you cannot move through a 2D plane without the third dimension as a driver. Physicists will call me a dullard here for not understanding basic geometry or Cartesian math. Except I do, as a computer science major, and probably understand it far better than any theoretical mathematician for having rendered things with these tools. They are trained to shut down such divergences of their beloved theories, ignoring the fact of history, how the status quo has always been wrong. Copernicus. Galileo. Einstein.

Movement in 2D occurs mathematically via transforms, and we estimate such movements with geometry and matrix math. I know that. But rise up above the algorithms… see these concepts from a higher perspective, not down among the dimensionless points… To move in 2D required the third. Thus, to move in the third requires… the 4th. Incorrectly labeled TIME.

What is the 4th dimension? It is the driver of the third. When you move in the third, the first and second are encapsulated and move with it, like the air in a wheel attached to a bicycle. You CAN potentially use them individually, but not out of order–you can’t adjust within the third while ignoring the first or second. But how do you actually MOVE in the three dimensions? Again, that is where the 4th comes in: Like the 3rd is required to move in the 2nd, so the 4th is required to move in the 3rd.

Why? Why is that required? Is there a theory? Don’t throw theories at me–that’s why we only figured out so late that the Earth rotates around the Sun. But I’ll explain as I perceive it.

If you are within the 3 dimensions, you may perceive yourself as a point. Nevermind that your body has volume, imagine your center of mass being at one point in the universe, defined as X,Y,Z, for the dimensions 1,2,3. You can be a point in that 3D volume. But can you move? NOT without the 4th dimension. It is not time, it is the engine or mechanism by which movement is possible in the 3rd.

If there was no matter or energy anywhere in the universe, just the structure of space, say–would the 4th dimension still exist? It surely could not be measured without matter or energy, but assuming you have an omnipotent awareness and are looking at the universe from outside, would there be time? Perhaps. But it is not an “object” the way our culture perceives it. Time is a misnomer. the 4th dimension is like the 3rd, and the 2nd, and the 1st, but it contains them all, and makes it possible to perform transforms in space–say, vector based movement, to get a bit mathematical. Choose a direction and begin moving, by whatever means you can–walking, rocket engine, etc. The 4th allows those translations to occur. But it is not a separate “thing” that can be manipulated. It is one dimension beyond the third.

The reason science still does not understand time, and must use analogy and abstraction, is due to viewing it as a thing separate from space. “Space-Time”. Yes, if you define space as merely 3D, but it is not, because movement occurs in space, movement of matter and energy. Even the orbit of electrons is movement, requiring the 4th dimension, without which everything would be frozen. “frozen in time”. No, think of the 4th not as time, but as moving in the 3rd.

From that view, is Time truly a LINE, as explained by popular theorists, so neck deep in academic brainwashing that they can’t think straight? How can “time” be a “line” if it is merely the dimension that allows movement in the lower three? The 4th dimension IS ALSO part of space. It does not begin or end or go backward, it is merely movement in the 3rd. And as such, there is no time travel in the past. Into the future, yes, because time slows down near gravity. But not reversal. Why?

To answer that question, again, look at the lower dimensions. With the help of the 2nd–the PLANE–can you travel backward on a 1D line? Think about it… (Jeopardy music)… Can you go backward with vector math? By negating the vector, you can go “backwards”, but that is still just movement opposite to your point of view. A line has an origin (0) and infinite length in both + and – in two directions. IN TWO DIRECTIONS. It is the 1st dimension, but moves in TWO WAYS. See what I’m getting at?

Think of going “backward in time” in 2D… Say you’ve moved a chess piece 10 inches across a table. That movement has a vector, a position, etc, on the “table” (e.g. a 2D plane). How many directions can you move in on that table? More than TWO! You can go left, right, forward, backward, relative to the surface of the table. That’s FOUR directions.

Taking this argument further into 3D, you can move around in a total of SIX directions, by visualizing vectors moving outward in all 3 dimensions, + and -. That’s where we get the idea of a cube, only the cube’s edges are infinitely far away (and in fact do not exist as there is no boundary). Again, visualization is required for human comprehension.

Can you then go forward or backward in “time”? How? That question implies that time is a line, forward and backward, + and -. It is not! Time has EIGHT directions. How do you visualize that? First, note that you can’t use that sort of movement without a 5th dimension, and I haven’t given that any thought whatsoever. 4D is hard enough. To understand this, recall the lower 3. Can you move in a straight line in 2D or 3D? Sure! Can you move diagonally across a 2D plane in 3D space? Sure! Just move in precisely that direction. You exist in 3D while moving in a more limited manner, emulating 1D or 2D.

Likewise, in the 4th, you may move in 3D terms without making use of the 4th. That is what makes movement possible–even if there’s more to the 4th that requires more thought. In any event, it is not a line, does not go merely forward and backward, + or -, as on a 1D line. Could we move in the negative direction in “time”? No. Like moving “backward” in 1D or 2D, you are merely moving forward in a negative direction. That does not reverse the flow of events.

And if one were to take this logic a step further, there is no such thing as “the past”. The “past” exists merely as our memories of our state previously. If nothing changes in the universe–if everything is standing still and you do not move, then you will have no memory of having changed your state, and the “past” will be indistinguishable from the present, which is all that truly exists. Nothing exists in the past. It is a misnomer, a fault of logic, a misunderstanding of the universe.

Celebrating 10 Years with Beginning Game Programming, 4th Edition!

Goodreads Book Giveaway

Beginning Game Programming by Jon Harbour

Beginning Game Programming

by Jon Harbour

Giveaway ends August 08, 2014.

See the giveaway details
at Goodreads.


The fourth edition of Beginning Game Programming has been released to celebrate it’s 10th anniversary! First published in 2004, this book has been a mainstay for aspiring DirectX programmers and teachers around the world.

This new edition updates the source code to Visual Studio 2013 without losing the reader with advanced techniques in the latest versions of DirectX (version 12 recently announced). Instead, this book sticks to the basics like it always has, covering the mainstay of PC development with strict and reliable lessons in DirectX 9.0c.

The beginning reader who is likely new to the C++ language as well as to game programming, will find the advanced topics in the latest versions of DirectX completely indecipherable. For this reason, Beginning Game Programming keeps it simple and understandable, maintaining the high quality of previous editions while updating support for Microsoft’s latest development environment.

“You have to start somewhere”, but that somewhere doesn’t have to be hard! Teachers will appreciate the consistency of this new edition as well as improvements to the sample projects. Coming up from the 3rd edition, the chapters remain in the same order, but the source code for every project has been updated and verified with several rounds of heavy technical review.

The most notable improvement in this edition is the readability! All of the figures have been enlarged to clearly illustrate the tutorials on using Visual Studio, especially when creating and configuring C++ projects–which can be very difficult to the uninitiated.

The chapters on 3D rendering have also been greatly improved with more concise explanations and simpler examples showing how to render a stock mesh and loaded model with a simple pixel/vertex shader. Advanced, complex treatment of shaders is strictly avoided in this Beginning title, with suggestions for further reading provided instead.

So, you’re an aspiring game programmer or designer, perhaps with no prior experience with DirectX, perhaps not with C++ either. Where do you begin? RIGHT HERE!

Get your copy on Amazon! 


Beginning Game Programming, 4th Edition

Working At Peak Torque


Are you bored at work? Not feeling challenged? Feeling in a rut? That is like an engine going 10 mph in overdrive–it has no power because it’s in the wrong gear. Maybe you’re in the wrong gear as far as your life goes. Not feeling challenged? Or feeling over-worked? It may be you aren’t working at your PEAK TORQUE!

Peak torque is the sweet spot for a high-performance engine, the RPM level at which the engine produces the most power. Racers build their engines so that they remain at peak torque as much as possible on the track. For a road racing event such as Grand Am, cars are built to run on tracks like Laguna Seca with a minimal amount of shifting while remaining at peak torque. This is usually in 3rd or 4th gear for a typical 5-speed racecar, where the driver will downshift to 3rd around tight corners and back up to 4th quickly, then occasionally hit 5th on a straightway.

If a racecar is not being driven at peak torque, it has no chance of winning a race–in fact, it won’t even pass the qualifying round. Torque is not the same thing as horsepower, which most enthusiasts incorrectly focus on. Torque is more important than horsepower in a racecar–horsepower is a result of torque. Think of horsepower as the ability to do a certain amount of work. Torque gets the object moving, and power keeps it moving.

If you are dragging each day in your work, it is most likely a torque problem (all other things being equal, such as your health, allergies, etc). Are you getting up in the morning and shifting too quickly into high gear before you’re up to speed? That may be due to your planned (or begrudged) tasks for the day. You know what you have to do for the day and you’re thinking of the entire race instead of just the current corner.

Take a pit stop and evaluate your energy level–your RPM–throughout the day. When you feel that you have high energy, that’s a sign of peak torque. You might be hitting peak torque regularly without trying just as a result of shifting up and down your energy levels (your transmission). Stop looking at the entire track for the day and instead focus on where you are right now and what you need to do to accomplish the current task to the best of your ability, giving no regard to turn 7 on the final stretch of the track. Try to hit the turn in front of you as fast as possible without spinning out or losing momentum, to hit the turn’s sweet spot so you can launch out onto the next straightaway and the next turn.

There are two types of jobs I want to address here with regard to peak torque efficiency. First is the type of job where you are bored silly and are not being challenged. The second type of job is where you are worked hard physically but the work is not mentally draining.

Let’s consider the first type of job, where you aren’t challenged. You are going around the track in 1st gear at about 20 mph. You feel like a lumbering tow truck rather than a high-performance, highly tuned, high-maintenance racer. You can’t wait for 5:00 each day because the job bores you to tears. In this type of situation, one good course of action would be to work toward a new career, but that isn’t what I’m talking about here–okay, a new job just isn’t in the cards right now. What can you do to increase your RPM and reach peak torque? You do have the potential to go 100 mph but your job only calls for 20 mph and it’s frustrating! In either work situation, depending on your personality type, a challenging hobby or a side job may be the answer for you!

If that makes you groan, then you may be surprised by what you’re capable of in your “extra curricular” time. If you get used to 20 mph, then going faster requires some effort that you aren’t used to. This is a deception! You can easily hit 100 mph but have gotten so used to being stuck at 20, your body and mind may not believe you can go any faster. But you can! Consider a hobby that also brings in money, such as making something with your own two hands and selling your handcrafted items on ebay. Do you like to write? Consider writing, but without concern for being published; just do it for the sake of doing it, and after you’re done, then look at options, while continuing to write.

The process of writing or doing some other rewarding activity is what benefits you, not what happens to your poem, short story, novel, or memoir afterward. Doing the work of writing will give your mind something to do during the day beyond the boring job, and you will eagerly anticipate 5:00 PM not just because you’re bored at work–so you can go home and crash on the couch to watch TV–but so you can go home and fire up the computer and get back to your story! Or painting. Or screenplay. Or song.


Video Game Programming for Kids


Introduce pre-teens and young learners to the exciting world of game programming! This concise, dynamic book is designed specifically for 8-12 years olds and uses simple language; a step-by-step approach; and no-cost QB64 easy, but powerful, software to teach short graphics programs and games.

This book is ideal for true beginners or young users who have no prior experience with programming tools. The author uses a humorous, captivating approach with brief chapters that each focus on a single programming or basic computer science concept. All programs and readings center around fun activities, such as cracking a safe, guessing the secret number, or finding the treasure.

This book shows how to make simple games with the easy to use BASIC language! Fun projects introduce early concepts in computer programming. Recommended for ages 8 and above.

Portfolio Page


Learn Python Game Programming


What better way is there to learn a programming language than with a game-oriented approach? If you ask the many readers that have made this book’s prequel, PYTHON PROGRAMMING FOR THE ABSOLUTE BEGINNER, a bestseller, they’ll tell you – there isn’t one. MORE PYTHON PROGRAMMING FOR THE ABSOLUTE BEGINNER offers readers more practice, more exercises, and slightly more advanced instruction in Python programming, all while using the game-focused examples and projects that have proven to be both effective and fun.

It picks up where its prequel leaves off, addressing data structures, file handling, exceptions, object oriented programming, GUI programming, multimedia programming, name spaces, and program planning. Following a deliberate, logical progression of topics that cover increasingly complex subject matter, this is a powerful resource that will arm readers with an in-depth knowledge of the Python language.

This book was marketed as a follow-up to the previous Python book, but in reality it covers a whole new library–PYGAME–which was not in the previous book by another author. This is an excellent resource if you’re new to Python and want to get familiar with the language while making small, simple games in the process.

Portfolio Page


Teach Yourself Windows Phone Game Programming

Windows Phone


Now, there’s a practical, hands-on guide to mastering game development for Windows Phone 7 with Visual C# 2010 and XNA Game Studio 4.0. One step at a time, this book teaches all facets of mobile game development, from design through publishing via Microsoft’s Marketplace. Top game development author Jonathan S. Harbour starts with the absolute basics, making Windows Phone game development accessible even to programmers who’ve never written a game before.

Then, one step at a time, he shows how to use Microsoft’s free XNA toolset to design and construct high-performance, highly-playable games for the newest Windows Phone 7 devices. Friendly, accessible, and conversational, this book delivers a practical grounding in Windows Phone 7 game development without ever becoming overwhelming or intimidating. Each lesson builds on everything that’s come before, helping readers learn core techniques from the ground up. Readers learn key concepts, syntax, and techniques through short, practical examples that reflect the realities of modern mobile game development.

If you are using a Windows Phone 8 device, the code will still compile for it with XNA 4.0.

Portfolio Page


Man of Steel 2 (aka Batman vs Superman)

I am a big fan of comic books but have been out of touch with the goings-on in the comic industry for the last 4 years, having bought only a few graphic novels and focusing on films. Recently, I got back into comics again, subscribing to my favorites (via local store Kenmore Komics) and getting up to speed on what has happened to my favorite characters during my hiatus from reading for so long.

The last few years have been dominated by Marvel in a big way with the extremely popular Iron Man films starring Gwyneth Paltrow and Robert Downey, Jr., not to mention the awesome Jeff Bridges (whose presence had a lot to do with the huge success of the first film, and mediocre reception of the second). Following Iron Man, we were treated to The Incredible Hulk, Thor, Captain America, and the astounding Joss Whedon film, The Avengers, which brought them all together. As much fun as this has been, I have to admit that I need a break from Marvel–maybe I’m going through Marvel overload. So, I’ve returned to reading DC and Marvel again.

Of course, I was already used to DC Comics and Marvel rebooting their series from time to time. This happened in 2008 with DC’s “52″ event and Marvel’s “Secret Invasion” event (a cross-issue storyline that affects all of the characters by a particular publisher). So, I was not surprised to find Avengers #1 and Iron Man #1 again as the latest issues. What did surprise me, though, was the huge changes made by DC Comics to their universe!

All of the DC characters have been rebooted as of late 2011 with the “New 52” event. Every character has a new origin story set a mere 5 years in the past, and all comic series now follow a synchronous issue number (1, 2, 3, 4, etc), with all of them presently at #15. I can understand the benefit of doing this to attract new readers. Let’s face it, unless you’re a long-time subscriber or serious collector, you probably aren’t going to be able to keep track of how the various comics relate to each other, with some original series (namely, Action Comics and Detective Comics) retaining their original sequence since the 1930s (up in the 800s). I’ve always thought comic publishers should adopt a series or season number and sequentially number the issues 1 to 12, like any other magazine. Rebooting seems to attract attention, though, appealing to the amateur collector any time there’s another #1.

The scope of effect for this New 52 reboot is comprehensive across the DC universe, affecting every comic. In fact, DC officially cancelled every comic issue being published at the time and launched 52 new issues (which began in September, 2011). Here are just a few:

  • Action Comics
  • Detective Comics
  • Superman
  • Justice League
  • Wonder Woman
  • The Flash
  • Batman
  • Nightwing
  • Batman & Robin
  • Catwoman
  • Green Lantern

As primarily a Batman fan, I am buying the half dozen or so Batman titles and a few Avenger titles from Marvel. And in fairness to Dark Horse, which has been ignored in this piece, I do read any new Aliens and Star Wars titles they release.

It surprises me how many fans have strong opinions about the new Batmans vs Superman movie, which will also feature Wonder Woman and Cyborg, considering many opinionated souls have never actually read the comics. I may be way off base here–I doubt it, but still–but the most highly agitated fans seem to be the watchers rather than the readers, who tend to be a bit more sophisticated. I guess we’ll just wait and see what Snyder comes up with.


Visual C# Game Programming for Teens


Learn how to create your own role-playing game (RPG) with VISUAL C# GAME PROGRAMMING FOR TEENS! A true beginner’s guide, the book covers each essential step for creating your own complete RPG using Windows Forms and GDI+, including a tiled scroller, game editors, and scripting.

While some experience with Visual C# is helpful, this book is an introductory guide for readers who are new to programming or new to programming for games and want to learn the basics of RPG game mechanics (based loosely on the D&D rules).

You will learn by studying the short examples in each chapter, building the complete RPG called Dungeon Crawler as you move from one chapter to the next, with new features and game play elements added in each new chapter.

Along the way you’ll discover how to load and draw bitmaps, create sprites, render a game world, keep track of inventory and character stats, and build tools including a level editor, character editor, item editor, and monster editor. And the finished Dungeon Crawler game includes all the source code and tools you’ll need to make your own awesome RPGs with loads of cool features and functionality.

Portfolio Page