Preparing for the google - in project

I'm trying to prepare for the google code-in project that starts on the 26th, but im not quite sure on what i should focus on reading up on. Here are the projects im interested in working on:

Game development
Operating system development

I know C++ and OpenGL, so i have a great start for the game project, but i see a lot of the example projects being written in python. How hard would it be to pick up python from c++?

What should i know to help in OS development? will anything be written in C++ for an OS?

As for picking up python from c++, it should be relatively easy, the only catches are that white space is important, but otherwise I think it is a good language for rapid development. Although python can be used fro game dev, it is usually used for things like web dev and plugin scripts.

An OS can be made using C++, although the very basic low level things (like booting, ect.) are usually done with a minimal amount of C/Assembly.


A question of my own: Do you guys think the Code-In project will have an OS project?

will anything be written in C++ for an OS?

Quite unlikely. All good OS kernels (Linux, BSD, OS X) were written in C. If you write an OS kernel in C++ you can end up with such an ugly thing like MS Windows or Nokia Symbian. Choice is yours...
closed account (o1vk4iN6)
So much bias bullshit coming from this guy, your that Java > the world guy right ?
@xerzi, no, he's the "the world > C++" guy and he has fairly good reasoning.
A question of my own: Do you guys think the Code-In project will have an OS project?
Fedora and NetBSD are participating organizations.
MINIX 3 should be participating too.

In 90% of cases, for OSdev, you only need C and an assembly language (most probably x86). Some OSes use different languages, but they're almost always written purely so the developers can brag about having written 1337OS entirely in LOLCODE. Bare in mind that OS development is probably the most difficult area of programming to get into because you have no environment (except what you write yourself), no debugger (except what you write yourself*), and because every piece of hardware is really complicated and has to be handled differently (not just that, but also the same piece of hardware made by different companies, and not just that, but also different versions of the same piece of hardware made by the same company) because hardware engineers like to screw with programmers' heads. Even the BIOS isn't much help because practically every has a different one and every one has different bugs (BIOS programmers also like to screw with programmers' heads) that you have to take into account and work around to make your code work. Game development can be as hard if you're writing a 3D game engine by yourself from scratch (which is roughly equivalent to writing a kernel from scratch) but OS development is always hard. The advantage of OS development over game development is that you don't have to render 3D models and produce sounds, which are skills in themselves.

* emulators like Bochs and Qemu can help you here, but it's still more difficult than debugging userspace code.
Last edited on
If you write an OS kernel in C++ you can end up with such an ugly thing like MS Windows...

Er, I was under the impression the NT Kernel was written in C, not C++.
closed account (1yR4jE8b)
NT Kernel is C, they tried adding managed code in Vista and.....well, yeah we know what happened there.
...and part of the OS X kernel is in C++, go figure.
I wasn't aware Vista's version of the NT Kernel had managed code in it O: I know they've been experimenting with a kernel written entirely in managed code, specifically C# and .NET, but it's still experimental.
Topic archived. No new replies allowed.