Don't take a long term job you detest for the sole reason of paying the bills. That's a quick way to kill any passion you have.
Ignore job security. You're 21. Don't start thinking about job security until you're married and starting a family. You're young enough to be able to take some risks.
While open source may be a good way to hone your skills, don't expect prospective employers to be interested in any os projects you do. The HR department won't know what open source is and a technical person won't have the time to sift through code in a vain attempt to see if what you say you did is actually any good.
Cletus recommended doing some charity work. I think that's a really good idea, much more so than open source. Unlike open source, charity work provides real clients, real requirements and real deadlines. Demonstrating that you can meet deadlines while fulfilling all requirements and keeping the client happy is something that all employers will be interested in. Having a printed portfolio that you can present during an interview will also help. The downside is the UI needs to be really good. It doesn't matter if the code is beautiful if the UI looks like a reject from the 1980s. If you're not good at graphics, partner with someone who is.
Online freelancing at places like rentacoder/elance generally don't pay much per project. Of course it's relative, the small dollar amounts may be a lot in the Dominian Republic. The big downside of working for yourself is not having any mentorship. Trying to learn good practices on your own can be hard (but not impossiible). In addition you'll end up spending a large amount of time on the biz side rather than the programming side.
So what to do?
First thing - decide what you do want.
Plan out your whole career on paper. What languages and principles you want to learn. Where you want to work - which country, which company. This will be a "living" document. The bits closer to Now will be more detailed. The bits further in the future will be more ephemeral. None the less, it's a good way to focus on exactly what you want to do and what you don't want to do.
Remember - Nothing's impossible. The world is literally your oyster. You can do anything you want. Don't let anyone tell you otherwise.
Now for the bad news.
Take the RPG job
Yep. I really said it. Take the job you don't like.
BUT - use it as a stepping stone only.
Use the time to investigate what you really want & how to get it.
Use the time to build up a portfolio.
Use the time to build up a network. It's not what you know, it always who you know.
Use the money to help fund your goal - you'll need travel and accomodation costs etc. You'll have to be frugal. Ensure you save for your goal first, before paying any existing bills (and do not incur new bills.)
Finally - don't lose sight of the fact that it's a short term position only. Review your planned goals regularly and keep moving towards them.
--
I did something similar to the above. I didn't have a good degree but i had a couple of years experience. I moved back home and spent 5 years doing something else. I decided I wanted to get back into commercial programming and so made a plan. It took nearly two years for that plan to come to fruition. Those two years were not always easy but they were necessary to get where I am today. I am currently in the middle of my next goal (also two years) and I've already had indications that it will be achieved on schedule.
Make your plan. Work your plan. Live your plan.
--
Wow - I can really ramble on...