Cross Fertilization of Ideas


In this collection of ASCII characters I will give some of my own thoughts about new ideas, evolution of demos/games and other groovy stuff like hardware.

There are NO new ideas

Yep, it's a sad fact that most ideas are NOT new. They have either been done before, inspired by someone else or, as is usually the case, provoked by nature itself. Many aspects of our lives are moulded by the environment around us, the people, objects, smells, climate and so on... Just as "No man is an island" you could say "No idea is original". You have to look no further than the world of electronics to discover how much nature has influenced the current trends and inspiration. Nano-technology, electronic-minds, robots and probably every other type of research today.

Where ideas come from

Like most other things in life software developing is an activity which is highly influenced by external factors such as people, art, demo, music, violence and legal/illegal drugs. Yes, illegal drugs. Everyone has seen a 'trippy' 1960's movie where the visual are, er, trippy. By this I mean the rainbow, fit inducing patterns of colours, shapes and cheap televisual effects. Now look at most demos and intros and you will spot the 'genetic' connection between software and stimulant, code and caffine and debugging and drugs (ok, I went a bit far with that last one).

The software world is probably THE most recycled industry on the entire planet. Where most other commerical things are moderated over time using patents and copyrights, the software world is more of a free-for-all in which UI's, GUI's, algorithms and sadly even code is 'cloned'. Both the games industry and the demoscene are guilty of this, although the games industry would never in a million years admit this. I speak from experience here, I know of at least half a dozen games which have used stolen code, sound and graphics!! In the past when 3D games were relatively scarce there was A LOT of this 'code-cloning'. The classic routines for line and polygon drawing were probably the most ripped, oops, I mean 'inspired by', parts of any game or demo.


Ah, that old chestnut. There are vastly different views about this subject. Some would like to blame hackers for the downfall of humanity, plagues and wars, but I consider hacking is (or rather was) a vital part of any newbie coder's learning process. Before the widely availability of the internet there were very few books about games/demo programming. Some would totally disagree, saying that hacking is a pointless, illegal pasttime and teaches you bad programming habits etc.. etc..

During the time I was learning how to code I had very litte (read: zero) access to good programming books. In fact I was armed with little more than the User manual and a single sheet of paper with a few Z80 opcode examples. So as you can imagine learning was very difficult. And so I turned to hacking other programs in order to learn as much as possible. During this time while looking at a screen full of cryptic numbers and instructions my mind was ticking over with new ideas, lots of "what if.." questions.

So my inspiration came from hacking. The software I wrote was totally unconnected with the software I hacked. It quickly taught me how many bytes each opcode was and efficient ways to organize the registers. I never simply ripped code and called it my own, that is LAME beyond belief. I wanted to learn, to invent to keep my mind working. Hacking presented me with a binary puzzle and the knowledge and inspiration I recieved was far beyond the on-screen routine.

I remember some discussions with Dario Phong about hacking, he seems to prefer seeing the algorithm and documentation. Which is fine, but I like to understand how the algorithm came about, what other ways are there to perform the same task. I'm not interesting in the finished car, but rather how the car/engine/wheels were invented so maybe a different approach can be found. Looking at the final routines can give you some insight into improving the source algorithm, remember its a development cycle.

Even if you don't fully understand the code you are hacking, your mind will be ticking over, exploring new ideas and techniques. Many will be dead-ends and lead absolutely no-where, but every once in a while you strike gold.

An open mind

In the software industry there are few, brave souls who attempt to innovate, to see beyond the standard ways to accomplish a certain task. They wish to design better things. By this I don't mean simply take the old software source, add a new feature, give it a new version number and charge another $40 to $3000 for it. Most bosses/managers don't want too much innovation. It seems to scare them silly. They want a small development of the previous generation of software, a few more bells and whistles and perhaps a new word added to the product's name, something like Pro, Extended, Explorer, Studio. Sometimes they rename it because their version numbers are starting to get too big to fit onto the box cover (heheh).

In the past the commerical world has always lagged behind the demoscene in terms of speed and visual quality, but this seems to have changed a great deal. Now the commercial world has the resources and knowledge to compete against the scene, there has been many games companies who have entered well known scene competitions, some have been placed in the top 5 or even won the compo!

There was a good piece of advice from André LaMothe in one of his games programming books. He said to keep an open mind, to think that ANYTHING is possible and nothing is impossible, because as soon as you start saying that something is impossible someone else will prove you wrong. We've all seen many examples of this, 'You can't do X with Y amount of memory', or 'It hasn't got the hardware to do Z' ... but sooner or later some smart cookie finds a way to squeeze that extra % of processing power or new solution for an old problem.

The moment you start thinking a task is impossible is the moment that your imagination is inprisioned. I've seen this many times. IMHO the worse programmers are the one who say something is impossible WITHOUT actually trying to see if its impossible. Until you try and fail a few times you shouldn't impose the mental restriction on yourself.

Where are the new ideas?

Sometimes you can get bogged down into the same old routine, you think in the same way, you code in the same way, you draw graphics in the same way, you track music in the same way.. Boredom central!! If you've spent a long time doing the same thing your motivation can suffer.

So, take a break. Go and do something completely different!!

The world is full of inspiration. Most new ideas come from a totally unconnected subject or person. This cross fertilization of ideas will both increase your motivation and enthusiasm as well as serve as a mental break away from your normal way of thinking.

Fill the gene pool

This may sound a little arrogant (or plainly stupid) but I have predicted many things in the software world, mostly in terms of game ideas. The secret is to look at everything around you and look at ways to produce a hybrid.

Yeah, it's that simple!

Need some new sounds for your music? Then look at vocal samples, animal noises and everyday objects. Add a little bit of effects and WOW! you have not only got an original sound, but hopefully some inspiration from the novelty factor of this strange, new noise.

Need some ideas for maps/environments? Then look at some old architectural books, visit some land marks, look at the natural world the termite nests, trees, biology books anything apart from your monitor screen.

Need some new graphic textures? Again, look at the natural world. Wood textures, some old stone walls, look at some paintings.

Need some new ideas for your intro/demo? Then look at some old sci-fi B-movies and you will probably recognise many of today's effects during the opening sequences.

Closing worlds.

There is a great cross-over between the demoscene/game industry and the world of television. Coders, artists and musicians are pushing themselves to approach near-broadcast quality productions (full screen, full motion with stereo surround CD quality sound), while many of the artists responible for television titles are downgrading their visuals to be more oldskool video games like in appearance (low res, blocky, jerky graphics with perhaps vectors on top).

Each subject affects every subject around it, so why not take a break, refresh your imagination and take a peek at a totally different topic. I'm sure your coding/tracking/drawing will benefit from it.

An open-mind isn't a vacant one.
It's just one free from obstruction.