Game Development
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsProgramming LanguagesGame Development

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
« Previous Thread | Next Thread » Featured Thread Featured Thread  
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
Stop making mediocre tutorials.The best tutorials are video! Camtasia Studio makes it easy to create engaging, buzz-building screen videos at any size, in any popular format. Download the free trial!
  #1  
Old December 22nd, 2007, 03:44 PM
gimp's Avatar
gimp gimp is offline
<?PHP user_title("gimp"); ?>
Dev Shed God 1st Plane (5500 - 5999 posts)
 
Join Date: Jan 2005
Location: Internet
Posts: 5,617 gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)  Folding Points: 1555 Folding Title: Novice Folder
Time spent in forums: 2 Months 2 Weeks 1 Day 2 h 58 m 14 sec
Reputation Power: 1312
Send a message via AIM to gimp
How can I make a game? How can I make an mmorpg?

We get more and more threads like these, so perhaps it would be best to answer in the general case.


First off, let me start with a warning: the MMORPGs you play with thousands of other people are developed by professional programming and graphic design teams and have budgets of hundreds of thousands of dollars (usually millions - especially for advertising). The same goes for those games you buy at your local game store for $50 or whatever. If your dream is to make a game like this, either have a lot of money or become a game programmer and get hired as one of many people working on a game. You cannot make a game like this in your spare time. It may be possible to make a small game and have it expand over the years but this is unlikely.




Now, moving on to making games.

The first thing to do is to learn to program. This is much more than just learning a language: You have to understand design and programming strategies. You have to be able to create algorithms to do what needs to be done. Basically, you need to develop a logical mindset. Oh, and you probably want to learn OOP since these days procedural-style programming works for very few large projects, most of which are legacy.

By the time you can program well, you're probably familiar with quite a few languages, technologies, and frameworks, and you're probably proficient in more than one language. So, pick what you want for a game - language(s), libraries, technologies, frameworks, whatever. Whatever you're most comfortable with using and gives you good results is fine. It isn't recommended to ask questions about which language is better than which, but asking about specifics is, of course, encourages (as long as you've searched first). Popular languages used to create client-based games are C/++, java, etc, though it can be done with others (even assembler, if you so want). Web-based games are somewhat more limited - most people choose PHP, though there are good ones built with JSP and I'm sure someone, somewhere, has used ASP as well. Complementary technologies are things like databases (required for multiplayer games, really). Learning to use those will help you as well.

Okay, now that you have a language, you've mastered its basic aspects, you've created smaller projects not related to gaming, what you want to do is build up your proficiency with tackling smaller projects. For example, if you want to make a client-based game, why not makes tic-tac-toe first? That's a very simple one. Tetris clone? Sure! (Just don't call it *tris - it's a trademark.) Alien invaders? Asteroids? Or maybe a side-scroller (similar to mario)? Or a top-down shooter. Those are simple games. They have limited interaction, and are straightforward to code. They're classics for a reason. Making simple games like these will help you develop your logical mentality, especially in application to games. They will help you to better understand and use OOP as well as multithreading (which is extremely useful and required in almost any large graphical project). Now, if you're making a web-based game, I would recommend making things that allow user interaction (such as a simple forum) to let you deal with user interaction. You'll learn how to use a database better and you'll learn how to "clean" user input (so as to protect yourself against SQL injections and the like). If you don't know what SQL injections are by this point, you must read up on handling user input and website security.

Of course, none of this is necessary if you already have experience with large projects in whatever language you're working in, or even a similar language, but for the beginner these are almost mandatory.

After working on smaller projects and having a better understanding of how everything works, you're ready to move on to your major project. To succeed, the most important thing to keep in mind is that this is for fun.





Now, some advice for those wanting to go the extra step and making their games multiplayer.

For web-based games, making things multiplayer is easier than for client-based ones. Basically, just learn how to safely handle user input and use a database and do what's needed. If you have a host that supports a programming language such as PHP, chances are (99%) that it also gives you databases to use (usually MySQL).

Now, for those making client-based programs, the first thing you need to do is figure out how you're going to make the game multiplayer. Read up on the appropriate technologies and protocols (for example, you might want to go with learning socket programming and having a central server).

Once you understand how everything works, once again, create a small project to use your new-found abilities. One of the easiest things to do is to create a simple instant messenger (chat) program - once you install clients on different computers, and turn on the server, you can talk to other people (or yourself on someone else's computer, whatever). This way, you will practice networking as well as OOP design and, if you're creating a server, multithreading (for servers this is almost always required).

And from there, you can move on to the big things.





Possible questions that may arise:

Q: Do I have to take classes to learn all this?
A: Nope, google can help you.

Q: Are there free technologies or will everything cost me money?
A: It depends on the language, but most languages are free to use, and there are many free libraries and the like.

Q: Are there any free graphical libraries?
A: Yes: look at OpenGL and its offshoots, for example.

Q: Is it really so much work just to make a game?
A: It's a lot harder than you think until you start programming.




If anyone has any questions/comments/suggestions/corrections/etc please feel free to post here.
__________________
A work in progress: Card Game Platform (Status: On Hold) | Joke Thread
“Rational thinkers deplore the excesses of democracy; it abuses the individual and elevates the mob. The death of Socrates was
its finest fruit.”

Reply With Quote
  #2  
Old December 23rd, 2007, 05:44 AM
tagmanadvance's Avatar
tagmanadvance tagmanadvance is offline
Kage Bunshin
Dev Shed Novice (500 - 999 posts)
 
Join Date: Aug 2005
Location: The Seven Seas Of Rhye
Posts: 718 tagmanadvance User rank is First Lieutenant (10000 - 20000 Reputation Level)tagmanadvance User rank is First Lieutenant (10000 - 20000 Reputation Level)tagmanadvance User rank is First Lieutenant (10000 - 20000 Reputation Level)tagmanadvance User rank is First Lieutenant (10000 - 20000 Reputation Level)tagmanadvance User rank is First Lieutenant (10000 - 20000 Reputation Level)tagmanadvance User rank is First Lieutenant (10000 - 20000 Reputation Level)tagmanadvance User rank is First Lieutenant (10000 - 20000 Reputation Level)tagmanadvance User rank is First Lieutenant (10000 - 20000 Reputation Level) 
Time spent in forums: 1 Week 4 Days 10 h 55 m 23 sec
Reputation Power: 184
Send a message via AIM to tagmanadvance Send a message via Yahoo to tagmanadvance Send a message via XFire to tagmanadvance
I get the feeling you kinda rushed through this, just to get it out there. Overall not bad, rather rough, but I would give it a [3.5 / 5]. I would stress more that you do not want to start with an MMORPG, its hell. Also, you left out flash for web-based games; Adventure Quest comes immediately to mind. You also might consider adding a "security" section covering SSL and point out that the designer should have a firm grasp of security and a well-planned design for his/her game.

I like the way you talk about a "logical mindset". If you don't have if I don't think anyone can explain it to you, but I often find myself applying it to all aspects of my life, almost like a vulcan xD (seriously, you will find illogical people bug the crap out of you, they seem to add dots where they don't need to be, and seem to act on emotion rather than facts)
It also makes you a much better chess player, which I find interesting. Anyway, nice work ;-)
__________________
"Java makes impossible things possible, but makes easy things difficult." - Somebody

Reply With Quote
  #3  
Old December 23rd, 2007, 10:52 AM
gimp's Avatar
gimp gimp is offline
<?PHP user_title("gimp"); ?>
Dev Shed God 1st Plane (5500 - 5999 posts)
 
Join Date: Jan 2005
Location: Internet
Posts: 5,617 gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)  Folding Points: 1555 Folding Title: Novice Folder
Time spent in forums: 2 Months 2 Weeks 1 Day 2 h 58 m 14 sec
Reputation Power: 1312
Send a message via AIM to gimp
I'm not going to cover every single type of game there is. A flash multiplayer game is essentially a client-based game, except you access the client off the web. Same deal with learning networking in the language, same deal with using a database.

Once again, the main form of security comes from sanitizing user input and protecting information. How you do that depends on the language, really.

Reply With Quote
  #4  
Old December 23rd, 2007, 11:12 AM
Oler1s Oler1s is offline
Contributing User
Dev Shed Beginner (1000 - 1499 posts)
 
Join Date: Jul 2006
Posts: 1,405 Oler1s User rank is Major (30000 - 40000 Reputation Level)Oler1s User rank is Major (30000 - 40000 Reputation Level)Oler1s User rank is Major (30000 - 40000 Reputation Level)Oler1s User rank is Major (30000 - 40000 Reputation Level)Oler1s User rank is Major (30000 - 40000 Reputation Level)Oler1s User rank is Major (30000 - 40000 Reputation Level)Oler1s User rank is Major (30000 - 40000 Reputation Level)Oler1s User rank is Major (30000 - 40000 Reputation Level)Oler1s User rank is Major (30000 - 40000 Reputation Level)Oler1s User rank is Major (30000 - 40000 Reputation Level) 
Time spent in forums: 3 Weeks 6 Days 1 h 31 m 4 sec
Reputation Power: 376
Gimp, one paragraph into your post and my eyes started glazing over. It's not that your post is wrong or anything. It's a jargon mess that someone new to programming won't understand.Let me pick out words that are jargon: OOP, procedural-style, frameworks, libraries, client-based, assembler, JSP, ASP, databases. A new person is not going to see your point, and will just skip your post. Don't flame me. Ask your (non-techie) neighbor to read that post and see how many seconds before his eyes glaze over as well.

Distill your points:

1. Making a game is nothing like playing a game. Playing a game is having fun. You can enjoy making a game, but it's hard work.
2. You can learn everything you need for free. But you need to learn yourself. No one will teach anything to you for free.
3. Don't try to start programming a game from day one. Focus on picking up a programming language, so you have enough experience and knowledge to understand something like the above jargon filled post.
__________________
C/C++: Books, C FAQ, C++ FAQ, C/C++ Reference.
Python: Website, Beautiful Soup.

Reply With Quote
  #5  
Old December 23rd, 2007, 02:15 PM
gimp's Avatar
gimp gimp is offline
<?PHP user_title("gimp"); ?>
Dev Shed God 1st Plane (5500 - 5999 posts)
 
Join Date: Jan 2005
Location: Internet
Posts: 5,617 gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)  Folding Points: 1555 Folding Title: Novice Folder
Time spent in forums: 2 Months 2 Weeks 1 Day 2 h 58 m 14 sec
Reputation Power: 1312
Send a message via AIM to gimp
Hmm, you're right. Let me see what I can do about that.

Reply With Quote
  #6  
Old December 30th, 2007, 06:32 AM
_ivo_ _ivo_ is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Aug 2006
Location: Victoria, Australia
Posts: 411 _ivo_ User rank is Second Lieutenant (5000 - 10000 Reputation Level)_ivo_ User rank is Second Lieutenant (5000 - 10000 Reputation Level)_ivo_ User rank is Second Lieutenant (5000 - 10000 Reputation Level)_ivo_ User rank is Second Lieutenant (5000 - 10000 Reputation Level)_ivo_ User rank is Second Lieutenant (5000 - 10000 Reputation Level)_ivo_ User rank is Second Lieutenant (5000 - 10000 Reputation Level)_ivo_ User rank is Second Lieutenant (5000 - 10000 Reputation Level) 
Time spent in forums: 3 Days 20 h 28 m 11 sec
Reputation Power: 76
I've learnt VB6 for a year, done done 1st yr uni java course, and have at least the basics of OOP down.

Now I want to go learn C/C++. Shouldn't be tooo difficult once I learn syntax? So then say I wanted to go make a simple game like so advised in the first post.
I'd assume I'd start with command line programs to learn syntax. Then GUI?
A) How hard is it to then GUI with windows and C? Any traps/pitfalls to fall into here?
B) My main question, when would you recommend I try my first 'game project'? Right after GUI? Anything else I need to know? What sort of knowledge would you think I would need to know to make a graphical tic-tac-toe?
__________________

Reply With Quote
  #7  
Old January 21st, 2008, 04:50 PM
gimp's Avatar
gimp gimp is offline
<?PHP user_title("gimp"); ?>
Dev Shed God 1st Plane (5500 - 5999 posts)
 
Join Date: Jan 2005
Location: Internet
Posts: 5,617 gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)gimp User rank is General 5th Grade (Above 100000 Reputation Level)  Folding Points: 1555 Folding Title: Novice Folder
Time spent in forums: 2 Months 2 Weeks 1 Day 2 h 58 m 14 sec
Reputation Power: 1312
Send a message via AIM to gimp
Ivo, this response is so horribly late, sorry.

A) Depends really. Playing with Windows APIs having never done so before is difficult but there are other alternatives... frameworks, libraries, etc. I'm sure OpenGL can help you.
B) Sure, tic-tac-toe is a fine first game. What sort of knowledge? Just knowing how to play with graphics, since everything else is so simple. Or if you want to do something slightly more complex make tetris.

Reply With Quote
  #8  
Old February 26th, 2008, 11:29 AM
VicToMeyeZR VicToMeyeZR is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Feb 2008
Posts: 9 VicToMeyeZR User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 2 h 29 m 39 sec
Reputation Power: 0
Send a message via MSN to VicToMeyeZR
Is there not prgram's out there that make the programming easier. Surely you could get off a "first" project without have to competely do line by line C/C++?

Reply With Quote
  #9  
Old February 27th, 2008, 10:48 PM
paulscode paulscode is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2008
Location: Fort Meade, MD
Posts: 43 paulscode User rank is Sergeant (500 - 2000 Reputation Level)paulscode User rank is Sergeant (500 - 2000 Reputation Level)paulscode User rank is Sergeant (500 - 2000 Reputation Level)paulscode User rank is Sergeant (500 - 2000 Reputation Level)paulscode User rank is Sergeant (500 - 2000 Reputation Level) 
Time spent in forums: 8 h 30 m 17 sec
Reputation Power: 9
Talking Game making without programming

Quote:
Originally Posted by VicToMeyeZR
Is there not prgram's out there that make the programming easier. Surely you could get off a "first" project without have to competely do line by line C/C++?


There are programs out there for making games with little or no programming skill, which you can find by googling "Game Maker". However, to truly be able to customize your game, you've really got to program it yourself.

Reply With Quote
  #10  
Old February 27th, 2008, 11:02 PM
VicToMeyeZR VicToMeyeZR is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Feb 2008
Posts: 9 VicToMeyeZR User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 2 h 29 m 39 sec
Reputation Power: 0
Send a message via MSN to VicToMeyeZR
you can start with a good engine though right?

Reply With Quote
  #11  
Old February 28th, 2008, 06:30 AM
paulscode paulscode is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2008
Location: Fort Meade, MD
Posts: 43 paulscode User rank is Sergeant (500 - 2000 Reputation Level)paulscode User rank is Sergeant (500 - 2000 Reputation Level)paulscode User rank is Sergeant (500 - 2000 Reputation Level)paulscode User rank is Sergeant (500 - 2000 Reputation Level)paulscode User rank is Sergeant (500 - 2000 Reputation Level) 
Time spent in forums: 8 h 30 m 17 sec
Reputation Power: 9
Quote:
Originally Posted by VicToMeyeZR
you can start with a good engine though right?

Absolutely. Depending on the language, there are plenty of useful engines out there. You don't have to completely re-invent the wheel. The majority of engines are probably written for C++. But if you are just starting out, I would recommend writing something in JAVA using an IDE like NetBeans, just because it is a lot easier to debug.

Reply With Quote
  #12  
Old March 9th, 2008, 11:02 PM
ex-calib44 ex-calib44 is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Mar 2008
Posts: 8 ex-calib44 User rank is Private First Class (20 - 50 Reputation Level)ex-calib44 User rank is Private First Class (20 - 50 Reputation Level) 
Time spent in forums: 2 h 31 m 59 sec
Reputation Power: 0
Quote:
Originally Posted by paulscode
There are programs out there for making games with little or no programming skill, which you can find by googling "Game Maker". However, to truly be able to customize your game, you've really got to program it yourself.


or get to grips with the game maker it might just do lots of dirty work for you. and then you just sit back and get 10 million people sending money straight over to you account each month

Reply With Quote
  #