NOTE: This is in part, an opinion piece by Sanya K. C. and does not reflect the opinions of the rest of Waffle Iron Studios.
Recently it was brought to my attention that Rachael of the ZDoom Forums had asked about the license of the ZScript files within GZDoom and what license they were under and that it’s caused some people in the community to absolutely lose their minds.
I’ve always understood that the original ZScript files themselves were under the same license as GZDoom – GPLv3. However, that doesn’t mean code written in ZScript has to follow that. ZScript is a programming language, and many people such as Marisa Kirisame, myself and others have written code under various different licenses – some I agree with such as MIT, 3-Clause BSD, some I don’t like but I understand – GPLv3 – and some I absolutely don’t agree with – such as non-free licenses.
It seems asking this has caused alot of people to change their licenses in fear from much more free licenses to the GPLv3. This might seem to be a change that’s easy, but for a lot of people, especially for me, GPLv3 is not free enough and has a lot of ideological baggage associated with it.
I’m not sure if it was Rachael’s intent to cause people to lose their collective minds over this, but it seems at least from where I stand that’s exactly what has happened, just like everything else in this community as of late.
Let’s start with the fact GZDoom itself has code and libraries written in multiple different libraries. zlib, PNG, and other libraries all have different libraries that are not GPLv3, yet are compiled and linked with GPLv3 code. I don’t see why ZScript can’t work the same way.
An example of one of these kinds of projects is my own. Most of the code of SHDX in it’s current state is written by myself and is under a 3-clause BSD license. All other code is either from Marisa Kirisame’s SWWMGZ Project, which is under the MIT license, or various other people’s code which is either 3-Clause BSD, MIT, or public domain. Some other code might need to be replaced at this point, and frankly I’m fine with that… given I’m absolutely not changing the license and would rather do without code that is GPLv3.
Yeah. I’m not changing the license. I don’t see why I should change the license for code I wrote myself. id software didn’t write it. Neither did Graf, neither did Rachael, nor anyone else. I have control over that code. Just because I wrote it in a specific language shouldn’t matter. If we start forcing licenses for specific languages, that could set a very dangerous precedent.
What scares me as of late is just how Rachael, one of the head admins of the ZDoom forums, as well as one of the developers of GZDoom, seems to be not aware of what she’s doing. A quick look in the gzdoom.pk3 would have revealed the zscript_license.txt file. I don’t know why Rachael would not see that with a quick search of the source tree. Even I knew that existed – I knew it existed since ZScript was a thing. Now, because she’s brought this to everyone’s attention, people are losing their proverbial marbles. Hideous Destructor, a popular GZDoom mod, changed it’s license from 3-Clause BSD to GPLv3 recently due to this, which I don’t think is even possible to retroactively change the license, speaking to my friend Tom in the past about that. Tom and I have spoken a lot about copyright law and licensing in the past, and I trust what he says. Consider him my legal eagle of sorts. It’s like what Graf said in the thread, talk to a legal person about it if you’re that concerned.
This is just one of many decisions lately that make me question the ZDoom administration as of late. I’m questioning if this was in good faith even. The cynic in me has doubts. Then again, me and Rachael haven’t had the best of histories together, so maybe I’m biased. I’m trying to be as professional as I can be, but I can’t be quiet – I really question this, and given what I know about the administration and how they’ve treated my peers, I can’t look at this without skepticism.
Anyhow – what does this mean for SHDX? Absolutely nothing. Same with DD2. SHDX and DD2’s licenses for the code I wrote are going to remain the same – 3-Clause BSD. As I said, for code I wrote myself, I should have control with the copyright. And in this case, I want it to be libre, and 3-clause it is.
Me and my team have been hard at work on Daytime Drama 2. I’m gonna be preparing a semi-public beta test by the years end and a massive info dump is looming, so stay tuned.
Here’s some news in the meantime.
First and foremost, I am hosting RodScorpion’s AmateurZ webcomic now. This is in line with my goal of Waffle Iron Studios being very much being the video game and webcomic answer to Troma – truly independent game mods, projects and webcomics. It’s got a neat premise, and I’m privvy to some of the details of the story, and it’s a perfect addition to the site. RodScorpion, as some of you may know, is my friend and musician for the Daytime Drama series of games. You can find it here.
Second, I updated Daytime Drama to version 1.12 which fixes some issues with the project I overlooked as well as updating the engine to a 4.5pre devbuild which fixes some stability issues. You can find it here.
We got a future roadmap, and when DD2 is officially revealed we’re going to talk more about our plans for what we want to achieve here at Waffle Iron Studios. Alot of people have been volunteering to help me, and I want to go commercial someday – but stay as independent as possible so we can make provocative, truly funny and intelligent works without being hindered by either corporate nonsense or draconian censorship – be it right wing or left wing. We want to be truly independent.
Pelican, the original software I used for Waffle Iron Studios, promised what I needed – a simple static website. However, there were tons of headaches, such as having to compile and re-upload the entire website every time I updated it. I also couldn’t get the tags to work properly.
Upon discussion with one of the people working at Waffle Iron Studios – a voice actress and my dear friend Jenna, I decided to migrate to WordPress. One thing that I really wanted to get working though was better accessibility, as Jenna is blind and uses a device called a screen reader to access websites.
My main thing is WordPress must be able to be read by a screen reader and navigated with ease.
This isn’t just for Jenna’s sake and other people like her. One of my pains is modern websites absolutely are hard to navigate, even with conventional methods and having your sight. I just want content over fanciness as well.
This is not saying Pelican is bad. Pelican is good and if you prefer more manual websites, try it out. It’s just it became a bit tedious for me.
Anyhow, if this works, expect more content. I will be updating this page (and revamping the theme) as time goes on.
NOTE: THIS WAS ORIGINALLY POSTED OCTOBER 2nd, 2019 before the WordPress Migration
One thing I didn’t mention in the post mortem was how one Doom WAD really pushed me to try to make my own. Sure, might not be “the best” example of the engine’s capabilities – but that doesn’t matter to me.
Ultimate Simpsons Doom, by Myk Friedman, was one of the first patch WADs that I played that was designed for the ZDoom engine (mainly the SNDINFO lump being used to define additional sounds).
One thing I really like about the Doom WAD was the high-res graphics (for DOOM standards) used for the sprites. I think at the time DECORATE wasn’t a thing, so he couldn’t scale the sprites. It’s easy to fix now though. This stood out to me in a sea of WADs that just edit or base art on Doom, Duke 3D and other contemporary games, rather than go for a cartoony feel.
I really like this project. Sure, the WAD has some interesting to say the least texture choices, and doesn’t replace any of the levels. Icarus covers the WAD very nicely, and I share his views on the project.
I can safely say, if it weren’t for Ultimate Simpsons Doom – I’d probably have never been motivated to look into Doom modding using ZDoom and it’s family of engines.
Unfortunately, I found out recently that Myk Friedman died in 2014 of diabetes, and I had no idea he had a series of videos involing crossovers and such called Ultimate Cartoon Fight.
The channel seems to be still somewhat maintained by his friends and family, but seems to be rarely updated without his visions and guidance – with the last update to the series proper being 5 years ago.
So I take my hat off to Myk Friedman. Rest in peace dude, and thanks for influencing my direction in using this engine.
NOTE: This was originally posted Monday September 23rd 2019 before the WordPress migration
It starts back in 2006. I started work on a game mod – a TC based on internet phenomena and random shit I could think of. I called it “Drama” for a lack of a better title. I was admittedly a browser of Encyclopedia Dramatica a bit too much.
However, this project is not really something I’m proud of. My level design was utter garbage, the sprites were not that good, and it relied on DEHACKED and DECORATE mixed together. It also focused too much on edgy humor. I don’t mind edgy humor – but some stuff was admittedly in poor taste.
I released several projects in the interim, but none really struck me as something I’ve always wanted to do – I wanted to do a project where a person, down on their luck, has to go up against a bizarre against all odds scenario. I’ve always liked action movies, if you couldn’t tell.
The original project had that going for it – I loosely based the protaganist off a friend of mine from back when.
I explored this concept with a Wolf4SDL project called Scoot Hard. I still have a copy of it and I do plan on polishing it up – or even remastering it in GZDoom – but it focused on Scootaloo from My Little Pony going up against the Rainbow Factory.
I learned alot from that project. Coding most stuff in C/C++ helped polish up my lower level programming skills… and it was the first major project I had completed. Granted, it was short. However I still fondly remember it. Hell, it has two things I have yet to implement proper in the Daytime Drama series – achievements (albiet primative and not that many) and vending machines!
Alas, one of the things I didn’t like about it was the engine. I love Wolfenstein 3-D but the level design was lacking. I did find out how to do things like wall decorations, vending machines and such – but I really hated being stuck with just 90 degree walls.
And the sound engine! I know sound is often a point of debate in the Doom community. Hell, when designing DD2 me and others working on the game lamented at how it’s impossible to transition between tracks dynamically, like how modern games do. However, I had to completely gut Scoot Hard’s sound code and it’s still not proper. The Wolf4SDL sound code I used was from the Die Hard Wolfer’s forums, and it has some problems.
Yeah, Wolf3D as an engine definitely is primitive. We had to start somewhere.
Turning Tragedy Around
I decided to go back to GZDoom for my next project. It had easy to use tools, extensive documentation overall, and more importantly it was relatively easy to make a standalone game, even then. Later on the engine would even be GPL’d entirely, making it feasible to use as an indie game engine.
I started early on in 2013 toying with the concept of an indie FPS – a freeware one that appealed to my interests.
A tragedy would occur though that would admittedly affect me greatly. My grandpa passed away in 2013. I fell into a deep depression… I still am in that depression.
To try to stave off the depression, I started tinkering with GZDoom. I started drawing enemies based on cartoon characters and stuff I witnessed… the dudebrony and checksum unicorn enemies were an obvious reference to MLP’s discourse involving vocal minorities in the fandom. I’m not fond of pushing political messages in games for “woke points”. It was more tongue in cheek fun than me condemning bronies. I have no problem with them – something people have accused me of doing.
I also worked on another project. I wanted to see which one was better. One was a Rise of the Triad clone based on one of my earlier concepts. The other was a Duke 3D style FPS starring my persona.
It’s clear now what one took off. I do wanna revisit a ROTT clone someday. Perhaps someday I will.
One of the things I liked back when was Gaming Garbage – a show by Lowtax and Shmorky (more on that later) where they play awful games. I decided to include Dontrel as a Cacodemon replacement. For the uninitiated, Dontrel the Dolphin is played off like a Sonic or Crash Bandicoot type mascot, but unintentionally becomes creepy due to the warped MIDI music and how Dontrel is rendered. Lowtax plays him off as being an elderich abomination, and thus a meme was born.
As for the other more iconic enemies – the Brony of Despair is admittedly based off the typical neckbeard brony stereotype – he basically is a Baron of Hell. Two recolored ones serve the purpose of cluster 1’s bosses, a homage to Doom’s E1M8 boss battle.
However, to balance it out, I made a Checksum Unicorn – who is erratic, fast, keeps reviving the dead… and very angry. I based her off of some Tumblr influencer who had a reputation for being a bit nasty. I forget her name though.
People have constantly asked me if I was trying to trash bronies. To be honest it was not my intent, as I said – however I cannot deny it made for good cannon fodder. I prefer to take the Filthy Frank approach to humor – no one is off limits, not even yourself.
I did similarly with BonziBuddy. Joel of Vinesauce inspired me with him resurrecting the evil spyware grape ape lookin’ ass. Bonzi serves as a good Mancubus replacement. He fires pineapples at you. Why I didn’t go for coconuts? Eh, not really sure. I think Pineapples were more fun to draw.
The most messed up enemy was probably the Purrmoid – which is based on the Cat Fingers episode from Steven Universe. Say what you want about the show, but some of the episodes have good nightmare fuel material. I will tap into this more in DD2.
These are 1/4 the resolution. These sprites are HUGE in-game, but I scale them down to fit the standard hitboxes and FOV. If only textures were this easy.
I kept chipping away at the game over the years. I had nothing better to do, especially since a fainting spell left me unable to drive in 2014. I did alot of art on my own. I even photoshopped signs and decorations for the levels. I even got help from some people, namely my friend Kelsie. More on that later.
Very early I knew I wanted to try to make it as close to Duke Nukem 3D as possible – a bit of Blood influence, some Aliens and Super Metroid too. Hell, the weapon upgrade ideas came directly from my love for Super Metroid.
I also decided to base the protaganist on me. A much more able-bodied version of me chuckles nervously.
Two renditions of Sanya. The one on the left is an earlier Danganronpa-esque rendition circa 2014-2015. The one on the right is her current look as she will appear in future entries.
Sanya is one of my oldest characters. She’s a merging of two concepts – a saiyan OC from my childhood – and myself.
It makes sense – the tail, the bullet resistance… the tendency to be a bit heated… all things my character is. Some of course based off my own self.
A bit personal here – I had recently come out as trans during the time the game was in progress. So I made Sanya trans too.
However, I know – as it should be – that this doesn’t define a character. In fact in the entire game I made it a rule of thumb to never mention Sanya is intersex and trans because I very much abhor people who feel the need to state their gender/sexuality all the time. I didn’t want to use this to “sell” my project.
Thus this is the first time I’m ever gonna mention it. It’s not incredibly relevant anyhow. I prefer my characters to not be woke stereotypes. I hate that in gaming and in media.
What defines Sanya? She’s a fiercy loyal person who could have ran away from the problems. She’s got a bit of John McClane from Die Hard in her, though she’s more analogous to Ellen Ripley from the Alien movies.
Thank god she didn’t run away because this could have ended badly. Very badly. However it puts a great stress on her. Her one liners and sarcasm are a coping mechanism for the pure chaos and evil she’s facing against.
One of the levels I made was a hospital with a mental health ward. This was made because personally I have a great trauma with these things. I made the level to intentionally challenge myself during playtesting. And RodScorpion’s music “Anemia” really fits the tone of the level and reminds me of a hospital.
Also, to be honest, I’m not trying to make an ultra 5deep4me game. I am just for making a fun game. However sometimes stuff like this does happen.
In hindsight I’m surprised no one gave me grief for making Sanya a cop character. I know police are given so much shit nowadays. I’m not for that. I’m glad most people either put their outrage at the door or didn’t see it as an issue.
I decided to call the project Daytime Drama as a homage to my very first project. It’s as simple as that. It honestly makes little sense. I call it Daytime Drama despite the fact for all intents and purposes the game might as well happen at night due to that dark sky.
Honestly naming things is not my forte.
Giving Sanya a Voice
My friend Sarah did Sanya’s voice. This took a bit, and in beta voice acting was sporatic. I had someone else do an alternate voice for Sanya, but it didn’t work out. Honestly it’s for the best… though the idea of a Russian-esque Sanya still amuses me.
Sarah has a voice that has the right amount of pep and I was glad she was able to get into the final version of the game. My only regret is she didn’t do more – and that’s on me – I only wrote a handful of lines.
I know neither Harmony nor Rebecca (of Harmony and Rise of the Wool Ball respectively) had a voice and they’re the closest analogs to Sanya in Doom based games. Not knocking that – both are great games, and both are great characters. It’s just I wanted Sanya to have a voice. This tradition is being carried on in the sequel.
This was possible in ACS and DECORATE – two scripting languages available to the ZDoom family of engines. However the code was messy and required constantly looping. Plus ACS is more suited for level alteration than gameplay.
ZScript changed that. ZScript allowed me to basically roll my own functions, as well as export most code out of ACS. In fact… about that…
ZScript is a low level programming language introduced to GZDoom. It had been in development for a long time. It answered so many of the problems we were facing with DECORATE and ACS. You can edit all sorts of things with it – including level geometry. I was able to code a lot of sector effectors like Duke 3D had. The exploding walls? Daisy chained objects. I could assign a duration, tag range of exploding objects. I even made it so you could break TVs. This was all before they implemented a “destructable geometry” feature that I still can’t wrap my head around. I like mine better to be honest.
While my project wasn’t the first to have ZScript, it was at least one of the first of it’s kind to have it. Most people bitched about the documentation being lacking, but I was able to learn easily.
One thing they did was exported the status bars to ZScript. This was done after Daytime Drama was pretty much done. I plan on rewriting the Status Bar/HUD in ZScript someday for the sake of neatness. There’s still some code in ACS I’d like to export to ZScript, but the god awful cutscenes in my game depend on it.
I hate the cutscenes in DD1. Least favorite part of it. I don’t wanna talk about them. Mainly because they were an afterthought. I will take great care next time on that.
My friend Kelsie (known as MissFinefeather) helped me a great deal with decorating the levels. Half of the decorations in the game are hers. And she designed the cinematic sequences in the cinema level.
In MAP07 there’s a cityscape, and most of the decorations such as the billboards are her stuff. Some are mine. To be honest I forget who did what – except I know for a fact she did a reference to Damekko Dobutsu.
In fact, the capital city region is called Damekko and Madokaton, a homage to that anime. You can see these on highway signs.
Kelsie has since moved onto do other things. Last we talked she’s been doing Homestuck and Steven Universe liveblogging. I hope she is well.
However, many things are mine too. I designed the morshu-mart level, right down to including a reference to the B movie The Stuff, a movie Sarah and I really like.
One of the biggest challenges is making “Build”-like level design in Doom. Fortunately in Softpoly and Hardware mode, GZDoom supports wall sprites and floor sprites. In fact the game requires it pretty much.
However it’s more than that – one of the challenges is making the tall, vertical levels Duke 3D had. Making the levels took me the longest time.
In all, the amount of detail we put in was insane – to the point I had to scale back some of the textures for size.
Daytime Drama is my first successful game project and the forum thread got tons of feedback. It got covered by ICARUSLIV3S on YouTube. Nothing I’ve ever done creatively has gotten that far.
Keep in mind this was from a beta build a long time ago, but it still gives you an idea of what to expect gameplay wise. Icarus gives a fair review of the project and I’m grateful he covered it.
I explained in the comments about some things – namely some bugs he had ran into. I also had someone accuse me of staning Shmorky… somehow they failed to notice I added a flaming flowercrown enemy just to spite Shmorky. That’s kind of cringe, not gonna lie.
Daytime Drama seems to have developed a cult following. I even met a friend because of the game. My friend Ellie.
I figure what sold it was what I intended it to be – a very well crafted shitpost in essence. I never set out to make it the best game ever. I never intended nor do I ever intend on making a “woke” game with a female protaganist. I was just trying to make my own kind of game – especially since GZDoom seems to have a thousand and one different TCs aimed at extending the Doom universe or Wolfenstein.
I’m not bashing that… but I’ve always wanted to have something else. And that’s what I did, and I feel I succeeded.
Daytime Drama 2 will take the lessons learnt and make another game in a similar lineage – I’m again, gonna make my type of game.
However, I know what made Daytime Drama resonate with people – the enemies, the humor, and the level design. I’m gonna try to keep that in mind for DD2.
If you wanna donate to my development you can do so here.
NOTE: Originally posted on Sunday September 22nd, 2019 before the WordPress migration
I decided to migrate to WordPress, so pardon the mess as we work on this.
The site is a bit simple for now. I’m using Pelican to generate my site as it seems to be the easiest in terms of accessibility.
So, what’s the purpose for this?
Well, I got tired of Tumblr’s bureaucracy, Twitter’s rapid fire and very anti-social ways. Not to mention both sites are very unfriendly for art – both in a technical sense and in people’s response.
The ZDoom forums are fine and all… but it can be very overwhelming at times… so I have decided to just take a financial hit and roll my own site.
While I will still use Twitter in a very limited capacity, and I will still use ZDoom Forums as much as I can, I feel a need for my own personal corner on the internet, with fewer limitations.
What will this site focus on?
My creative endeavours – this should be obvious. I will be serving development logs on my games using GZDoom engine, but also occasionally my art.
Occasional personal stuff – occasionally I will be using this site to talk about stuff important to me. I feel none of the sites I mentioned are a good fit for me, both from a technical and a social-political standpoint. However I will try to keep it brief, I know people are not here for that content.
I will try to tag those things accordingly. If I can figure out how to create two different sites from pelican I will do so. I’m a bit rusty, admittedly.
Also I am considering launching a forum at some point, but only if there’s enough demand. I’m not much of a community manager outside my personal Discord.
Anyhow, I will be posting posts/pages about Daytime Drama and it’s sequel soon. So stay tuned!