|
~ 3 Articles per page ~
Pages:
[ 1 ] [ 2 ] [ 3 ] [ 4 ]
Computer Game
Author: brendon
Published: 02/16/2011
Today's gaming software is unbelievable. You don't have to search through google to know that gaming software is likely responsible for some of today's greatest advances in technology, for the amount of effort that gets put into them to meet today's high demanding gamers, the competitive gaming market is constantly on their toes.
For gamers who've been playing computer games and console games since the early days of Atari and Nintendo or earlier, we have seen a gradual change from 2D to 3D, from midi-music to digital surround sound, and from 1 button joysticks to 5 or 10 button analog controllers. Yet, I was playing Atari's 30 year old game "Yar's Revenge" a few weeks ago and found it to be just as amusing, if not more fun, in comparison with many of today's games.
Although digital games have gone through many advances, some things seem to have stayed the same throughout history, a certain type of expected consistency which allows us to break any game down into recognizable components and split the work between a team of artists, designers, sound techs, and programmers. What are the elements that make up a completed digital game, and what does it take to make a good game these days? And most importantly "what makes a game fun"?
I found it important to make a game at least once in my programming history because I believe a good game is the perfect portfolio piece, aside from just being fun to make. Any half-decent game these days will have all of the following if not more:
- Sound
- Animation
- Menu System
- Interface Controls
- Database
- Layout and Design
And that's just the bare bones. When you start talking about what makes the game fun, and the actual challenge(s) or goals of the game, that's generally where the complexity really begins.
There has come to be many different genres of gaming, just as movies have the classic formula of "boy gets girl" or "good vs. evil", thus games have also developed their own classic formulas which seem to work again and again. 20 years ago the successful formula would be the Platform Game, such as Super Mario Bros. A Platform Game is a game with a man-like character, usually with a weapon of some sort, who is viewed from the side in 2D format as he walks back and forth on a "platform" fighting off the enemy and collecting points. Generally speaking you would go through multiple levels in a platform game, often travelling through different territories along the way and occassionally battling challenging "bosses" of each level until you reached the final boss of the game.
The Platform Game formula gave way to so many pop games for decades that it'd be a waste of time to try and name them all. But they always seemed to have the same fundamental formula, just changing the characters, their weapons, and the enemies they fought with each game.
Now the 2 dimensional thing could only last for so long, as technology is always advancing, and thus 3 dimensional games started to emerge to replace the Platform Game forever. Starting with games such as Zelda's Ocarina of Time, where instead of scrolling back and forth in 2D, you actually run around in a virtual 3D world performing realistic mission based strategy. Platform Games became very rare after this, with the exception of the never ending array of free online Flash games. The fact that such games are available online for free pretty much sums up the dollar appreciation of such games, but nevertheless the entertainment value is still there as millions of people around the world continue to play online everyday.
There are dozens of other timeless formula's for games. How about Tetris? There exists literally millions of different versions of the game Tetris, commonly referred to as "Tetris Clones", and variations such as Bubble Pop and all of its spin-offs. There are also Sports Games, Racing Games, Gambling Games, Role Playing Games, and the list goes on. But some of them seem to fail while others succeed, and I believe that even with the hundreds of different types of games we can still find a fundamental formula that appears in all of them alike.
Sound and Graphics. These are the most fundamental basis of any digital game. It's very important that great detail is put into all graphics and animation in a game for it to be successful. Even menus and information panels (such as score display, or health meter) should be animated and graphically easy to read. Game Sound is not only a catchy tune playing in the background, it's a way to make the game come to life by utilizing the human sense of hearing. Sounds can be used to enhance the player's experience in many ways, and creativity should never be neglected when developing this.
Challenge and Levels. Every type of game is a challenge. If there's no challenge then it's not a game, thus you need to think carefully when designing the challenge in your game. If it's too easy or too difficult people will bore quickly, this is why there should always be a learning curve for a game where it starts off easy and gets more challenging with time. Level up's, item pick-ups, and other such "Power Ups" are also essential to keeping the game exiting. A player will earn a sense of achievement when being rewarded for their hard work against the gaming challenge.
Story and Environment. The most entertaining games I've ever played seemed to change environments frequently, giving the player a sense that they're travelling around the world from the comfort of their own home. Much like a good book is meant to take you away and make you feel like you've left the troubles of ordinary life, thus a good game should even moreso take you completely out of reality and into a new world. A good game should also have either a story line or a theme. With Tetris as an example they're using a theme because a story is really unnecessary, but even Tetris will change it's background from level to level giving the player some visual entertainment and helping to break out of the mundane.
These are probably but a few of the details that should be attended to with great detail when designing a game. Whereas some might have thought that the sheer technology of game development was the only challenge, in fact I found myself lost in the action and challenge of playing Yar's Revenge of 1981 not long before writing this article. A game that would be considered techologically simple by today's standards but managed to hold my attention for hours once again even 30 years later.
Keyboard vs. Mouse
Author: Brendon
Published: 10/01/2010
A computer is a very advanced model of what originally would have been called a type of "machine". Obviously this machine is a bit more intricate than the type of device that comes to mind when we commonly use the word "machine" in English. You might think of a an old engine, a lawn mower, a device in a factory or such other mechanisms which can commonly be understood by the common eye when broken apart. Perhaps it's because the computer is so intricate and so difficult for the common eye to understand fully that makes it such a mystery to so many people, and thus causes many people to be confused when trying to operate this piece of modern technology.
Thus the relative of any computer has come to be, the Operating System (OS), a type of software which attempts to mitigate the usage of the computer's hardware devices and furthermore establishes the foundation of what might be considered to be the more enlightened advances of computer evolution, such as the internet.
Now obvious to most, but not necessarily self-evident, is that every OS should be Graphical, providing you with easily recognizable, iconic images which allow you to navigate to desired information or processes. It's important for me to mention at this time that this is NOT the only way that a computer's Operating System could have evolved, but it is the chosen method which has been determined by a certain team of developers and has been accepted by the public to be an adaptable norm. Most likely, we would agree that it's Microsoft's Windows Operating System which has made the mark in history for creating the world's first globally accepted Graphical User Interface (GUI), but in fact Windows may have not been the first of it's kind, and Microsoft are not necessarily the original inventors of this type of system, but only the first to patent such a system. Alas, that is another topic which we'll save for next time... let's get back to our topic here, "Keyboard vs. Mouse".
It's probably quite clear at this point that I'm bringing up the topic of computer interface usage, and that I'll be comparing the differences over using a keyboard or a mouse. I'd like to review the powers available to us from each, and also reveal some tips on usage which you might not have known already, if possible, and then give a synopsis of some issues I've come to find with your common users concept of an Operating System's usage.
The mouse. A device which provides X and Y coordinates for the GUI (Graphical User Interface) and in turn allows you to navigate a mouse pointer which will lead you to your desired menus, files, and applications. Little effort is taken in the "education" of mouse usage, and I use the word "education" very loosely here as your common computer user simply "picks up" the mouse by "watching a friend", "some guy at work", or for the younger generation "that's just how it is". The mouse has opened computing to the world at large allowing people to communicate, entertain, and educate with ease. It also provides a solution for many disabled persons to interface a computer, and considering that the computer has not become a common household item for more than 50% of homes in the US (the alleged rich country) less than an amazingly short 10 years ago (check the facts), it might also be suitable to say that a lot of older generations must be thankful for the ease of use found in a computer's mouse.
The keyboard. Who's pseudonym would be "Misused", is a very complicated device which would make some wonder why it's been attached to their computer which they only purchased in order to keep up with the musical times or play games with their neighborhood friends. A keyboard is certainly intimidating, daunting at first glance, even to the worlds' most dexterous musicians, artists, and engineers. I spent 30 days teaching myself to type with a very sophisticated graphical software designed to help a beginning typist overcome the common hurdles of typing and backed with expert knowledge which helps accelerate your learning. After 30 days of training an hour or two a night, I managed to get my typing speed up to about 35 WPM (Words Per Minute), which was acceptable performance for a lot of job applications at the time. For the sake of my argument, I will tell you that before this training I had already been playing guitar for years, and my fingers were quite nimble, dexterous, or however you'd put it, but the point being is that I probably trained up to this speed a bit faster than your average person.
The keyboard is the grandchild of the typewriter. An instrument invented to create finely typed, legible documents (on real paper) suitable for business and legal cases, where handwriting would create ambiguity, argument, and general inefficiency due to poor penmanship. It is simply a device which is intended to allow a person to use their hands and type the "keys" of a machine which in turn strikes correlating inked presses onto a piece of paper which neatly express the intended characters for each letter. Since the "keyboard" of a typewriter had been developed for years, it was the perfect model for what would become the computer's keyboard, which would in the beginning "print characters to the monitor". But what has become of the original simple concept? You probably have no idea how complex the keyboard can actually be.
Hot-keys, are a series of key combinations, such as holding down the Ctrl key and pressing "C" to copy some text, which allow a computer user to perform different tasks without having to click a cumbersome amount of menu options in the GUI. How many key combinations are there? It depends on the software you're using, each with it's own series of Hot-keys, and thus the total world sum of combinations would definitely be in the millions if not billions. But that's only the beginning, there are dozens more keys on a keyboard added after the invention of the computer. How about the F1 thru F12 keys at the top? "F" stands for function, and these are special function keys which generally have a protocol use for most applications. F1 will usually provide help on the current application you're using, F5 has a tendency to refresh the page, F12 usually means "Save", and further convenient options can be found in between these few. Many people might not know that if you want to save an image of the screen you are looking at, at any moment you can press the PRTSC (PrtSc) key, which means "Print Screen" and this will copy an image of whatever you see on the monitor screen at the moment you press it, after which you can open an image manipulating software to paste and save the image.
There are hundreds of more common uses of the keyboard which are extremely useful for a person who uses a computer on a daily basis, and you could probably spend months studying these before having them set to heart. This with the addition of the aforementioned topic of typing acquisition can make you think that truly understanding a keyboard is a rich man's hobby, not for the weak at study, and perhaps simply not worth the time it takes to learn - as you might not have intended to make such a serious endeavour out of your computer usage in the first place.
This article was inspired dually by the amount of irritation I have every time I have to use the mouse, and the amount of love that I have for the convenience of a good keyboard and proper software which makes full use of the keyboard.
Good keyboard usage makes a good gamer better, it can improve an office workers efficiency, and it's a required talent of all future computer users. But will it remain the standard and is it possible that good mastery of a keyboard is too difficult for a considerable amount of our population?
Perhaps we'll be talking to our computers soon enough, and these questions will seem trivial, perhaps the keyboard will become a tool only needed for the deaf, who usually can't speak, and gamers will be given custom devices for their game interfaces. But for the moment, to define the victor of Keyboard vs. Mouse, I would have to vote for Keyboard. A good computer user of any type is dependant upon the keyboard for success, and an advanced keyboard user can eliminate themselves from a mouse completely without losing any efficiency. For the designers and artists who you would think to be dependant on a mouse, you might be surprised to find that they've already adapted to "tablets".
The Programming Scene
Author: Brendon
Published: 02/06/2010
This is my first article of 2010, so I should start with a belated Happy New Year! And you might wonder what I've been so busy doing for the past month that I couldn't write an article? Well, read the title of this article and take a guess!
I thought it might be interesting to many people to get an update on what's happening in the world of programming today, and perhaps improve your knowledge a little of what programming actually is for those who don't know. I'm not as hot into researching the latest languages and keeping up to date with the hotest trends in programming as I used to be, but as far as I know few things have changed in the matter of programming languages over the past few years. Most people have heard of C/C++ and Java and for those of you who've been around a bit longer you've probably heard of Basic, Fortran, and/or Pascal (most of which are pretty obsolete these days)... and to be honest there haven't been many major breakthroughs or changes since the likes of these languages for the past 10 years. However, there are a lot more languages out there than these which have been popularized through their fame for high income, and there are a lot of very interesting things going on today with these existing languages all the same.
First of all let's get clear on what a programming language is exactly. The lowest level of language which a computer (machine) understands is referred to as assembly language or machine code. This code is very hard to learn, it can be different for each computer, and it would be extremely combersome to try to make a program with. This is where today's modern programming languages come in to save the day. The primary job of a programming language is to translate the hand written orders of a programmer into machine code which will tell the computer what to do. Another thing we should distinguish about a programming language is that it is independent of software. HTML for example is "not" a programming language because it depends upon a web browser, it is a markup language. Actionscript, although it takes programmers skills to understand, is a "scripting language" which is used to create Flash movies, games, and more..., and since it depends on the Flash environment it would also technically not fall under the traditional category of "programming language".
When I started getting into programming, around 1999, I started by learning C++ which was still considered a stable language to learn for someone in the job market. C++ today is actually infamous for being similar to machine code, or in other words very difficult to use. The alleged savior from C++ was meant to be Java, the newest language which was supposed to be more advanced, easier to use, and have more features for a programmer. Some of these things I found to be true, but in all honesty I personally believe a new set of complications came along with Java to replace the frustrations of C++. During this time I was experimenting with a lot of different languages and after a while I found them all to have the same powers, but with time one of them seemed to stand out among the rest for its ease of use, and that was Python.
Now oddly enough, out of all the languages I've mentioned so far, Python is actually the least heard of over a dinner conversation, and surprisingly Python actually has a long history which I believe beats Java by 10 years (check your local Wikipedia for details). The reason Python struck me as such a great language was simple. What took me 5 lines of typing to simply make the word "Hello" appear on my monitor with Java, took 1 line with Python, and Python was faster. Python also was (and still is) the most dynamic language I'd yet to see in the way that it allowed me to play with information and calculations with simple, short, and easy to read code.
The reason that Python was in the shadow of Java at the time (and probably still is) was probably due to the business market of programming which Java (Sun) had taken by the neck. There is in fact still an advantage with Java which Python may or may not be able to compare with in today's programming market. With the history of financial and business backing that Java has it is most likely the language with the greatest set of built in (or downloadable) packages to program just about anything in the world. Thus if you were looking for a language to use to do something as odd as program the scanner at your local supermarket, Java probably already has a package to do this.
Alas, as important as these languages all are in the world today I've actually spent much less time using them to do anything practical. When it comes down to doing business in today's market it would seem that everything is going online. So now after having already learned all of these languages I still had one more to go to make sure that I could keep up with today's market as a programmer. Although Python technically is more than qualified to run web pages and do jobs within a network, and I personally would prefer to use it, you'll simply find yourself in many situations where it isn't supported on the server you're using. This is where we come into the world of popular server-side scripting such as PHP and ASP. Although Python can also be used as a server side script, I kept getting doors slammed in my face when trying to use it on any server space, perhaps because such a powerful language is capable of doing damage when in the wrong hands.
PHP is the simplest and most supported scripting language for creating dynamic websites in today's world. If I wanted to say within one word what PHP can do, I would probably say "Facebook" as an example. You could just as easily say MySpace, Wikipedia, YouTube, or any other site in existence... although I have no idea what language these sites were created with, but they are an example of the type of thing that PHP can do quickly and painlessly. But Facebook was in fact reportedly developed in PHP according to the factsheet on their site, and I have a feeling the rest of these sites are likewise developed in PHP, if you want to make sure, go search them for the answer.
PHP is generally seen as a suffix or prefix to MySQL the database server. This is because the true power of PHP is probably not as well founded without it's module tie in with the MySQL database. This power pack combo gives a programmer the ability to use a dynamic server side programming language with a super powerful database system that can handle billions of lines of data with ease. Google is an example, probably the greatest database in the world, which uses MySQL, as well as Facebook.
With the combination of these 2 forces in addition to some browser side Javascript or Flash assistance, you can pretty much build anything that comes to mind on the internet, from multi-player online games to simple forums and chat rooms. These 2 forces, being free and open source, are best associated with the Linux operating system running the Apache HTTP server. These 4 together are commonly known as LAMP, Linux Apache MySQL PHP... although the P for PHP can also be interpreted as Perl, the predicessor of PHP which has somewhat lost popularity under PHP due to its complexity in comparison to PHP.
LAMP servers are very common today, and the set up and installation of a stable LAMP server can be done overnight by someone with a little experience. It's the choice starting route of a lot of today's programmers for its stability and efficiency. In addition to that, the documentation and free community spirit of these platforms makes learning not only free but easy.
I personally feel as though that's where we are today with the programming scene. There are other options available, and other systems to be spoken of, but then this article would never end. At least I hope my humble article could shed some light on the world of programming in today's market through the eyes of one developer.
Read More...
|