So this is something that has been on my mind quite a lot recently when I get in one of those moods where I want to work on something. In the ARMAverse there has been numerous debates on this over the years and as a person who has learned a lot, simply by shifting through others work to releasing my own large-scale projects, I would like to think that I have a pretty interesting take on this topic. Now a lot of what I will be saying is mostly focused around the ARMAverse with some loose transitions to actual open-sourced projects that you would typically find on let’s say GitHub.
Let’s face it, everything in ARMA is pretty much open-source in a way because there is no real practical way to keep something from the public. People such as myself have taken measures like keeping crucial parts of functionality locked away on the server and transmitting it over the network to clients after they load into the game, but from a performance view-point it’s really inefficient. Others have obfuscated the code (making it look like a bunch of jibberish) which honestly is also inefficient and quite a lot of work to be done. Some have done this successfully for years but eventually people just piece it together.
Open sourced projects are really good for giving others insight on how to approach something, structure and generally good or better coding practices. In the ARMAverse this is vital because every little bit of optimization is key, so learning the best code practices for heavy duty tasks is really good. Another upside to open-sourced projects is others can learn, adapt and even contribute and correct mistakes that may of made, or even show us a better way to tackle the task that we didn’t think of.
An example is my very crude methods I had to improvise with at the time to do specific tasks in Atlis Life or even Wasteland, at the time I came up with the best solution I could think of to achieve the effect that I wanted, later down the road someone else achieved it in a more optimized manner, and some times in ways I never thought of. It allowed me to grow as a programmer. By allowing others to analyze and correct mistakes allows us as programmers to learn more and more. There is never really one way to do something and there is always quite a few different paths that can be taken, learning how others take that path is always interesting, at least to me anyways.
I never went to any school or anything for programming, in my early days as a teenager I learned just by looking at something, having some understanding of what each thing did, looking at the code as a whole and piecing it together in my head of what / why it was doing something, now this was for the MIPS assembly language so I was basically looking of a bunch of hexadecimal values, converting it and figuring out what they meant. As I got more serious into programming and was introduced to the languages we know today, I started to learn from others work when I wasn’t able to come up with a solution myself. what I learned from their work I was able to adapt and use in other tasks later down the road.
Open-sourced projects are just good in general for keeping something alive. It’s 2019 going into 2020, things like Altis Life and Wasteland are still going strong to this day even after releasing them 6-8 years ago, pretty crazy right? Well I think it is.
The only bad thing to open sourced projects is a lot of lazy individuals will come along and take the work you and others have put in, just make a quick buck off it. Honestly it’s not so much that open source is bad, it’s just people in general. You will have people like me or maybe even you the reader who wants to learn and grow, and then every once in awhile you will get someone that is just straight up lazy, un-creative and maybe even unfulfilled. They will come along, take your work and claim as their own. A lot of the times in my case they used it for monetary purposes and what really sucks about it, is that it discourages others from ever releasing their work. As I have grown over the years, I noticed that people that typically do this is younger people, and very rarely with older people. This is one of those situations where I would absolutely love to see a study done on things like this to see maybe why they decide to make actions like that but hey i’m weird like that.
Now you’re probably thinking well can’t you just license your work under like an MIT license or a Creative-commons license? You can and a lot do but the problem is, you as the intellectual property owner have to enforce it yourself, and to do that requires money and even lawyers. In ARMA it’s even more difficult to enforce it because technically we are modifying something that is owned by Bohemia Interactive and we have to make sure that our licenses aligns with their licenses & agreements, if there is a conflict then it’s pretty much ‘poof’. There’s been tons and tons of discussion on this over the years, but the sad reality is that at the end of the day you have no real rights, you do but pursuing them isn’t a viable option so it’s pretty much like having none. You can issue DMCA’s and stuff but to really put a stop to it is just too much work and money.
Ultimately you will have this decision of whether or not you should release your work, you’ll probably weigh in the pro’s and cons. For me I mostly ignored the cons because at the end of the day the pros always made me feel better. Being able to release something such as Wasteland or Altis life allowed others to get into the game, learn from my work and even adapt it. I knew from releasing Wasteland that there would come a time with Altis life that if I released it, someone or some community will come along, take the work and claim it off as their own. Eventually stealing the spotlight from me in a way.
It wasn’t until Altis life that I learned that not only that could happen but they would also profit off of my work and real talk, they profited a LOT off of my work. It really hurt me because I never released my work or even worked on something for the sole intent of making any money off of it, I did it because I simply enjoyed it and wanted to share that with others. So with that said even after all of these years I don’t regret for a second releasing any of my work, I only regret how I handled situations.
My advice for big projects:
My advice for small projects:
If you really want to release something you made to the public because you think it will be useful, then just do it. The real victory isn’t creating it, but seeing others enjoy your work or even learning from it.