Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411511 Posts in 69375 Topics- by 58430 Members - Latest Member: Jesse Webb

April 26, 2024, 01:36:54 PM

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


"Swedish meatballs"


View Profile WWW
« on: September 29, 2007, 05:53:13 PM »

This is part 2 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 2 - "The Wall."

So this is the difficult second post.  Last time I talked about choosing a language, APIs, IDEs and version control software, this time as I sit and type I've had to make a choice about how to progress this article.

See, the problem is, I'm not a game programmer.  I'm not even a c++ programmer, I have experience in other languages,  but not enough to provide a tutorial on C++ or game making.  I cant provide a newcomers approach to C++ as I already know a fair chunk of the core concepts, I know nothing of game making theory.

So what use could this article be?

I had to think about this for a while, and this post as a result, will be what makes you decide if you will read on for further instalments.

I've tried to learn game programming (and C++) a couple of times before and never got very far.  Each time I've tried, I've picked up a book, set up an IDE and I must have compiled endless “Hello World!!” scripts, but it was at this point each time (or shortly thereafter,) I hit what I like to call  “The Wall.”

Everyone who wants to make games, wants to make games.  Its so frustrating to spend a week, even two learning to program and have nothing to show for it but a dos prompt and some text copied from the book asking how much rocket fuel you'd like to buy.  Best of all, the book writer has used code (I suspect) has little real-world use in a game.  Cin, cout, I'm looking at you.  It all seems like a giant waste of time.

In fact, this article is part of my attempt to break through the wall, I'd like to share with you all a few other tips I've learned.

First, no one book is the law!  C++ is a language that enables the programmer to approach problems from multiple angles, as such there is usually more than one coding solution, this can be confusing -especially for newbies as not having a full grasp of whats going on you really just want to use whats easiest. 

I've found my solution to this is to have more than one book.  This is so useful, not least because as each author approaches the same basic intro code from different angles, you see a few different ways of tackling it, and you can choose the easiest one for you.  Classes in Chapter 2?  Pointers? WTF??  time to grab a different book.

I've also found that when a book starts introducing new stuff at a breakneck pace, its possible to wonder if your being whisked through subjects without full coverage or the appropriate time to digest what your working on, when this happens, I've discovered theres nothing like going off-book and just working through a bunch of small programs without any book assistance, focusing on just the topic you've gotten up to.  This is actually one of the hardest things I've had to deal with.  As I said earlier, all I want is to make my game, the tediousity of writing crap in dos with text output is a major motivation killer, but hang on in there, because the core of the language is the most vital aspect.  Sprite rendering, tilemaps, joypad input all sound cool, but wont you look a muppet when you cant even loop through an array or you cant compile your code because that syntax error is impossible to work out!

Coding can be lonely, learning to code can be worse, because no-one likes a n00b.  Actually, this isnt true, at least in my experience.  Many younger readers may not appreciate this, but back in the days of the original bedroom coders (ahh, the halcyon days of the 8-bit era..) there was no internet.  There was no email, no IM or Facebook, myspace or bebo.  Imagine being in your room, no-one to talk to, just some Rick Astley playing in the background, a mug of bovril and your ZX Spectrum for a friend.  Infact, C++ wasnt a viable gaming language back in the days where the entire computer has less memory than this article uses in open office, but my point is, YOU ARE NOT ALONE! 

I'd suggest if your learning to make games instead of general purpose or application based C++ development, it might be worth avoiding the generic coding sites and find a game-centric site.  As your reading this on TIGSource.com, you've probably already found the best one in my opinion,  make the time to read the forums, try posting in the threads -but don't let your posts be about you and/or any problems your having, make friends, these are guys like you, just a bit further along and most are actually quite chatty once they get used to you.  IRC is what Instant Messaging used to be before MSN and Yahoo, in my opinion, its a better place to make friends and chat more naturally -TIGSource has a channel (an IRC “Room”) where many members of the forum hang out -including me, i'll add details at the bottom for getting into this.

I think its important to stress here though, bugging people for help is uncool, use the community for  friendship and moral support, its suprising how much this helps.

My next tip is VERY important!

Give up on writing a game!  This sounds very silly considering this is the goal, but realistically, this just isnt going to happen until you can code.  A better approach is to work on aspects of the game you want to make, such as plot, design and the mechanics of the gameplay -basically everything that doesnt rely on code, to sate your desire to make games while you grind through the drudgery of learning how to make code that works.  You just arent going to escape having to write out and compile “Hello World”, “Hangman” and “Tic-Tak-Toe” so pucker up and take one for the team.

Finally, if you really have to jump straight in and start your game before you actually know how to, you've probably already got the game in your head.  You're like me, impatient, and that fine to, but realise that the seed in your head will not come to fruition on your first attempt, so take the genre and basic mechanics and make a different game.  When your game turns out to be a turkey, you'll be so upset and dejected, this could be your wall, if you've put all your energy into making your legacy, this is where you'll give up, especially if you cant finish it.  Making a different game first will benefit you in two ways; You'll have a “dry-run” of the genre of your choice, ironing out the kinks and getting a feel for how the game will work and when you've started from scratch on your masterpiece, you'll benefit from all the knowledge you have amassed on your first time round.

In my next article, i'll talk a little about my first steps in programming C++ and some of the common problems I've butted up against, i'll also talk a little about my approach to game design and share a little of my project with you.

As promised, here are some instructions for getting on IRC;

If your using firefox, get ChatZilla, its a free addon for Firefox and gets the job done nicely.

  • When its downloaded and installed, run ChatZilla (Firefox > Tools > ChatZilla)
  • At the textbox on the bottom, type “/server irc.esper.net” (without the quotes) – This will connect you to the IRC server TIGSource uses, there are many more availible, each with their own set of channels.
  • After your connected, type “/join #tigIRC” (again without quotes,) This is the TIGSource channel.

There are alternatives to ChatZilla, on windows there is mIRC, but you have to pay for that, infact there are many IRC clients at the tip of a google search, and just as many for our Linux and Mac friends.

I look forward to seeing you there!
« Last Edit: October 07, 2007, 05:50:08 AM by Gravious » Logged

One day I'll think about doing something to stop procrastinating.
Aik
Level 6
*


View Profile
« Reply #1 on: September 30, 2007, 02:35:35 AM »

You're extremely correct about The Wall. I've hit it a ridiculous amount of times, but I'm over it now. I think that if you get the gist of programming logic, you might as well just try and do something interesting already and learn the rest as you go. If you hit a problem, there is always Google. So long as you have a basic idea of what questions you need to be asking, answers are readily available.

Logged
Average Higgins
Level 1
*


Huh? What?


View Profile
« Reply #2 on: September 30, 2007, 09:16:36 AM »

So now I'm wondering, what is your dream game-project Gravious?
Logged
Al King
Level 1
*


Nobody expects...


View Profile
« Reply #3 on: October 02, 2007, 10:19:17 PM »

Quote from: Gravious
The Zelda clone was a whole idea that I'd fully fleshed out at the time and over the years its stuck with me and I've refined and improved upon its "design document" in my head, I'm literally bursting to tell the story and completely convinced I'm capable of doing so, and thats what I'm going to do.
Logged
Gravious
Level 2
**


"Swedish meatballs"


View Profile WWW
« Reply #4 on: October 02, 2007, 11:38:55 PM »

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.
Logged

One day I'll think about doing something to stop procrastinating.
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic