I'm sorry, but I have to say, I personally don't like these posts lately with obfuscated code driving people to Patreon to pay for the useful-to-learn-from code. Feels very counter to the spirit of Pico-8.
I think I'm going to stop commenting on any post that has obfuscated code with the real code behind a paywall. It's easy enough to click the Code button and see immediately whether or not it's obfuscated. I don't want to encourage the practice by bumping what are basically ads for a person's Patreon to the top.
I don't mind people encouraging Patreon donations, mind you, but when they're dangling the original code as a carrot for their Patreon, that's what feels counter to the spirit.
Yes, it's kind of a weak stand to take, since I'm not everyone's cup of tea anyway and my comments may not have been welcome in the first place, but it's all I've got. :)
Edit: Quoting my post from below:
By the way, I want to be clear about something:
I'm not calling for rules against doing this, or for zep to do something about it. I'm saying I don't like it and I am personally not going to encourage it. That's all.
It's a difficult one, coz I can see it from different sides.
("Many sides... many sides.." *tiny Trump hands waving*)
I'm not sure how many members are using the approach you describe, but I would have to agree that hiding source behind a "pay wall" could be seen as a withholding useful lessons that the community could otherwise benefit from.
On the other hand, if you've spent MANY hours creating something - I can fully understand you might want to try to make the most of that effort and try to get something back for it.
All this being said - if I was a student nowadays (or basically wasn't working full-time like I have been for TOO MANY years now), I might be tempted to go down the Patreon route as a way to get something back for delivering content.
But I don't have the time and don't want pressure to deliver valuable content. That's just my opinion, for my current situation.
I can imagine we'll have similar discussions when PICO-8 supports binary exports.
("Great Windows/Mac game - but where's the code?!")
P.S. - Where do you stand on Obfuscated code in general?
I loathed to use it for SCUMM-8 - for exactly the reasons you mention, but it became an absolute necessity to realistically squeeze everything in.
I guess the difference in my case was that I also put the unobfuscated code on GitHub.
In short. I'm not helping this discussion - I'm just rambling. I'll be off now... ;o)
I think it's cool that it exists. I love the idea of Patreon, and I love the idea that there's a big enough Pico-8 audience that it's worthwhile for someone to do that!
On the other hand, all the Patreons I back offer the large majority of their content for free, so I'll admit I do find it a bit grating to see intentionally obfuscated code posted here as advertisement. It feels a little ... I dunno, condescending?
I don't think it's a huge deal at the moment, if it becomes one then Jep could create a new sub-forum and shunt the obfuscated posts to that sub-forum.
If you're literally writing a commercial piece of software, then I get obfuscating your code. That's functionally what compiling code does anyway. But that's different.
If you can't fit regular code into a cart because of size limits, then I get compressing your code as much as is necessary. This obfuscates somewhat, but not like using an actual bespoke obfuscator.
Telling people that, if they want to learn from your two-page demo, they have to pay you, that is what feels very counter to the educational spirit of Pico-8.
@Felice: Understood. That's how I read your position, but thanks for clarifying. ;o)
I don't see this happening a lot, but I agree it's somewhat against the spirit of this board.
also you can upload almost any file to the bbs (profile->files). so, even if the cart you post is "obfuscated" for good reason, you can still post the original p8 file alongside.
on the other side I'm all for using pico-8 as a framework. There's no reason you should feel obliged to share everything you do with it.
[inserting 2 cents]
I agree with Felice that holding Pico-8 code for ransom is kind of ugly. I would hope most folks wouldn't be doing that. Honestly, it never even entered my thoughts until I read this...
But my POV on it is that if you want to charge for games, great, but use something that natively offers that ability. Like GameMaker or whatever...there's no shortage of software to make games.
There's nothing you can't do in Pico-8 that you can't do in others. So if you want to sell your game, use one of the others. If I make a Pico-8 game and it gets popular and I want to make money, I'll port/rewrite it in GM or whatever...someplace that spits out a standalone or app. Why deal with Pico-8's restrictions when you're trying to build a game to sell?
I'd argue that Pico-8 is not where you go or what you use to make a commercial game. Build your ideas, try concepts, have fun with it and learn but it's not the end game if you want to make money.
Of course, I'd also like to think that even if you posted your games/code in the forum in plain view and also had a Patreon page, people would be appreciative enough to support you. If I find a source that is repeatedly reliable and quality, I'll support them with some money, no sweat. Tip jar style.
btw "holding code for ransom" is a poor choice of words imho.
buying pico-8 doesn't entitle you to everybody else's code. I think this is more a case of "shameless plug".
I added "...with the real code behind a paywall" to the condition where I'm not going to comment on a post. I know sometimes people need to do horrible things to their code to make it fit.
Honestly, this is a really gray area. I'm sure there's some value in people having a financial incentive to teach others, but I think that value is really counterbalanced here, specifically, by the bad fit with the spirit of Pico-8. I don't actually think anyone is being a jerk by doing this. Indeed, I'm not sure I've ever seen someone posting here whom I didn't end up liking. I love programmer communities and this one's pretty great.
We all need to earn a living and earning a few bucks from pushing your Patreon is not any sin, really. It's just something I don't like seeing here. It's a gut reaction that might not be logically supportable. It's just MUH FEELZ speaking up. It's not black and white.
You're right. I'll change it, and I apologize to anyone on the other side for overstating it.
Remember, though, that I'm only saying I don't intend to comment on these posts anymore. Indeed, I'm not entitled to anything from anyone, ever. The only thing I'm entitled to is my personal reaction.
Great discussion! You all have covered some very good points and it was an interesting read.
Still, I have some things to add:
P.S. You can find the non-compressed version of that comment on my web site.
P.P.S. Not really. I don't have a web's site.
P.P.P.S. - @Felice - Don't delete it. It's a good discussion that hasn't really happened here yet. I feel like the end consensus is 'people use p8 for different things and we want a community that supports all of that, even if some of us personally prefer it as a totally free/open education focused thing' - but it's still a conversation worth having.
Please don't delete the topic, even if it is polarizing.
I'm probably as close as you can get to the "other" side of the issue. I am a person who has a Patreon and perhaps also the person whose posts spurred the discussion. Still, I'm happy to talk about this, and I think you (and the community) have the right to express your opinion on the issue.
I understand linking to a Patreon might rub people wrong, but the fact is: if I don't link to it, nobody will ever come there. People are also more eager to pledge their money if they get some value out of it - things that they wouldn't have otherwise.
In my particular case, I've decided to have the source code to some of my PICO-8 stuff to be one of those "extra value" things for patrons. At times, I'm not very comfortable with it myself - in an ideal world, all source code would be shared freely. But in the real world, I don't have a steady source of income other than my Patreon, and the full source code being available only to patrons has a real effect on its popularity.
I try to share as much as possible within these constraints. The noodle engine (the latest cart with an obfuscated part) has full documentation and plain-text examples so that anyone can play with it and make stuff with it. I always try to answer questions in a timely fashion, explain the principles behind what's happening in my carts when asked, and even write full articles explaining all the details on occasion.
I agree that limiting the distribution of the source-code is not ideal, but I don't have a better solution for the time being. If linking to my Patreon looks like I'm asking people for money, that's because I am. But it's not greed. What I say on my Patreon is actually true - without the support I get from it, I would have to stop devoting so much time to PICO-8 projects and redirect it to commercial efforts. I also think that I do provide some value in return, and not only to the people who pledge money.
I think that's it from my side. I'm happy to discuss any of this, and it's not like I'm entrenched in my position or anything. What I do is just the best compromise I was able to find so far given my options.
Well, Limiting the sourcecode to me seems unnecessary, As if the Patreon side of things was all about helping people learn the more advanced things that can be done with Pico-8, Or even expanding off into other flavors of LUA for people who are used to Pico-8 but might want to move onto larger fuller versions of the code in the future could be useful and charging a little bit for the time (And sometimes headaches) of teaching makes sense, Others might see the teaching as something that should be free alongside the code.
I'm not sure where I stand myself on this as I can honestly see the arguments on both sides and there's no right or wrong answer, Just the background fear that more people might start doing it.
You aren't the only person prompting people to check out your Patreon, so please don't feel singled out--not at all. In fact, I haven't specified any names because I happen to like the people who are doing this, and that includes you. I respect the code they write and pay attention to their posts. I usually get how to do what people are doing, so the paywall thing isn't actually limiting me personally. I'm clever, not creative, so I get a lot of ideas from seeing what you guys do, rather than how, if that makes any sense. With me, you're putting the wrong stuff behind the wall. ;)
Anyway, I don't think it's a coincidence that the people able to make some part of their living off of Patreon are the ones who are skilled and noteworthy. On an inter-personal level it doesn't bother me at all to have people like you utilizing Patreon. I think Patreon is a freaking fabulous thing. In almost all other contexts there wouldn't be any level at all on which it bothered me.
Like, for contrast, I frequent user-generated content sites/forums for The Sims. Yeah, I'm one of those people. Hush. Anyway, Patreon paywalls are everywhere there. That doesn't bother me. I understand it there (well, I understand it anywhere) and it's totally in context there. I 100% expected it, and I 100% found it.
Here, though, I've had the impression there's an explicit Pico-8 goal of educating people. Like, it's part of zep's hype, as I recall. It's an entire IDE and simple supporting OS for dirt cheap and you can make small games from scratch in no time. Almost anyone can afford to pick it up and the fundamentals aren't complicated. Best of all, it's set up for sharing projects and ideas across the web. I can't see it as anything less than a collaborative learning tool.
Thing is, as great as the platform is, it's the community that makes a platform. If we segregate the less-funded people from the knowledge, that seems counter to the goals. It's young people, the target of that goal I perceive, who won't have the money. (See: the 11-year-old who posted recently.) That just seems like a shame to me.
For what it's worth, I think doing the Patreon thing on, say, TIC-80 or Liko-12 or PixelVision8 is fine. Like, I get that I'm turning into a broken record by now, but my inner protest is super, super specific to Pico-8.
Edit: Decided I overshared some personal info in this post. I don't mind oversharing, being someone who wears their heart on their sleeve, but I know it makes some people uncomfortable. Let's just reduce it to: I've been unemployed for quite a while due to health issues, so I understand needing money, believe me. Can't fault anyone for that.
I also love PICO-8 and its community, and I enjoy being part of it. I also believe there is space in it for many different approaches, including both giving everything away as CC and making a small amount of money from your efforts.
Interestingly, PICO-8 is also not open-source and not available for free, despite its partly educational purposes. This is unfortunate for those who cannot afford it, but I expect that being able to earn money from PICO-8 has an effect on the quality of the software and the time zep can devote to improving it.
I think we both understand each other, even if we have different opinions. Thanks for keeping this discussion civil, and I hope we can continue to enjoy and share with the community in our own ways.
maybe there's just a (soft) line to be drawn: avoid posting dry self-promoting stuff.
"here's a code snippet/unobfuscated small cart/game/tool/toy, find more on my patreon" is fully ok imho.
You keep mentioning that obfuscation is "against the spirit of pico" but pico itself isn't even open source.
> For what it's worth, I think doing the Patreon thing on, say, TIC-80 or Liko-12 or PixelVision8 is fine
TIC80 and Liko12 actually ARE open source, so it would seem your argument is a bit reversed.
All things said though, everyone has their reasons. If you're interested in someone's work, you should reach out and ask about it. No one should feel entitled to things they see on the board, and certainly shouldn't take even the things that are well documented and readable as open licensed, because that's not a given.
Personally, I've never never even run into obfuscated code here. I'm more like you, if I see something, more than likely I have a pretty good idea about how it works. I usually only check the source on some of the interesting demo projects/experiments.
I think this is a worthy topic of discussion, though the important bits seem mostly hypothetical. I haven't seen anyone obfuscate code with the sole intention of charging money for unobfuscated code. I also don't think it's a bad pattern (or a slippery slope) in the cases where devs are minifying code because they've packed a cart, and are offering the unminified code as a bonus. While I think code for big carts is educational to a certain extent, it doesn't seem like a big loss: the size also limits the educational value. The remaining cases I can think of don't seem like a threat to the community or anything we'd want to discourage: charging money for intentionally produced educational materials, or selling a game commercially with no intent of sharing the code.
There's a relevant distinction between a patronage model, where patrons pay for it and everyone gets it, vs. a commercial model, where only people who pay for it get it. There's so little money to be made that I think we have to let artists navigate this distinction for themselves, and just support whatever we feel like supporting. It's not obvious which model will be more successful for any given project. Ultimately, we have plenty of people willing to produce free code samples, so people charging for some isn't going to be a problem in practice.
More interesting to me is the need to minify code for big carts to begin with, and how this works against the educational goals of the platform and community as a matter of natural consequence. Minification provides a minor boon to the compressed char limit (because it removes information that the interpreter doesn't need), and this boon has major value when you're working on a large project and need to finish one last thought. Even ignoring the cart storage format issue, we can't eliminate the compressed char limit without inadvertently encouraging devs to offload data into strings, which IMO would be detrimental to the community.
One technical solution would be to restructure the limits and file formats to make the boon provided by minification automatic in a way that allows the unminified code to remain part of the published data. Based on how it works today, this would need two parts: 1) build minification into the publishing process and change the compressed limit to be the minified compressed limit, and 2) allow the unminified (but perhaps still compressed) code to grow well past this limit, such as by storing it in the PNG as a separate data block. An unminified limit is still prudent to prevent maliciously large code regions, but it should provide plenty of headroom for comments and good variable names. It all gets published together, so the Pico-8 editor and BBS can both see the unminified code.
("Minified code limit" is effectively the token limit + code literal data size. Either seems fine, but the code literal size does need to be included somehow. It would seem conspicuously artificial to cap code literals directly, so that's a matter of style.)
Then there's the social solution of having discussions like this one where we assert our community interest in code sharing. I think that's worth doing too.
P.S. This is an old and unrelated topic, but re: "pico-8 isn't open source," consider that it is, by definition, valuable to the community that 1) we're all using a common platform, and 2) that platform has limits. It's a natural and even necessary part of the community dynamic to push on those limits. If Pico-8 were open source, that dynamic would manifest in part as feature requests and pull requests that would extend Pico-8's range. If those requests are rejected, people would fork Pico-8. Either outcome is a threat to these values.
Even without being open source, Pico-8 has spawned clones with different range profiles (even, as you say, open source ones). That's not a bad thing, but we're hard pressed to consider them all part of the same community. All of these projects benefit more from tracking a singular vision than from being traditional consensus-fit software platforms. Otherwise we might as well develop for any run-of-the-mill gamedev framework. I personally have no interest in the other fantasy consoles specifically for this reason.
[Edit:] I'll level a self-criticism that I appear to be willing to be pragmatic about some community dynamics and then proceed to make an entirely hypothetical argument about how the community would respond to an open source project. I think what I mean to say is that I don't believe Pico-8 would benefit from being open source in the usual ways software platforms benefit from being open source, and in some ways it would work against its goals. There would definitely be some benefits, community-contributed bug fixes and the ability to publicly inspect how the platform works in detail in particular. And demands to mutate the platform beyond its range may not manifest in practice. But Pico-8 gets pretty much all of its charm from the vision of a singular developer, and I'd worry greatly about diluting it.
ok, look for pizza generator and super mega bread.
now let it be clear that I'm not throwing stones. I'm just a little worried that these could become a trend.
maybe there could be a separate section for "external" annoncement/promotion?
@dddaaannn brings up a great point about forking that I hadn't really considered before. I don't think that that's just a hypothetical actually.
Currently, we have ... what, half a dozen pico8 'clones'?
Several of which have a goal of directly mirroring (and then extending) the API while extending things like the character/size/resolution limits.
It isn't beyond imagining that if the process were made simpler (sure, open source wouldn't just mean you could change a few constants and end up with a working 2x powerful p8 -- but it's definitely simpler than rewriting everything) that we would have pico-16 pico-32, etc etc., pop up. I'm not sure that the community would fragment in a meaningful way though.
It all comes down to how different people want different things from p8. I want to be able to push artificial limits while creating (hopefully) interesting things, and then be able to share them in an easily distributable format. And I want to be able to interact with a community of people at a variety of skill levels who also enjoy doing those things. I don't think that anyone following a patron model is a threat to those things. They're just in addition to them.
I do think that the forum needs to be updated to allow for some features like thread watch/post notifications and direct messages though. I think that is a much more limiting factor for community communication and growth than not being able to review the source code of a handful of projects.
Some of this is going way past my original commentary. That's fine, discussions evolve. I just want to keep one thing clear:
What people actually do with Pico is indeed their call to make and no one can tell them otherwise. We all paid for Pico, we all get to do what we want with it.
All I'm doing is talking about my reaction to something I've seen done here and there, moreso recently. No one's a villain, though, and I don't claim my reaction is necessarily correct or rational. It's just my gut reaction.
I'd ask people to go easy on the "how should it be handled" stuff and not to point fingers at anyone.
On the side topic of merits vs risks of open source, I would think the merits far outweigh the risks. The people that want to rip or decompile pico-8 will, or can reasonably clone it without much trouble. I don't think that just because people suddenly get access to the source that the competition will catch up or anything. Pico was the first and still is the most popular. Pico is nice because it has specific restraints and a nice community. That's unlikely to change just because people can see the source. But if it's open, it can benefit from the knowledge of the users to help performance fixes, security issues, fixing that code the gets exported to html. Zep would be freed up to work on new features or Voxatron, or whatever, instead of trying to chasing/trying to reproduce bugs from vague complaints on the bbs. OS is a fgood thing, people can try all they want to replicate the secret sauce, but I'd say the secret sauce is the community. Any further meddling or tinkering will only bolster the reliability of the code.
Just my opinion. Obviously it's not charity, and there would have to be some other kind of business model, but there's plenty of game engines that are open source but not totally free.
yeah sorry for the name-dropping dick move, I was trying to re-center the discussion by answering the "I've never seen it happen" comments above. they're fine people and did nothing wrong. only it's a new kind of post that got me scratching my head too. I'm not angry nor really worried. this forum is evolving with the people participating, and that's not even remotely a bad thing.
I think the pico-8 open source debate is an unrelated topic, though.
[Please log in to post a comment]