| We hope you enjoy your visit. You're currently viewing the Ultimate 3D Community as a guest. This means that you can only read posts, but can not create posts or topics by yourself. To be able to post you need to register. Then you can participate in the community active and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free. Join our community! If you are already a member please log in to your account to access all of our features: |
| How to go now?; I need help learing c++ | |
|---|---|
| Tweet Topic Started: Dec 21 2008, 05:10 PM (558 Views) | |
| _klohin01_ | Dec 21 2008, 05:10 PM Post #1 |
|
Member
![]() ![]() ![]() ![]()
|
Hey everybody, Since a while I'm trying to learn c++ and i bought the book c++ in 21 days. I finished the book and I don't know where to continue. I want to mainly create games with c++ but i think i need more of the basics and i don't know what the best way is to create games. Just a list of things i saw on the internet: -c++ unleased. -many more books on amazon.com. -Win32 -opengl. -direct X. -SFML. -Allegro. -irrlicht. -ogre. -box2d (that for later i know). -and so on. I just don't know what is the best thing to learn and what the best order to learn them .There're quite some good c++ programmers active on this forum so I thought they could give me some advise . Thanks in advance. Edited by _klohin01_, Dec 21 2008, 05:15 PM.
|
![]() |
|
| Dr. Best | Dec 21 2008, 06:14 PM Post #2 |
|
Administrator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
It really depends on what you want to do. If you want to get better in C++ itself I recommend Scott Meyers' Effective C++. It is really good, but you should have been working with C++ for at least a couple of month before reading it. If you have no idea about operator overloading, inheritance, templates or the STL you are not ready for it. The book will not teach you anything specific, but it will just give you many very good hints to make you a significantly better C++ programmer. There is also a second part called More Effective C++ (I'm getting it for Christmas). In my opinion you do not need to get that deep into the Win API, if your main aim is programming games. If you have understood the basics (like creating windows with different properties and interpreting messages) this should be enough. If you need something specific you can usually find it in the MSDN quite fast. To decide for a 3D solution you need to know how fast you want to get to playable games and how much you want to learn while making them. If you base your work upon DirectX or OpenGL and do not use any bigger libraries to ease the work it will take you many month before you have something you can base a game on. If you are new to it, it can take a long time until you get a model with animations and materials loaded and rendered. You can save a lot of time here, if you use a model loading library. Possible choices would be D3DX for *.x files, Cal3D] or ASSIMP. All of them have disadvantages though. The DirectX model file format can be hard to export, Cal3D is very buggy and limited and afaik ASSIMP does not support animations. If you want more complex features in your 3D engine (like terrain rendering, complex shader effects, per pixel lighting, particle effects, collision detection and octree optimizations) the development can easily take a year. And probably the first attempt won't yield the best results, so you will end up reconstructing your engine multiple times (I know what I am talking about ). So this way will cost a lot of time, but it has the big advantage that you learn very much. Regarding the DirectX vs. OpenGL problem I can not help you that much, because I have always been working with DirectX. DirectX is reliable, well-structured and well-documented so I can not really say anything bad about it, but I do not have the direct comparison to OpenGL, so I can not say what is better. If you like penguins or apples you should go for OpenGL. If you want to get results faster and are not that interested in reinventing the wheel to learn things you should definitely go for a solution that is more complete. I never really worked with one of them, but Ogre and Irrlicht seem to be good. If you do not want a that complete solution you could go for XNA. You will most certainly find good books and online resources on all of them. An order which may be good is the following: Get into either DirectX or OpenGL and try around with it (using either a book or online resources). If you really like it play around with it a bit longer and learn some more C++ while doing so. Get Effective C++ and study it, while starting to create your own 3D engine. If development goes fine and is fun finish it, otherwise abort the project and go for some other 3D engine. The project will still have taught you many things. If you do not like playing with DirectX or OpenGL that much at the beginning go for some other 3D engine immediately and get Effective C++ after having worked with it for a while. Hope this helps you .
|
![]() |
|
| _klohin01_ | Dec 21 2008, 06:36 PM Post #3 |
|
Member
![]() ![]() ![]() ![]()
|
Yes that helped alot ![]() I'm just going to do what you've sugested learn openGL or DirectX and if I like it I'll get a book like effective c++. i know about operator overloading, inheritance, templates and the STL (well not 100% but i think its enough) so i think i got enough of the basics to work with libarys. I don't prefer penguins or apples above large green X's so i'll look for a noone flaming serious openGL vs Direct X topic (if that exists) .Edited by _klohin01_, Dec 21 2008, 06:37 PM.
|
![]() |
|
| « Previous Topic · Tutorials · Next Topic » |





![]](http://z1.ifrm.com/static/1/pip_r.png)
.
.



). So this way will cost a lot of time, but it has the big advantage that you learn very much.
(if that exists) .
9:02 PM Jul 11