The past and future of Gameplay Football (and myself)
Bastiaan (baz), 2016/08/14 (Y/M/D foh lyf)
Hello everyone! After long deliberations on the future of Gameplay Football, I've finally made some decisions to share with you.
First of all, I want to share some background on the project's history, and for that, I also want to share something about myself. If you are not interested in that, you can safely skip all this and scroll down to the "the future", or even the "TL;DR" part ;)
Yeeeaaars ago ("AEONS AGO!"), roughly around 2008 iirc, I started programming a multithreaded game engine, Blunt3d 2 (I didn't have any plans on making a specific game with it back then). Multithreading was somewhat of a new thing back then, and I knew my single threaded engine (Blunt3d, obviously) didn't have a long term future. One of the articles on the subject that influenced my decision was "The free lunch is over: A fundamental turn toward concurrency in software" by Herb Sutter (http://www.gotw.ca/publications/concurrency-ddj.htm
), which still makes for a good read.
I put a lot of effort into making this engine puristically 'sound'; every module was nicely decoupled, very modular, and I shall spare the technobabble for you dear non-programmers, but damn it was NEAT. I still am hella proud of this engine. But I did start noticing such an ambitious project was a bit much to handle for one person, especially since I wasn't all too emotionally stable back then. I had problems with depression and alcohol abuse (since ~2000, when I was 18 and started living on my own) and could never hold on to jobs and relationships. Because of all this personal failure, I always had a strong desire to create something BIG, to prove to myself and the world that I wasn't a failure. Which is ironic, because when you are really unhappy, you should actually do the opposite and strive for small successes instead.. but I didn't quite realize that, I guess :p
I started out making a racing game during development of the engine, as a 'test case' (there's still some footage online: https://www.youtube.com/watch?v=ojTPe_zty6I
), but I had been an absolute PES 6 addict for years at that point, and with every new PES instalment that just didn't sparkle with me, I got more tempted to make my own footy game.
The funny thing is -- basically the ONLY thing that I wanted to really make my own footy game for was the lack of manual (analog) passing in PES 6; otherwise, the game was just perfect to me. And it still is today. If someone had hacked manual passing support into PES 6, I would have never started programming Gameplay Football. I still play PES 6 today, and still, this is my only problem with the game. Manual passing just adds so much tactical fun! I tried every new PES and FIFA instalment, but though they do have this function, they miss that solid feel of PES 6, and the brilliant AI of PES 6, and the brilliant EVERYTHING of PES 6. (Yes, PES 6 is absolutely my favorite game EVER, and will always hold a place in my heart.)
Anyway, it must have been around 2009 or so when I started programming Gameplay Football, and oh boy, what a ride it has been. At first, it was just a really fun project, and progress went fast. But the thing with programming is, starting a project is fun, but as projects gets larger, they tend to get more complicated, progress slows down, it starts to feel more like a job instead of a hobby.. at this point, because of my personal troubles, I usually give up and start a new project.
But something had happened in my life which, I think, made me continue programming the Blunt3d 2 engine and Gameplay Football. My father had passed away by taking his own life, after struggling with depression for all of his life. A very sad affair, obviously, and I think it made me become more disciplined on not giving up projects so easily. I really wanted to prove I could do it, so I wouldn't end up like my dad, giving up on his biggest project, life itself.
And so, I went on, and as the months and years went by, the whole Gameplay Football project started become more and more of a burden. Quite early, I understood that this whole thing had grown over my head, but I was committed -- the more love, time, passion and energy you have put into something, the harder it is to let it go. I had made the mistake to share development progress with you too early, so I also felt obliged to not let you down. Not to make you guys feel guilty, of course, this was my own mistake -- but you need to understand that I always had been a loner with social anxiety, and so the decision to let the outside world - no matter how small - know about the project was, for me emotionally, a horrible one. (Even though I love you guys ^_^)
Another few years passed by and I became more and more obsessed and unhappy about the whole thing. I think I lost most of the passion for programming Gameplay Football somewhere around 2011 or 2012, but what could I do? I vowed to never ever again start such an ambitious project, but that was more of a future relief. Gameplay Football had become my problem child; I wanted the whole thing to go away, but it was also my baby. I have been pretty obsessed by it. I went on to finally release the 2nd beta not so long ago - ridiculously long after the first beta, and it doesn't even feel that much more fun (maybe even less so), despite all the work that had gone into it. I have rewritten and tweaked the gameplay code so many times, but always ended up with the same frustration: IT JUST WASN'T THE LEVEL OF FUN PES 6 WAS, and that was SUPER FRUSTRATING. Believe me.
Another thing: as I started out coding it so long ago, back when I simply wasn't that experienced of a programmer yet, the code had become kind of a mess -- the engine is neat, but largely undocumented, and the game code is.. well.. obfuscated at best. This slowed down progress during the years too, as well as making it way less fun to do, as less time went into coding the actual game, and more time into fixing technical difficulties. As a metaphor: the code has become somewhat of a house of cards. Which is not a fun thing to work with.
Another problematic part of this is using my own game engine. (Programming) game engines was my passion early on, but I've lost that passion, and now it's just an obstacle that slows down progress. And for a football game, a multithreaded engine is complete overkill, and just makes things overly complicated. Same with 3D programming: it's just more complicated than 2D. Animation stuff is hard to do. (it would have been so much easier using an existing game engine)
Another personal paragraph here: early 2014, I stopped smoking because of some health issues. But because of that, I started drinking even more, and it got out of hand -- I got weird blackouts, and I felt if I wanted to make something of my life, I needed to seriously change my behaviour. I finally managed to stop drinking altogether with help of extensive group therapy, and also personal therapy, with a very good therapist whom I still visit every week. After the group therapy, I got issues with depression, that got worse and worse, until a few months ago things finally turned around because of a combination of personal development through my superb therapist, anti depressants (seriously, hail medical science for those!), a workplace change (I'm super happy with my current gamedev colleagues), getting a new appartment where I feel super safe and happy, and maybe, most of all, hard work. (I need to remind myself of that last one frequently, according to my friends, haha)
After releasing that second beta late last year, I decided to take some time off from the whole thing, as I badly needed a mental holiday, and I also just needed to make some money. I found a paid project to work on (which is now almost finished), and let the GF project rest for a while. The last few months, I have given Gameplay Football very little thought, and it feels so good. I have never again even touched the beta 2 myself after the release, that's how much I had grown to hate it, and it's painful for me now to even watch the development videos, because of all the energy I put into it. At the same time, I have never been happier with my life as I've been these last few months.
The plan was to pick up programming GF around this time, but as you probably understand after reading all this, I just don't think I can. I don't want to go back to that obsession, as it would go on slowly killing me, and it feels like such a loss of my potential. I want to do so many other things. Smaller things. Fun things.
So there you have it; Gameplay Football, in its current form, shall never get a '1.0 final version' after all, despite me promising that quite a few times. I'm sorry for this, I really am, but I need to make that choice for my own happiness. I hope you understand.
I often got the suggestion I should open source the project. I like the idea, but in this case I've been hestitant, first of all because I'm not very good at working together on code, but mostly, because the code is so messy and badly documented. I feel if I would release the code, it would just transfer this 'oh my, I'm working on an overly complex house of cards'-feeling to other developers, and I don't want to do that. Also, I would get a lot of questions (How does this or that function? What does this code do exactly?) and I don't want to become a helpdesk :p
However, there's a lot of useful algorithms and techniques in both the code and in my head, and it would be a shame if all that was lost. I've come up with (I think) quite a good possible 'solution' so that this thing may get a pretty happy ending, for both me and you, the community :)
I may have given up on most of the GF codebase, but I'm sure to revisit the football game genre in a waaay simpler form at some point. If there's one thing I've learned from this whole thing, it's that I'm only going to do small, K.I.S.S. ("KEEP IT SIMPLE, STUPID!") projects from now on. In fact, I already hacked a 2D game 'engine' (which I named Gaia) together in my free time a while ago, and I've made some minigames/tests with it. It's just so much fun to code simple, single threaded, sprite-based 2D games. (In hindsight, I should have started Gameplay Football exactly as such a project, then I would be at version 6 or so by now. But ah well.)
Right now, I'm programming a simple beat-em-up game with this 2D 'engine' (it's more a toolbox really), which I plan to finish this year, and then sell it for $cheap on steam :) I keep the code simple and well-documented, because I'm planning to also release the source. (to be clear: I will code this on my own, but when it's done, I don't see why other people couldn't get the source to do their own thing with, or just for educational purposes.) It's the first time I've enjoyed coding again since almost a decade, with my new mantra: "Every time you want to add something to the project, ask yourself: does the project really need this? If not, don't do it. If so: make the simplest possible implementation of it." It's a lovely way of going about things, and basically the opposite of the larger-than-life-super-ambitious-mindset I used on Blunt3d and GF. For starting game developers, that would definitely be my advice: I know it's great to think big, but start out small!
So here's the gist (aka. TL;DR)
GF: Gameplay Football, in its current form, is discontinued.
MY CODING FUTURE: I will go on to make simpler games, so I can focus on the creating actual gameplay experiences instead of technical stuff.
GF REVISIT: At some point in the future, I may very well revisit the genre and make a football game, using this new K.I.S.S. format. It will be very basic, 2D, single threaded, sprite-based, arcade'ish. I can use some of the stripped down gameplay code of Gameplay Football, and all the knowledge I gained during GF development. If I do so, I will release the source, so people can make their own footy games based on it, if they want. I will keep the gameplay code and the 'technical' code loosely coupled so people can use the game code on their 3D engines of choice, if they want to make a full fledged PES-style version. I will not actively support this code (aka. I'm not a helpdesk) but it will be simple enough to figure our for experienced programmers. I will make no promises whatsoever about creating this game! But I think it would make me very happy if I the whole GF codebase isn't completely lost, and this seems like a pretty good solution for that.
SOCIAL: I will soon remove the forums, since I'm being spammed by bots, it's a security risk, and it's not really needed anyway since I've got twitter, email, and even an IRC channel :) When I'm working on games, I will probably not actively post updates unless I feel like it, and I will stop feeling guilty about this; it's just who I am. I don't mean bad, but too much social interaction gives me stress, and I want my life to stay less stressful, like it has been the past few months :)
TO MY DEAR COMMUNITY: You are just a handful of people, but I value you highly, and I want to thank you for following this project for so long, and for being patient, and I'm sorry for not delivering. I hope you'll like my future 'minigames', and I hope we'll stay in touch. Thank you, too, for the help with the team emblems, even though they will remain unused. (If anyone is interested in these images for usage in your own projects, feel free to mail me, I can send you the whole package (if the creators agree, of course))
For me, this is the official closure of a stressful decade, and though this text may be overly long for the message it contains; I just felt like sharing my feelings with you. Thanks for reading :)