Learning graphical programming (i.e. game programming)? [closed] - language-agnostic

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm a pretty competent programmer, finishing my second year in university.
I am well versed in C and Java, and know a little Python as well.
However I've always wanted to create games. I don't know if thats the job I will end up having, but its definitely a hobby I want to be able to pursue.
When i look at the task of creating a 3d game (a non-trivial one), I believe I could create the 'engine' for the game. That is, the underlying code which controls the function of the game.
However, I have no idea how to create the graphics.
So my question to the community is what would be an appropriate place to start learning this?
Are there any good tutorials or sites to visit which assume I'm working with little previous knowledge?
Also, suggestions for perhaps a quicker method of creating the graphics would be appreciated. For example, i understand opengl has quite the learning curve (correct me if I'm wrong), and as a hobbyist, I'd like to see results sooner rather then later. However if there is a really thorough opengl tutorial, then that would be great too.
Thanks!

If you want to learn OpenGL, go straight to the source:
http://www.opengl.org/documentation/red_book/
Decide what you want in your engine, and a quick search in the red book will tell you what you need to do and how to do it. It's an amazing reference that EVERY OpenGL programmer should have.
And if you don't want to buy it, they have older (but still useful!) versions on the web (at the link I posted.)
I actually have two copies of it because (when I was doing OpenGL) I used it that much I needed at work and home.

I'd suggest XNA for an easy yet powerful way into game programming. You get the benefits of C# and .NET, with access to DirectX functionality without having to delve into the lowest layers of implementation.
If you really want to go 3D, you should start by learning to use an existing engine, like Ogre 3D or start playing with the Unreal Development Kit or Unity.
It all depends on your objectives. My advice is to start small (think Pong, Breakout, Tetris, etc...) before tackling bigger games.

Related

What Flash Framework For Soccer game? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm a new Flash games developer, i just created my first game in Flash using FlashPunk, it was great, now i'm supposed to create a single player vs cpu soccer game, exactly like this one : Kung Foot.
As i said, i find FlashPunk a good Framework, but i'm opting for better performance and heavy graphics, i'm actually think about either Citrus or Flixil.
They both use Box2D for collisions, but i've heard that Citrus would be the right choice if it was a platform game.
I don't know if there are any other well documented Frameworks out there, what do you think !
I think starling is best decision in your case.
Citrus isn't really an engine as much as it is a collection of other tools to make development easier. It takes a rendering engine (like starling or away3D) and a phyics engine (like nape or box2d) and bundles them together for you, providing some functionality to make the process of using them easier. (Like the ability to add a virtual joystick to the screen in one line of code. However, you could do all of these things on your own and be just as successful.
If you plan on using Citrus, be very careful. It's great for getting stuff up and running quickly, but the documentation can be very iffy sometimes. For example SimpleCitrusSolver is used in a lot of their tutorial documentation, but it is broken in newer versions. I recommend reading about the logic behind every library function you use from citrus, instead of letting it be a magic library that does nape and starling for you.
As far as what framework is the best, it's really a personal choice. They all will let you accomplish the things you want to do, just go with what feels the most comfortable.

Learning C++ & STL by doing game programming project? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I've been coding with c++ for last 3 years, mostly my work revolved around using other libraries such as QT. I recently realized that for a guy who has been coding for 3+ years I dont really know much C++, cause I dont know much about Templates or STL or Boost.
To remedy it I decided that I shall learn new C++ feature and STL, then I stumbled on this excellent thread Learning C++ using a template. Which basically says that I should learn STL before anything else.
Now game programming is something I wanted to do from my undergrad days, I even wrote one flight simulator game for my project, but after some time it was discontinued.
My question is should I go on and try to make an opengl game, or try some text based game to learn C++. Would learning opengl be so hard an effort that it would distract me from actually learning C++. Also if not does somebody has some other idea ?
The STL and Boost are used in almost every C++ program, you don't need to go to the videogames domain just to learn that... Videogame programming is a very complex application domain. Nevertheless, if game programming is what you enjoy the most, go for it. I'd recommend starting with SDL instead of OpenGL, it's a higher level API. Another thing I recommend, start making a simpler game, like a Tetris clone for instance, and then move on to more complex types of game. A page I highly recommend for your game programming needs is GameDev.net

do i need a license to apply the RUP? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I am probably being desperately naive here, but i wanted to clear something up. RUP appears to be a proprietary process owned by IBM. What implications does that have for any project wanting to implement it?
Logically, i struggle to see how any 'process' can be made proprietary - you are simply following a series of tasks in a prescribed order. Further to this, there appears to be similar methodologies like AUP and OpenUP that work in a very similar manner but are open source.
The only conclusion i can come to, is that the proprietary aspect refers to the tools and diagrams made available to assist in implementing these.
As i said, i am probably being desperately naive but i wanted to clear up the confusion.
I think you can apply the RUP.
I believe UML is an OMG standard, not a proprietary IBM technology.
The licenses apply to the tools that IBM sells to support it. IBM bought Rational Software, which was founded by the Three Amigoes who were responsible for unifying their competing object notations into a single standard, since taken up by OMG.
If you're really worried, best to consult a lawyer. But I believe you're safe from legal hassles if you use UML and RUP.
I'd challenge what value you'll get from both, but that's another question.
Well, you can apply RUP without any licence...Generally IBM focus on that you can only apply with help of some tools which are their tools generally...But this is marketing...
You do not need any tools[ case tool] to apply RUP even IBM tools...Of course good tools help you...I do not under estimate them...But they are just tools...Tools can not think for you...
You can apply rup with some paper, white board...
Just look at this article from IBM [ ironically ]
Project coloration using the Rational Unified Process by Karen Ulferts
at this link:
http://www.ibm.com/developerworks/rational/library/edge/08/jan08/ulferts/index.html

Diverse resource of problems to show merits of different languages [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'd like to learn a few more languages to "expand my mind" a bit, and I find working through problems the best way to learn. I have been doing most of my programming in C, sometimes C++, and perl. With these tools, I seem to be able to solve the problems I encounter, but you know the expression "when you have a hammer, everything looks like a nail?" I feel like I am stuck in a single paradigm, and I would like to change.
What I'm looking for is a resource similar to Project Euler, but with more generic/real world problems(Project Euler is very mathematical) which highlight the benefits of different languages. The idea would then be to work through the problem set with each language and note the relative difficulty of completing each problem in the given language.
1) Does such a resource exist?
2) What are some problems you would include? Remember: these should show the strengths of each language.
Thanks!
CodeChef (http://www.codechef.com/) and Sphere Online Judge (https://www.spoj.pl/problems/classical/) both look like good options for you. Their problems aren't necessarily practical, but they are less explicitly mathematical than Project Euler, and their judges accepts programs written in plenty of languages. The Python wiki recommends a few others (http://wiki.python.org/moin/ProblemSets), but they aren't quite as flexible.
I haven't used either site, so I can't recommend any specific problems. Just make sure to include some logic problems so you can revel in the awesomeness of prolog :)

Software Development - Gaining mastery - books or "mentors" or other? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
To me it seems that classroom training gives us building blocks of technique, but rarely covers actually building anything large or complex, and even when classroom training covers "large projects" you are still just graded on getting the correct end result.
Where should people turn to learn the larger aspects of software design? Specifically where can people go to learn actual "best practices" when starting to work on mid size to large projects/systems? (With less theory and more application)
(My focus would be on .NET and C#, but the question is valid for any technology)
Code complete - by Steve McConnell
Pragmatic programmer - by Andy Hunt and Dave Thomas
Facts and Fallacies of Software Engineering - by Robert Glass
In my experience, the only way to learn how to design and develop large projects is to work on such a project. This is inevitable when you consider that most large project problems are to do with communication - between team members and between code modules. This is something that is almost impossible to simulate in the classroom (I've tried).
One place: industry. This could be as an internship if you're still in college, or as a job if you're out of college. There's no place for you to learn the standard practices like at a company full of people developing software.
Code code code
Make mistakes, fix them
Ask for help - SO is great for that!
even when classroom training covers "large projects" you are still just graded on getting the correct end result.
You seem to be awfully concerned about how projects are graded. You shouldn't be.
Your grades are of course important, but they shouldn't be the end-all be-all of your university experience. You are there (presubably paying tens of thousands of dollars) to learn. Get your money's worth. Good grades should be a by product of the fact that you are learning the material well, not the other way around.
Your large projects in school will probably be your most important learning experience. Mine was where I first really came face to face with issues like:
The importance of design before coding
Communications between developers working the same project
Dealing with the very real differences in capabilities between developers
Dealing with the differences in motivation between developers
The nessecity of using revision control
Software integration
The whole experience ended up being a major topic in the job interview for the job I finally got after graduation.
I think we got a B on our project, but that was totally beside the point.