C++ in Perspective
So I've been brushing up on my C++ and C# as I was recommended. I decided to focus on programming as my priority in the game design biz, and make animation my secondary skill. (Just cause I kind of like animation but I am mostly interested in programming.) Things are going well as I've started programming simple things like hangman and tic tac toe. I've bought a few books on programming as well as actual game design.
C++ Without Fear, Beginning Programming for Dummies (Just finished it), Level UP! (Finished it a while ago, but keep I it for reference) and Beginning C++ Game Programming are some of the books I have in my library that I currently use.
But what I want to know is how does this combine everything? For example, say the animators and designers create the sprites/models and they are all ready to go! The level designer has his level setup and the programmer is ready to code... How does that work? Is it all done in a C++ compiler? How are the models turned into data that a C++ compiler could read? Or am I way off? I know this might be getting a little advanced, but I would like to have a look at what I am dealing with here if anyone could help.
If you are already building simple games, like hangman, it could be good for you to keep going, and build slightly more complex games, with more graphical elements in them perhaps. Think of it as a cyclical process. You take what you've learned from your previous game, and apply that to the making of your next game. It's important to only make small incremental steps in complexity (if you bite off more than you can chew, you'll become disheartened). Just going through this process over and over, will inform about you what you need to learn etc.
It helped me (once) to look at the process as something like building blocks. You build small units of structure or code, to do certain things; then you build bigger units, that make use of these smaller units. Maybe that's a little abstract, but it kinda makes sense to my mind.
I guess the main thing, is to keep on doing small projects. Build up slowly to bigger projects. Make lots of mistakes. Learn from them. Re-apply what you learn ... and most important ... have fun!
I have fun coding, and I have times where I just want to run out and buy a glock and start shooting at random pedestrians, but all the same I enjoy it. I was just curious about how things were combined in the long run. Like, how is C++ involved in the games for the 360 and PS3? Is it literally typed out in a compiler and combines the graphics somehow? Or is the concept of GUI brought up later as I progress? Either way, I'm just trying to get a clue about what is ahead of me.
Take a look on OpenGL, or Direct-X. Those are the 2 major SDKs for development, anywhere.
That's potentially a very complicated discussion, but to summarize:
Originally Posted by Ludiologist
What you're asking about is typically called the art pipeline, where data is taken from an application and transformed into something the game can understand. Modeling or animation packages can export to a variety of formats, or you can write your own exporter. You can then write an program that reads one of these common formats, processes it, and writes the data back out in a format the game understands.
You asked about processing data in the C++ compiler... a compiler only turns human-readable code into machine-readable code ("compile"), it doesn't actually process any data. You can use a C++ compiler to compile a program that does process data, though.
It's hard to be more specific since there are so many different types of assets (models, animation, textures) and they are handled differently in different game engines. If you're writing your own engine, you're deciding what format the game is expecting, so you just need to write a program to convert the data from one format into another. You could actually read some application native formats in your game engine, but that is usually pretty time consuming.
I hope that makes some sense.
Thank you! That's the kind of answer I was looking for! No, I cannot do any of that yet, but yes I understand it the general concept of it. It's sort of how I theorized, but at the same time there were parts I didn't know about. The part about compilers not processing data, but making a program that does process data was such an obvious thing for me to overlook.
Point being, if I ask a question I'm the kind of person who prefers getting the answer, instead of being told to figure it out. Why? Because I always try to figure things out before I ask questions.