Wikipedia:Reference desk/Archives/Miscellaneous/2014 April 15

Miscellaneous desk
< April 14 << Mar | April | May >> April 16 >
Welcome to the Wikipedia Miscellaneous Reference Desk Archives
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.


April 15 edit

Everything about a game edit

I fancy a bit of a challenge, so I'm looking at the possibility of developing my own simple video game from scratch, including learning every part of the skills I'd need for it, providing the artwork, programming, design and other elements, and of course maintain a blog of my progress. It's something I've wanted to do for a while, but never been able to because I lack the formal training in these fields. However, I'm thinking, why should that hold me back, if I want to go out and just research all of this, sure it might be difficult and take a long time, but it'll be worth it in the end. But as I say, I don't have any formal training in this, I don't even know all the things I'd need to learn in order to do this, never mind where I'd find out how to do them myself. So that's where I'm relying on you, if anyone can provide me with the complete list of everything I'd have to find a way of doing? (and perhaps a few helpful links to places around the internet where I can study) I'd need to know not only each part of any program I'd have to write, but also everything else that comes with the package, art work, music, and so on, and on, (hence why I thought this might be better here rather than the computer section)

Thank you,

213.104.128.16 (talk) 21:10, 15 April 2014 (UTC)[reply]

Rather than try to do it all at once, you might start with a text-only game first, then maybe add in some basic graphics, like with Flash video, and then add to that. The idea is to feel a sense of accomplishment at each stage, and that will help you to move on to the next level rather than give up. Also, a full feature video game may take many man-years to complete, even for people who already have all the needed skills, and I don't know if you want to commit that much time. StuRat (talk) 21:18, 15 April 2014 (UTC)[reply]
Kongregate has a game making walkthrough. Rmhermen (talk) 21:53, 15 April 2014 (UTC)[reply]
GameMaker: Studio can be a useful place to start. There's a free version available, and masses of good tutorial material available on the web. HiLo48 (talk) 21:58, 15 April 2014 (UTC)[reply]
Starting simple and building up seems like a good idea, a text based game would be a lot easier to start and to build on piece by piece (assuming I can come up with an idea that would work in that format). I even have previous experience learning C, though I wonder if that is still the appropriate programming language for this. I'd rather avoid using pre-made game making software, I get the impression that would effectively take a generic program and allow me to customise it, though I imagine they've developed a little more in complexity in recent years. Either way, I'd still prefer to learn the underlying skills, things that could be useful elsewhere, and give more of a sense of achievement. 213.104.128.16 (talk) 22:31, 15 April 2014 (UTC)[reply]
Your impression is wrong. Gamemaker (in which I have no commercial interest), lets you choose your own path. It also incorporates its own language, GML (not too unlike C), with which you can be very creative. It's free. have a look at the product and the support out there. HiLo48 (talk) 22:56, 15 April 2014 (UTC)[reply]
Agree that GameMaker is a good place to start. Check out its parent company's website, YoyoGames.com, for examples of what it can do. It has a huge community of people willing to help. GameMaker was designed for use in teaching game design, and its drag and drop interface is super easy to use, but it also uses a scripting language that isn't far from ActionScript. After a little while of using it I found that I hardly used the drag and drop features at all. Recently GameMaker struck a deal with Sony, which is interesting, but I don't know all the details on that. (For another option, Multimedia Fusion is the other one that was recommended to me when I was at the same stage as the OP). --— Rhododendrites talk |  23:44, 15 April 2014 (UTC)[reply]
PS: Example games with WP articles: Spelunky, Nidhogg, Risk of Rain, Hyper Light Drifter, Super Crate Box, Barkley, Shut Up and Jam: Gaiden, Hotline Miami, Mondo Medicals. The latter two are by Jonatan Söderström (aka Cactus), one of the more renowned designers who uses Game Maker for most of his projects -- his repertoire itself shows a pretty impressive range of genres, mechanics, and aesthetics. --— Rhododendrites talk |  23:46, 15 April 2014 (UTC)[reply]
For an entertaining text-only video game, look at Hunt the Wumpus. You could later add sounds (wumpus screams), then still pictures of the wumpus, then animation of the wumpus, background music, etc. You can, of course, come up with your own concept, but think ahead to how you can add additional game elements to it later. StuRat (talk) 06:00, 16 April 2014 (UTC)[reply]
This sounds like a good idea, whether I'm doing it through the GameMaker suggested above or any other method, though even if I am doing it step by step, I'm not sure I know what all those steps will involve. Sticking pictures and sound into the game sounds easy enough, for example, but I can't help thinking there's more to it than that. Is it really just as simple as- write program, create sound, create animation, import all three to software, stick them together? 213.104.128.16 (talk) 13:12, 16 April 2014 (UTC)[reply]
Well, you will have to have a way to display images or video and play sounds. If you aren't using something like GameMaker, which already provides these capabilities, and just using a general purpose language like C, then you will need to do a system call to do those things, or call a library which provides those capabilities, etc.
Also, we haven't mentioned this yet, but if you want to play the game with other people at other locations, then you need some way to communicate actions between your copy (instance) of the game and their copy. (If playing on the same copy on the same computer, you could either take turns, or, if you need to move together, use different keys for each person, but this presupposes the program can accept multiple keystrokes/mouse clicks at once.) StuRat (talk) 13:34, 16 April 2014 (UTC)[reply]
For the text-only version, there are also two approaches:
1) Command line interface. This is probably the easiest way to start, maybe using one letter for each possible command. It would look ike this:
What would you like to do ? (move North, East, West, South, Up, Down, fire Arrow, Help, or Quit)  
>
2) A text menu interface is the next step up from there:
+----------------+
| N = move North |
| E = move East  |
| W = move West  |
| S = move South |
| U = move Up    |
| D = move Down  |
|                |
| A = fire Arrow |
|                |
| H = Help menu  |
|                |
| Q = Quit       |
+----------------+
What would you like to do ? 
>
Note that the text menu requires a fixed-width font, where "I" is as wide as "W". Otherwise it looks ugly:
+----------------+
| N = move North.|
| E = move East..|
| W = move West..|
| S = move South.|
| U = move Up....|
| D = move Down..|
|................|
| A = fire Arrow.|
|................|
| H = Help menu..|
|................|
| Q = Quit.......|
+----------------+
Also, if your font's code page includes a line-drawing set, you can make the borders of the menu look nicer, without gaps between the characters. Typically an extended ASCII code (in the range 128-255) is needed to specify each line-drawing character. StuRat (talk) 13:50, 16 April 2014 (UTC)[reply]
Alternatively, as much as my programmer heart hates to admit it, you could skip a lot of that technical stuff if your planned game relatively straight forward and isn't too far off the beaten path. The new unreal engine 4 is affordably priced, even for hobbyists, ($20/month plus 5% of your profits) and they've really put a lot of work into their completely visual scripting language where "code" is basically just a flow-chart that you can drag-and-drop.
There's other mostly non-coding paths you could go down too, but UE4 is probably the most "professional". APL (talk) 21:42, 16 April 2014 (UTC)[reply]
  • Some alternative sources of learning not yet mentioned: I'd suggest becoming involved with a few reddits, e.g. /r/gamedev, /r/truegamedev, /r/roguelikedev, etc. Many people choose roguelike as a first game making experience, because the style has low overhead for graphics, but high complexity due to mechanics. Learning about procedural content will help you in a lot of areas, but is often used as a fast way to design levels. Good games can be created in as little as seven days, e.g. 7DRL [1], [2]. Dungeon Crawl Stone Soup is free and open source. It has graphical and console versions. If you're interested in that type of game, you could learn from reading the code. Other languages that might be useful: Lua_(programming_language) is very popular in indie gaming circles these days. But a lot depends on what genre or type of game you want to make. E.g. BulletML [3] is great, but only if you're making a shmup. SemanticMantis (talk) 15:41, 17 April 2014 (UTC)[reply]
What if I wanted to create a huge, complex real-time strategy game throughout multiple time periods, suitable to a wide array of possible play styles? 213.104.128.16 (talk) 23:14, 17 April 2014 (UTC)[reply]
For multiple time periods, maybe you could have a time machine, and do a scavenger hunt in different time periods ? For example, you could look through an Egyptian pyramid for a cat sarcophagus. This would work out well, as you could have a viable game with just the first location/time completed, and then add new "episodes" as you complete them. If multiple people were working on it, each could do their own episode, and thus work independently of the rest (except somebody would have to change the main menu to add in their episode). After the text part is completed, you could add in pics, first of the treasures themselves, then maybe of the rooms they search. You can also add complexity, like having them find a map to make their searching easier, or a flashlight/batteries, so they can see ahead of them and not fall into pits, or a sack, so they can carry more objects.
What did you mean by multiple play styles ? You could perhaps use arrow keys as an alternative to typing in N, S, E, W directions, if that's what you mean. But some languages need you to hit Enter to accept any input (old versions of Fortran, for example). Then there's using the mouse, which requires a language or library or system calls that support that. StuRat (talk) 17:08, 18 April 2014 (UTC)[reply]
To clarify something the OP asked above: it is never "that easy" to just "add graphics" or "add sound." As you get started with any graphical game you'll quickly realize the crazy things that can go wrong. For example, getting a character to jump up, then come back down. Set gravity? Figure out acceleration and how to change a sprite and send it in a certain direction? Ok, well when you come back down, how do you know what "the ground" is? When contacting another object on the screen, stop? When contacting another certain type of object, stop? Be prepared to get stuck on the bottoms and sides of platforms, then. What about the jumping animation? Is it the right number of frames? Do pixels go outside of the area your character normally takes up? Will one pixel get stuck in some other object? Will it prevent you from coming into contact with other objects? When moving your character, are you moving it according to the center pixel, top-left pixel, bottom-left pixel..? Does a baddie kill you if it steps into the rectangle containing your character or when it touches a certain colored pixel or when it touches a certain part of your character? When you switch screens, how do you remember where you were and ensure you don't get stuck on something? Sorry...I'm having a flashback :) Just trying to express that you shouldn't expect this to be easy unless you're just going to recreate something that already exists. It'll be frustrating at times, but worth it when you finally have a finished product that you can have someone else play. --— Rhododendrites talk |  23:47, 17 April 2014 (UTC)[reply]
To write a text game, you're best off using software built for that. TWINE is a good place to start as its interface has similarities to a wiki. For other options, see text adventure game as well as interactive fiction (to many people the former is just a genre of the latter). You can't just add graphics to a Twine game, though. You'll need to recreate it elsewhere. If you have story ideas, a text game might be ideal. If you're just looking to "get into game design," you may tire of text games and the amount of writing necessary to make something at all interesting. --— Rhododendrites talk |  23:48, 17 April 2014 (UTC)[reply]