For the purpose of learning I started making a game engine (fully featured, editor, scripting, asset management, .....) over a year ago. Now though its grown into the largest project I have ever undertaken and I am quite proud of it. Its not perfect, but I made it with huge effort and time. So now I come to my dilema. I have two options:
1. Make it open source, and have far better programmers help out and make it even better than I ever could. This would encourage it's use in real world game development and I could sit back and smile in happiness that I started this engine that is used to create games. The biggest reason for doing this is so its development could be aided by others to make it as good as possible. The downside is that I would not be paid for my hours of work. This is a big downside.
2. Make it closed source, and charge some sort of business model to try and make money from it (like Unity). This would mean I would get money from my hours of hard work. The money would be used to live, and improve the engine. The downside is that it may not improve very rapidly with me at the helm and also, the market for selling engine license is very small, and I may not make very much money at all. I could have an asset store type thing and make money in this way as well, although the market is currently dominated by Unity.
Leaning towards making it open source, I thought maybe I could make money in other ways, like selling tech support and training. I have no intention of become rich with this engine, I just need money to pay for food and such. I lean towards open source, because it would make me happy to see it grow, although not completely under my thumb. I have yet to make a decision and I would appreciate hearing other people's thoughts.