Classic Computing Nostalgia

c128

I had a fit of nostalgia this past week for 80s computing, and this old marketing ad is a beautiful double entendré today!

Amiga 500, Atari ST, Commodore 128. Began seriously shopping ebay for a C=128. As a kid I’d wanted one so bad. K-mart used to have them in the small electronics/game area, and at age 12 I wanted one so bad I could almost taste it. Reminiscing brought back those feelings, where my fingers ached to touch the keys. I was about to buy one and stopped myself. Is it worth ~$150 to fulfill a childhood craving 30 years unfulfilled?

I imagined setting up the Commodore next to the classic console table in the game room, then picking up a dozen or so old games for it, also from ebay. I would even do some programming on it, in BASIC, and get a C compiler and an assembler. Even though I could do that with an emulator, it’s not the same thing–not by a long shot. Emulation is comparable to watching a first-person video recording of a roller coaster.

But what then? Like the Sega Genesis + CD + 32X system I bought earlier this year, the idea is to get the best games for the platform and just play them, relive the era–especially if you never owned the system. What then? Well, if you don’t plan to use it, get a storage bin, throw in a few moisture pellets and store it until you get the nostalgic bug again.

For old geeks, this is like collecting records. An old music fan treasures their record collection. It doesn’t matter that CDs and lossless audio with 5.1 surround sounds better, they WANT to hear the crackle as the tiny diamond bumps up and down in the groove. Even if it’s a modern record player. That’s a tangible, tactile experience you can’t get with digital music, and exactly the same as preferring authentic old hardware over emulation. Thus, it’s not about just playing a game, it’s about experiencing the work that went into making that computer–touching the molded case, controllers, keys, that engineers labored to create under tight deadlines and unreasonable managers.

It is also about reliving the era. Not obsessing, not dwelling, but experiencing it again to bring up fond old memories, to remind yourself that you haven’t forgotten, that those cherished memories are still there. As age sets in, one does tend to wonder how much is lost over the years. It sometimes does take touch to bring them back. Not to live in the past, for escapism, but to remind yourself every so often of who you used to be. Nothing wrong with that. After all, I’m not talking about a warehouse full of cars.

 

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

Ford_427_SOHC

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

vgpforkids_ls

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

morepython_ls

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