Results 1 to 4 of 4
This is a rather ambitious post; sorry if I sound like I'm asking for the whole world.
I am an experienced Windows programmer who's looking to dabble in Linux programming. ...
- 04-28-2010 #1
New programmer (on this OS) needs guidance
This is a rather ambitious post; sorry if I sound like I'm asking for the whole world.
I am an experienced Windows programmer who's looking to dabble in Linux programming. I'll give you my background, tell you what it is I hope to utlimately accomplish, and then ask for direction in achieving that goal.
While I have used C (and to a lesser extent, C++) in the past, the bulk of my programming experience is in other languages. I used VB5 and 6 for several years (stop snickering!) and then moved into C#. If I were to write a C++ program today my code would probably look like it stepped out of the late 80's, because I'm not familiar with any of the enhancements made to the language since then (like templates, for example).
My ultimate goal is to write a game. This game will run full-screen (not under a GUI). I don't need help with the game mechanics themselves; rather I need 1) a refresher course in C++ and 2) instruction on how to do things "the Linux way." To that end I'm asking for pointers on tutorials, articles, forums--whatever--that can bring me up to speed on the concepts I will list below:
* An intro to C++ as it stands today. (For example, I don't need to know really basic stuff like how to declare a class, but I have no idea what the reinterpret_cast<> thingy does, nor do I understand templates, or what C++'s equivalent to C#'s try/catch is.)
* Managing memory.
* Any good wrappers for dealing with string data, analagous to MFC's CString class.
* A good review of the standard library, possibly organized into functional categories (math, string handling, I/O, etc.).
* Playing audio (like MP3s).
* Playing video (like MOV or AVI).
* Drawing graphics with high performance (I guess by that I mean good frame rate). I would assume I should look into OpenGL, but if there are alternatives I'd be glad to hear about them.
* Working with high-performance timers. (In the Windows world these would be the "multimedia timers.")
* Working with file systems (both HDD and USB).
* Working with USB in general (as in non-storage devices). libusb seems to be the starting point from what I've read, but I'd like to see some examples of talking to...well, anything.
I'll also admit that I've been spoiled by IDEs and if possible I would like to use an IDE versus learning about creating makefiles or build files or whatever they're called and executing gcc from the command line. However, if I must go that way then so be it, and I'd need some tutorials on the whole compile/make/build/whatever process.
That's all I can think of at the moment. I don't expect to learn it all overnight, of course, but once I have some direction I should be able to hit the ground running.
- 04-28-2010 #2Linux Newbie
- Join Date
- Mar 2010
- Posts
- 121
Hi there. I can't really help you with the game-specific things, but I hope I can help you with Linux programming in general...
For C++, "Thinking in C++" is a very good book, and free-of-charge for an electronic copy. I think the website is down at the moment, but if you give me an email address I can send you my copy. Anyway, it does assume you know some C, but it will take you through writing classes and such (I can't think of a C++ that won't do that - I guess you can just skim over the bits you already know!). If I remember correctly, it has good coverage of the most commonly used sections of the standard library, container classes etc. It's very thorough.
As for "the Linux way", there's a fantastic book called "The Art of Unix Programming", again available free of charge (sorry, can't post URL because I don't have enough posts, which is very annoying, but Wikipedia has an article with a link), that does a good job of pinning this down.
I'm not sure I know what you mean - are these treated differently in Windows? On Unix-like systems, all file systems are part of one single file system, so you access all files on all media transparently.
- 04-28-2010 #3Registered Linux user #270181
TechieMoe's Tech Rants
- 04-28-2010 #4


Reply With Quote
