I miss Fin ‘N’ Kit

Where I was, job-wise

Back in 2012 I quit my job as a software developer and decided to go back to school and use this chance to try to make and publish games. I was so sick of working in the basement in a 6’x6’x6′ cubicle (in retrospect, I was lucky to have a cubicle!) and I was incredibly depressed. All things considered, it was a good job – I look back on it as the best place I’ve worked as a programmer, but back then I was waking up and panicking because I did not want to go into work.

I did go back to school – one semester at one place, and one semester at another place, different degrees each time, neither of them a good fit, but I still had to pay for those classes so I had racked up more student loans.

I’m trying to look at my LinkedIn to put the pieces in place, because I don’t remember exactly when I ended up being unemployed for an extended period of time. I had part-time jobs at an office store and at a music store, but those paid nothing. Anyway, it looks like the original Fin ‘N’ Kit was published in 2014, so around then – I finally went back to work as a software developer around May 2014 because school is expensive and I needed money.

So somewhere in 2014, I had no job on purpose, because I wanted to try to start making and publishing games. While at my previous job, I had always been day-dreaming ideas for all these great things I could make if I just had the time and the energy. Was depressed, quit job.

Taking the plunge, unsuccessfully.

At the time, I was fortunate enough to have a boyfriend that I lived with and seemed relatively okay with me only working part-time retail jobs while trying to work on games. There were two projects I worked on during this time – one was a contract game for a client to advertise their brand, but Fin ‘N’ Kit was what I did first.

The old title screen of Fin ‘N’ Kit, back when it was Delfino & Katyuno

It was originally named “Delfino & Katyuno”, which is an Ido language title, but nobody is going to remember how to spell that. Anyway, I was working on Delfino & Katyuno for a while. The gameplay and having a cat/dolphin I thought up in a dream, and it seemed really cute.

Gameplay of Fin ‘N’ Kit for Android

I also wanted to include a level editor so people playing the game could also make their own levels.

The old level editor

(The level editor ended up taking me a majority of the time to make.)

I built the original Fin ‘N’ Kit with Gideros & Lua, as well as that contract game that became Gift Grab. Gideros made it easy to test on mobile and publish on mobile, though trying to figure out how to do certain things with the filesystem was a little difficult. I published a Fin ‘N’ Kit demo for free here: https://play.google.com/store/apps/details?id=com.Moosader.DelfinoKatyuno

After the demo was released I began working on the contract project. However, now I was unemployed and stopped seeing my therapist because of the cost. I was depressed at work, I was depressed off work. I did get the project to a complete state, despite feeling useless and lethargic and often crying on the floor, immobilized. But it had been like this for years – it was always a struggle to get myself to move forward. It felt like there was one me, who wanted to get stuff done and felt terrible if they didn’t (the Anxiety-Rach), and the other me, who felt like I was a failure and useless (the Depression-Rach).

So the whole “quit your day job and make games” experiment failed.

And of course I felt bad about that.

Back to work

I went back to work as a software developer for two more companies, from 2014 to 2015, and again, I was so fed up with that world. Every subsequent job I took was worse, and I kept looking back at the job I had before I quit with nostalgia. Sure, I broke down and cried a lot, but at least that place was decent. Oh well.

I had quit my last software development job, and had an interview with a new place. They were going to offer me a salary of $100,000, which would have been my highest salary I had made, but after I informally verbally accepted, I kept breaking down. Again, I was on the floor crying, and I couldn’t quite explain why, but staying in the field felt wrong.

After a few days of this, I told myself: Look, this is my body telling me that this isn’t the right decision. I can’t keep doing this.

So I rejected the job. What else could I do? Working part-time in retail was beans, and I can’t support myself with that (I was with a different boyfriend at this time). Back in 2013, when I was going back to school at UMKC, they had given me the opportunity to be an adjunct there for a couple of semesters. I really enjoyed teaching there, even though it really challenged my shyness and difficulty speaking in public. I had always really enjoyed teaching – my first job was tutoring math at my community college’s math lab. And, being an adjunct, while the cheaper alternative for schools to go with for hiring, was still a better paying job than working part-time at an office supply store.

The CS department at UMKC has always been pretty good to me. I was able to email the chair and ask if I could teach there again, and I got one class. I also ended up meeting another instructor at JCCC through a friend of mine (who was a classmate of mine back at UMKC), and that got my foot in the door for teaching there as well.

In Spring 2016, I was teaching two classes: CS 201R at UMKC, and CS 200 at JCCC.

I also had asked my doctor for antidepressants.

I had also met this cute boy on Tinder…

Rai and Rachel!

Rai and Rachel!

Teaching and gamedev

2016 was the best year of my life in a very long time. I was excited to teach – I loved teaching and making programming assignments and lectures and recording videos. I had also began my relationship with Rai and we hit it off so well, unlike anyone I’ve ever met. I was also on antidepressants, so that probably kept my mind more focused as well.

I was committed to continue working on games while working part-time as an adjunct, and I did manage to do that, even though this was my first semester teaching in a while and I had to prep basically everything. (I’m picky, I think textbook resources are really boring.)

I decided to work on Fin ‘N’ Kit but I didn’t want to use Gideros – I was having a hard time working with the filesystem, and now I had teammates to help me work on levels but the problems with Gideros made it hard to work online and send each other levels. I decided to rewrite the game.

In C++, SDL, and Lua.

Actually I had a lot of fun writing it – though of course I would also get worn out by having to implement everything as well. I split the game into two parts: I worked on the Kuko engine, all the reusable bits common to any game, while simultaneously working on Fin ‘N’ Kit itself. I also used the Lua scripting language, and that’s how levels, language files, menus, and other things are stored. I was so proud of that code. I would go back and refactor as I saw fit because, unlike writing software for someone else, you can freaking choose to take the time to make things better!

The beautiful map editor

Like the first version of the game, I also spent an ungodly amount of time on the map editor itself. My excuse this time was because I needed other people to build levels, too. I kept tweaking the UI and adding features to make it better and better.

A cutscene – Fin says “Hello!” and Kit says “Hi!”

I went with a totally hand-drawn look, and wanted to make it super cute. The main game had still cutscenes you could watch before playing the story-based levels…

The level select screen

I had intended to add several map types – Beach, Swamp, Lava, or something I don’t remember what they were!

“Balmy Beach”, the first world

And I kept polishing it up and updating it to look really nice.

Fin ‘N’ Kit looking really nice

I worked all through the spring semester on this, but I was also feeling weary – my teammates couldn’t work on anything while I was the bottleneck, programming this entire game solo.

And, there was a texture glitch – probably because I used vanilla pointers in the Kuko engine and was manually managing the memory, instead of using smart pointers.

Where did Kit go??

Textures would disappear or be replaced with other items’ textures, and I knew it would take a while to figure out what was going wrong. In the meantime, my teammates didn’t have anything to do. So, for the time being, we put Fin ‘N’ Kit aside.

The client who contracted that game I worked on back with the original Fin ‘N’ Kit had, years before, decided to not publish that game. I was really proud of my work on it, and I thought it would be a waste to just let that code die, so I had ended up paying back the money they paid me so that I could keep the code and republish with new assets, but it had always been sitting around – no time to work on it.

So in autumn of 2016, I was working on new graphics for the game, Tea worked on translations, Jessica worked on marketing and the trailer, and Rebekah helped with testing. We put out Gift Grab: Christmas Quandary together by Thanksgiving.

Depression, revisited

Two weeks from November 1st, 2016, Rai’s employer’s client decided they didn’t need him on-site anymore since they were going through budget cuts. They let him know he would have to return to India in two weeks. We were already living together, but had only been dating for eight months. Those two weeks were so tough, and we weren’t sure what was going to happen to our relationship. He went back on November 1st, and leaving my night class, walking to my car, knowing that he wasn’t there waiting for me was crushing.

Soon after, the election happened. Antidepressants can only combat so much.

For the rest of 2016 and most of 2017 I just got through each week like a zombie. Each workday like the last, just class prep, teaching, grading, repeat. Kabe the cat was there for me in the evenings, and most nights I just laid on the sofa and watched TV after work.

Kabe and me

I did go to protests, I did some volunteering for refugees, I donated money monthly to multiple causes. But I can’t remember much of anything from 2017, except my trip to India to see Rai, meet his parents, and officially get engaged.

Rachel and Rai at his parents’ house after engagement

OK, but what about Fin ‘N’ Kit?

I’m still really proud of that code. I’m also proud of the game and the polishing I did on it. Sometimes, when my students ask about using graphics in C++, I pull down the code and run the game and step through how it all works together (from a high-level overview). Every time I open it up for my students, I remember how much I love that game.

Through 2017 I was working full-time and more-than-full-time, so I didn’t have the energy or the time to work on much in the way of game development. This year, I’m working on focusing! I’m so bad at focusing on one project. But after these visual novels, maybe I’ll work on Fin ‘N’ Kit on the side while everyone else works on their own games. I know writing a game from scratch… IN C++… seems like a weird thing to do, but I really enjoy it. I love so many aspects of game development: The UI design, the art, the animation, the programming, the code design, just putting all of it together!…

…Awwman I want to work on Fin ‘N’ Kit so much!!

Programming Poems

Was just playing around with words to try to think of ways to get students to remember that they need == when comparing two values.

To compare if two values are equal,
Your equal sign needs a sequel. (==)

 

I posted it on FB, and was given the response “===” so then I wrote:

If you need to check the type and value both,
your equal signs will need another growth?

 

But a friend of mine, Chris M, also wrote a poem:

If checking type is on your minds,
why don’t you use three equal signs?

 

I just thought it was funny and cute. ^_^

 

Programming for Discrete Math

  • Josephus Game
  • Magic Trick
  • Tennis Matches

I like using programming in the classroom. I’ve never seen programming really used much in any of the math classes I’ve had in the past, save from some odd MatLab projects (of course I opt for NumPy or SciLab – Go FOSS!), and sometimes reading paragraphs of math problem examples in a textbook just makes my eyes glaze over. Rather than try to demonstrate this stuff on the whiteboard, I decided to write some quick Python/PyGame programs for the examples from the textbook we’re using.

Another pro of this is that it helps me “grok” the content. I might read over something and think “yeah, that makes sense”, but I don’t really know it until I put it into practice, and the best way for me to put it into practice is to make it a program. When applying it in code, it’s more likely I’ll remember the fine details much better, just through the entire process of working on the program step-by-step.

Not sure if I’ll have my students do any coding (various prereqs, they might all know different languages), but it might be nice in the future!

You’re ignoring the issue – Diversity in Tech

Don’t read the comments. Sometimes, when I post a link to an article on my Facebook wall, I feel compelled to add the warning, “don’t read the comments” along with the article.

This morning I posted a link to NPR’s Why Some Diversity Thinkers Aren’t Buying The Tech Industry’s Excuses article, and the comment responses are pretty much exactly the kind of responses that I still get sporadically for having the audacity to suggest that my YouTube channel needs more women viewers on someone else’s video that highlights the same problem on their channel.

comments

Scroll through the comments in the Diversity in Tech article, and you see the same mentality…

comments2

As sick as I am of hearing the same, “They’re just not interested. Stop trying to force women and people of color into tech!!!“, this isn’t what I want to post about right now. That’s a whole other long-ass topic that needs to be researched… Which I have done some research for that re: women in CS already so you can read this if you really want to.


No, what I really want to talk about is that, by making statements like “they’re just not into it”, ignoring whether or not we’re going to argue that entire demographics of people simply aren’t interested, I cannot imagine that anybody would state that absolutely, 0% of [demographic] are not interested in computer science. I think that we can all agree that at least some of these people exist, whatever people these might be. Right? There can’t be a net total 0 women, or African American people, or Latinx people, or Native American people, or gay people, trans people, intersex people, etc. etc. etc. You would have to be pretty damn specific if you wanted to come up with a demographic of people that might not exist as a person-who-is-interested-in-tech. And heck, even I fit the demographic of a “woman-or-maybe-genderfluid/queer/indifferent, asexual, panromantic, Esperanto-speaker, dandruff-haver, piano-player” programmer – I don’t mean to be facetious, I’m just trying to highlight that a person can be many things, and still interested in tech.

OK, so my first point is, there cannot be a people of any given demographic who have zero software developers among them.

Let’s look at these handy graphs I found on this article Race and Gender Among Computer Science Majors at Stanford:

Male & Female Computer Science majors at Stanford (from Medium.com)

Male & Female Computer Science majors at Stanford (from Medium.com)

So, there exist some women. It isn’t zero women. And then we have…:

Computer Science majors by race at Stanford (from Medium.com)

Computer Science majors by race at Stanford (from Medium.com)

and the Medium article even breaks down even further with more statistics.

But my point is, it isn’t zero. So let’s stop acting like all women/PoC are simply not interested in computer science.


 

So, secondly, the idea is that these people exist, but major tech companies still cannot at least build a ratio of tech employees that mirrors what’s coming out of colleges.

But they totally could – if they really wanted to.

As Martin Fowler points out in his DiversityMediocrityIllusion post,

To understand why this is an illusionary concern, I like to consider a little thought experiment. Imagine a giant bucket that contains a hundred thousand marbles. You know that 10% of these marbles have a special sparkle that you can see when you carefully examine them. You also know that 80% of these marbles are blue and 20% pink, and that sparkles exist evenly across both colors [1]. If you were asked to pick out ten sparkly marbles, you know you could confidently go through some and pick them out. So now imagine you’re told to pick out ten marbles such that five were blue and five were pink.

I don’t think you would react by saying “that’s impossible”. After all there are two thousand pink sparkly marbles in there, getting five of them is not beyond the wit of even a man. Similarly in software, there may be less women in the software business, but there are still enough good women to fit the roles a company or a conference needs.

(By the way I love Martin Fowler)


 

The people are out there, they just take more effort to find. Part of it might include how a company finds their candidates – if they weigh references heavily, then that might only support the demographic that is most heavily represented.

If they advertise that they’re the “standard nerds” who love beer and bacon, that’s going to be a turn off to certain religions, as well as people who simply don’t enjoy alcohol (*raises hand*), and the idea of having social events at work centered around alcohol simply just doesn’t sound like much fun.

It could be where they’re posting their job ads. It could be the values that they present. It could be any number of things. But to build more diversity, some effort has to be put into it, rather than just maintaining the status quo and acting like, “well gee, why can’t these women and/or PoC just fit in with our status quo? Why do we have to change?!”

 

When I interview for a software job, I usually ask the people conducting the interview about diversity. How many women work there? What about other ethnicities, religions, and backgrounds? A majority of the time, I get a response akin to “We hire for talent, not diversity”.

That isn’t what I asked about.

During the interviews and walk-throughs, how many people are present who aren’t white men? Only one time have I been interviewed by a woman – and it was because the entire team interviewed me, not because she was the boss. At my last job, I think that there were maybe two software engineers who were women (including myself) in the group of maybe 10+ teams. There were women present as BAs and QAs, but so few as the developers.

What, are women just naturally more interested in quality assurance than software development? Back in the caves up through the agricultural revolution, women biologically evolved to QA the hunts and the crops and all of that, while men evolved the ability to program those… hunts and crops? (Seriously I’m sick of the “biological” argument in a multitude of ways, especially if we consider nonbinary genders and trans people.)


 

Ugh, ok. I’m hungry now, and I have to prep for my Java class on Thursday. I need to come up with more examples of using arrays in simple programs. Ĝis la.

Offices

Have you ever had a college instructor who didn’t have an office?

Most college instructors have office hours to help students outside of class. It’s required in most cases. So, therefore, instructors need offices. Sometimes it might be a room with several cubicles, or it could be their own room with lovely lovely sheetrock on all sides and a door.

The office also provides a nice, quiet space for the instructor to get their planning, grading, etc. done.

Is being a teacher an antisocial job? No, who would say that? You have to interact with people a lot, from your students to the other teachers and faculty of the school.

Being a teacher requires a lot of people interaction, and yet, having an office isn’t seen as somehow making a teacher less able to do their job. The office is a required part of the job.

So how come software developers are thrown in open floor-plan large rooms? The justification is usually in favor of collaboration between the developers, but if teachers get offices and can still talk to people, why can’t developers?

If it helps to have quiet while an instructor is planning, grading, or otherwise doing their non-people work, why do we not treat developers the same way, giving them a nice quiet area to get their non-people work done?

And that’s not even getting into how I can choose the hours I’m in my office, and I can choose when and where I get my non-people work done as an instructor. I do most of my class preparation at home, on my laptop that runs Linux, with my kitty cat and tea and food that I can prepare in my own kitchen.

If teachers can have this freedom and get their work done, why can’t software developers?

random test generator

random test generator

What do you do when you want to write a take-home exam, but want to discourage students from simply copying off each other?

If you’re a programmer, you write a random exam generator. 🙂 If you’re not a programmer, then you can probably find an existing one out there much nicer than mine… but oh well.

This is a C++ program that reads in text files – each question position has a “deck”, and a deck file has a list of questions that are interchangible (e.g., “declare an int”, “declare a double”), and then you have a series of decks that represent the amount of questions in the exam. Each question item in a deck has a serial number as well.

The exams are generated and output to .html files (I decided to do this because it’s easier to maintain the formatting if I copy it into a LibreWriter file), and a key is also generated, with all the decks and all the questions and their answers.

I’ll probably go extend this to list point values as well, I like putting that on exams. Then I have to go write my Programming Fundamentals exam 1. Whee!

Fin ‘N’ Kit DevLog #2

I don’t have a lot of time to program today, since I teach class tomorrow and still would like to grade some assignments before then. Everything else I got done early today, so I snuck in some gamedev.

Beginning the set up of the map editor. The original version of Fin ‘N’ Kit (originally Delfino i Katyuno) has a map editor, but it was built with small mobile devices in mind. Trying to update the game with the old framework wasn’t working out, since it seemed like it wasn’t supporting much as far as desktop computers went. Due to a few constraints, I’m rewriting the game in C++ – but, it shouldn’t take *too* long, depending on how much time I have.

I’m redoing the interface, keeping in mind that it should be usable both with a mouse/keyboard, but also with just a handheld device’s touch-screen.

Anyway, here are some small screenshots. I would like to redo the trinkets and obstacles in the game, because they don’t make much sense I think. Or they’re not shiny enough. Or something.

The game may also support different sized objects (either scaling an item to different sizes, or some items are just bigger than others).

Oh well, that’s it for today!

Fin ‘N’ Kit DevLog #1

The Moo team is working on updating Fin ‘N’ Kit – an old mobile game I made two years ago with Gideros and Lua.

Because of some of the constrmain menuaints with Gideros when it comes to PC support, I’ve spent the day creating a Fin ‘N’ Kit C++ project using my Kuko framework, which is built on C++, Lua, and SDL2, with the intention that it will be our primary framework for all PC and mobile games (with Windows, OSX, Linux, and Android supported initially.)

In the Kuko framework, you can set up menus in .lua files, basically making use of Lua tables, so today I’ve mostly been working on menus.

So here’s some quick looks at the main menu and play sub-menu.

 

Screenshot-Fin 'n' Kit - Moosader LLC-1Haven’t worked on the Options or Help menus yet, but there is a language select menu in, with the languages English, Spanish, and Esperanto. We can add translations later, but these are the languages that people on the Moo team currently have expertise in.

The level editor is one of the big things to implement soon because that means that the Moo team can work on levels sooner, so we can get a collection of levels available for play upon first release of the game. Of course, we can also add new levels and themes over time.

The level editor will also be included in the game, just like with the current version that is available on Google Play.

 

 

Screenshot-Fin 'n' Kit - Moosader LLC-2Another thing that Lua is used for in the Kuko framework is language files, which allows us to have the game available in multiple languages. The menu lua files can take hard-coded text, or a text ID, which would correspond to a key in the language files.

 

Well, that’s all for now.

–Rachel