I started my career in a traditional tech role and quickly grew to hate it.
I used my savings to fund a 2-year sabbatical in which I wrote my own game engine using C++ and LUA (this was in the dark days of XNA, no Unity yet).
Towards the end of my sabbatical, I went to GDC and started getting involved in the scene and used my game engine to apply to AAA studios. I eventually landed a job in Vancouver BC and went to work at an amazing studio for the next 5 years, which gave me enough time to meet some co-conspirators and start my own studio.
After 5 years of hellish work, intense stress, and poverty wages, we created https://store.steampowered.com/app/656350/UnderMine/ which found enough success to make another game. It destroyed several relationships, burned me all the way out several times over, and caused me to tear my retina I was at the computer so much. It's hard to be honest with myself about what I would have done if the game had flopped.
So it's certainly possible to go from traditional tech into games. It can take a while. Everyone's path is different. Be prepared for some life-altering downsides to the games industry, especially on the indie side.
Wow, love your game! Interesting to hear the story behind it.
I just came out of Ludum Dare this weekend and always play with the thought of entering the indie game dev scene, but I'm just too afraid of leaving my stable dev job.
Even fairly simple systems might not have a clear way to answer. Consider a movie recommendation system.
One simple way you could build such a system is to come up with a list of things about movies that might affect whether or not someone would like them, where for each thing on the list we can assign each moved a number from -1 to 1 that says how much of that thing the movie has. Call this list the movie's vector.
Some examples of things we might pick are how much comedy is in the movie, how much romance is in the movie, presence of A-list stars, how musical it is, and thing like that. We might also have items for specific stars or directors.
Then we could go through our movie collection and have someone figure out each movies scores for all those things in our list.
Then we could figure out for our users a list that lists for each of those things how important it is to that user, from -1 (I hate movies that have this!) to 1 (I love movies that have this!). Let's call this the user preferences vector. If we have a list for a given user of movies they have already watched and how they rated them on say a 0 to 5 scale then it is some straightforward math to figure out the user preferences vector for that user that does the best job classifying the movies they have already seen in a way that agrees well with that user's ratings.
That user preferences vector can than be used to recommend new movies and should work pretty well if (1) we picked a good list of things to score movies on, and (2) when we manually assigned the scores we got it right.
To predict how well a user would like a given move we just take their user preference vector and compute the dot product of it with the movie's vector. The more positive that result the more we think the user would like the movie.
With this system, it would be easy to tell someone why you recommended a movie. We could look at their preference vector and compare it to the movie and tell them things they really like that the movie has and things they really hate that the movie does not have.
But the system described above has a drawback. It is hard to figure out what factors to include in the movie classification. Should comedy for example be one item, or should it be broken down into several such as physical comedy, insult comedy, bodily function comedy, and so on?
Also, if you have a large collection of movies it is a lot of work to go through them all and score them on each factor. And if you later find out you need to add or remove factors you have to do it again.
It turns out that there is a way to sidestep both the "what should my factors include?" and "how do we get the factors scored?" problems.
What you do is just decide on how many factors you will have. So let's say we decide we are going to have 50 factors. We don't have to decide what they mean. We'll just call then F1, F2, F3, ... for now.
Initially we just assign each factor a random value from -1 to 1.
We also do the same thing for the initial user preference vectors. Just assign each factor in the preference vector a random value.
Then we can do a loop, consisting of these two steps:
1. Using the known 0 to 5 star ratings from users of films they have seen, adjust their preference vectors so that ordering movies by the dot products of the movie vectors with the preferences vector matches the ordering by the user's star ratings.
2. Same thing, except instead of adjusting the preference vector to better work with all the movies a user has seen, adjust the movie vector of each movie to better work with the preference vectors or all the users have have rated that movie.
Keep looping until things aren't changing much. You then end up with a set of movie vectors for you movie catalog and preference vectors for your users that do a good job of ordering movies that user has seen that matches well with how the user rated those movies, and that likely does a good job predicting how well they will like new movies.
This was with an arbitrary decision to have 50 factors in our movie vectors. Since the process described above can be entirely automated and is pretty quick, we can experiment with difference vector sizes.
We end up with a recommendation system that is very likely much better than the one we would get if we picked the items that went into the movie vector.
It is still a simple system, just like it was when we came up with the components ourselves and assigned them by watching the movies ourselves.
But notice that we now have no idea what the heck the factors in the movie vector mean. We can no longer tell someone we recommended a movie because they like comedy and romance and hate kids movies and this movie fits that well.
We could tell them they liked past movies that have a high score in components 12, 15, 23, and 102 and a low score in components 19, 77, 83, and 107, but they are probably not going to find that to be a useful answer.
I had a 5 minute conversation with my niece at the park about rotary phones and now my feed is full of rotary phone-related articles. This happens more times than I can remember.
My gut reaction is that it listens to me, either directly or via some app, but I know Google has refuted this fact. I suppose this is testable too, so I tend to fall on the confirmation bias side of things.
I am confident it did not, that conversation was out of my mind as soon as it ended, which was why I was so surprised to see it dredged up again in my feed.
Articles of general interest are allowable in moderation.
Also, there is broad overlap between the tech and entertainment industries. Some people here have experienced the seedy underbelly of entertainment. And such stories can be very interesting because, for the most part, tech workers in those industries are involved but invisible.