Author Topic: Choosing a programming project  (Read 3790 times)

0 Members and 1 Guest are viewing this topic.

Offline Fury

  • The Curmudgeon
  • 213
Choosing a programming project
What kind of process do you go through when you choose your next programming project and how do existing similar projects factor in to that process? If you have figured out anything that has made the process easier for you, it'd be nice if you could share your thoughts. :)


Offline Flipside

  • əp!sd!l£
  • 212
Re: Choosing a programming project
Heh, if I knew the answer to this one, I might actually get a project started ;)

Seriously though, the first thing I tend to do is just write down what I want it to do, I've had some ideas that are great in theory, but when it comes to writing down how things would work in practice, I suddenly find brick walls that I never knew were there.

With regards to similar projects, it's that thin line between inspiration and emulation, as it were, some methodologies in games make so much sense in certain circumstances that it is almost impossible not to use something similar, the hard part is implementing it in a way that enhances or expands on the original implementation.

Also, personal competence comes into it in my case. I'd love to write a computer game, but if I did, it would be 2D Top-Down (or possibly isometric) graphics, because (a) I lack the mathematical and technical knowledge to go 3D and (b) I personally would rather concentrate my energies on coding a game engine than a graphics one, so the less effort I need to put into one thing, the more I have spare to put into another.

The hard part is always trying to find a compromise between my vision and my ability ;)


Offline emkay

  • 23
Re: Choosing a programming project
Although being C/C++ software developer in work, I never did a programming project in my freetime so far (apart from some few code line tryouts).

That is mainly because for every little task for which I thought "hey, I could try that on my own", someone had already done that in some more or less fancy open source (or other type of freeware) project.

Sometimes, however, I think it would be great to get involved in some open source project, but then again the big question is: IN WHICH ONE?

For now, I decided to gently start setting small footsteps into the Freespace SCP. But then again, it comes down to having time and leisure and getting to know the code - and the SCP has quite some code lines... :nervous:

To give this post some reason (or not): If anyone has some recommendations on what I could try out (whether in the SCP or not), go ahead. My only personal constraint is: It should not be too time-consuming or urgent, as I really don't have as much time as I'd like to...


Offline Goober5000

  • HLP Loremaster
  • 214
    • Goober5000 Productions
Re: Choosing a programming project
To give this post some reason (or not): If anyone has some recommendations on what I could try out (whether in the SCP or not), go ahead. My only personal constraint is: It should not be too time-consuming or urgent, as I really don't have as much time as I'd like to...

Glad you asked. :)  You should check out this thread, in particular this post.  And don't worry that FSO has such a large codebase.  It is divided up into sections, and most of the sections can be understood on their own without needing to know about other sections.


Offline emkay

  • 23
Re: Choosing a programming project
Thanks for the hint, Goober5000, already been there before.

Though that is really a thoroughly detailed description on where and how to start with Mantis and SVN, I still have the feeling that most bugs reported are either very exotic and hard to reproduce (isn't it always...?) or you need extensive knowledge of the code to fix them properly. (But to be honest, I didn't actually check that many bugs recently.)

So, my problem is really, that some SCP expert would need to give me some guidance like "you may try fixing this bug here...".
But of course, I'm well aware that if others would ask the same, no one would actually get any work done.

So in the end, I just need to convince myself of doing what many others have obviously done before: Getting to know the code on my own.

I should note that my work experience is mostly in the area of embedded programming. Hence, I never dealt with shaders, game engines or anything the like. But if you like to get FS running on a 125 MHz microcontroller without graphics or command bash, then I'm your guy.  :pimp:


Offline niffiwan

  • 211
  • Eluder Class
Re: Choosing a programming project
I'm certainly not an SCP expert; but these are a couple of bugs that seem like they should be fairly straight forward to fix.  I think they both just need conditional checks added to the relevant sections of the code.  (Of course, I'm not familiar with those sections of the code myself so I could be completely wrong about how simple the solutions would be..).  As for reproducing the issues; I'd hope that the bug submitters

As for the question in the OP; I find it difficult to answer in a useful way.  I think I need a driving need or a deep personal interest in the project. I need something that will motivate me to spend the required time learning about what I need to know to be able to write the program, and to be able to push on when I inevitably realise that I've taken the wrong approach and need to refactor large portions of what I've already done  :lol:
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
Debian Packages (testing/unstable): Freespace2 | wxLauncher
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...


Offline Polpolion

  • The sizzle, it thinks!
  • 211
    • Minecraft
Re: Choosing a programming project
I don't do much outside of work these days but usually what I do try is usually because I want to try some library/technology, or something random online piques my interest. My current half-hearted project is a simple game engine. It's a smaller project than you'd think because you really can't do too much in spare time without focusing on a particular kind of engine, but it would be a nice starting point for the handful of game ideas I have as well as keeping my paltry knowledge of SDL and OpenGL from getting too out of date. Before that I wanted to write a program that would pull NYSE data from Google finance and see what I could glean from it with some machine learning algorithms, but I gave that up pretty quick. Before that I wrote a simple logic programming language based on s-expressions mostly because I had written a parser a few years earlier and I thought the idea was kind of neat (though useless; context-free but not turing complete).

I can't really maintain interest in any one thing for more than a couple weeks at a time. Work is a bit of a mixed blessing for motivation because I see a lot of interesting problems and ideas but it's difficult to spend 9 hours a day programming then come home and spend a few more hours programming. Most of the reason I'm still working on the game engine is because I know that if I finish it I'll be able to repeatedly come back to it as a starting point, and if I code it right it will be useful for more than just games.


Offline emkay

  • 23
Re: Choosing a programming project
Thanks, niffiwan, I might have a closer look as soon as I find time again.

Maybe there's another rather psychological thing to it: If the bug really should be easy to fix, why didn't anyone fix it yet...? ;-)

Just kidding, of course I know that there are different priorities to them. And maybe those "small" low-prio bugs are even left for a reason: To give others the possibility to get familiar with the code and give them the feeling of being helpful (which they actually really are) very soon.

Reproduction is indeed an issue for some (or many?) bugs. But for me it's admittedly rather laziness: I just don't want to install a particular mod just to be able to start a mission where the error was found in the first place and is guaranteed to be reproducible. But of course, I know that that is actually not the proper attitude for really getting into bugfixing.

We'll see... maybe I just have to convince myself a little bit more. :-)