Create Computer Games – Get Started on Creating Your Own Virtual Worlds

I’ve always loved video games, ever since I first played them on a friend’s computer in the afternoon after elementary school. There’s something almost magical about the fact that we can move images around and interact with virtual worlds, a living fantasy presented for us to interact with however we please. I’ve also always wanted to make games myself but, until recently, didn’t have the technical knowledge to do so. Now, I’m a second year software engineering student, so if I weren’t able to code a game without too many dramas there’d be something drastically wrong. But what about the common person: the person for whom the term ‘memory leak’ conjures up images of their grandfather, ‘pipeline’ is where the water flows, and ‘blitting’ is unheard of? Well, everyone can get in on the game creation process, and you don’t even need to learn ‘real’ programming to do so.

So where do games start? With an idea. Games, like all fiction, require an idea to be successful. Sure, in the same way you can just sit down and write a story without foresight, you can jump on in and slap a game together. However, unless you get ridiculously lucky, the best works are usually the ones that have been well thought out beforehand.

There are two methods of planning a project. You can start from a known technological standpoint and build your project on top of that or you can just go for the design, add as many features and ideas as you like, and then remove the ones that you can’t use when you’ve decided on the technology you’re going to implement the game with. In general, the second type is probably the best one to go with when designing games. When you’re first starting out however, the first option will save you many headaches.

So, for a first game you’re going to want a pretty simple idea. Don’t get me wrong, crazy-go-nuts game ideas are fantastic, and there should be more of them out there, but you’re not going to be able to create a real world simulator with fifty billion virtual people all interacting real time with your actions having a butterfly effect on the future of the virtual universe when it’s just your first game. Really. Many people try it; none that I know of have succeeded. Imitation is the best way to start out. Simple games such as ‘Space Invaders’, ‘Tetris’, ‘Pacman’ or even ‘Pong’ are great places to start. All are largely simple to create but have some inherent challenges. ‘Pacman’ for example, requires path finding for the ghosts. I recommend that you start even simpler than that for your very first attempt. ‘Space Invaders’ is a nice point to jump in. You can make a simple, complete game without much effort and it’s almost infinitely extensible.

If you’re stuck for an idea, pick a genre that you enjoy. Do you love adventure games such as ‘Monkey Island’, ‘Grim Fandango’, ‘Space Quest’, ‘King’s Quest’ etc.? Design one of those. Are you into fighting games like ‘Street Fighter’, ‘Tekken’, ‘Soul Calibur’, ‘Mortal Kombat’ and so on? Come up with an idea for that. Do you like first person shooters such as ‘Quake’, ‘Half Life’ or ‘Doom’? I don’t recommend it as a first project, but you can always give it a go. Feel free to be as generic as you like, this is a learning experience after all.

Now that you have your idea it’s time to flesh it out. Don’t worry about the technology or the fact that you may not know how to actually implement a game just yet, just grab yourself some paper and a pencil and go crazy with ideas. Describe the main characters, game play, goals, interactions, story, and key mappings, anything you can think of. Make sure you have enough detail so that someone can read through the notes and play through the game in their head with relative accuracy. Changing game design during the coding process is almost always a bad idea. Once it’s set, it should remain set until the tweaking phase (I’ll go into this more later) or you’re likely to enter ‘development hell’, where the project goes on and on; more and more work is done with less and less outcome.

At the end of this period of your game creation, you should have the following:

– A written outline of the game’s characters and possibly a sketch or two (be they space ships, yellow circles, cars or the prince of the dark kingdom of Falgour, you need to know who or what the player will be and who they will compete against)

– A written outline of the story (if there is one, this isn’t too vital for ‘Space Invaders’ or ‘Tetris’, but for ‘Uber Quest: An Adventure of Awesomeness’ it’s a really good idea)

– A description of game play, written or storyboarded. Storyboards are visual representations of ideas. Draw your characters in actions, with arrows showing the flow of action and short written descriptions detailing the events occurring in your image (because some of us aren’t fantastic artists and our images can be a little… open to interpretation…)

Now that you have a fleshed out idea, it’s time to work out how this will all get put together. If you’ve gotten to this point and are worried that you’re going to have to spend years learning complex programming languages in order to implement your idea, fear not! Others have already done the hard yards for you. There are many RAD (Rapid Application Development) Tools available for game creation, a number of which are available for free online. Some of them still require you to learn a ‘scripting language’ (a simplified programming language made for a specific task) but in general this isn’t too complicated or involved. I’ve compiled a brief list of some of these I have found at the end of the article. The free ones are listed first, organized by game genre.

Well, that should be enough to get you started in the creation of your game. The most important thing to remember once you’ve gotten this far is that you need to complete your game. Many people start a project and then lose interest and it fails, or they keep moving on to one new project after another without finishing anything. Start small, build a working (if simple) game that is, above all else, complete. When you get to this stage you will always have a huge number of things that you wish to change, fix etc. but you’ll get a great feeling from knowing that it is, in its way, finished.

From this point, you can start the tweaking phase. Play your game a few times and ask others to do the same. Take note of what isn’t fun or could be better and change things here. At this stage, it is more important than ever to keep backups of previous versions so that if a change doesn’t work you can go back and try something different without losing any of your work. It is at this point that you can add all new features, improve graphics and sounds, whatever you please, safe in the knowledge that you’re working on a solid foundation.

When you’re happy with your game, why not share it with the world? There are many cheap or free places out there for you to host your files on and then you can jump on link lists and forums and let everyone know about your creation. Well, I hope that this has been a helpful introduction into the art of creating games. It’s a great deal of fun, and can open whole new avenues of creative expression for you to explore. Jump in and have fun!

Links:

General Game Creation:

(Tools that allow easy creation of many different game types)

Game Maker: http://www.gamemaker.nl

MegaZeux: http://megazeux.sourceforge.net/

Adventure Games:

(Games such as Monkey Island, King’s Quest, Space Quest etc.)

Adventure Game Studio: [http://www.bigbluecup.com]

AGAST: http://www.allitis.com/agast/

3D Adventure Studio: http://3das.noeska.com/

ADRIFT (for text adventures): http://www.adrift.org.uk/

Role Playing Games (RPGs):

(Games such as Final Fantasy, Breath of Fire, Diablo)

OHRPG: http://www.hamsterrepublic.com/ohrrpgce/

RPG Toolit: http://www.toolkitzone.com/

Fighting Games:

(Games such as Street Fighter, Mortal Kombat, Tekken, Soul Calibur etc.)

KOF91: http://sourceforge.net/projects/kof91/

MUGEN (unfortunately the site is largely in French): http://www.streetmugen.com/mugen-us.html

Side-Scrolling Games:

(Games such as the 2D Mario Games, Sonic the Hedgehog, Double Dragon etc.)

The Scrolling Game Development Kit: http://gamedev.sourceforge.net/

There are many others available as well. One particularly useful site for finding game creation tools is: http://www.ambrosine.com/resource.html

Also of note, although not freeware, are the excellent game creation tools available by Clickteam at: [http://www.clickteam.com/English/]

Klik and Play and The Games Factory in particular are the programs to have a look at and download the free demos of.

If you really want to do things right and program the game yourself, there are some excellent programming resources available at the following locations:

Java Game Programming:

http://fivedots.coe.psu.ac.th/~ad/jg/

http://www.gamedev.net/reference/articles/article1262.asp

http://javaboutique.internet.com/tutorials/Java_Game_Programming/

Visual Basic Game Programming:

[http://markbutler.8m.com/vb-tutorial.htm]

C++ Game Programming:

http://www3.telus.net/alexander_russell/course_dx/introduction_dx.htm

http://www.rit.edu/~jpw9607/tutorial.htm

General Information:

http://www.gamedev.net/

http://www.gamasutra.com/

Computer and Intellectual Property

Computer technology plays an increasingly important part in modern society. Computers – electronic machines with an ability to store up and/or process data – are called hardware. The expansion of hardware is astonishing: computers are more potent and computer technology enters more areas of life, not only in technological environments as well as, but also in more ordinary surroundings such as domestic appliances, cars, watches and similar products.

A computer cannot function without instructions. These instructions may be embedded into the hardware, for example in ROMs, but most frequently they are created, reproduced as well as distributed in media which are separate from the computer hardware. Computer programs for personal computers are distributed on diskettes or CD-ROMs. Computer programs are created in a programming language which can be understood by people trained in that language. That form of appearance of the program, which can be on the computer screen or printed out on paper, is usually referred to as the source code. Another form of appearance is called object code, where the program is transferred into the digital values 0 and 1. In this form the program is incomprehensible for persons, but it is machine readable, for example from a diskette and in that form it can be used really to organize the operations of the computer.

Typically the computer hardware as well as the program needs to be supplemented by manuals and other support material, prepared by the producer of the program, which give the essential instructions and reference material for more advanced uses of the program. The program plus such reference material and manuals are referred to as computer software.

The investment needed for the formation of computer programs is often very heavy as well as their protection against unauthorized copying and use is of crucial significance. Without such protection producers of computer programs would not be capable to recoup their investment and so the creation and development of this decisive side of computer technology would be jeopardized. In countries which have not yet provided adequate protection, it is often only possible to obtain foreign programs which are not adapted to the specific needs of those countries. It is difficult to secure the financing of the essential translations and local adaptations. Computer viruses tend to be much more extensive in countries with inadequate protection, because they are distributed with pirated software which is not subject to the equal quality control as authorized products.

It is vital for national legislation to make sure enough protection of computer programs. Even in cases where local translations or adaptations are not essential, such protection improves access to the most advanced as well as the best suited software, since producers plus distributors are only unwillingly releasing their precious products in countries where rampant piracy can be expected.

Computer Forensics – Criminal vs Civil – What’s The Difference?

In the field of computer forensics, as in the field of law, procedures in civil cases differ somewhat from those in criminal cases. The collection of data and presentation of evidence may be held to different standards, the process of data collection and imaging can be quite different, and the consequences of the case may have very different impacts.

A couple of quick definitions may be in order. Criminal law deals with offenses against the state – the prosecution of a person accused of breaking a law. Such offenses may of course include crimes against a person. A government body, or the representative of a government body accuses the person of having committed the offense, and the resources of the state are brought to bear against the accused. Guilty outcomes can result in fines, probation, incarceration, or even death.

Civil law covers everything else, such as violations of contracts and lawsuits between two or more parties. The loser in such a dispute often must give payment, property or services to the prevailing party. Imprisonment is not at issue in civil cases. As a result, the standard for evidence is not as high in civil cases as in criminal cases.

For the law enforcement computer forensics specialist, a certain amount of extra care should be taken in collecting data and producing results, for the standard of proof is higher. There are advantages on the data collection end, however. For once a court has authorized a search warrant, an officer (and possibly several) with badge and gun can go seize the defendant’s computer by surprise and by force. Once the computer has been seized and imaged, all data is accessible and may result in additional charges being brought against the defendant.

By contrast, in a civil case, there tends to be a lot of negotiation over what computers and what data can be inspected, as well as where and when. There is not likely to be any seizing of computers, and quite a long time may take place between the time the request to inspect a computer is made and the time the computer is made available to be inspected. It is common for one party to have access to a very limited area of data from the other party’s computer. During this time, a defendant may take the opportunity to attempt to hide or destroy data. The author has had several cases wherein the computer needed for analysis was destroyed before the plaintiff had the opportunity to inspect. Such attempts at hiding data are often discovered by the digital forensic sleuth, who may in turn present evidence of such further wrongdoing in expert witness testimony.

Opportunities for learning techniques and interacting with other professionals may differ as well. While some computer forensic software suites and training, such as Access FTK, EnCase, or SMART Forensics are available to most who can pay, others, such as iLook are available only to law enforcement and military personnel. While many support and professional organizations and groups are available to all, some, such as the High Technology Crime Investigation Association (HTCIA) are not open to professionals who provide for criminal defense (with a few minor exceptions).

When law enforcement has a case involving computer forensics, the intention is to locate enough data to find the defendant guilty in court, where the standard for information presented tends to be fairly high. From the time digital data or hardware is seized and acquired, Rules of Evidence must be kept in mind (Cornell University has the complete and voluminous code on its website). Law enforcement personnel must follow accepted procedures or evidence could be thrown out. Acquisition of data and discovery in criminal cases often must follow sometimes strict and differing procedures depending upon whether the jurisdiction is federal, state, or municipality and at times depending upon a judge’s preferences.

In a civil case, the initial processes of electronic discovery may be just to find enough data to show one or the other party whether they are likely to prevail, should the case go all the way to court. As such, the initial presentation of data may be fairly informal, and be just enough to induce the parties to settle the case. On the other hand, the data found may be so minimal the line of inquiry into electronic evidence is dropped.

Although we use many of the same tools, computer forensic professionals in private practice and those in law enforcement are held to different standards, have access to different resources, and their work results in substantially different outcomes between the criminal and civil cases to which they contribute.