On “Master/Slave” and How Godot Developers Handled Calls to Change The Phrase
by Mariken S.
I've been making games for a while, and I've been sitting on some finished—but unreleased—Binky games since 2018. They were all made in the Godot game development engine, which because of what I will elaborate on in this essay, I can no longer use consciously. I really would have tried to finish this essay which I felt was necessary to include alongside the games sooner, if it were not for my depression, the banal pressures of university, and the ongoing COVID-19 pandemic among others. I would like to heavily thank my friend Nikki for revising and editing this essay.
As full disclosure, I am a white woman who lives in the USA. Thus I do not have a lived experience of racism and the legacy of slavery. If you find issue with this writing, feel free to message me on Glorious Trainwrecks or other avenues. My page is found here: https://www.glorioustrainwrecks.com/user/24039
You will need to make an account in order to message me.
The event as described happens in March of 2017. On the development website Github, user Hikari-no-yume spoke up on the word choice for Godot's scripting language. She states that the word choice of Master/slave "may be unfortunate..." and that "At the risk of starting a flame war, it might be worth changing them." And well, a minor flame war of sorts did begin in which some of Godot's developers revealed their true characters.
The entire conversation can be found here:
https://github.com/godotengine/godot/issues/7986
An archived web page defines master/slave as "a model for a communication protocol in which one device or process (known as the master) controls one or more other devices or processes (known as slaves)"[1]. Said page now redirects to
https://www.theserverside.com/opinion/Master-slave-terminology-alternatives-you-can-use-right-now
In contrast to attempting to defend the term, as some Godot developers did, the authors of this website seek to provide alternatives in language.
I think it is clear: Master/slave is an inappropriate and racist term. These 'slaves' are not people, they were never taken from their homes and forced to work in unbearable conditions. They have never had to suffer the innumerable accounts of life under slavery that can be read or watched. This linguistic metaphor trivializes the centuries long experiences of victims of slavery and their descendants. These so called "Master and slaves" are pieces of hardware, of plastics and metals, of zeros and ones. Though in regards to the last sentence it should be known that many electronic devices and their components (see: conflict minerals) are created in unethical and unbearable conditions. But that is another essay. Furthermore, the problem of Master/slave is not just one that is exclusive to the Godot engine, but the field of Computer Science as a whole.
Going back to the issue as brought up on Github, some seemed receptive to Hikari’s request, but one person in particular gave a strongly dismissive response. Said person is Reduz [Juan Linietsky], a head developer of the Godot engine alongside Ariel Manzur. His objection is as quoted:
"Sorry, I think this is stupid, slavery has been erradicated centuries ago and there is no one alive that could be offended or discriminated by such condition.... I understand there are a few retrograde countries still around, but i think naming convention in a game engine is the least of their problems. ...I'm all for stuff like inclusion, equality, human rights, etc. But using less clear and accepted technical terminology for groundless cause (IMO) is not a good idea."
I think this is an incorrect reasoning. Slavery has been ceased in the manner of the USAmerican plantation (chattel slavery), but still there is human trafficking, the prison-industrial complex, and other atrocities. The memory lives on in many a people's consciousnesses. There is even discussion of trauma that can be passed down to generation to generation. The scars of such deep atrocities do not heal easily as this Reduz could think. He does not consider the feelings of people who are different from him. Reduz mentions "retrograde countries" but does not really elaborate on this concept. Does this imply that Reduz believes the fact that slavery is a problem in the global south is a reason that the global south is how it is? It is a circular logic that does not think of the etiology, the origin, of the problems of the global south. Does one not remember the hundreds of years of colonialism and imperialism of the Global North (mainly the European powers) upon Africa, North and South America, and Asia? The Global North exploited these areas for their labor force and natural resources among other things. This statement is merely scratching the surface of why the Global South is how it is. This further ties into Conflict Minerals, where most of the conflict is in the Democratic Republic of the Congo (A former colony of Belgium until 1960). This website seems a bit outdated but it is a good starting point if one wants to research conflict minerals in the DRC: https://conflictmineral.wordpress.com/
Another one such complaint by "freemanfromgodotengine" says more of the same:
"I checked. Original text by Global Language Monitor[2] says clearly, that it's all about Political (in)Correctness. So, imho, if we are not making politics here with Godot - and we are clearly not, because it's a game engine for all - we should stay with the most logical terms and meanings of words..."
Game engines and politics!? In the circles I orbit I have seen some mockery of such behavior, of thinking that games can be without politics. And the phrase 'Political Correctness' is a dog whistle to reactionaries. It is often used to either point to the antisemitic conspiracy theory called 'Cultural Marxism', or simply to mock anyone who supports leftist or liberal policies. It is a dangerous phrase to use. I think the fact that the Godot Engine is “free and open source software released under the permissive MIT license” https://godotengine.org/license entails an anti-capitalist political bent in a world full of computer program subscription licenses. It is to go against the almost monopoly-like nature of proprietary software such as Microsoft and Adobe. Free and Open Source Software is, in many cases, a community effort. Godot is one such example. Does freeman’s use of “for all” not entail a collective use? Is Godot not for people who object to the use of "master/slave" terminology? Because of this fiasco I feel excluded from using this engine to make games! I do not feel comfortable working on games if the lead creators of the game engine have such a dismissive world view of such issues.
There is some more talk of it not really mattering, and then a few days later the administrators close the issue. However, on Godot's official IRC channel, a less visible but still public space, further discussion continues.
Reduz acknowledges other’s experiences by saying “Where I live, racism pretty much does not exist, so I am completely indifferent to master/slave terminology, but I can understand if this was more offensive somewher[sic] else like in the US”. What proof does Reduz have of racism not existing in his publicly listed location of Buenos Aries? A cursory internet search gives discussion of racism and the likes in Argentina. Continuing the conversation, the community members make light of the debate, with Reduz joking that “Also, I suggest we replace master/slave with slug/human”. This trivializes and turns the traumas of slavery into science fiction tomfoolery. He further invokes a foolish straw man to replace “master/slave by sjw/whitemalecis” with no understanding of power dynamics, the benefits of being white as opposed to being black, the benefits of being a man as opposed to a woman, and benefits of being cisgender as opposed to being transgender.
As of 2018, Godot now uses the word "puppet" as opposed to "slave", shown here: https://github.com/godotengine/godot/pull/22087
Regardless, when discussing the change in a separate thread, now only open for comment to developers of the Godot engine, Reduz's behaviour still comes off as dismissive, arrogant, and heedless of the reasons for such a change being demanded. His responses can be found here https://github.com/godotengine/godot/issues/7986#issuecomment-421185969
To highlight an excerpt from Reduz:
"I hope you understand that, even though the majority was in favor of this change, most of Godot contributors are not from regions where the "slave" word (still) has a strong negative connotation (case in point, most contributors are not from the US). The world is more complex than many believe it to be."
Perhaps this has a tinge of calling feminism and civil rights movements as 'western propaganda'. It echos of freeman's comments of 'Political (in)Correctness'. It makes it seem as if the legacy of racism in South America is not as damaging as it is in the United States, Canada, etc.
To conclude this writing here are excerpts of further evidence of the Godot development community's problems from the IRC chat logs, publicly available, and my commentary:
[15:00:31]
[15:01:56]
Windfisch's words come off as indifferent to the feelings of those upset by the use of the "slave" term! They think of a few developers, who may or may not even care about the issue, before the good of the community. They value the right of the lead developer to be argumentative over creating a positive and welcoming space. What entails a "more valuable developer"? Does Windfisch find white people who are indifferent to racism in terminology more valuable then people of color, or anyone who takes offense to the "master/slave" term? I think that is what this user is getting at.
[14:52:23]
[14:54:20]
[14:54:36]
Again Reduz accuses the act of correcting the language as being of an USAmerican centrism. And again the reactionary phrase `politically correct` is used. Does he really believe that USAmerican colleges are centers of Marxist indoctrination?
[15:08:12]
[15:11:23]
Just as the theory of intersectionality can be used to describe an interlinking of oppressed people, it can also be used to describe how oppression under slavery and bondage is interlinked with oppression as a lgbtq person. It is reductionism to dismiss anti-racist language as simply lgbtq persons being 'frivolous'. It is dismissive of the decades of work by civil rights activists.
As mentioned, these IRC logs are publicly available, and logs I quoted from can be accessed from the link below. There is much more evidence of harmful remarks and debates within.
http://godot.eska.me/irc-logs/devel/2018-09-13.log
http://godot.eska.me/irc-logs/devel/2018-09-14.log
In conclusion, the behavior of Reduz in regards to the “Master\Slave” situation is my primary motivation to stop using Godot Engine. I do not seek to shame anyone continuing to use the engine to make their games. I am simply a person with a strong conscious. Thank you for taking the time to read this.
[1] https://web.archive.org/web/20170204003218/http://searchnetworking.techtarget.com/definition/master-slave
[2] A word of caution: As of writing, the website for the Global Language Monitor seems to have real life gore on the sidebar. We can conclude that the website is biased to the reactionary right wing by its' use of the phrase 'political correctness' and claiming words such as cisgender are 'politically incorrect'.
15 Ways to Surprise Your Little One
Children of young age need to play with higher level toys that sharpen their mind and enforce physical activities, and due to this reason, while selecting a surprise gift or toy, it should have cared for that product should challenge the growing abilities of children physically and mentally. There is a list of 15 ways that surprise your little one.
1. BrainBolt: It is a classic game that is a memory booster and serves as the best way of killing time on a long journey.
2. Paper aeroplane controlled by smartphone: It encourages children to play outside and teaches principles of aerodynamics, flight and sharpens their reflexes.
3. Marble Circuit logic board: It helps in developing cognitive skills and amazes your child.
4. Action Figures: The action figure of your child's favourite character will surprise them and increase their joy to many folds, and parents can purchase Sonic action figure
.
5. American Ninja warrior game: It is an amazing game that improves the skills of your child and increases their level of enjoyment.
6. Toys to make a racing car: The game of making a racing car is amazing, and it surprises your child.
7. Meltdown: It is a game that enhances the critical and analytical skills of a child, and they also like it.
8. Carpool Karaoke: It is an amazing gift that surprises your child, and children can enjoy singing on it
9. Boost Creative Toolbox: Children are able to make and program a robot and play with it
10. PLAYMOBIL: It is an amazing gift that provides the experience of playing with a spaceship to the child
11. Butts Up Electronic Game: It is a fun game that can be played with the family members
12. Star war game: Children can play amazing games form 270 pieces
13. Made Easy Craft Set: Children can play with the craft set and make amazing art pieces
14. Tiny Pong: A game that improves coordination between hand and eye
15. Make Your Own: Cross-Stitch Jewellery box: Children can make their own jewellery from pieces.
Around the time I posted my last post here last year was pretty much the last time I was productive for most of 2020. For some reason after that my brain became totally fried and I couldn't work on anything anymore. Near the end of the year I decided to retire and had a break from trying and failing to work on games until this year and now I am coming out of retirement to make some new good shit.
Right now I am making a new game library for browser games which I am going to call fish-tank or somethign like that. It's closest inspiration is lua löve which I think is just about the perfect game making library. It does stuff and it does it with ease, but it doesn't have much of it's own internal state which forces you to structure your game around state that the library creates (this is the reason I despise all existing browser game libraries and needed to make my own). Having little state from the library is great because it means you can pretty much design your game however you like and create whatever abstractions seem useful.
My library is a fair bit higher level than lua love admittedly, basically anything that I always implement in a game I make I am just implementing into this library which means some features by default are kind of limited to the kind of use case that I have. However, it is also designed so that all of the subsystems like renderer, soundplayer, inputhandler etc can be swapped out with your own version, you just have to implement one or two features that the library actually uses internally, like for example the inputhandler needs to provide functions for the gui system to know when the user presses buttons that control the gui. Since these subsystems are just built on top of web apis it's not that hard to implement your own one (except the graphics one, that was a real bitch).
When I say they are implemented how I use them, for example, the input handler takes all input from the keyboard and any connected gamepads and maps all of it into one virtual game controller, so all you can ask it is 'is the B button pressed' and it checks all of those actual input sources then tells you for the imaginary controller. So if you need 2 player or want to handle the mouse you are gonna have to create your own at the moment. To be honest though 2 player and mouse support should probably be added to the default one later.
Yeah so at this point the library is almost done, I just need to do the necessary stuff to implement the gui system, and then I have an approximately finished game library v1.0.0. Once that is done I am gonna make a metroidvania type game where the whole game is in a house but you have to shrink and then you can talk to rats and stuff and go inside pipes. wahooo.
Also I am gonna bring back my website and I am gonna release a scathing polemnic on why I hate the 'alt-game' label.
Hello. I am new here. Do whatever you want with this information.
prolly about a year or so back I posted Sock Man and some other stuff and moved onto itch.io
after the games I posted I deleted most of it after one of the old sunfish members got banned and I made a dumb post
I remembered this site was still a thing not that long ago so I figured we could call that old wounds and I could move onto sharing some more games
since it's not like anything I do is offensive at all, it was more just for sticking up for them in pack mentality
since then I've been working on projects and I finished
Gamit
which was a huge project tthat had to deal with development hell for the better part of two-ish years
but now that it's done I wanted to revisit good ol' Grandman
if you're not aware
or don't care-- I can getcha up to speed
Grandman was originally a crap wario fangame I turned into my own thing with some original art
and this yellow sun dude I dubbed "Grand Grandman"
not that long ago I wanted to make another one cuz I was enjoying wario games again
I think a heavily underused part of wario is his throwing-- he has stubby arms so it makes sense they don't put emphasis on it and instead his charge
so using my dude who has BIG ARMS, let's make him throw stuff and abuse items
some ms paintin' later and I had this concept art squared up
I liked it, so ever since then I've been working on it
I'm nearing the end of the engine, so now's a good a time as ever to post about it:
Chaser Enemy
A big nuke
all the level elements so far
see if you can guess em' all
I'll post some more later when my work is done,
I've got 5 things left to do before I can release a demo and start playtesting
those being:
-enemies
-dumb hat system
-level editor
-final bug-fixes
-special stuff for ground and a few other things
hope to see ya there
Hi! I'm alive. I know, right? It's only been like, literally over half a decade since I made anything on this website, or even acknowledged its existence. Sorry.
If you've wondered where the hell I've been, well... my situation's honestly been kinda the same since I last left on that passive-aggressive note all of those years ago. The only difference now is I'm attending college, I've jumped game engines twice (MMF2 to Construct 2 and now am currently experimenting with Godot), and I've developed a taste for those V8 Sparkling Energy drinks.
Oh yeah, I'm also 21 now. My last game was posted when I was 15. I am legally an adult to the point of being allowed to drink in the US and everything. Wild, right?
I still visit this site every now and then just to reminisce on all of the weird shit I put out back then. I kinda miss being able to churn out like 10 games in a week. Mind you, they were more spur-of-the-moment ideas than deliberately crafted out games (for the most part), so it makes sense, but still. But holy mother of GOD there is an insane amount of "author appeal" in these games, even when it makes very little sense. Mega Man MIDIs, the same few .MODs and .XMs over and over again, and, most of all, the fact that quite a lot of the games I made adhered to this "arcade standard".
There's always gotta be some sort of player-induced violence, there's always gotta be action, even when it makes very little sense. Forever Alone (Pictured Above) is a really good example. A sort of weird minimalist self-proclaimed "art game" (to me, an "art game" was something with a sort of ethereal, pretentious attitude back then), where you kick around a ball and have the narrator lambast you for not going outside. It's a cute and weird thing, but then it just suddenly becomes a quasi-SHMUP game where you SHOOT at the door! Because of course you do. You always do. It's not a game without hardcore action-based gameplay, right!?
(Also SWEET JESUS I named games after rage comic memes?!)
There's also the fact that a lot of my games lacked any sort of good difficulty curve. They plateaued between "Piss Easy" to "FUCK YOU". However, there's kind of a good reason for that, a dirty little secret about a lot of my old games. They kinda were like that so I could have an excuse to stim the fuck out while "testing" them. That's not self-deprecation or me calling my self "lol autistic!!11!!" either. I'm dead serious when I say this. My dad had built me a MAME cabinet (yes, really. I actually have another smaller bartop Raspberry Pi based one lying around too!) with an X-Arcade stick (pictured above) and dear god mashing that middle-left button felt so good to 12 year old me (the tank stick was pre-mapped to keyboard keys so it was Shift). Obviously, they were still made with an intent to convey... something, but from a game design standpoint I figured "we're making dumbass deliberately stupid games, why care that much anyways?".
Nowadays, I care about actually making coherent video games. I still wear my inspirations on my sleeve, but I'd like to think I've progressed since slapping random MIDIs and sprites into my games without forethought. Even if it does mean I made a game based on a meme that was considered dead at the time of the game's inception. This is a bit of a double-edged sword, however, since I find myself actually trying even in projects where random stupidity is the name of the game. I've kind of lost that sense of fun slap-dashed-ness nowadays. I find myself trying to "prove" myself, trying to push the envelope, making games that... resemble games, for lack of a better term. If I have an interesting idea, there's gotta be a full playable game around it, and it leads to me dropping projects and ideas more and more by the day.
As for why I left the site so abruptly? Easy. Peer pressure and being an angsty teen. I hung out with a few people who at the time were hardcore "Anti-SJW™®" types, and it kinda rubbed off on me a bit too hard. Even to this day, I have a really bad tendency to bottle up emotions and let them loose, and that's basically what happened there. You may remember a certain Twine-based piece of interactive fiction I wrote.
That's as far as I will talk about it, because thinking about that any longer makes me want to swallow my own eyeballs.
That's a phase of my life I kind of regret a lot, to say the least. That's not to say I'm a perfect squeaky-clean person these days (far from it), but I'd like to think I've grown up just a little from being that unironically venomous. (ABOVE PIC UNRELATED)
I don't fuckin' know, man. Crazy, unbelievable shit has been happening all over the world, I'm cooped up indoors, and I've been dwelling over my life more and more by the day. Sometimes it feels like I don't have much of a future at all. I'm still living with my dad, I have very little in the way of real "adult" responsibilities, and it feels like everything outside of my internet presence has just kinda stagnated.
A lot of my attempts at projects over the past few years have been me trying to "fix" my past in some way, shape or form. I've still been trying to make my "Magnum Opus" game, My Hero 3, which to this day has just stopped and started over again countless times. I keep looking back to the past to dig up old things that I could rework and bring to up my modern gamedev sensibilities. And yes, this includes the ever-fabled Justice Mustache 4. Don't think for a second I've forgotten about that.
Part of the reason I typed this up was to finally get some closure. I did return briefly into the Discord server, but I don't think I had a lot of time to air out my thoughts on everything. I don't really know if anyone's gonna read this, frankly, but I hope someone does. I've been pondering over this for a while now. I sometimes feel like I need to let go of all of this. Most of my current projects and ideas are me trying to capture what I did here and bring them into my new, fancier standards.
That's not to say I hate developing games now or anything, far from it. It's just I feel like I might need to move on with my life. Stop trying to recreate something that's already passed. I have so many original ideas that I want to make, so many original stories I wanna tell, but I'm too afraid of presenting them because I feel like I lack any sort of real talent outside of game development and maybe music. So, I just kinda retreat into trying to make the same game over and over again, but Better™. And it's only worked like, once.
I miss not having any strict codes of design to adhere to. I miss not caring about properly offsetting sprites and aligning floor tiles. I miss being more impulsive and just making a game for the sake of it being funny and not worrying about the game even really working. I miss not feeling completely powerless when I can't get something I want to work exactly as I want it to via some crazy code magic that next to nobody will notice.
And yet, when I make things off-the-cuff, like I used to, it generally seems to prevail the most. But my brain nags me all the way through. "This is hardcoded in so it's bad and everyone will hate you for it!". "You didn't sneak in enough sine wave movement patterns!". "You didn't exactly recreate this one split-second animation from this game that accurately!". That kind of thing. I went from being insanely lax to incredibly anal in the span of 8 years.
I haven't had a very good time in regards to my mental health in these intervening years, if it's not apparent.
Will I ever return to make a new Trainwreck? Will I ever finally make one of my dream games that I've always wanted to? Even though I still have quite a lot of time left before I pass on, I still kind of feel like I've been wasting what time I've had, and I worry I won't be able to accomplish everything I've ever wanted to before I'm dead. A thing I remember is that when I first joined the Discord, someone mentioned that they believed I had "moved onto using Unity" or something to that effect. While it's nice to know that I'm still thought of that highly (somehow), it did make me realize I was still in the same place, using simplified click-on-thing-to-make-thing-happen based programming (I actually had tried Unity before that and absolutely hated it, incidentally).
Most of all, however, I feel alone. One of my only close IRL friends passed away from a battle with cancer in 2016, and ever since then I've felt completely distant from everyone in school and college. I generally found myself conversing with my professors about life more than any fellow student, but that itself has come to a halt for... obvious reasons.
I know this entire segment has been a huge bummer, but I write it because I need validation in my life. Especially now. The story of the starry-eyed kid who wanted to make the funny mustache shooty guy game has now become one of a manchild who has no clue what goals he has set in life aside from what he does on his computer, living with his crazy, borderline verbally abusive dad who doesn't really understand him or see him beyond what I was like when I was 8, and my mom who I'm absolutely sure is only helping me to get back at him (that's a whole different can of worms I will refrain from getting into here). I feel like I've never gonna leave this house...
I hope you've all been doing okay. I don't know how many of the people from the time I was regularly making games are still here, but I hope this message gets to you. God bless.
I've been very fortunate in how I make a living. I am paid by my day job to develop custom curriculum, and then teach others what I've designed. As time has gone on, I've been able to integrate game-making (both tabletop and video games) into the curriculum I develop, resulting in some interesting - and still effective - methods of teaching. I wanted to briefly showcase some of that work here, roughly in chronological order.
1. Street Sign Bingo
It all started here. As part of our CDL training module, I created a "bingo caller" focusing on the different street signs one would encounter on the road, some of which being of greater significance for those driving the larger, heavier commercial vehicles. We played this in the classroom. I facilitated the calling while clients each had their own unique bingo card with phrases that matched up with the images displayed on-screen.
2. Pre-Trip Inspection: Front of the Bus
Then the pandemic happened. In order to keep our training going, I scrambled to find ways to adapt the curriculum to an online, "virtual classroom" format. This was my first attempt. It contains a rudimentary menu interface, full voice narration, and a graphical point-and-click display.
3. Virtual Self-Paced Lectures
I also digitized many of the classroom lecture elements. Although there were hands-on activities interspersed with the lectures, I had to cut many of them out (until I could develop their online versions). The good news is that most of the lecture materials were relatively brief, and when the user can control the pace of the lecture itself, they can speed-through or repeat segments as desired.
4. Virtual Port Tour
Our organization also does industry training for material handling and logistics. I pivoted from the CDL training into our warehouse and logistics training due to time constraints: CDL companies weren't hiring at the outset of the pandemic due to most public transit and schools being temporarily shut down. On the flip side, mail order and shipping of manufactured goods comparatively skyrocketed, and we wanted to make sure our clients could still find some kind of work to help make ends meet. This activity was an orientation to the various shipping terminals found in the town where we operate (Baltimore, Maryland, USA).
5. Cars Versus Forklifts
I started having a little fun with this one. It's also the most arcade-like game I've created to date. There are two stages, each one featuring a different vehicle the player must navigate around a course of traffic cones with a birds-eye view. The goal is to help the player internalize the different ways to pilot both a car and a counter-balanced forklift: each having different methods of control. We don't have a vehicle fleet available for our clients to train with, but this was my attempt at bridging that gap and preparing them as best I could.
6. How to Get It There
In addition to material handling, we provide an introduction to freight forwarding and route-planning. This is, in essence managing how goods are moved from one place to another. This activity allows the player to consider various modes of transportation, and which would be most-effective for their current cargo. Shipments can range from hundreds of tons of coal, to live animals, to industrial-size rolls of paper, and even an emergency human heart transplant.
7a. Alan and His Broken-Down Bus
With most of the material handling & logistics curriculum sorted, I shifted again to the CDL training - which is experiencing limited re-opening and hiring. I developed this particular activity to allow a player to test their knowledge on where to place emergency signal devices (like flares and emergency triangle signs) on the road when their vehicle breaks down. There are three scenarios, each with different placements required. I provided full voice narration and even hints to assist the player - as this is rather dense, industry-specific information.
7b. Screenshot of Alan
Here's a small piece of art I included in the emergency triangle game, to set the scene. I use this character a lot in the games I make, and I grin every time I'm able to sneak it in somewhere. For some foggy reason, I think the character design (at least the face) is actually inspired - if not outright stolen - from a comic strip in "Cracked" magazine, which I read a lot in my youth. The name "Alan" is my personal default name for any random guy, and has now been immortalized here.
8. Passcode Interface
Finally, I wanted to include my "passcode" screen (I've omitted details of my day job with those black squares). This was one of my first developments when assembling even the concept of online training. I wanted to be able to "lock" the training away from the general public when required. The coding here (or rather, event structure, as I use Clickteam Fusion and not an actual coding language) allows me to use any six-digit code I want as a pass code to the software. Unless someone inputs the proper code, they won't have access. I'm surprised this actually works.
I'm surprised at my output and the end results of all of this actually, and I'm proud of what I've done so far. I stress that I am not a trained programmer, I am not a trained artist, and I am not even a trained educator. At the same time, I am technically considered a professional in all these areas, because I am paid to do them.
It was only opportunity that granted me license to do this. Looking at it one way: I had to learn it "on my feet," as curiosity and necessity provided. I also had to learn to use and implement the Moodle "virtual classroom" on the fly, and found ways to integrate lectures, quizzes, videos (some I made, some copped from YouTube), and these online activities in a package that covers a broad range of industry knowledge, while keeping things engaging by providing a variety of different methods.
My main point in mentioning all this, I suppose, is to invite you to do the same thing with your own skills and talents. I'm confident in my belief that, if someone like me can be fueled and fortified primarily by "gusto" to take care of business, then those of you who are not just curious, not just driven, but actually trained to use software tools can certainly thrive in times like these.
Take it from one no-talent white guy in his early 40's who - by stumbling from one minor success to the next - has helped hundreds of people and their families: go do the thing. You'll be surprised by what you can accomplish.
PS: I'd be completely remiss if I didn't mention Eric Matyas at SoundImage. He provides 2,000+ high quality music files for use in your projects, with no cost required. His music is sprinkled liberally through nearly every single project I've done since December 2019. I strongly recommend you check him out, and support his work with financial contributions.
In May of 2009, over 11 years ago, I laid out a vision for a collaborative game-making tool that I wanted to make. I had fond memories of being a kid and sitting in front of a computer with my friends, throwing ideas around and banging out goofy QBasic games, and I was frustrated that there didn't seem to be anything out there that would let have that kind of experience over the internet. The only improvisational game development tools I could get my hands on were decidedly single-user; every attempt I made to collaborate on a single project failed badly. The closest thing I could get was the Pirate Kart experience - everyone doing their own thing and sharing it with everyone else as they finished, and bundling all the results in a single package.
MarMOTS was my answer: a collaborative game creation tool built out of nostalgic textmode graphics, inspired by ZZT but usable by multiple people at once, where every change was live the instant you made it. I wanted to be able to change games while other people were playing them. I wanted making and playing games with it to be a party.
I worked on it fairly steadily for two years, putting it live as soon as there was something interesting, adding features, fixing bugs, responding to the GT community that was using it. In time it became a capable ANSI art and animation creation tool. Goofy collaborations happened. Folks made some incredible art with it, which was amazing and gratifying and kept me motivated to improve it.
Then I burned out on it, life happened, and nine years went by.
In the back of my head, in those nine years, MarMOTS was always there. It was a great idea that I'd gotten _so close_ to making happen. I'd get back to it someday.
In 2009 I laid out a vision, a TODO list, each item flowing naturally from the last, each step being useful on its own, to prevent me from working and working and working and getting stuck, getting lost in my own head and ambitions, and giving up without having anything to show for it. Hard as I tried, I could never push past vision #4; vision #5 turned out to not be necessary or even a particularly good idea, and vision #6... In 2009, I wrote of vision #6: "This is the biggest leap." I got close, implementing a scripting language complete with structured editor, so that the program was always in a runnable state; but the editor never quite became usable, and I never quite worked out how I would connect that piece with the stuff I'd already built.
Today I put live a version of MarMOTS that pretty much does everything I set out to do with vision #6. I pulled back the scope of what I'd tried to do in 2011 from "a full general purpose programming language" to "maybe a minimal Bitsy-like." You can now take an ANSI drawing and add interactive elements to it (in MarMOTS these are called "bots", inspired by MegaZeux's "robots"); as soon as you do, it becomes a game that other people can play. Virtually every change propagates in real-time; if you change a drawing or a script or add a new bot in the editor, all the players will see it. I tried to make the interface as self-explanatory and discoverable as I could - the editor tells you what your options are at every stage, and it's impossible to create a syntax error.
If you decide to mess around with it and have questions or suggestions for cool things to add please let me know! I'll probably keep adding stuff and fixing bugs as the days go on. You can use MarMOTS from your browser with your Glorious Trainwrecks account credentials!
Hey, remember MarMOTS, the MARvelous Multiplayer Online Telnet Server? (previous MarMOTS blog posts) I don't blame you if you don't, I haven't worked on it in almost a decade. I had this beautiful dream of a ZZT MMO; a realtime collaborative game-making tool, where we all could make cool ANSI art games together. And I managed to get to the part where we could all make cool ANSI art together!
With the various server moves over the years, MarMOTS has been up and down for a while. With the latest server move, I decided I'd dust off the ol' source code and see if I could get it running again. And... I did! MarMOTS is back up, and fully operational! It's also much easier to get running - it no longer requires Stackless Python, having now been ported to use the greenlet package instead. It also now works with a much wider variety of telnet clients than just SyncTerm - I have had reasonable success with Qodem and Netrunner, and I'm planning to see how well fTelnet does with it.
Why should you care if it's easier to get running? Well, I also took the opportunity to finally release the source code. It's now available under the AGPL, which requires anyone who makes changes to it and deploys those changes on a public server make them available from within. MarMOTS belongs to all of us, now.
I'm considering picking it back up and trying to get some simple bitsy-like interactive storytelling tools in there. We'll see how that goes. I have a half-working scripting system that I haven't looked at since 2011...
So here it is, 2020. I started freelancing after losing my nice gov't job in 2011. A lot has gone on since then. I've always had a part time gig so i could devote to making games, but most of my jobs were web design, not development.
In 2016 I bought Clickteam Fusion and planned on taking things seriously as a developer, but life took a different turn. I had to go back to the real world of work since I had a baby. My savings went pretty quickly and I had to move again :P
It took me 4 years to level up. I got a nice job. I bought a house. I was able to travel a lot and on my down time, I'd code. I never got around to taking it seriously which I should. Seeing Flappy Bird and Five Nights at Freddy's made me jelly. So why not get a piece of the pie? Then the reskinning craze hit and I knew I was going to be drowned out by a bunch of clones. So I chilled and worked on my games. My pixel art has gotten better.
My travel job has me furloughed and suddenly I have lots of time on my hands (and savings(!)) I might as well try to make something stick. My dream is to work at home as I got a 4 year old to take care of and a house to fix (for it to be 10 years old, my roof leaks!). While finally getting around to unpacking things, I came across my old Klik and Play floppies. SO MANY GAMES.
I want to be more active on here instead of wasting my time and energy on bookface :P It was a good nostalgia trip seeing what I was playing and how far I've come in my coding.
Keep klikking and making awesome stuff! <3