I'm a beginner programmer in C++ i know this :
variables, functions, files, pointers, string, loops, conditions & little about Data Structures.
now my question is what i should know to be Game Programmer ?
Regards
SB4
TheCPUWizard
June 8th, 2007, 08:56 PM
Ironically, to be a game developer you (typically) need to know very few "advanced" things about programming. :eek:
Most games are built around pre-existing engines that do all of the "work". The developers responsibilities really focus on:
1) Human Engineering - What makes a good game concept and implementation
2) Graphics Arts - Especially 3D modeling techniques, wireframes, skins, vertex manipulation, object interaction, lighting/shading.
btw: I have been a software developer for a looong time. Fluent to Expert in nearly all of the languages out there (not a boast, just a statement to put this in context), yet I have never been able to design a single viable game. Simply because I completely lack the "artistic skills", and (to a lesser degree) because what I find to be "interesting" scenarios are a "bit-off-tthe-beaten-path".
SB4
June 8th, 2007, 10:09 PM
thanks TheCPUWizard for response
that's not hard to me if i really want to be game developer. it's not impotent wait 6 or 10 year why not if i will be game developer :) just give me the topics i should know about it or good books
Regards
SB4
TheCPUWizard
June 8th, 2007, 10:30 PM
thanks TheCPUWizard for response
that's not hard to me if i really want to be game developer. it's not impotent wait 6 or 10 year why not if i will be game developer :) just give me the topics i should know about it or good books
Regards
SB4
I DID :rolleyes:
JVene
June 9th, 2007, 03:28 PM
SB4,
It seems that the Wizard's words were not exactly what you're looking for, but he's got the goods :).
I suppose, too, it depends on what games you're discussing and where in the spectrum you see yourself.
There's a college in New York that specializes in educating people just on the graphics arts and game play logic, user interfacing of game development and other related fields like web development - high end interactive work like sites that invite you to 'build your own $250 pair of sneakers'.
I worked with one of their graduates on a thesis project as a consultant (help for a friend, not really any business to it). Not sure if I should plug the school here....
Anyway, my point is that the Wizard's list is packed with info that could easily break out into a pamphlet for each point. These days a typical game for any of the set top boxes or high end PC gaming is built by a team of dozens, some who do nothing more than write the story for the game (unless, of course, they take the theme from a movie, and even then there's some kind of 'script' to the game).
There's also music programming - the creation of algorithms that make music on the fly to fit the situation the game is currently simulating.
There's even a specialty just focused on sound effects, very much like the creation of a film.
On the other hand, if you're interested in an update MahJong or online Poker, many of these concepts disappear.
So, you have to decide where you intend to focus your energies. Are you aiming to be a game engine writer? You'll need the full treatment on 3D, and the platform's implementation (like Direct3D/DirectX), physics, game AI - the list is growing.
Frankly, if you read the articles on the industry, game developers are, as a group, overworked and underpaid. Typically they work under stressful conditions, long, long days and don't get a 'piece of the action' themselves. They're hired guns.
The one's that make the money (and isn't this ever so) are the one's that own and run the business, not the development. What I'm trying to warn you is that it's probably not a good career choice. You're better off figuring out how to run a business, and fit that into your technology knowledge than the other way around.
Put another way, if you and everyone's high IQ cousin gets into game development, they are competing for a select few positions. The people running those companies are taking significant gambles - the development platforms can be an expensive buy in (the console game development business is all but a racket - many of the platforms won't allow you to simply release your own game - you have to have a license for permission to do that - read, pay to play). These companies can select the best applications, dump the rest, burn them out on high pressure schedules, let them quit and replace them with eager recruits. You could be a genius, but to them genius can be purchased at cut rates.
If you keep the job long enough to see the game you've worked on completed, you'll have the bragging rights but no-one will recognize you for it. That is, you will have contributed some 1% to maybe 5% of the game's actual creation, and who could tell what was yours?
It's like being the cameraman for the filming of a major motion picture. Sure, you're 'in the movies' - but you're not an actor, certainly not the star - you're skills are a commodity purchased at bargain prices.
You'll probably make as much or more releasing shareware games of your own creation, assuming you can manage to run that operation like a business (many run it like a hobby and make virtually nothing). Even then, you're dropping a lure in the water waiting for the fish to bite.
All that said, there have been some exceptional stories of professionals that ascend to the top and are highly sought. A more visible example in a related field is the composer John Williams. How many films have you seen where you knew the name of the person who wrote the musical score? Williams is one of those rare examples of a professional who's quality, reputation and ability to promote himself created a legend in the industry.
For every one like him, there's hundreds, maybe thousands of skilled, brilliant, highly educated musicians we've never heard of - many in the orchestra Williams conducted for any one of several films.
The same thing happens in the game industry now. It's hardly much different than starting a band, intending to make millions, only to discover that the music itself doesn't really matter. Look and Britney Spears. Cute, photogenic, followed instructions, but admit it - she was no more talent than any talented teenager from any one of 10,000 high schools. She was promoted, presented, packaged - that's all that made any difference. She was turned into product.
I say all of this because I hear LOTS of young, brilliant future engineers itching to get into game development (how cool would that be!). The reality is somewhat depressing, though. There are better returns to be realized from your efforts and your 10-15 years of youth ahead than to circle that drain into obscurity.
I have to admit I could be discouraging that one in 10,000 that could turn the experience into a mint. Who could ever have predicted Bill Gates would have turned a CP/M clone into such a huge profit! Then, too - he was never really a programmer - he is first and foremost a business genius. It was NOT due to any manner of superiority of product (most of us know that intimately well) - it was packaging, positioning, marketing, deal making.....
Look, if game development is at the core of your being, it would be cruel to guide you into a life of accountancy. What I hope to do is show you that what you really want, and what you think you want, could be different paths. Most of us can expect only to the ambition of a comfortable life, sufficient income to invest for old age, support ourselves, our families and provide enough to have the time to enjoy our days. Most working in the 'game' industry have no time to enjoy their income, and must live in a region of high cost of living such there's hardly any left to save and invest, let alone avoid the burn out so common by the time most of them reach 32-35 years of age. Then, within a few years of that, the next set of games takes the market and hardly anyone remembers the game they worked on.
If you have the guts and knowledge, you'd make more money making a game engine upon which they based their work - but the time for that to happen is probably over by now.
Then, there's Tetris. Remember that? What a hit! That guy made bucks! So simple, it makes a good 'class project' just to learn. Would something like that sell now?
Think about it.....
Carefully....
ne0n82
June 9th, 2007, 06:53 PM
JVene that was an excellent post! i just wanted to ask you what are some other good career choices for a CS major you see im just learning C++ myself and im starting college in the fall going for CS, my initial intent was like the origional poster to be a game developer, although more of a game creater rather then a code monkey for some big name company like EA or blizzard. Anyway i was just wondering what does an average software developer for business or what not make and is it THAT much less stressful then making games?
Vlad417
June 9th, 2007, 08:10 PM
in addition to neon, i am a junior in high school teaching myself c++. r the conditions the same if i were to be hired by DARPA to design new AI? Im planning to be a CS major, and i have a large interested in AI. i was told by many (not computer-savvy) that AI has a large potential in the future for its applications. Is this true?
Stooby
June 9th, 2007, 09:42 PM
When I entered college I asked a guy I know that works at Microsoft Game Studios what I should learn to get into the games industry. I was told to read a book on Interface Ergonomics, and to take notes on small bits of the game that I liked and disliked.
For the technical know how he told me to check Visual Studio and IDA (Interactive Disassembler) out of my university library and reverse engineer my favorite game. I learned how to code writing bots and hacks for games.
JVene
June 9th, 2007, 10:04 PM
EDIT: New material for posts appear BETWEEN my previous post and here, appended at the end, here.
I don't recall the link, but I waxed on about this in another thread a little. I'll try a different direction here.
Any career choice can become a grind. It's something you have to design for yourself.
I know a mechanical engineer, really smart fellow, has a nice home and a lovely wife, who admits to my face he has no gumption to go out on his own business. He wants to show up to work every day, start at step A, run to step Z, punch out and go home. He doesn't even want a large raise in pay, because he knows that means they'd expect more from him. Now, he's a really great man, don't get me wrong - and if he's careful about expenditures, he'll do fine in life. He has time for his wife, his lawn, and someday soon for the kids they'll be making.
In an even more stark picture of this kind of thinking, there's a story of 'the smartest man in the world'. I don't recall the name, and I'm sure this moniker floats around to various high IQ's from time to time, but this one guy pegs the meter like a few others. He's at least over 190 or so (probably 205 - I don't recall, the numbers aren't important for my point). This means his mind is capable of handling virtually any complex material. Mathematics, physics, medicine - whatever he put his mind to he could probably excel at just on a mental capacity level. What does this guy do for a living? He's a janitor.
No joke. One of the very highest IQ's in the last 20 years is a janitor. It's his choice. Little effort, comfortable working hours, travels outside the timeframe of traffic - just enough to get by, full benefits, etc. In other words, the problem he devoted his mind to was how to fashion his life so he had the least effort exerted for the highest return. Probably works in some government institution where the pay and longevity of the position is guaranteed. He selected it carefully, waited for the position to open, plans to work on that job until he retires.
I know a guy who convinced a bank to loan him $5,000 to start a business. He was a young, somewhat skilled, ambitious, charismatic and determined fellow. With that $5,000 he rented space, a few machines and started a machine shop. He's also, technically, a minority, and used that to his benefit. Within 5 years he had grossed over $1 million income. His business had 20%+ growth rates every year for 15 straight years. It's leveled off of late, but he still manages to pull in $10 million a year, give or take market conditions. He has no education (though he graduated high school, you'd never know it), can't write a decent email, but he speaks well and follows through on his commitments.
With this last fellow I describe one of my customers, with whom I've done business for over 20 years. There are 4 software packages in his business that uses every day, some used by his staff of 75 employees, which date back to 1986. I made $600 for 1 hour's work on a 'bet' with him. He needed some simple calculation tool (simple if you know how it's done, opaque if you don't know algebra). He seemed to think a computer could never solve this particular problem, so he bet me $600 - if I could bring a solution of my creation to him the next day. It was the second piece of software I made for him, and he still uses it to this day.
I created an 'industrial' package for his shop back in '92. After some time I re-wrote it for Windows and we released it for sale. In the era of '94 - '96 such industrial packages typically sell for about $3,000 per copy, give or take. The audience is small, but it's possible to clear a few million from one package like that (which I split with him as an investor and business associate). It was an 'emergent opportunity' of sorts.
These days it's popular to work in C# for Windows development, making a variety of business oriented applications, with tangents toward AJAX in web development. Before C# and AJAX, similar services were provided by Java, Visual Basic and HTML. Before that, other technologies. My point is, no matter what you choose now, you're aiming at a moving target. That's good and bad. The bad part is that nothing I offer as a suggestion is likely to be any more valid in 5 years than the technologies from 5 years ago are now. The good part is that opportunity exists in change. Unfortunately, the best advice I can offer is to keep your eyes open as changes occur.
You have to decide what stuff you're made of and how that focuses your choices for a career. If game development is really in your genes and you can't escape that, there's no reason NOT to go for it, but research the industry to find out WHERE to position yourself.
It's a little like chess in that respect. Don't end up being a rook stuck in the corner where your impact is wasted. That doesn't mean you ought to be making millions at whatever you choose, but that the balance of the forces involved are set to your advantage. If what you want is to make money, concentrate on that and use your technical skills as part of your positioning to find your way of doing that. Study business and prepare to manage your own or partner with a few, but don't bother unless you know you've got the kind of focus to take the risk.
Edit:
After I posted this I realize, since I paused to make dinner while writing, other posts appeared.
What you make per year must be compared in light of where you live while you're working. In NYC, you have to pay out $1,500 a month (or much more) just for rent. Making $80,000 a year gross in a place where you have to shell out $24,000 for rent, phone, electricity and transportation is not as good as making $60,000 in a town where you can live on $16,000 a year while BUYING the apartment. (Note, these are gross income figures compared to out of pocket expenses, Uncle Sam dips into your pocket for a hefty percentage of that gross - I've not even discussed health coverage, probably $120 a month for a bargain plan).
If you're absolutely the top of the graduating class, and your doctoral thesis is interesting, Microsoft might even hire you. Many working there make big bucks, but isn't an army of recruits just salivating over the opportunity? Don't make your plan for that :)
neOn82:
If you're aiming for a particular company, gear up. Know the firm, how they started, figure out how to crack the door open. The big names are going to insist on being dazzled - you can't walk in light, you need to be the 'obvious' choice. Then, think what it would be like if you owned/operated that firm. Would you give the new recruit much control, or keep them on a leash until they've proven themselves? If you've got the goods, you can make it work.
Still, they've got game ideas coming from all angles. A good portion will be to figure out which movie they're merchandising with. If that's the nicest job in the business, guess who's going to be doing it? The boss's best friend, that's who. Do you know him already?
There are stories of people who start out on the bottom rung, last chair in the house, left to turn out the lights, fetch the Diet Cola, lunch - handle the phones when the receptionist takes a break - then, after a while, working upwards to become the big boss. It's a political/personal kind of game. If you can play it well, you can work your way into business without any other skills.
Other jobs, like standard business application work, have their own kind of stress. There are various job cultures involved. In some large firms, you have straight 9-5 punch-in/punch-out - that's it. Everywhere you'll have some eye upon you. I did something like that for a while, but I did it as a consultant, not an employee. I'm not even sure it could be done the way I did it anymore.
When I did it, it was 1982/83. Putting PC's on the desk in a large business was a brand new idea - that was part of the hook for me. I rode that upward to a point that I was the central figure of all things technical in a firm that employed 10,000 people in just over 2 years. Pressure was hot, but I was quite capable.
Forming your own firm is even more pressure for a while. If you can do it, you can turn that into rewards beyond all others, if money is the aim. If you're not a part of the business, you're going to get what is essentially the leftovers. For example, look at architecture. Architects earn perhaps $60K a year. That's around $30 an hour, but they're billed out at around $80 an hour (or more). The owner is collected the difference for each of the 10 or 20 people in the firm. Think about that for a moment. The owner is just another architect, having done what all of them do in pretty much the same way, some better at design others better at project completion. The owner, however, discovered he's good and "wining and dining" - getting clients to sign contracts, cracking the whip to see the goods are delivered, taking the risks, paying the mortgage on the office building, etc.
Still, the owner is collecting $50 an hour for every billable hour of about 15 people on staff. Gross, that's 1.5 million per year for work the staff is doing.
Now, the owner takes all the risks. His business could go down in flames (it doesn't take much). Still, does it seem even fair? Well, even the owner doesn't get the 1.5 million of the difference - after expenses, contractors - he's getting maybe 600K of it, then has to figure out how to collected that, what with tax shelters, 401K's or other investment means - it's tough.
Vlad417:
AI is a strong area of interest, but returns on the investment are, as of yet, not quite as great as once expected. The state of voice recognition software and handwriting recognition (especially cursive) is an example of the limitations currently held.
Most of the benefits of AI are still in research, or used as tookits. That is, you literally either use a library, like any tool, or you're a scientist developing new ideas - like that car that can drive itself in the desert.
To all of you, what's pulling you in any of these directions is fascination. Don't loose that quality, it's part of youth.
My points are more along the lines of that puzzle you'll be solving later, like where to work, how to eat, pay rent, and survive long enough to make a decent or great living.
Unless you already have money, the only place you're likely to find a lot of it is in business - being part of the dollar, owning a piece of the pie. All other pursuits will be the acceptance of a salary from someone else's business (even a publicly held corporation). There's some minor safety thought to be in that practice, but recent history proves otherwise. Big firms like IBM, Intel, AT&T - all of them dump employees a few thousand at a time, now and then. There are no guarantees.
So, while you're young, especially if you can keep your expenses down (as in, don't get married too early and have kids before you've taken the time to figure this part out) - take the risks your youth affords to you.
Like the ancient cliche - "Go West Young Man!"
As much as you intend to learn the technologies, learn about business. If for no other reason but to participate in a business as an employee at an increasingly higher level. If you find in yourself the kind of personal discipline and focus required to start your own path, figure out how to do that!
My own example isn't a bad one, do some consulting or various project work to discover some niche that's underserved and make a product to fill that need. No school will teach you it's there - by the time they could work that into a class, the niche would be filled and the product would be 'the standard'.
You'll make more personally from one good product that can sell $500 an item to say only 15,000 customers than you could from an entire career as an employee.
After that, the stress factor will be up to you :)
cstyle29
June 10th, 2007, 12:13 AM
To JVene and all,
I have to admit, being an old school gamer. To create a game would be a dream come true. To have my game played and love like some of the other great games of the past like:
the Mega Man series, Mario series, Mr/Mrs Pac Man, Sonic, and the Prince of Persia series. There's hardly any thing better or could compare.
Any career choice can become a grind. It's something you have to design for yourself.
I'm not totally sure that's what I would like to do for the rest of my career though. Since I like inventing and inventions/innovations. I do like the inventive process in game design. The fact that you take something that was just an idea, and turn it into a complete product is great! However still for me, I still have the " i'm not sure factor" about the industry.
I know a mechanical engineer, really smart fellow, has a nice home and a lovely wife, who admits to my face he has no gumption to go out on his own business. He wants to show up to work every day, start at step A, run to step Z, punch out and go home. He doesn't even want a large raise in pay, because he knows that means they'd expect more from him.
Since I come from the industrial engineering field I run into this mentality all the time. From engineers to technician and even production workers. Everyone seems dead from the neck up! Just give me my pay check and Let me go. I don't want to do anything else. Personally I can't STAND that way of thinking. It is very hard for me to be around great minds that just let it goto waste.
I know a guy who convinced a bank to loan him $5,000 to start a business. He was a young, somewhat skilled, ambitious, charismatic and determined fellow. With that $5,000 he rented space, a few machines and started a machine shop.
I am this guy. I have the drive and know how to plan and design my projects. What I lack is the business know how. I created software that was designed to work in automobiles. It is a great concept but because I didn't know everything about business. Microsoft and Ford got together and done the same thing my program does. Since I didn't know cost of prototyping hardware design. It cost me from being first in the market. So JVene's statement about knowing business is DEAD ON!
You have to decide what stuff you're made of and how that focuses your choices for a career. If game development is really in your genes and you can't escape that, there's no reason NOT to go for it, but research the industry to find out WHERE to position yourself.
I believe people turn to games is because it's a childhood dream that the inner child still holds onto. The part of you that feels that games are pure and very creative. The stuff imaginations are made of. If you could create one or work for a company that makes them then you'll be part of something that brought you joy and you can do the same for people.
I think we as people forget that it's a business about making money! So it's kinda heartbreaking to read a post like your previous one because it kinda tants or destroys the image that we have about games. That it's not just about great fun and enjoyable work, but it's about the bottom dollar that pushes people to long hours, pay the people as less as possible so that i can increase my profit etc... Brings you back to the reality of it all. That it is just like any other job and it has it's ugly side to.
Which i believe is the reason for the quote by ne0n82.
Anyway i was just wondering what does an average software developer for business or what not make and is it THAT much less stressful then making games?
Hey, it's hard fact we have to deal with...
So to conclude on this post. I understand the want to create a game. I'm 29 and it still burns deep within. I'm doing whatever it takes to get me to that point. OpenGL, directX, C/C++, C# and other things. Like flash to other things I've read about but don't have the money to buy(3dx Max, Miya etc...). It seems like I'll never catch up. However, I won't give up, and neither should you all if games are what you like as JVene said. Press toward your mark, but also keep your mind open. You may find that there is something else in CS that will take your intrest. DB stuff, Graphic art, other than game stuff. Or as one guy did, program the AI for a Car that raced in the desert in the race for the million dollar prise.
Keep the dream, the passion, the open mind, and the inner child alive.
Your fellow inspiring game developer.
cstyle29
JVene
June 10th, 2007, 01:21 AM
cstyle29:
What a great response of thought and inspiration!
You can hardly go wrong pursuing something that continues to draw your interest and fascination.
Think on this: How many shareware games actually make money out there and why? There are examples of relatively inferior or low grade games that continue to bring in reasonable incomes.
If you sold something for just $15 net (probably $20 purchase price), and you could sell 100,000 copies (a small audience in today's market), you'd have 1.5 million income.
Can't manage 100,000 off one title, build 4!
Not everyone wants to play 3D immersive 'aim-n-shoot' or 'drive-like-maniac' games, besides - they've made them already.
The key is to run that like a business, present the customer with something they'll like, promote it, keep promoting it, improve it.
Even if you only sold 10,000 units a year at $15 net, you'd clear at least as much as a professional salary, at a pace of your own choosing.
Reinvest in your business, and yourself, and you could leverage that into the next EA.
Vlad417
June 10th, 2007, 12:33 PM
i just wanted to say how inspiring you guys are to the youth. i've only recently started to join a couple of programming forums and out of one post i already find this group as the best bunch. my friends and i hav actually been trying to get together to start on a game. we've discussed it a lot but havnt gotten into actualy hardcore designing yet, just some concepts. we've gotten to the point were we want to release a couple of small games, not expensive to make, and maybe not even for profit, just to get our name out there. is this the right way to start out as highschoolers? my personal dream of our group is to get out there take a couple of years and develop an extremely innovative game and throw it online. kinda like the runescape thing, but not some low quality java applet. hav a free world and hav the awesome features restricted to paying members. once again, is this the path to take?
we've looked at costs and we've cut ourselves down to using as many free resources as possible. ogre3d, blender is what we hav so far. any other suggestions? if we were to go online should we rent space off of a company?
Stooby
June 10th, 2007, 08:41 PM
i just wanted to say how inspiring you guys are to the youth. i've only recently started to join a couple of programming forums and out of one post i already find this group as the best bunch. my friends and i hav actually been trying to get together to start on a game. we've discussed it a lot but havnt gotten into actualy hardcore designing yet, just some concepts. we've gotten to the point were we want to release a couple of small games, not expensive to make, and maybe not even for profit, just to get our name out there. is this the right way to start out as highschoolers? my personal dream of our group is to get out there take a couple of years and develop an extremely innovative game and throw it online. kinda like the runescape thing, but not some low quality java applet. hav a free world and hav the awesome features restricted to paying members. once again, is this the path to take?
we've looked at costs and we've cut ourselves down to using as many free resources as possible. ogre3d, blender is what we hav so far. any other suggestions? if we were to go online should we rent space off of a company?
That is probably the route to take. Making a mod for an existing game would be a good starter point as well. When I was 17 I joined the development team for a mod of Half-Life. The mod died before release, but I learned a lot about working with a team, leading a team, and programming games. Are you attending a public high school? Is it a middle/upper middle class area? If it is your school probably has enough extra budget, if you get together with a teacher at your school you could get your game development funded by them by making it an after school club. At my old high school some students did this and the principal made a deal with Microsoft and got all the students involved free copies of Visual Studio.
As I said in my previous post, I think the most informative and challenging thing I ever did was reverse engineer a game in order to create a hack for it. I made bots for a few MMO games and as a result I am a much, much better programmer than I was before, and I would recommend people who are interested in game programming to do the same. When you program a bot you are basically programming an AI for the game. Of course, I would never release a bot you code and I never used the bot other than for testing purposes because they do ruin the game experience for yourself and others.
Vlad417
June 10th, 2007, 09:20 PM
stooby:
thx for the advice, our school is in a lower/middle middle class district. we actually hav no extra cash at hand. our district has gotten to the point of getting rid of programs(i.e. french, swimming) i've tried getting a group together. teachers r just not available, our school is small, thats y i've taken the initiative of getting my own group together, since no one else is there to support us.
to keep this thread going, is it possible to compile a simple, generic timeline of a game in production?
abcdefgqwerty
June 13th, 2007, 03:01 PM
You need a lot. You need other people unless you can do graphics, sound, music, design, story, and anything else you need. You need to program very well. You need to understand all elements of computer science that apply such as physics, math, ai, game logic and data structures. You need to decide the languages and the best way to technically make the game. Once your done you can sell it however you want like take it to publisher or whatever. Lots of work. Oh yeah your wont make half life or something so dont be unrealistic. The best tool is free games download wolfenstein 3d and see if you can understand the logic and math behind it. If you cant you need to learning programming, math, and game logic better. Wolfenstein 3d is complicated considering its age. Games now are many many times more complex then that now especially once you throw 3d into the equation.
ne0n82
June 14th, 2007, 03:21 PM
@Stooby:
ive decided to takes your advice and downloaded a shareware copy of IDA with the intent on making a game trainer, but im completely lost as it is do you know any good resources on how to learn ASM in the specific context of reverse engineering? For example lets say in the game im playing i have 50 gold and i want to make it 1 million gold, how do i find the varuable withing the program that contains this information using IDA.....cause to me all im seeing is a MASSIVE assembly dump that may as well be greek =[
codeguru.com
Copyright Internet.com Inc., All Rights Reserved.