Top Ten Tips For Learning To Make Video Games:

Started by kevin, May 29, 2012, 08:14:13 AM

Previous topic - Next topic

kevin

Top Ten Tips For Learning To Make Video Games:

   Well PlayBASIC community,  let's see what knowledge is floating around in those crazy game coding heads of yours.     The aim of this thread is two fold, it's a bit of fun on one hand but it has a serious side also.   That being, an attempt to distill the enormous topic of game programming down somewhat for those who are new to this whole thing.     Yeah I know that's futile,  but a starting point is better than nothing.  

   Anyway, the idea is to create an top ten list (perhaps more if there's some absolute musts). You can write as many tips as you like, then we'll try and edit up a list from that.   Please try and keep them ordered (Bullet points/ number whatever).   so set out your post is way that it's easy for people read the separate ideas being expressed.

  Ie.

    1.   Idea #1
    2.   Idea #2
    3.   Idea #3
...

   10.   Idea #10


  Well, you get the idea.... fire away!








buggage

1. Start with an idea; it doesn't have to be original. Expand on your vision and make notes of features. You will forget some things.
2. Don't be too ambitious, but do push yourself - coding and gfx
3. Don't be discouraged when you hit a wall - seek help (there's always someone that's had the same problem) and push through it. There is ALWAYS a solution.
4. Work on one small part of the game at a time - eg moving player. Once that works move onto the next bit.
5. Make regular back-ups. And then back them up. Use SD cards, USB drives, external HDs, email and cloud services. You never know when your computer will fail. It will at some point, guaranteed. Don't lose all of your hard earned work
6. Ensure that you are using the most stable and up-to-date versions of all your development software. New additions may make things much easier for you.
7. Don't worry too much about optimizing until the game is nearly complete. Better to have a near complete unoptimized game than a quarter complete optimized game.
8. When coding, use variables that are actually representative for the things they do - eg "speed=10" is the speed of a bullet. It may slow down coding using proper names, but you know what it means. In two months time "s=10" may mean absolutely nothing to you.
9. Don't worry about sfx, music or graphics while coding. Use whatever you can (even programmer art) to get your initial game running.
10. Test. Test. Test and test again. Then get others to test it. Constructive criticism is vital to ensure that your game is as good and as playable as you think it is. Others won't share your exact vision - don't implement things that testers may think are great if you don't.
11. Have fun doing all of the above. If you're not enjoying what you're doing then you're not doing it right and you'll be doomed to failure. However, even if you don't complete the game, you will have gained some experience from doing it that will be valuable at some point.

buggage

No interest?

Ok, well here's rule Number 12 anyway...

12. Play as many games as you can of every genre. Seriously. Look at what they do and how they do it. See what they do right and what they do wrong. Think about how you could improve that game and use what you learn in your own games.

kevin

#3
 Excellent  Buggage, perhaps too good..  You've touched upon everything I would have..

Others can find more tips/ideas in the Pre-planning your project thread.

   





kevin

#4
  Been thinking about this a bit, so here's my (Work In Progress) list of tips.    

 

 1) Learning to program your own video games is difficult, there's no getting around it.  In order to give yourself the best opportunity for success, you'll need to be very proactive in your video game programming education.  That not only means, reading the available materials and experimenting with the examples,  but getting involved in the community by asking questions and posting your ideas.  In fact, talking with other community members about how they approach writing their programs, is simply invaluable!   Attempting to learn game programming in a vacuum doesn't work.  


   

 2) Choose an objective your interested in and break it down into the smallest  bite sized steps you can.   Even the most complicated game software on the surface,  is often just big collections of smaller interconnected ideas underneath.        Let's say you're ultimately interesting in writing a 'Mario Styled Platformer'.   In your game the character needs to walk ,run,jump, climb and fall around the square block based environment.  Perhaps the the player has to collect 3 special items from the level to open the exit gate to enter next level.   Levels might be populated with various types of obstacles, some built into the environment, some in the form of bad guy characters.    Etc etc.  

   Ok, so once we've defined what we're making, we now have a jumping in point.   From here, we can break down this task into a list of questions/problems we need to solve or in order to meet ultimate objective.     Which might start with such questions as.  How do I display a my Mario character on screen ?  How do I move the Mario character with keyboard / joystick ? , How can I animate it ? ,  How I create the Map/Environments ? ...  How to make it interact with environment (maps).  Etc etc

   


 3) Be realistic ! - One of the main issues  new programmers and even some experienced programmers have, when developing their own game masterpieces, is often the scope of the game idea is way beyond the means of a solo developer.     So if you want 1000 levels, and 500 different unique characters in your game all done in a week, then you might want to tone back the concept into some a little more manageable.

   Not sure how realistic your game idea is ? - Then you could perhaps try an quantify how much time it'll take to create the various assets and code for your game idea.  Assets are things like the character animations, maps / environments, effects, menus all the way through to the sound fx's, music, design/scripting (story if any) and coding requirements.      

   On average, I find that most of the completed PlayBASIC games written thus far (by largely solo developers), take around 4-6 weeks (part time) and would consist of 800 - 1200 lines of code,  include say 5 characters and a hand full of environments on average.   Different types of games have different asset / code requirements.   Making Tetris clone has vastly different media requirements to a 'Mario Brothers Clone'

   When in doubt, ask the community for advice.  




 4) coming... one day



stevmjon

all tips above are good.

the other thing that is important to learn is rendering techniques.
1>  if using video images draw these directly to the screen (default).
2> if using fx images and using blending modes, direct this to a temp fx image and blend, then copy this to the screen.
3> if using afx images, direct this to a temp fx image, then copy this to the screen.

the screen can be divided up to afx,fx and video on the same render.

*the images section in the help files that come with playbasic are informative.

   stevmjon
It's easy to start a program, but harder to finish it...

I think that means i am getting old and get side tracked too easy.

BlinkOk

try to get the core mechanic working as quickly as possible (prototype). this is one thing i notice with micks games. he gets a prototype working VERY early on. he uses placeholder graphics and figures out early on if it's worth while continuing. once you know the core mechanic is interesting and engaging you can flesh out the rest of the game.

buggage

Quotetry to get the core mechanic working as quickly as possible (prototype). this is one thing i notice with micks games. he gets a prototype working VERY early on. he uses placeholder graphics and figures out early on if it's worth while continuing.

See #9 ;)

LemonWizard

When I first started trying to make games in playbasic it was fun when I got the hang of being able to draw images on screen, and characters.
Back then, I was experimenting more with what techniques I could muster up out of playbasic.

I've made several little demos I posted which show what I experimented with and alot of the source code I still have on hand in back ups..

What I would suggest for any newbie developers is to figure out, not what you WANT to do but what you CAN do first.

Knowing what you can do, and knowing what you want to do are different things.
Alot of people want to make 3d games, or 2 and a half D games where it's part 3d backdrops with foreground dimensions, but still some 3d perspective rendering tricks. A newbie should stay away from trying to mimick AAA game titles.

Most people outside the programming communities don't have a very strong understanding of what really goes into games like call of duty or modern warfare and I've seen some people pick up coding thinking they can make a game like that in only a few weeks of learning and quit dissapointed at the amount of work, trial, and ERROR that goes into any project.

There is more error in coding when you first start out than there is success. Especially if you are still learning the programming syntax of the platform you're developing on. That goes for literally any platform, and any coding syntax.

Another great tip for newbies who are first starting out, is to plan out your game idea, and ask questions like.
"What's a good approach to making a game with these features , or making a game that does this and this"
Alot of newbies don't ask enough questions and part of the reason is because they aren't really sure what questions to be asking either.

A good thing newbies in playbasic should do is learn individual commands, and the parameters for each and practice using them, or combining them. At first, coding can be very daunting to learn especially when "program flow control and structure" isn't a concept we normally think about. Infact, I think that's a portion of coding that takes alot of newbies a long time to get used to. Unless they have some sense of what a program is already.

Maths. A newbie at coding would do well to learn more maths, because it really helps when it comes to things like counting variables, loops, data structures, and figuring out things like screen coordinates, collision detection, etcetera.
They should atleast have a basic understanding of what an angle is, what a rotation means. etcetera.

A good place for newbies to start out practicing is with arrays, variables, the input library, and the locate x, y, command, data statements, and then move onto reading from files, and writing to files. Strings, string manipulation and parsing, and basic program flow control, functions and psubs, and once they get all that down they should move onto rendering images and messing with the drawing commands. But, there's also no set order to how this should or could be learned.

That's about all I can think of right now.