FPG Update Podcast 001 - Rosette Diceless, GDPR, and Jenkins Pipelines
Melissa
Hi and welcome to the Future Proof games update podcast. This is a new little thing we're trying where we chat about stuff we've been working on for the last month and any sort of exciting upcoming stuff we're planning so... You introduce yourself!
Gregory
I'm Gregory Avery-Weir.
Melissa
and I'm Melissa Avery-Weir!
Gregory
So this month I guess our primary new work project has been Rosette Diceless.
Melissa
Yeah.
Gregory
It's the role playing game system we've been working on for feels like forever now.
Melissa
Possibly literally forever.
Gregory
But where we're getting pretty close to the end. We've been doing a lot of like formatting stuff on it, it's going to be a physical book as well as a PDF.
Melissa
Right so we've been doing anything from type setting with like margins and ornaments like Stephen curlicues in the corner and stuff like that changing fonts up. We've got a blog post about some of the stuff.
Gregory
Hooking it up so that like when it says, "See this section", it is a link in the PDF to the other section making the index generate.
Melissa
Exactly. Like if you think about the technicalities of that. It's like if you're reading something in a Word document, you can say, See page 49, but you write two more paragraphs. And that suddenly, page 50, right. Yeah, so like making all that sort of automated, it's been fun. I'm ready for to be done.
Gregory
Yeah, it's like we've actually written virtually all of the text now. Yeah, there might be a tweak or two left.
Melissa
Yeah.
Gregory
We've done all our testing. So it's just a matter of like, getting it polished, and getting in the right shape and the right length.
Melissa
Right. There's like the stuff where to print in the form factor we're printing the number of pages needs to is best if it's divisible by six. So speaking of not knowing how many pages you've got, like you look at it now and it's 67 pages. And then you're like, well, I need it to be 72. And then you're like, what do I put in here? Blank pages, stuff like that. So that's, that's weird. To me, it's felt like every time we get really close to being done, we're like, oh, we literally only have two more tasks, we like decided to change fonts or change technology. Or Oh, hey, something came up and play testing: let's change a rule.
Gregory
Yeah, I think I think we're done with that at this point.
Melissa
We can just call it 1.0.
Gregory
The the notes I have from today's testing session, are like a trailing comma that's on the next line when it shouldn't be.
Melissa
Oh, good.
Gregory
And like, hey, we should add a sentence here, making this more clear.
Melissa
Every time we add a sentence, I feel like we need to go back to an editor to make sure we're consistent, but we can't. Yeah, we literally can't.
Gregory
So we'll just be real careful.
Melissa
Yeah, another big thing for us this past month has been GDPR.
Gregory
It's not exciting. But necessary.
Melissa
It was thrilling.
Gregory
Yeah, there's a new law that, well, not a new law. There's a law that came into effect in Europe as part of the EU, I think passed it.
Melissa
Yeah. Plus Sweden. Who doesn't ever really want to be in the EU? It wants to be EU adjacent if I'm remembering correctly. Maybe Switzerland, one of the "S" countries.
Gregory
But you know, every single company sending out a thing saying we updated our privacy policy.
Melissa
We had to join the bunch.
Gregory
Yeah, but our privacy policy was actually pretty darn close to what they required. Because, you know, we're, we try to be ethical, right? Um, but, you know, there were a few things like, you have to say that if someone wants their information deleted, how they can contact you for it.
Melissa
Exactly. And there were a few things where we should have been deleting records after a certain--or we said we would delete records after a certain time. And it turns out our system wasn't quite set up for that.
Gregory
Yeah, we thought it was doing it automatically and then we went "Oh, no, it just said that it did it."
Melissa
Yeah. The Discourse forum, in particular--I'll call them out--had this privacy policy, they were shipping with this privacy policy and the software didn't support the feature. And so I mean, oops, but like, that's not cool. Yeah. And so like, it's one of those things where I learned is that the way Microsoft treats this is their whole GDPR stance is that it depends on where the data is at rest.
So when you look at running things in the cloud, you say, what users have data at rest in particular systems. And so you segment based on that.
Gregory
Yeah, that's, that's not something that we're kind of equipped to. We don't have the resources for that. And like, the information that we're keeping is so not sensitive.
Melissa
Right.
Gregory
Like, it is technically a thing for the GDPR and we care about it. But you know, it's like the IP addresses of people who visit our websites.
Melissa
Right, which we are anonymizing after a certain point. We're doing our due diligence, I think.
Gregory
Yeah, and it's important for to be considerate of that stuff, right? But the risk of that, you know, gets out somehow is minimal.
Melissa
Right. So, I think we did our part, but it is, for me, was really stressful. Because it's like, I want to protect consumers.
Gregory
Yeah, and we want to protect people. Human beings.
Melissa
Right. Yes, help people. Yes, fuck capitalism. We want to help people. But like, I didn't want to mess it up. I didn't want to, like end up being one of those data breaches that you even have to care about.
Gregory
And you kind of get the feeling that like, if you mess one thing up, that like, people will go after you for it. And that's only like, there's no reason why we would be anywhere close to the top of the list of anyone we go after for GDPR.
Melissa
We know who was, because--
Gregory
Yeah, because they got sued the day of: Google got sued… and Facebook...
Melissa
I think it at least those two. Yeah, like at like 00:01 GMT?
Gregory
Yeah, because this is this was coming for years, right. For us, we had a little enough work that we could put it off, right. Facebook probably has been working for years and still probably didn't get everything done.
Melissa
Right. And the question of what everything is like, what is a legitimate business interest? Like, it's, it's vague, I think, if, like, the two of us can look at that and do a pretty good faith. Like, because we are interested in not storing too much data.
Gregory
Yeah.
Melissa
If we say, what do we have a business interesting, we're going to remove things. Facebook is going to be like, "but our ads help us be a business." Right? So yeah, that was a … it wasn't crunch time. But it was definitely a very concentrated effort.
Gregory
Yeah, it was, like, we need to get this done by this date. And we worked pretty consistently. I don't know that we were down to the wire, really.
Melissa
I think we've got one more thing.
Gregory
Yeah, but I think it's, it's not, that's not pressing.
Melissa
Yeah, yeah.
Gregory
Um, but you were doing some, some very cool stuff in sort in the DevOps area. So DevOps is like, using software and automated systems to help the operations of your software company.
Melissa
Exactly.
Gregory
So like, getting, you know, automated builds and stuff like that.
Melissa
Right. So like, if you're working on a game and you're, you normally use Windows Unity for that, instead of having to necessarily log into your Mac and pull the code down and open up Unity there and oh, wait, it's time for a Unity update.
And then build it and export it and all this stuff… You could like, write--this will sound incredibly trivial--write a script that logs onto your Mac, and does all that for you.
Gregory
I mean, it's, it is more complicated than that.
Melissa
It's is significantly more complicated than that.. But yeah, and I love DevOps. There's a trade off, right? Like, how much time do you put into automation? How much time will it save you? And I'm bad at it as of yet. Like, I'm still feel very new.
Gregory
You're still learning. You're pretty darn good at it.
Melissa
I'm still learning. Uh, but I've been using we've been using a system called Jenkins, which is a build system for websites or whatever, anything, you can code that you can have compile somewhere or deploy somewhere.
Gregory
If your developer and you use Travis or Circle or Team City, same sort of thing.
Melissa
Same sort of thing, or TFS. Um, and I've been using it... forever, like, a very long time.
Gregory
The list of projects, just in our app is like…
Melissa
It's mostly my projects, yeah.
Gregory
Stuff from a decade or two ago, yeah.
Melissa
It's, it's something that I've been running, and I share with Future Proof Games, because why have Future Proof Games spin up its own thing. And so they did, like a major version release, like eight years ago that I just, I mean, I upgraded, certainly, and got all the perks of having a new secure system and all that. But I did not take advantage of all the new features, because I would have to have re-implemented things.
Gregory
Well, those new features have gotten even better over that over that decade of sitting around.
Melissa
So anyway, I decided to sort of experiment with like, Okay, so let's take, let's take Exploit: Zero Day--the main site, not the forums--and convert it into this much more transparent way of deploying. So instead of like, we write this script in Python, and we sit and look at the console and watch the code go by and hope it's not going to break and things like this. This lays it out in a very clear step by step sort of pipeline, literally called "pipeline".
Gregory
You can see whether or not each step succeeded.
Melissa
Right. And see logs related to just that step instead of everything. So it looks really cool. But deployment stuff is always so damn finicky. It's one of those things that like software code, ostensibly you could write code tests for.
Yeah, and you could probably do this in Jenkins, I don't know, but you find yourself like, "Okay, I'm going to deploy. I'm going to put the files in this place in the site will run." But well, oops, I forgot a file. I gotta run the whole thing over again. And you're just running this whole... And for us, like that site takes like five or six minutes to deploy.
Gregory
Yeah.
Melissa
Yeah, maybe maybe a little longer.
Gregory
Sometimes. If we spent more on the machines doing this stuff then it would go faster.
Melissa
But but we're already paying $15-20 bucks a month for just that, which doesn't sound like a lot. But when you say like, and we have 10 other sites we're running that kind of stacks up.
So that was an endeavor that was like, "Okay, the first the first time I do this, it's going to take a long time. It's going to take six hours because I don't know what I'm doing. Or I've done a simple case, but I haven't accounted for all the stuff on our site." And then that's one of the things… because it takes a long time to test and because it kind of trickled on. It took, like, three weeks, but it was only like eight to 10 hours.
Gregory
Yeah, because you were working on it a bit at a time. Yeah, we've both got day jobs.
Melissa
Exactly. Yes, it was evenings, weekends, and GDPR, and Diceless, and... This is why we don't generally do multiple projects at once anymore. But it was really fun and really rewarding. And it's done. And now I get to kind of find a way to a good way to share that code so that we don't have to duplicate as much.
Gregory
And I think it will save us time.
Melissa
It will for sure. Especially diagnosing issues and stuff like that.
Gregory
So yeah, awesome.
Melissa
Yeah. So this upcoming month, we want to finish Diceless. It is as we said, so close. And then, I mean, at that point, like, we're kind of looking back at Exploit: Zero Day, right?
Gregory
Right. We've got some some story to continue on with. We're working on our press kit tech. Yeah, where we kind of have, here's some quotes that journalists can use and some screenshots and the list of our games.
Melissa
Yeah. So we use we use Rami Ismail's presskit, or "dopresskit" with parentheses at the end, like a function. And it's a cool system. But it hasn't been updated in years at this point. It's written in PHP, which is not a tech we use anymore.
Gregory
It's kind of an old fashioned way of coding.
Melissa
And it's, I mean, it's a super cool thing. And we really appreciate him for writing that. But we want something a little more integrated with our system. So we use Django, Python. So we're building this out, and we'll open source it as well.
Gregory
Hopefully. If it works.
Melissa
If it works. So keeping the same sort of data structures is as he's using. As they're using, I think there are several people that work on it. And sort of just offering that as an alternative. Completely free and all that if it comes out okay. So that's exciting. But it's something we're keeping pretty low key.
Gregory
Oh, yeah, we're working on it gradually.
Melissa
Yeah, like a task, or two per sprint, so that it doesn't take over project work. But Headless Swarm will be the big thing.
Gregory
We're still signing people up to the newsletter, if you want to check out the game. We've got a season of free story.
Melissa
Yep.
Gregory
And then we've got this Headless Swarm is paid story if you like that already. We send out once a month, once every two months, it'll probably be once a month here for a while, we send out alpha keys. For, like, sign up for the newsletter, get a little bit of news, get free access. We basically just stage it so that we know that people are signing on at a certain time so that we can kind of focus on and handle any issues that folks run into.
Melissa
Exactly, but it's I mean, we still have a few hundred players. That's really cool. That's really rewarding.
Melissa
I'll be interesting what it feels like to get back to that kind of writing that we were doing. We struggled a lot with productivity on that before. So that'll be an update for next month.
Gregory
Yeah.
Melissa
So you can, as usual find our stuff at futureproofgames.com. You can find us over on twitter at PlayFutureProof and on Facebook as Future Proof Games. Let us know what you think of this format for updates! Leave us a comment or find us on social media.
Our theme music is "Juparo"--which I'm guessing that's how that's pronounced--by Broke for Free, which is available under a Creative Commons Attribution 3.0 license.