DeProgrammer: For this workshop, I recommend checking out http://dpmm.110mb.com/Rotis because I'll be referencing it numerous times. DeProgrammer: So, I've split this up into three major sections, to the best of my ability: design elements, the actual process, and creation elements. DeProgrammer: First of all, we've got the theme. This is the subject or the most prominent idea in the game. DeProgrammer: It could be aliens, robots, gems, war, a rave, or any number of other random things...or any combination thereof. DeProgrammer: When considering a theme, try not to end up with something bland and uninspired, like Rotis's tiles, which are just...plain. Sploder: In this case, it seems to be blocks DeProgrammer: And it's terrible. :) Sploder: Meteos did a good job with blocks DeProgrammer: In a lot of games, an actual environment is required, so your theme may include that. DeProgrammer: The second design element is the mood. DeProgrammer: What kind of emotions do you want your game to bring about? A game can be creepy, funny, dramatic, cute, disturbing...or bland. DeProgrammer: With the right graphics and music, practically anything can be cute or scary or whatever you want--psycho killer rabbits, killer eggplants, etc. Check out Bisque's work as an example of cute graphics: http://www.pixeljoint.com/p/787.htm?sec=icons&pg=5 DeProgrammer: In regards to the mood, sounds may need some effects applied based on the environment. Echoing effects could create a more lonely feeling, for example. DeProgrammer: Rotis has mostly whimsical music (which you can't hear if you have something newer than Windows XP), yet uninspired graphics. It fails to arouse any particular mood. This is not a good design. DeProgrammer: The third element of design is really the biggest: the gameplay. DeProgrammer: It's usually best to work with an existing template, such as tower defense, Metroidvania, an RTS, etc. DeProgrammer: For example, Rotis was a tile-based puzzle game, based on Bejeweled and Tetris Attack/Puzzle League. Mercenary: Why not just create your own? Sorry, but I'm very curious. Mercenary: You know, a template DeProgrammer: Do you think you could design a unique, original game, without starting off with ideas taken from other games? :P RetroX: well, not unique Sploder: It's really hard to make a completely new genre Sploder: since so many ideas have already been done Haz: You can if you want to, but it's easier to start off of a template, then expand. DeProgrammer: Right. What Haz said. Sploder: I'd say make your new genre later in your career, after you have the experience to back it up DeProgrammer: You generally need to choose a perspective for a game--isometric, top-down, side-scrolling, first-person, etc.--and you need to consider the gameplay for this. For example, a game that makes jumping necessary should probably NOT be top-down. Haz: It's happened before though Lakilouie: example:Back to the future NES DeProgrammer: Hence the "probably," Haz. :) Most of the ideas that go into design are optional... It's really art. DeProgrammer: There is such an incredible number of genres that I can't go into very much detail on this topic. But as an example of something that one genre could require, action games usually have movement/ability usage rates. Aspects like damage-per-second shouldn't be overlooked. DeProgrammer: Goals! This is the fourth major aspect, which I suppose you could consider an aspect of gameplay. DeProgrammer: Metroid gives you the goal of beating the final boss, with the possibility of speed and collection rates for different endings. DeProgrammer: Halo multiplayer is generally just about getting the most kills. Halo also has achievements. RetroX: games like Mario provide scores as well RetroX: scores are the easy way out :P DeProgrammer: And that brings me to my next point: DeProgrammer: Scores can be implemented as a more significant goal by giving extra lives for higher scores. Just having a number doesn't mean much or give a very notable feeling of accomplishment. Rotis is an example of this. DeProgrammer: Bejeweled Blitz makes scores work better by giving achievements for certain score thresholds. RetroX: Mario also provides lives for 100 coins DeProgrammer: Right. DeProgrammer: Also, be aware of double punishment for failing a goal, and use it only when you deem it a good idea. Example: you're taking a quiz. If you miss a question, you not only fail to get the points for that question, but also lose five additional points. DeProgrammer: The fifth element (not talking about a movie here, haha) is an either-or, or both, thing. Replayability and/or story content. DeProgrammer: Replayability can be caused by complex possibilities with limited abilities. Randomized environments also work relatively well for increasing playability. Story content, especially mystery stories, tends to be less replayable. DeProgrammer: Tetris Attack/Puzzle League has high replay value because you can do chains, combos, and mixes thereof, on many levels, and with varying amounts of skill required, all by simply swapping two blocks horizontally. Mercenary: so does replayability increase the popularity of a game? DeProgrammer: Rotis sucked all the replayability out of that by removing the ability to create skill chains (ie. moving some blocks while others are exploding). Haz: Not necessarily Merc Sploder: Replayability is usually important in keeping players in the game after they've beaten it DeProgrammer: Right. DeProgrammer: Multiple modes--like Rotis and Halo have--can be very beneficial to the replayability factor if they are significantly different. DeProgrammer: Achievements are commonly used in modern games to add some replayability. However, the difficulty of these achievements accounts for a portion of why they're beneficial. DeProgrammer: So you should always make a game at least moderately difficult, if you don't give it multiple settings. If it's too easy, people won't want to play it again; if it's too hard, your players may not want to finish it the first time around. DeProgrammer: Having some kind of a story is usually a really good idea, even if it's just a three-word introduction and a single-sentence conclusion (check out Robot Wants Kitty on Kongregate). The story could also involve events with different pacing to make a game more enjoyable, such as the escape sequences in Metroid games. Mercenary: Is there any trick to uping a persons adrenaline for a short while? DeProgrammer: Putting in very powerful and fast enemies, very short timers, etc. can do that. DeProgrammer: On to the process! This first point is my favorite, aimed toward beginners: START SMALL! DeProgrammer: Don't expect to make a RTS or a complicated platformer or a 3D game with online multiplayer or a complex bot AI. DeProgrammer: I recommend starting off making something simpler, like a tile-based puzzle game. *nudge nudge, wink wink* DeProgrammer: Additionally, don't overcomplicate things--don't plan on adding a bunch of options and customizability and a huuuge map until you've got the game in a state you can consider to be polished. DeProgrammer: The first actual STEP of the process is brainstorming. Unless you've already got a very specific idea in mind as to what you want your game to be like, do your best to come up with loads of ideas; don't throw anything out just yet. DeProgrammer: If you're inspirationally challenged, think about some dreams you've had. Prod other people's brains, too. DeProgrammer: Recruit some friends with experience in gaming to help come up with ideas that may be fairly obvious but that you've overlooked. DeProgrammer: Here's an example of some brainstorming! http://img257.imageshack.us/img257/7535/rotisplans.jpg DeProgrammer: Pardon my handwriting. I know it's sad. DeProgrammer: Once you're done brainstorming, do some research. It should go without saying that you need to figure out what works for you or your target audience and what doesn't. DeProgrammer: After that, toss out the 70% of the ideas you came up with which were absolutely horrible. DeProgrammer: The next step: Plan out what needs to be done before starting on it. DeProgrammer: For example, resolution is usually something you need to decide on before you start making graphics. DeProgrammer: Make a design document and a resource outline. The outline can include programming, music, sound effects, and graphics requirements. Fill in the most specific elements whenever you think of them. DeProgrammer: Here's a design document example, which Metroid Zapper, Emperor/Raiizn, and I made by following my outline for this workshop: http://dpmm.110mb.com/temp/NightOfPlight.txt DeProgrammer: And this is a resource outline to go with it: http://dpmm.110mb.com/temp/NightOfPlight_ResourceOutline.txt DeProgrammer: I'll give you a couple minutes to check those out. DeProgrammer: Like, two minutes. DeProgrammer: Your two minutes are up. Back to school. :) DeProgrammer: You should realize that the more you plan in advance, the less time you'll spend fixing mistakes and oversights. DeProgrammer: And this next sub-point is for the most expensive people on any professional game development team: programmers! DeProgrammer: PSEUDOCODE! You can design every system, every function, and every file format, before you write any actual code. This way, you'll never realize halfway through making the game that you need to completely redesign your engine. DeProgrammer: And the final step of the process (until you start openly advertising): Gather a team. DeProgrammer: You likely shouldn't look for people until you've got a complete, workable design. They can lose interest fast if you don't have everything you need already laid out for them. If you're the programmer, you should probably have a sizable chunk of your engine ready before asking for resources. Mercenary: what if you're 13 years old and have no one around you with interest? BwdYeti: Practice some part you like for a few years, then start a project later Mercenary: For example, I like to sprite, and to write stuff. RetroX: One random productivity note: tell people that you're working on something. You're more likely to finish it. Mercenary: Should I just work on one thing or another? DeProgrammer: The better you are at one thing, the more you'd be worth to a team, so it may actually be better to focus on the one. DeProgrammer: Of course, if you get bored of it, feel free to do the other. Haz: Can I throw up the quintessential example? Haz: Cave Story Haz: One guy made it all, and did it beautifully DeProgrammer: Rotis was made entirely by me. If I made it two years from now, it could be a billion times better. :P DeProgrammer: Now, creation elements... DeProgrammer: First one: Programming language! DeProgrammer: GameMaker is good for beginners. Perhaps Flash for intermediate coders, maybe structured programming for experts. DeProgrammer: I haven't used much other than VB6 with OpenGL and C with PAlib, myself, so I can't give a whole lot of information regarding game libraries such as SDL and XNA. RetroX: I'm doing SFML on thursday, for those that might be interested Haz: I hear SFML is nice, gonna check it out. DeProgrammer: Structured programming is the opposite of object-oriented, which wastes RAM and CPU like crazy. :) DeProgrammer: "SDL and XNA are two game libraries intermediate coders can use in order to break away from high-level languages like GameMaker." That was totally on my outline. DeProgrammer: XNA is a Microsoft thing. If I'm not mistaken, it's mostly for developing XBox games. Haz: It was conceived mainly for xbox and windows phone, but works with the OS as well jsut fine DeProgrammer: I don't have the time to go into detail regarding that stuff. I still have a few more points to get through. :P DeProgrammer: Having said that... Having a bug-free game is more important than having a bunch of complexities, like little effects and options. DeProgrammer: So whatever you use, use it to the best of your abilities. DeProgrammer: On the subject of controls: It's best to have a set of default controls, and perhaps to have a few other preset configurations, but also to allow the user to customize them. DeProgrammer: Some controls can be on-screen and have keyboard shortcuts, while others can be keyboard-only (or buttons, if you're making a game for a console), but you should try to minimize the complexity of the controls either way. DeProgrammer: On the subject of graphics: use fillers until your game is mostly playable, if you need to. DeProgrammer: Don't forget that the user interface is usually graphical. You probably need something along the lines of health bars and unique fonts. Try to make them interesting. DeProgrammer: Don't skimp on the animation. You want to consider little special effects like dust trails and sparks and bouncing (ie. Tetris Attack and Bejeweled vs. Rotis). DeProgrammer: Having 3D graphics takes a lot more effort than 2D. In terms of 2D graphics, pixel art shifts most of the effort to the artist, while vector graphics put more responsibility on the programmer to make a bone/joint animation system. DeProgrammer: Whatever you use, make sure that you have a method for converting the graphics files to something usable by the game engine. :P DeProgrammer: On the subject of sound effects: DoctorPetter's "sfxr" is useful if you want to create some retro sound effects. You might want to just download or rip some otherwise, because creating good sound effects can require expensive equipment and a lot of time. DeProgrammer: sfxr: http://www.drpetter.se/project_sfxr.html blarget3: but yeah the problem with sharing sound effects is everyone's games start sounding the same. this is why i make my own sounds DeProgrammer: On the subject of music: Don't put any in until you have several songs, or the repetition will drive you nuts while you're debugging. :) Haz: Musagi is nice too Haz: From the same guy, actually. http://www.drpetter.se/project_musagi.html DeProgrammer: And that would be a great thing to use for music, if the programmer can set up the game to load those files. DeProgrammer: Good game music tends to have the ability to loop smoothly, while possibly also having an intro and an outro. Sometimes the music can be synched to in-game events for maximum effect. DeProgrammer: Choose a format: DeProgrammer: MP3 and Ogg Vorbis are relatively large files and high-quality formats DeProgrammer: MIDI is tiny but not recommended because different sound cards change the way it sounds, plus MIDIs tend to lack depth. DeProgrammer: Other module formats are usually difficult to make but can be small files while still sounding good. (I think trackers' GUIs all suck.) DeProgrammer: In regards to having options in your game: if it's something other than pixel art, you should have graphics quality settings, and even if it's pixel art, you should be able to double the screen size if you want. DeProgrammer: Don't forget about difficulty settings. Separate volume controls for music and sound effects are also a common option. DeProgrammer: Unless you're well along the way to completion of the game, I wouldn't worry about introducing too many options like the ability to record/log gameplay footage. DeProgrammer: Generic, dumb, overly-forced-sounding conclusion: Perhaps you didn't realize it before, but now you can see why games usually require large teams of people working months or years to complete. :P DeProgrammer: Aaaand I'm not very good at conclusions, so I'm ending by spamming links. DeProgrammer: A nice article about the principles of game design I found a while ago: http://www.gamasutra.com/view/feature/3949/the_13_basic_principles_of_.php DeProgrammer: A large number of game design-related articles: http://www.gamedev.net/reference/list.asp?categoryid=23 DeProgrammer: And a list of places to get sound effects: http://www.hongkiat.com/blog/55-great-websites-to-download-free-sound-effects/