[Scummvm-devel] Why I left ScummVM
scummvm-devel at zetafleet.com
Thu Sep 20 22:22:39 CEST 2018
I’d intended to write this email when I left but I was not able to do so
at the time because of how emotionally difficult the situation was for
me. I apologise for my abrupt disappearance; this was unfair to all of
you, and it is not how I want to handle myself.
To explain why I left, I must speak honestly and directly about some
ugly experiences with sev. I know that some of this can come across as
an attack, but it is not intended as such. My goals are to offer
closure, and to stop a cycle of abuse so that others don’t experience
what I did. I’ve tried to do my best to say only as much as I need to to
feel like I am meeting these goals, since I genuinely don’t want to make
anybody feel bad. It would also do me no good to burn bridges by being
vindictive, since I’d enjoy working with you all again sometime.
When I started working on ScummVM, I received support and encouragement
from sev which was critical to my personal growth, and for the success
of SCI32. Until late 2017, I was excited by the idea of working more
directly with him on Director engine, since up to that point I’d had a
generally positive experience, and I did not understand past
contributors’ emails like this.
During 2017, sev seemed to be less and less involved with ScummVM & more
negative when he was. When I would reach out, I would increasingly often
not get a response. Whenever I asked how things were, the answer was
always “busy”. Eventually, our communication devolved to be mostly
comments directed at me whenever one of my commits broke a Buildbot build.
Since sev seemed overworked and disengaged, and I didn’t want to burden
him any more, I started trying to pick up the slack as much as I could.
This is how I ended up managing the ScummVM 2.0 release with criezy.
This has been standard practice on other OSS teams I’ve worked on, so I
didn’t see myself as doing anything unusual. However, it was clearly a
mistake on my part to assume this was a correct action. While I did talk
about what I was doing when I was doing it, I should have been more
explicit in declaring my intent and rationale, and I take complete
responsibility for how this created insecurity and confusion which
contributed to these incidents.
My first major incident with sev happened during 2.0 release
preparation. There was a difficult crasher bug where the only
reproduction was UB that would cause UBSan to crash. sev copied code
from the OP and committed it without reproduction and without comment.
Between the time of comment 17 and comment 18, there was a fairly
hostile PM exchange where I was told I was being contradictory and that
the UB didn’t matter and any well-defined code would be worse. When I
tried to clarify what I was saying, because it felt like I was not being
heard, I was told I was just repeating myself. Eventually, I constructed
an agreement which I summarised in comment 18. Per that agreement, I
opened a ticket and then a PR, where sev wrote more dismissive and
My second major incident with sev happened a little while later, around
February. sev sent me a PM which quickly escalated into full-scale
personal attacks and passive-aggressive sarcastic comments about me. I
was yelled at for congratulating Joefish for merging Supernova, and
for asking opinions of team members other than him on some preliminary
ideas I had. I was accused of being a bad actor who was planning a coup,
and that I was intentionally trying to split the team. He said I was
“anonymous”, and hiding behind this anonymity to do these bad things. He
threatened to delete things from the servers since I couldn’t be trusted
with any privileged information.
While the overwhelming majority of the interactions I’ve had on this
project have been wonderful and professional, I have also experienced a
culture of silence which enables this sort of bad behaviour. I have been
complicit in this as well, ignoring and minimising things which didn’t
feel right because I was afraid of causing trouble or coming across as
overly negative. These two incidents were the final catalysts for my
departure, but they were just the end of a line of troublesome behaviour
which I don’t expect to see from anyone I work with, let alone from a
Most other OSS projects today have a code of conduct.
ScummVM does not. As a result, anyone who experiences abuse like this
must suffer or leave because they don’t have any other recourse. There
are no direct consequences for anyone who acts this way. At least one
other major past contributor I’ve talked to received similar threats
from sev, and this behaviour was a major factor in their leaving the
project as well. These departures are preventable, and they are a
tragedy for everybody who works on or uses ScummVM.
I feel like I’ve made some mistakes of my own when interacting with team
members from time to time, and wish that a code of conduct had existed
so that there would have been a better conduit for resolution for anyone
who felt like I was not being respectful and who felt that they could
not communicate this directly to me. I apologise to anyone who may have
experienced any gruff or inappropriate behaviour from me. I would like
to do better and I hope I will have the opportunity to do so in the future.
I don’t think that sev—or anyone else who’s volunteered their time to
work on ScummVM—acts with malice. I genuinely don’t hate sev, and I
would like things for him to go well, just as I hope the same for all of
you. I don’t like not being part of the solution, but for my own
wellness, I just can’t continue to work on a project where there isn’t
an open, respectful, and professional environment.
Here is a recap of all of the work in progress which I was not able to
complete, as of the last time I looked at ScummVM:
* The new Buildbot and Ansible playbooks for deployment were finished
and ready to go. These were in my scummvm-buildbot and
* Reverse engineering of the SCI MIDI engine was ~85% finished (only bug
fixing remains), the GM and MT-32 drivers 100% finished, and ~80% of the
AdLib driver finished (only bug fixing remains). This is on my working
* Reverse engineering of Shivers 2 system code (the main executable and
S2SYS.dll) was ~85% finished, and room code (the numbered DLLs) was ~30%
finished. This is on my shivers2 branch.
Please feel free to reach out with any questions or requests about this
work, or if you need to talk. I can’t make any promises on quick
responses since this situation is still very difficult for me, but I
will do my best to be available. I also have databases and documentation
for most of this work if anyone is interested. I won’t see any replies
on the mailing list, so please make sure to CC or email responses to me
directly. I am still also on Freenode if you prefer to send a PM instead
(just make sure you’re registered with NickServ, since due to the spam
I’ve had to block PMs from unregistered users).
Thank you for reading. Sorry about always writing long emails. At least
this is the last one you’ll get from me for a while! :-) I hope that you
all continue to be successful in your personal and professional lives
and that something good will come out of all of this in the end.
More information about the Scummvm-devel