Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411414 Posts in 69360 Topics- by 58415 Members - Latest Member: sophi_26

April 16, 2024, 09:05:47 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Diary of a would-be indie dev (Part 3)
Pages: [1]
Print
Author Topic: Diary of a would-be indie dev (Part 3)  (Read 6086 times)
Gravious
Level 2
**


"Swedish meatballs"


View Profile WWW
« on: October 07, 2007, 05:47:50 AM »

This is part 3 of an ongoing series of articles.

Part 1 - "Choosing a language, additional libraries and development environments."
Part 2 - "The Wall."
Part 3 - "Design and distillation."

Part 3 - "Design and distillation."

So moving on from my previous posts which were more instructive, I'm starting to find myself in unfamiliar territory.  While firmly entrenched in the drudgery of basic C++ tutorials, 'if' this and 'while' that etc, I find my mind wanders to more conceptual subjects of design and structure and I start to think about my game and how exactly it'll work.

From my observations, the Indie gaming scene encompasses a wide range of setups from the original bedroom coder to the teams of ex-professionals who are striking out for themselves, and  well, Popcap et al.  Its a remarkably diverse community but most development falls into the category of the bedroom coder and as such, usually the programmer wears a few hats, one of which is design.

Before becoming a programmer, I was a web designer.  Back in the days of the dotcom bubble at the turn of the century, artistic skill wasn't a requirement of web design, and thank god because I'm crap at art, but I was capable of making technically balanced and attractively laid out pages through an unnatural (to me,) process of protracted planning and thought.

I'm currently uncertain of my proficiency for game design, its not drawn art -thank god, but I suspect good game design is an art.  So like my inner web designer, I'm going back to basics and starting at the beginning.

“I've decided.” I said, “I'm going to learn C++ and make games.”  Triumphant in my decision, the next thought I had was, “So... what game shall I make?”

Well when it comes to game design, the first thing you need to decide is what genre you want to make your first game.  There are some interesting arguments for what you should try to tackle first, certainly your limited by capability, but assuming you were the worlds best programmer, there's a level of complexity in some genres that make them poor choices.  My first though as a gamer of a certain age, was to remake some classic 8-bit game from my misty-eyed retro fan boy past.  Certainly I'd LOVE to remake Wizball, Dynamite Dan or Nebulus -and the technical limitations of the 8-bit machines meant the games were comparatively simplistic, certainly possible to attempt as a first project, but for whatever reason, I decided I would make an adventure RPG.

Within any genre of games, there are a number of sub-genres or types of game.  With shmups, there are horizontal scrollers, vertical scrollers, bullet hell, platformer shooters, abstract shooters and more, the choice of sub-genre can be as important as anything.  Within the RPG genre there are   many choices, certainly there are the western RPG's and the Eastern RPG's which differ quite a bit stylistically, Linear and non-linear storytelling as well as combat systems all come into play when considering how I'm going to build my game.

I started by thinking of which games epitomised the essence of what I wanted to accomplish.  This was easy, I'm a big fan of the Zelda games and especially Links Awakening, so I used this as my base.  Next I decided, I should write up all the features of an RPG that appealed to me, putting these into bullet points is actually very useful for what I'll discuss a little later on, but here is the list of features I considered important for the game I want to make;

  • In-game combat (I dislike battle time systems like the FF series.)
  • Large play-areas with distinct styles (like deserts, forests, villages etc.)
  • A skill system for improving the players abilities through the game.
  • An inventory system
  • Upgradable weapons
  • Magic – Upgradable via skill system.
  • Dynamic NPCs (I'd like them to do more than stand in one place and say the same thing over and over)
  • Companion NPCs (on screen, not just merged into the main character)
  • Mini games! (what's an RPG without a fishing mini game?)
  • Dynamic and complex storytelling.
  • Sub-quests! Granny left her puppy chained to the shop in the second dungeon, ZOMG!

These are a non-complete list of generalizations but already its possible to look at these and break them down into components of game coding which can be prioritized, for instance, an early goal might be to create a tilemap engine and map out a scrolling (or screen flipping) map that's at least larger than the screen.  Another early goal might be to have your main sprite on-screen, under joypad control and able to swipe his sword, but I'm rushing ahead again.  This list also helps me shape the structure of the game, in my head, I already know how I want it to play but its weird because I have no art or sound, it pretty much looks like a modded links awakening Smiley

When you boil any genre down enough, there is a single, simple concept.  You need to understand that single concept and strive to get to that point for a start, it seems more daunting until you do this.  The single simple concept of an RPG is you have a character that can move in eight directions on screen, there needs to be a tilemap engine to handle the lay of the land and collision detection.  From this basic shell its possible to bolt on all the other features.

With relief that my first goal is not as complex as I feared, I turned to fleshing out the specifics of the game mechanics.  The most important aspect of my game (for me) is storytelling.  I have developed a rich and complex story which I had originally planned to write a novel on, but the realism of time constraints and frankly, writing ability have put the kibosh on that idea, so I adapted the story to fit an RPG. 

You could argue this is a waste of time, the story can be fleshed out once the game engine is up and running and your ready to map out the levels and so on, in fact, I believe it could be very important to consider story almost from the start.  I intend my game to be “epic” in scale, I do not want my story to be hindered by limitations of the engine so I need to know of features that may need to be implemented and I don't fancy patching large code changes part-way through a content phase.  As it turns out, there are a couple of features specific to the requirements of my story that need early attention and once I have my base engine in place (the previously mentioned simplest concept,) I can start prototyping them.  Its worth noting that once you accomplish your base engine, you should commit this to your version control software or even make a copy that you can use for prototyping, I intend to.

There is plenty more to talk about in game design, but I think I'll spread the rest throughout the development, discussing the problems and solutions I have come up with as I get to them.

My next step is to get to the prototype platform I have talked about, this may take a few weeks, so I'm not sure yet what the next few entries of this article will cover, but I'll try to make it interesting Smiley

Logged

One day I'll think about doing something to stop procrastinating.
Jimbob
Level 3
***


Not a Detective


View Profile WWW
« Reply #1 on: October 07, 2007, 06:18:18 AM »

Quote
Well when it comes to game design, the first thing you need to decide is what genre you want to make your first game.

Not sure about this bit. A lot of my game design first steps come from (higher-level?) concepts that are just an idea (say, how about a pair of Knights cleaning out the rooms of a castle from goblins taking treasure) and then see what's the best way I can bring that to life in the form of a game (say, I start with a top down viewpoint, side on viewpoint, iso viewpoint. Then say, do they move in real time, do I want puzzles or more action and which decision would give me more options?).

I feel if you do a first step such as 'deciding a genre' you are already subscribing yourself to a particular set of rules, which may be beneficial in a lot of circumstances (but not all, which is the point I'm making), but it can almost be classed as starting a 'remake' despite ideas to the contrary...
Logged

Last release: sync::routine
Chris Whitman
Sepia Toned
Level 10
*****


A master of karate and friendship for everyone.


View Profile
« Reply #2 on: October 07, 2007, 11:43:19 AM »

I second the idea that genre is not the best thing to start with.


I think you hear that a lot from mainstream design literature because it is very important when choosing target markets, which is the point of making a big commercial game, but I don't think it necessarily has to be the primary focus of hobby game development.

Actually, I know a lot of people do tend to approach game design 'mechanic first,' rather that with an idea of a story they would like to tell or a subject they would like to explore, but an interesting idea just occurred to me: to prevent just remaking someone else's game, why not try to pick a couple of games from separate genres and synthesize gameplay mechanics you enjoy?

For example, you could say, "Well, I really like the obsessive hoarding of Zelda games, but I also enjoy the playful simulation aspects of... I don't know, The Sims or something." You could put the ideas together and perhaps come up with an amusing self-referential game where you manage several largely autonomous heroes in completing fetch quests and overthrowing evil in a world where every town is menaced by an evil wizard and you can't go down to the store to buy milk unless you can first retrieve the eighteen pieces of the Ruby of the Spider God.

It's just a thought. When I get ideas for interesting games, they are usually in top-down form (starting with story or settings instead of mechanics), but not everyone works the same way. Picking several different genres and looking for interesting ways to combine them might at least provide a more interesting starting point.
Logged

Formerly "I Like Cake."
Derek
Bastich
Administrator
Level 10
******



View Profile WWW
« Reply #3 on: October 07, 2007, 03:21:25 PM »

Thirded.  I think game rules should be built around a more fundamental idea or concept that you want to play with.  In fact, I've always felt that mixing two genres to make your own is inherently a creativity-killer, as from then on out, every design decision you make will be compared to the successful games in that genre.

Also, since this is your first project with C++, you might want to consider starting with something veeeeeery very simple.  The reality of things is that blitting a sprite and making it move around on the screen is not a trivial task for your first game, and you're going to do many rewrites before you create an engine that's suitable for anything bigger than Pac-Man.  "Epic" is definitely not a word you want to be using at this point!

Not trying to be a wet blanket - these are things that potential game developers should know.  You are NOT going to make Final Fantasy for your first game!  And that mentality quickly gets you into trouble with finishing projects.  Break it as soon as you can.
« Last Edit: October 07, 2007, 03:31:23 PM by Derek » Logged
Golds
Loves Juno
Level 10
*


Juno sucks


View Profile WWW
« Reply #4 on: October 07, 2007, 03:58:14 PM »

I am with Derek on this.  It's very common to be overambitious with your first projects and get frustrated. Remember the Boy Scout motto "Keep it Simple.  Keep it Fun"

I'll also add that some people, especially in the indie community, really look down on things like tetris clones and match-3 puzzlers.  The reality is that, simple tried and true game concepts like these are great projects to cut your teeth on, and allow you to focus on learning the technical side of things without trying to do everything at once.

That being said, I'm not suggesting that you necessarily make an out and out clone of Tetris or Breakout, just that you consider tempering your ambition for your first game.  Even if you make a clone, the act of finishing a game and releasing it is incredibly valuable and no trivial task. 
Logged

@doomlaser, mark johns
Derek
Bastich
Administrator
Level 10
******



View Profile WWW
« Reply #5 on: October 07, 2007, 04:07:03 PM »

That being said, I'm not suggesting that you necessarily make an out and out clone of Tetris or Breakout, just that you consider tempering your ambition for your first game.  Even if you make a clone, the act of finishing a game and releasing it is incredibly valuable and no trivial task. 

Alec and I were just talking about this... yeah, no need to make a clone.  There are many small, interesting game ideas out there waiting to be made!  Having enthusiasm for your project is very important, too.

But for a very first project you probably want to concentrate first and foremost on getting something up and running.
Logged
Alec
Level 10
*****



View Profile WWW
« Reply #6 on: October 07, 2007, 04:19:05 PM »

I actually started out wanting to make Adventure/RPGs. Messed around with HyperCard a lot first, did some weird Myst/RPG hybrid unfinished games (among other things). Then I moved on QBasic and started a project called 'Ending World', an FF6 styled epic RPG. It turned out to be an apt title, because I kept restarting it as I learned new programming languages and engines - never finished it.

I did manage to finish start and finish smaller projects along the way and those were valuable experiences, but it was also valuable to try to make a huge ass game and fail. It made me think about things I wouldn't have had to consider otherwise.

I think it really depends if you're doing this more as a learning experience or if you want to actually complete something 100% that you can look back on later with some sense of resolution. It definitely is better for your self esteem if you manage to finish things more than you give up on them.

If you want that feeling of completion, test your creativity in a smaller space. (say, something you can complete in 1-2 months)
Logged

Alex May
...is probably drunk right now.
Level 10
*


hen hao wan


View Profile WWW
« Reply #7 on: October 07, 2007, 06:54:34 PM »

You should start with Tetris, or space invaders, before making a huge RPG. Learning C++ and making a large game at the same time will doom you to failure. Clone a game, yes, but clone something you can actually do.

Case in point - I've been making games since I was a child, and I'm pretty good with C++ now and OK with C#, and it's taken me months and months and months to get anywhere near finished with an RPG I'm making which I oroginally projected would be finished in 3 months. I just don't want to see you post articles like this for 6 months and then post one saying "sorry guys, it's all gone wrong, I'm giving up and going to live as a hermit."
« Last Edit: October 07, 2007, 06:56:42 PM by haowan » Logged

BMcC
Senior Editor, Hero,
Level 10
*****

Bee Mixsy


View Profile WWW
« Reply #8 on: October 07, 2007, 07:07:20 PM »

Erm...  I don't think he's saying, "Great game design starts with deciding on a genre."  I think he's saying that's a good place to start for beginners.  Which it is!  I mean, isn't the point of this learning to make a complete game (and not the game itself)?  I would say making a clone is a fine way to go in that case.

Someone wrestling with for loops is not equipped to bend genres and all that.  Sometimes constraints and clear definitions are good -- especially for someone's very first project.  You have to know the medium before you can make it your own, y'know?

I totally agree with Alec's point that you can learn a lot from aiming high and failing, but in the context of these articles, for someone who doesn't have a grip on the mechanics yet, who could take a game like Tetris (with a concrete genre and design) and potentially fail at that... starting with an established form is not a bad idea.

...OK, back to work I go.  (How many days without sleep has it been, now?)
Logged

Gravious
Level 2
**


"Swedish meatballs"


View Profile WWW
« Reply #9 on: October 07, 2007, 07:10:09 PM »

I understand and agree with many of your points, you are of course more experienced than me and i value your advice, but i think i may not have been clear on my intent.

In Part 2, i suggest the impatient work on a lesser version of their goals to gain experience without ruining their "dream game"

So now I'm wondering, what is your dream game-project Gravious?

KingAl is right, its a Zelda clone, but that only speaks to its genre, and practicing what i preach, my first stab is going to be the boiled down essence of the genre, allowing me to work out the kinks first.  I'm hopeful the few ideas I've had will make it an interesting RPG, what'll be more interesting is if i can pull it off, lol.

And this entry talks about working out the basic mechanics of a particular genre to that end, building a prototype to work from. i may even make a handful of lesser projects that reach various stages while i perfect my coding abilities, i know I'm not going to remake Final Fantasy on my first go Smiley

To be clear, the RPG i talk about is my pet project, but not my first one ;-) (though my first project will be an RPG..)

Its interesting to hear your comments on choosing the game ideas to work on, certainly its important to note you have shown creativity i cannot hope to reach yet -if ever, my choice to be derivative in design was to be sure i could emulate well defined success as a result of programming skill, not a lack of creativity.  I think i joked in the IRC channel earlier that i'd hate to be the one who "was so bad at programming, you made tetris unplayable!"

As i went to post this reply, i saw Haowan had posted, so heres a little more:

I'm not sure I've talked much about this in previous posts, but i am already a commercial programmer.  I have years of experience in producing completed code and releasing it for commercial use, only the language is not C++ but PHP, a very syntactically similar language, but different enough I've had to start from the beginning.  I'm certain that once I've broken through the differences and learned the specific API based commands, I'll be fine with C++ and I'm used to working on projects for months at a time with very little to show for it, so don't count me out just yet! Smiley
Logged

One day I'll think about doing something to stop procrastinating.
Alex May
...is probably drunk right now.
Level 10
*


hen hao wan


View Profile WWW
« Reply #10 on: October 08, 2007, 01:22:15 AM »

Woho, I forgot about the php, sorry Smiley Also, nice - so you are thinking to make a super-simple RPG first?
Logged

Gravious
Level 2
**


"Swedish meatballs"


View Profile WWW
« Reply #11 on: October 08, 2007, 01:39:37 AM »

Yup Smiley

I'm not certain if I'll do a post next week, or if i do it'll be a shorter aside as I'd like to demonstrate some actual code in my next article.

I'm definitely not giving up though!
Logged

One day I'll think about doing something to stop procrastinating.
Tr00jg
Guest
« Reply #12 on: October 08, 2007, 06:38:39 AM »

Yup Smiley

I'm not certain if I'll do a post next week, or if i do it'll be a shorter aside as I'd like to demonstrate some actual code in my next article.

I'm definitely not giving up though!

I am sure that 90% of people that undertake an RPG or something similar in scope as their first game don't finish it. It is WAY too much to 1) learn the language 2) actually program the game 3) do all the graphics 4) make it actually a fun, well designed game.

I am not trying to discourage you, I am just stating the facts. I still have to be proven wrong... Maybe you will?
Logged
Average Higgins
Level 1
*


Huh? What?


View Profile
« Reply #13 on: October 08, 2007, 02:44:37 PM »

It's very common to be overambitious with your first projects and get frustrated. Remember the Boy Scout motto "Keep it Simple.  Keep it Fun"

Actually the boy scout motto is "Be prepared", but that doesn't seem very relevant, so whatever.  Grin

Anyway, good luck with your game-making endeavors Gravious. I think you're getting some really good advice here, so at very least you'll be starting off on the right foot.
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic