Matt wrote:At the moment I'm just developing a "3D Render Core" to render a scene. Creating the lighting, mesh loading, camera etc. The tutor practically gave us one that worked entirely and said we can change things to suit out needs, but I've opted to rewrite it because it wasn't very object-orientated and was awful to use (there was a cLight class, but if you wanted more than one kind of light you were buggered, or if you wanted to change any aspect of it, you changed that class... Rather than having all these classes written and simply using them, not editing them.).
Lecturers aren't always the best coders. Sounds like you're on the right track though. I did a little Java3D and OpenGL at uni so I know where you're coming from but it was nothing heavy. No doubt you'll cover a lot more.
Matt wrote:The most painful thing is we're been told we need to use Windows 8 to do this on, but I've come to find it's total hogwash and it all runs fine on Windows 7, since we're using DirectX libraries from 2006 lol. Though next term we're using HLSL and DX11, so things may change there.
I was gonna say, DX9 is getting a little crusty now. Hell, in my pre-uni (and pre-Linux) days, I taught myself DX7. I know DX11 is quite a leap ahead and I'm surprised they didn't just start you on that. It should work on Vista and above though so they can shove W8.
Matt wrote:WE also have another C++ module for a module entitled "Object-Orientated Systems Development" which is total shit. We're encouraged to use Linux, Eclipse and the GNU compilers, but none of the timetabled rooms are running Linux (not even dual booting) and no-one can get the compilers to work in Eclipse, so we're stuck with Visual Studio :/
You're already pretty familiar with Linux so I think you'll be okay. If you need to use the timetabled rooms, maybe you could arm yourself with a bootable USB stick or one with QEMU/VirtualBox.
I don't know of any live distros that include Eclipse but I wouldn't get too hung up on that. I used to use Eclipse and it's nice enough to code in but I definitely found that I didn't really understand how to compile things properly until I broke free from it and wrote GNU Makefiles by hand. The fact that no one there can get Eclipse to work demonstrates that lack of understanding.
Admittedly writing Makefiles isn't much fun and when you move into the realms of shared libraries and cross-platform compatibility, you have to take it to the next level with Autotools. Think ./configure; make; make install. That stuff is practically considered a black art but it's one that I happen to know.
If you want to get a decent understanding but with a little less of the pain, check out
CMake. It's hailed as a modern alternative to Autotools. I don't think it's perfect but it is easier to use and it also supports Visual Studio, which is handy. It's used to build projects big and small, including KDE.
This might help too.
Matt wrote:Given the choice, however, I'd rather have another Java module and cover some OpenGL, which at least would be more convenient for, say, Android or iOS games. I spent all summer pouring a large part of myself into learning Android's Java (which was really fun, I have to admit).
I wrote a lot of Java at uni but Android hadn't been invented yet. I have dabbled very briefly with writing an app and while it did look like something worth getting my teeth into, I was inevitably dragged onto other things. The company I'm at now is starting to embrace smartphone technology, having focused on traditional calls and plain SMS before, but the nature of our business means that it makes more sense to use HTML5 rather than native apps. jQuery Mobile is a godsend.
Matt wrote:But yeah, I've come across some annoying stuff with C++ :/, like, pretty much all the remnants of C that are still in use. Or how stupidly fucktardedly dumbfuckery ass backwards concatenating a string is, or just the different kinds of strings! Is it a str, a char or a LPSTR?!
I generally prefer C but while they can be used together, getting this wrong can cause nasty issues. I hear your pain regarding string types. LPSTR is a Windows thing but most frameworks like GTK+ or Qt have their own equivalents. It gets much worse when you start taking multibyte character encodings (wchar and friends) into account. I would try to stick to regular C++ strings and use c_str() for C functions that need char*.
Matt wrote:Give me me something like Java or C# any day!
You won't use it for writing games but you should give Ruby a try for a few hours, just to get a fresh perspective on things. It's just a really nice language to work with and I promise it'll give you a warm, fuzzy feeling. You can even
learn about it from a guy who
looks scarily like Jack Black while being equally crazy.