In C#, you can compile and run code at runtime (after the program has started)[...]
Just be aware code can't be unloaded then. Once it's loaded, it exists in memory as long as the program hasn't yet finished execution.
Shit, in SDL, I had to make a method to wrap the SDL_ttf (the thingie that writes stuff on the screen), because writing something to the screen using SDL involved like, 5 function calls (loading a font, creating a surface, writing on that surface, etc). So I made a method to do all those 5 when I called my own function. This is the kind of job I wanna avoid. [...]
Answering FuriousGamer87, I kept back-ups of my code, with the dates in the name locally and online. I'll read up on what SVN is.
As for SDL, there's sdlmm that wraps the stuff around in C++-specific constructs. I haven't used it yet but seems sane <http://sdlmm.sourceforge.net/classSDLmm_1_1Surface.html#d0>.
Use git nowadays, not svn for versioning the code. Observing a proper (that is, efficient) version control workflow requires some training, but once you do, you won't come back.
Doing stuff from scratch since you don't understand existing solution is a project in itself.
Recommend using either Qt Creator or KDevelop for IDE. Just beware of Eclipse, it's a buggy, overcomplicated mess.
I think if you want to make your first game you should not ttry too hard to make it perfect. Keep things simple and hardcoded. Don't fear if it's spaghetti-like. Don't spend too mcuh time wondering what it'll be like in a year or two. Just get thigns done.
It's a lot faster to hardcode than ti's to modularize everything, at leas at first. If you succeed and make a game and keep doing it THEN you should try to modularize so things are more reusable. I'm just giving advice not to do that in your first game.
If anything programming for years for a living taught me, it's to hate actually writing. Think more, write less. Programs grow large and the spaghetti nature of code can't keep up with the sheer size of the functionality.
Modularizing makes sense for having a module not concerned with what other modules are doing. Less they communicate, the better.
Last edited: