views:

419

answers:

15

Ok lets start off with info about myself.... that way there is no stone unturned.

  1. I am a adult, 27 years old. so this isnt a joke or a passing fad. Im into computers, how they work and how apps and games are designed from the ground up and made.

  2. I have ZERO programming back ground. I went to college for the wrong thing. I love video games since i was a child and should have went that route.

  3. I just picked up a book called C++ without fear. i already have went thru the first 3 chapters and im not having an issue yet on self teaching myself this subject.... yet... lol.

I have a few game ideas written and drawn out on about 3000 pages. i took one of my games to a few website developers and the cheapest offer i received to make the game was 16k and 3 months time. Now im not now super duper genius or a brilliant mind kind of guy.... but come on... 16k? i figured... ok time to teach myself how to make these games.. and yea it might take 2 to 4 years but at least i will learn how to code myself and never ever have to pay for this kind of service.

So i asked around at what i should learn and i was told C++ was a nice starting point.... Is this correct?

2... 2 of the games i have written down and played with all the math issues are kinda in this games fashion. www.goallineblitz.com. if someone here could sign up and look that game over and let me know what tools you would need as a coder to make a game in that style... i would thank you greatly for the info.

Where else do i go from here? what would you do and plan out?

I know a have a huge mountain in front of me. and i look foward to every step, stumble, fall and bloodied knee i will endure during this venture...

=) thanks in advance!

+1  A: 

If you want to make web-based games C++ is probably the wrong language. You should look into PHP, SQL database programming, and Perl.

rlbond
If he wants to continue with what he's learned of C++, he could use C# and ASP.NET.
Scott Whitlock
@Scott: I'm willing to argue that PHP is more similar to C++ than C# is.C# -> pure OOP language, C++/PHP are both functional languages with class support, syntax is similar across the board, PHP is interpreted while C# runs VMed and C++ runs natively, so no difference there either. Could you clarify on your comment?
Daniel
wouldn't web-based games use flash?
Jimmy
Most web turn-based games use PHP. For example, the Kingdom of Loathing.
rlbond
Pogo.com uses a lot of Java as well.
GalacticCowboy
Investing in learning flash is dicey right now with HTML 5 looming, also turn based should probably be based on a real programming language with much better persistence and performance than flash. Also, C++ and C# are very syntactically similar, and I think it's unfair to call C# a purely OOP language, that's really a label that should be reserved for C#'s libraries, not the language itself.
marr75
+2  A: 

This sounds like a good way to learn programming, but don't get your hopes up too high. That's going to be a loooong road.

Also, I agree that C++ is probably not the right language to do this. Maybe you should start to learn programming with a smaller, less ambitioned project first and use a more beginner-accessible language.

balpha
A: 

C++ is a good language for learning how to program computers; however, for the specific task of programming turn based web games, C++ is probably not the tool you will want to use for that task. You may want to continue learning the C++, to get a grip on the underlying programming; it may take a while, though. You may also want to look into other programming languages for implementing your games on the web; PHP is good for scripting. C# has a lot of similarity to C++, and has good integration with Microsoft's web servers; ASP.NET is pretty easy to comprehend, as well. You should do the research into each of them concurrently with learning the C++ to figure out which one seems like it's going to give you what you need.

McWafflestix
+9  A: 

I wish you the best of luck, but you have to realize you're the 1238471920847th person in this exact situation, of which approximately 3 manage to figure out what they're doing. there are even previous questions like this on stackoverflow. The most useful answer is "reconsider whether you're interested in coding or game-design -- the two are not equivalent"

Also, you have to realize 16k is an unreasonable number. Not because it's high, but because it's low. Consider Braid for an example of an "indie" game that was pretty successful. It cost $200k, and the developer started off already knowing what he was doing.

Jimmy
And if you decide you're interested in coding, then start coding. And don't stop.
John Pirie
+3  A: 

There is so much to learn, you would be surprised.

What I think you should do is find a bright young web developer who's interested in investing some time into a business startup for a certain % of share of the business. You can contribute the intellectual property of the game and the creative direction. I imagine this would let you get up and running for significantly less than $5k including incorporation fees, web site costs (minimal), trademarks, etc. You could save money by doing the business stuff yourself, and by your partner doing the programming himself.

It's win-win. You get your game built, and the developer gets a lot of great experience for their resume (and a share of any profits).

Scott Whitlock
+3  A: 

I think you've got a very low estimate of how much work is involved, frankly. Going from a spec to a finished web product in 3 months sounds quite good to me, counting things like quality assurance (a very important thing here) and graphics and sound, and $16K also sounds very good for three months' work. (Seriously, this is $64K a year, as a contractor, assuming only one person. Anybody who can do this sort of thing can make more money than that.)

That being said, doing it yourself will teach you a whole lot. Just don't count it as a likely source of income.

If you're interested in web-based games, you will need to become familiar with more than C++. At a minimum, you'll need to know web design and Javascript. This strikes me as a lot to bite off at one time, so I'd suggest starting with a simple screen-based game, and learning about the web stuff when you're confident of the basic game programming. (Don't just write the game you want on the screen and then think you'll just port it to the web; write to get some familiarity with C++ game programming, learn the web stuff, and design your game based on that.)

David Thornley
It depends on where they live. Where I live cost of living is pretty low and entry level developers are in the 50-70k range (granted, contractors probably shouldn't be entry level guys and gals). Think about if the coder was in Russia, China, or India, 64k American Dollars goes a long way there....
marr75
+2  A: 

A turn-based strategy game is basically a business application with a glossy front-end.

I'd recommend SQL Server for data storage and rules engine. You're going to have to learn how to model a database. I don't want to shit on your hopes, but the other guys are right: you've got a long road ahead of you. Here's some help to get started:

An introduction to turn-based gaming and what it means

Source code for a turn-based war game you can browse and modify

The Torque 2D gaming engine

I wrote the beginnings of a turn-based space combat/strategy game in MSAccess(!) over a decade ago (ugh I just did the math and it's been almost 20 years actually) that I never finished. Here's hoping you get farther than I did. Good luck!

Chris McCall
+2  A: 

Java, Flash, PHP, ASP.NET, all are languages that are commonly used to implement web-based games.

You're also going to need to introduce yourself to SQL most likely, since data will have to be stored in some manner.

KSchmidt
+1  A: 

Welcome to the world of programming. It's lots of fun but takes a while to learn.

My advice: start small. Really small. There are a lot of basics you need. C++ may actually be a good way to get the basics down solidly, though you won't likely be using it for your final web product (see other answers for web language options). As you go through examples, think of small parts of your project that you could do with what you know, even if it's just choosing a name and displaying it, or adding up a score. Processing.org is a fun language-- again not what you'll need in the end, but it's aimed towards beginners and lets you get into graphics right away (which is fun, though probably won't be your main focus with this game).

Bonus advice: if you want to make money off this or become a professional game developer, don't release your best ideas on the web right away. My husband created a really innovative game in college, which became somewhat popular on a java game site. A few years later an almost exact clone was released for the Playstation. The Playstation developers weren't ripping him off directly, it turned out the idea had spread widely. While in some ways that was really cool, if you want money or credit as a game designer obviously that's not going to be what you want.

Erika
What game Erika?
marr75
Not going to say what game because I'm not sure my husband totally believes it himself (who knows, maybe it was independently re-invented).
Erika
A: 

Others have already said this, but PHP is going to be the best starting place for you. For a turn based, web based game I would say use PHP and mySql for sure. After coding much of your game using PHP, you will have a good enough understanding to start moving to other languages if you so desire. Setup an apache server with php support, and a mysql server (they can easily run from your own machine). Then just start playing with the code. Look at other examples, modify them, mix them, learn. You can find lots of free tutorials on both php and sql on line.

NULL
A: 

I started learning C++ fairly recently, also with "Without Fear". The best thing you can do once you have the basics is dive into a simple project, but REALLY simple (like tic-tac-toe).

I don't think you should be learning to program just for this one idea of yours. Learn to program for the fun of it, see how you get on, see what floats your boat. A year from now, think again about your project, whether it seems feasible, whether you want to do it, how you want to do it. But don't think about it till then, because all you'll be able to think about is how you don't seem to be getting any closer to having thousands of customers lining up.

Just keep on coding, and you'll get where you want to be. Where you want to be may not be where you think you want to be now though! Good luck.

Skilldrick
+2  A: 

First, I'm gonna answer your technical question.

You will need 3 things.

1- Display things in the user's browser so that he can use your application. This means using languages best suited for programming. Most likely PHP (or its Microsoft equivalent : ASP.NET, less used, and requires more expensive tools) or maybe Flash. There are others, less used options, but that's beside the point.

2- A database, to store your data. The language here will be SQL, and you will probably start with a free open-source database. Most people choose MySQL in this case.

3- An engine to do something with the data you have in your database and the input of your user. Here, since you don't know anything about programming, the easy way is to use the same language you used for your GUI : PHP/ASP.NET. Later on, if you manage to be a code guru and need some performance improvement, you may try something more powerful like Java or C++, but then you will have to interface your PHP front-end with your C++ back-end which is gonna be tricky.

Now here is why i think you're going to fail : All i said means that, at the very least, you need to learn basic programming concepts, 2 languages (PHP + SQL), and all the associated tools (MySQL, an IDE for PHP, ...). Moreover, you will also have to learn how to set up, configure and use a web server. That's quite a daunting task to do all this by yourself in a few months or even in two years.

Actually what worries me the most, is that you say you have no programming background. This means you don't even know whether or not you will like to do this kind of thing. Programming can be quite frustrating and many people hates it. You should start by building small apps as a hobby, and see whether this is the kind of job (because yes it's a job, that requires skills) that you would like to do. Only then you will be able to think about making this your line of business.

Ksempac
I wouldn't put Java in the same realm as C++ as far as power, I'd put it right next to ASP.NET but above PHP. Additionally, would it be at all possible to halt the birth of new PHP programmers by strictly recommending ruby?
marr75
I know Java isn't as powerful as C++ (which is my language of choice) but i just said it was more powerful than a simple PHP app, nothing else.As for the Ruby thing, i never used it so I don't know much about its strengths and weaknesses, but I think you won't argue with me when i say there are a lot more tutorials and libraries available in PHP. The guy faces already a lot of hurdles as it is, so better go with the easier choice.
Ksempac
This is a great answer except you left out learning HTML/CSS/Javascript.
jmucchiello
A: 

It may be of no use to you but http://archverse.sourceforge.net/ is an open source C++ turn based web game. Its not finished but all the basics are there and it actually does quite a lot (though it has no client just a server with unit tests right now). Its BSD licensed so you're welcome to do what you want with it aside from claim you wrote it from scratch.

Contrary to suggestions from others here im not a fan of RDBMS for semi real time games so I'm using BerkeleyDB as a data store it allows me to have ACID and still be massively faster since I never search on anything but a key field and everything is in process. Don't really want to start a flat file vs rdbms flame war but the non open source project this is related to used MySQL and paid for it quite painfully.

Hippiehunter
You never search? You have no reporting screens for the user to use help him coordinate his holdings (whatever they may be). Even a one-on-one fighting game has to list the recent fights.
jmucchiello
I do search but most data is Hierarchical or Directly indexed. I am certainly aided by a certain amount of game play based info hiding. If you aren't directly related to a battle report for example you wont be able to see it. And battle report ids are stored in players, allowing me to grab all the battles a player has been in. I believe the official term for this is denormalization and is frowned upon on RDBMS circles.
Hippiehunter
+1  A: 

You could approach this from another direction. Instead of implementing these large designs you have in mind, aim at starting with a Facebook app instead. That way you can get some very small ideas implemented. If you try to do something large first, you'll end up in a tar pit.

Be careful of large game designs. Get good at implementing small ones first. You can always build on top of them.

Nosredna
A: 

The learning curve for C++ can be tricky for beginners. If you can get through the chapters on references and pointers without severe mental damage, you'll probably be fine. Otherwise, you may want to pick up something a bit higher level to start out with. As others have stated, C++ is a great programming language for game development, but it's not particularly suited for web-based applications.

Regardless of your language of choice, there's only so much you can learn from books. Programming skill is very much dependent on experience -- program, program well, and program always.

At some point, you'll probably want to study up on object-oriented analysis and design. If your games have any significant degree of complexity to them, the ability to break them down into easily manageable chunks is invaluable.

Check out gamedev.net, they have a number of resources for game developers.

Game development involves a lot of different aspects other than the programming itself. Depending on the game, you'd also have to worry about sound, music, graphics, animation, user interface, play balancing, story, dialogue, and database design. All of which has to work on a variety of hardware and software configurations. Oh yeah, and it probably has to be fun as well.

Start small.

Good luck.

goldPseudo