I notice that since we frown on prospectus topics it’s difficult for burgeoning developers to have a place (here) to kinda throw ideas around. I in no way want to discourage this sort of activity so I hope this topic becomes useful.
First, some sage advice from rune_devros.
If you are trying to make the next epic Mother sequel and you have zero background experience in game development, STOP. No seriously, note down those ideas somewhere and keep them tucked away. I can guarantee you that nine times out of ten, if you try and build an RPG on your first go, you’re going to go through this phase of euphoria where you happily plug away and design your game and start implementing it. Then you run into bugs. And limitations of your engine. And a lack of manpower to make all your art and music assets. And before you know it you give up in frustration and we lose another potential game developer. It’s happened to me and people I’ve observed so many times that I hope that this will help you avoid that scenario.
We at Starmen.net suffer from a really big disadvantage because by the very nature of our community, we’re big RPG fans, but the amount of work that is required to carry it out from start to finish is immense. More than you can even imagine. We’ve put three years into Story of a Lost Sky and we’re not even halfway through!
Here’s what you want to do:
- Learn a programming language or toolkit – There’s no avoiding it. If you want to spearhead a game project, you absolutely have to have the technical expertise to get the game off the ground. Everyone has their own ideas they want to implement, and it’ll be very difficult to just be the “ideas-guy” while a programmer does all the hard lifting. In the old days, that meant picking up C or C++ and doing everything at the low level. These days, we are very fortunate to live in an age where there are dozens of options available to beginners that don’t require understanding what on earth a “pointer” is. We’re using Pygame. There is a great tutorial on both Python and Pygame through Invent your own Computer Games with Python. Other useful libraries that people use include Unity, UDK, Game Maker, RPG Maker, Love2D, and more! These are all toolkits that professionals are using to create commercial games, not just toys. While you’re at it, learn a version control system to help keep track of your project’s codebase and take advantage of code hosting sites like Bitbucket and GitHub. I personally use Mercurial (Spolsky has a great tutorial), but Git is also popular.
- Build a simple game with it. – At its heart, a game is a program that takes input from a keyboard or controller and outputs audio and visuals in response to it. Figure out how to make simple game first. Like a clone of Pong, a simple platformer, or a basic 2D orbital physics simulator. People want to jump into game development and start working on their dream game without having any experience. Your first game will not be anything spectactular, but at least you then have an idea of what the advantages and limitations of your engine are! You’ll have the confidence to point at that little creation you made and say, “You know, Bob, there it is. That’s my first game. As of today, I’m a bona-fide game developer.” And three years later, when you’ve been slaving on your dream project for that long, you can look back and say, “This is how far we’ve come since that first game of a badly drawn guy flailing a stick on a flat color background.” (True story, that accurately describes my first game I made back in middle school.)
- Think about your game, especially the mechanics. - Dave covered planning already, but I want to emphasize that as much time should be devoted to thinking about the game’s mechanics (and I’d argue more time) as the game’s plot and world design. Again, another disadvantage of coming into this with a mindset of an RPG fan. The problem is that unless your game has solid mechanics, nothing is going to make it stand out and be memorable. Check out all the cool stuff that MirageV_ is doing with this RPG maker project: Sacred Earth Memory Look at how much time they devoted to their combat mechanics! Check out Schell’s The Art of Game Design. It is the one of the most valuable resources to have when designing your game and I consult with it often. Most importantly, keep your design flexible. Don’t become attached to your design because I can also guarantee you that halfway through the life of your project something will end up not working well at all and you’ll have to redesign it for one reason or another. Mechanics are the sink-or-swim component of your game. Another thing, don’t limit yourself to RPGs. I know we all love them, but have you considered that maybe your game is better suited as a platformer or turn-based strategy game?
- Build a prototype and gather interest – Once you have the experience of under your belt, it’s time to put together a prototype. Your goal here is to demonstrate that (a) you understand how to use your tools and (b) you’ve thought about and implemented the basic mechanics of your project. You don’t need to show too much on your prototype. Story of a Lost Sky looked like this as a proof of concept. I’d only recommend gathering a team together once you have a working prototype. Throw it on a forum and let people test it. Solicit feedback and listen to what people say about your project. Don’t be afraid to use placeholder art and music. What matters is that your core gameplay mechanics are conveyed, and that’s what’ll attract people to your project. Not all of us can be like ZUN and singlehandedly conceive of a series of immensely popular shoot-em-ups. Our team has a dedicated IRC channel, ideas are cataloged in a wiki, we share files over Dropbox, and we coordinate regularly through IM, forums, and Twitter.
- Climb that mountain! – From here on out, congratulations, you’ve made it much further than many projects have. This is where you begin the incredibly tough climb to the top of that dream project. It’s here that my strategy diverges from The Dave and the Mother 4 team, which I do see as the flagship project of this forum, so I’ll just speak from personal experience. Our strategy is to release early and often. Lost Sky is out there right now on Bitbucket in both Work in Progress and Stable versions. We have a public bug tracker so players can report problems. By getting our game out to the public (especially if you’re not planning on selling it), you can pick up on mechanics that don’t work and start to address them. Heck, even commercial games are moving in that direction of mass public testing. Look at what Minecraft did: they let the public alpha test their game, building up tons of hype and showering Notch with boatloads of cash! Things that come completely naturally to you as the developer may horribly confuse a player who hasn’t devoted so much of their life on this project. Game development is an iterative process. You build, you test, you gather your results, you evaluate where things might be improved, and you build again. Don’t be afraid to let ideas drop if they’re too hard to implement or take too much time. Don’t be afraid to say no when someone asks you to add a feature that doesn’t add meaningfully to your game.
So there you have it, five steps to building your dream game. I really want to see this community active, so I hope that some of you will take this advice to heart and start on that road to becoming a game developer.
I have a few other general points of advice:
- Play lots of games of many different genres. What did they do well? What didn’t work so well? Can any of what worked well fit into the game you are making? Are any of the problems common to both games? It’s easier to spot problems in other people’s works rather than your own. Extra Credits has a good series on how to play like a designer. 1 2
- Read lots of game design literature. Just like in a real reasearch field like my day job (I’m a graduate student in my actual life), game development doesn’t happen in a vacuum. There are tons of people publishing articles on all aspects of game design, most of the time, for free. Did you know that Valve publishes lots of presentation slides that they show at game design conferences each year? That GameDev site that The Dave mentioned is also a treasure trove of articles. There’s lots of free stuff available also on GDC Vault and Gamasutra.
- Break down tasks into manageable chunks. Making the spell system of a game may be a daunting challenge, but if you break it down into easy to scratch off steps, it’s much easier of a task:
- Build a menu
- Set up how the stats work
- Make some spells
- Test them
- And finally, don’t get discouraged. The road is hard, but it is one of the most rewarding hobbies you can have. And if we can get a community going here with lots of mutual communication, we can see that we’re all on this road together.