Editorial
One Week1 Late
This second issue of Play Game is going to be one week late. Sorry about the delay.
So sayth the previous editorial of this issue. What a joke, yeah?
This issue is being released almost one year late.2.
Everyone should know about my 'year of the vampires' by now. You can safely say I was preoccupied during that time.
If you don't have the foggiest clue of what I'm talking about, I'll just say it involved entirely too many women of dubious moral characters — both good and bad. I'll leave the rest to your fertile imagination.
All I ask is that the rumors be sensational, extremely lurid, and involve a midget, possibly covered in bright blue liquid latex.
On with the show!
WTF is Play Game?
Play Game is defined as "Porn for Game Designers and Game Programmers." That's my definition. It's not meant to be what the average 'zine attempts to be — a she-BANG! of everything that a member of the zine-reading audience would want to read. Play Game is porn, so we set the bar a bit lower, something a bit baser and closer to our …. hearts.
What Play Game Is Not
Play Game is not a tutorial-zine. We're not here to educate you — but to entertain you.
What Play Game IS
Play Game is about the culture of amateur game programming and design.
Sprites
Das ShortBus
Das Unfinished Sprite
ShowCase
Low Battery
Articles
Things You Can Play With in Basic4GL!
The Evolution of Your Userbase
A classic article originally published in PCOPY.
Introduction : Monkey to Man
Stick with me here. I'm going to show you a magic trick. I'm going to turn a monkey into a man. No tricks up my sleeve, nothing behind my back, I simply wave my magic wand and… the monkey stays a monkey.
You can't turn a monkey into a man overnight no more than a userbase can be created overnight. Hoping that one will just pop into existence is like waving a magic wand over a monkey. Funny, but hopeless. Realistically, userbases have to go through the proper stages of evolution before they can stand upright and stand proud.
Like the many species of nature, userbases —- and thus programming languages, go extinct or never get off to a good start. This article is to show you the evolution of a userbase and give you a good idea what the stages are and how to identify where your userbase is and where to go from there.
Stage 1 : The Cavemen
I'm going to start our story with some cavemen in days of yore, sitting around a fire, scratching symbols into the dirt floor and communicating in grunts.
Imagine. Little Johnny is born into the caveman tribe. He learns everything he needs to know about how to hunt from the older people around him. He grunts questions at them. They grunt answers back. Through a whole lot of grunting, pointing, and drawing symbols in the dirt, Little Johnny caveman learns to hunt well.
Then, GASP! Tragedy strikes. Johnny's father and several other elders get trampled by a rabid wooly mammoth. The event leaves a power vacuum in the tribe and a struggle for power ensues. Eventually, by throwing fire, stones, more grunting, and drawing in the sand, it is decided that the tribe will separate. The tribe's more older and wiser members split off to seek their fortunes elsewhere.
This leaves Johnny alone to rule the tribe. But no worries, he's learned his lessons about hunting well and can pass them on to the next generation, which arrives in just two months.
Then, five years later, GASP! Tragedy strikes. Johnny is killed by the very same rabid wooly mammoth that killed his father. Unfortunately, this leaves his wife and his two children to fend for themselves. They starve to death during the next winter.
Horrible story isn't it? Death, tragedy, starvation. Rabid woolly mammoths. But it happens all to often to programming languages right here on the web. And it happens every day.
This stage is when there is no proper documentation and the few members are using a forum for the main method for exchange of knowledge about your programming language.3
During this evolutionary stage, you will always be losing experienced members of your userbase. Sad as it is, they leave for a number of reasons. They die, they are driven off by flame wars, or they lose interest. It doesn't matter how you lose them, the most important thing to know is that you WILL lose them over time. There's nothing you can do about it.
It also happens that if enough of them leave at the right time, there will be a knowledge vaccuum in your userbase, leaving noobs to fend for themselves. Sitting around a fire, grunting, and drawing symbols in the dirt floor (or using a forum) isn't enough to prevent this knowledge vacuum. Someone has to be there to grunt answers back and point at the complicated symbols and reveal their meanings.
To safeguard your userbase, you need to take the next evolutionary step.
Stage 2 : The Scholarly Elite
Let's fast forward a bit. Humanity has invented a proper system of marking on paper called writing. They have learned that they can put together many such peices of paper in a wondrous invention called a "book". Inspired, a few highly intelligent people preserve all their knowledge in these "books".
Unfortunately, learning complicated subjects from books alone rarely works. Only a few scholarly elite are able to come to understand the whole subject. These elite then form into elite groups and shun non-elite outsiders. They write arcane, complex papers and pass them to each other. They read them and nod their heads and smile, knowing they are elite and look down at the unwashed masses.
Those who are not elite are left ignorant (and possibly unwashed). Therefore two classes of people emerge. The elite and the complete noob. The gulf between them becomes as wide as the grand canyon.
At this stage, only a small elite userbase will be able to study at the libraries ( read the documentation ) and learn from it. If all of the elite userbase leaves at the same time, the knowledgebase will be preserved and a small elite user base will be able to rise again.4
Those who became the new elite will have to have learned to program somewhere else that was more noob friendly. A programming language at this stage will never attract a large userbase because they cannot attract people who cannot already program.
This is better than the previous system, but it limits the userbase to a small number of very self-important people.5
Stage 3 : The Public School
Let's skip ahead a bit. At some point one of the elite turns into a Promethus6 and realizes that more advancement can be made if the ignorant masses were educated too. This elite member recruits a few other elite from the scholarly elite and form the first public school.
For the first time, noone has to blindly search through arcane books for knowledge. It is taught to them, it is demonstrated for them, it is accessible to everyone. There's no need to remain ignorant, you can go to school, become elite, and eventually have enough knowledge in your head that the arcane books don't seem so arcane anymore.
Since more people are working on developing more knowledge, more knowledge becomes available. Soon people everywhere start experimenting and invent and discover all kinds of unexpected things. Someone discovers electricity. Someone invents the lightbulb. They catch on. People are amazed by decide going to public school is worth the trouble. The foundations of modern society are properly laid.
This is stage in the evolution of the userbase where tutorial writing to get complete noobs up to speed is taken seriously. Once this groundwork is laid, intermediate tutorials naturally follow and soon there is an unbroken path from complete noob to elite pro. Also during this stage, projects are completed on all levels, so that everyone has something they look at and say "I can do that."78
Stage 4 : The Couch Scholar
Let's skip ahead again. Society has evolved to the point that everyone can afford a car or has access public transportation. They are no longer starving for food or knowledge. Processed cheese becomes popular. So do the Power Rangers.
So what do people in this age do? The intelligent ones who didn't apply themselves in school sit in front of the television. They play video games. They make incredible, yet incomplete leaps of intuition and logic while snacking on toast. They annoy their friends with these leaps. Constantly.
These are the true mavericks of society who are capable of great contributions because of their novel outlook on life. Their thought is non-linear. Simple facts bore them. The only important part of a thought is the application.
I'm going to be frank —- their problem is simply a lack of discipline. They like to play. So instead of going to college, they watch the Discovery Channel and knaw slowly on For Dummies books. They learn Spanish by throwing Spanish insults at each other or playing a table-top RPG over voice chat in Espanglish. They shift from one study to another like buzzing bees, constantly filling their heads with random ideas that collide and connect randomly in their sleep and jump out in unexpectedly genious ways.
Attracting (and retaining) these people is the last, optional stage of the evolution of a userbase. I like to call them 'couch scholars'. Couch scholars are good for a community because they often provide the missing piece or connection to solving a puzzle.They often find the easiest path to point A to point C because they never learned about point B, or found it completely useless.
More importantly, they provide excellent 'tech support' for a programming language. These are the people who visit your forum everyday looking for a small challenge — usually by giving people quick answers to programming problems.
If you've ever gotten a bit of trivia from someone as an answer and it actually solved your problem once you thought about it, you've met a couch scholar. If you know someone who gives useless trivia all the time when you don't need it, you've met a couch scholar.
There's only one good way to attract couch scholars. Wow them with something oddball, useless, and completely pointless that inspires the imagination. In other words, give them a woderful brain-power wasting toy. A zombie infection simulator written your programming language should do it.9
There's only one good way to retain them. Give them a space to play. The best place for a couch scholar to play is a help forum. Any place where they can give answers that start with "Maybe if you tried doing this…" or "That's alot like…"
Once your programming language has been through all four stages of evolution, give yourself a pat on the back. You've evolved from monkey to man.
A Case for SOUND
I have to take my hat off here in a moment of respect10. One modern-ish game programming language almost got this right. Because it's developer refused to port it to Vista, it now lays dead, cold, and severly missed. Let's have a moment of silence for Brutus2D….
…. ok, enough of that. (sniff.)
In the days of modern sound, that is, sound that can be very large in terms of data and very sweet to the ears something has been overlooked : THE AVERAGE AMATEUR GAME PROGRAMMER IS NOT A SOUND DESIGNER. Ahem. We just don't have a recording studio in our basement and honestly, we can't be bothered with recording our own sounds because we're interested in programming.
(incomplete)
What's a Video Game Genre
There is much debate about what a video game genre really is. I'd like to clear up this issue — but to do that I have to first confuse it a bit by stating that video game genres vary depending on who you ask — and each and every view is mostly valid.
(incomplete)
Mark Overmars Hates You
(or Game Maker's Design Flaw II)
I'm sure Mark Overmars doesn't hate you. Unless you happen to have run over his cat. This is completely not relevant to this article — mostly. The issue here is not Mark Overmars per se, but how he's discouraged noobs from every programming again after trying to make a game with Game Maker — with health.
Over at the Game Maker Wiki project we've begin a serious study of health, and though I haven't reported it yet to the guys — health is one glaring design flaw. Here's the reasons :
- health is a built-in global variable in Game Maker. You can do squat with it. It's there. You can't name any of your own variables "health" — its already taken.
- There is an action (think retard-programming) named Draw Health. It can only use the global health variable.
- After falling for the lie that they can make the game of their dreams with no coding, noobs find themselves tearing their hair out trying to figure out how to "use, add, or give health" to a "2nd player or enemy."
- It's very, very sad. You should feel sorry for all the bald noobs that Mark Overmars has created.
Here's what makes it worse : IT'S KNOWN TO BE A PROBLEM.
The correct thing to do is to remove this roadblock and add a local health variable for every object / instance. Has it been done? Well, of course not. The bald noobs are not attending his "game design class."
Note : I bear no ill will towards Mark Overmars. In fact, he deserves much credit for actually creating what I was planning to create under the name of "The Contraption." Those were my high-school days before I even had a x86 computer and I do not claim that he "stole my idea." It was an idea many people had and kudos to Mr. Overmars for being the one to make it happen.
— hartnell
There is Only Code
As I read new postings on the forum of Game Maker Wiki Complete, I'm struck by the deep misunderstanding of programming in general and especially the abuse of the word code. Unfortunately, I see it catching on so let's bomb the hell out of this right now before it gets out of control, shall we?
But first, a quick refresher course in the word code before we continue. There is no codes — only code. If you have a mountain of source code, you have — a mountain of source code. You do not have a mountain of of source codes. If you have a metric buttload of BASIC code in different dialects of basic, as the now defunct All BASIC Code did, YOU DO NOT HAVE FREEKIN' CODES. (ahem.)
This misunderstanding arises from two forces : a complete misunderstanding of programming and general — and those freekin' people from MySpace who also think that HTML is a programming language11
I know I may seem like I'm ranting about nothing — it's only an extra s. If you think that, well screw you. :) The important thing is the mentality behind using the s. People who use the extra s believe that programming is like punching in buttons into their favorite video game to get unlimited lives. They think that each function is an individual "code" with it's own timing and buttons. The idea of syntax and that the theory of putting information into functions and getting information out is pretty much the same for every function in existence is completely lost on them. All they think when they see a function is U U D D L R L R B A Start. Sadly, given this famous example, they also think that using multiplayer game is much like this : U U D D L R L R SELECT Start and give up amateur game programming when they find that it's not.
Squashing that freekin' s is the first step in squashing this mentality. This needs to be done. If it isn't and the manual for any programming language isn't written in combos and cheat codes, the future of amateur game programming is going to lose many otherwise bright people.
Centerfold : SOL In Space
Our Centerfold this week is SOL in Space. Yes, the full title is "Sh*t Out of Luck in Space".
SOL in Space is both a statement about game design and one of my many unfinished sprite sheets. The idea was inspired by the "mothership" stage of Cosmic Ark for the Atari 2600, which led to an unfinished game called "Gunna Die."
The statement is this : There is only one way to end an arcade game — in the unfortunate death of the player object. Consider this, Frogger may make it home time and time again, but in the end, he winds up dead — every single time. It's a part of what makes an arcade game an arcade game.