Edit: This has also been
posted to the blog with adjustments for audience
Right, clearly this perpetual cycle of update -> excitement; no update -> mindless void of rumours, is serving absolutely no-one’s interest – so I have some stuff to say.
I’m not much one for talking about personal things, but I guess on this occasion I’ll make an exception. Frequently, my overly-verbose way of writing gets me accused of politicking, but really I just like words (and this is the first of several ironic statements you’ll find in this post)
It's a big request, but I'd appreciate if folks could read it through before reacting - this is the best I can do, really.
First off, whilst I sort of understand why it’s occurring in this scenario, I’m really not big on the “let’s start hurling insults” and the “let’s make up s**t about someone’s personal life” sort of approaches to discussion. I’ve never really understood this point of view, not just here, but anywhere in life – it seems like a real waste of time to sit around trying to fabricate something about someone else. I suppose I shouldn’t be surprised, given how well tabloid newspapers sell
I guess it’s in the absence of information, any kind of information fills the void, whatever its validity.
I’m not particularly interested in going into addressing every tiny thing that I think is completely misguided and misinformed, but there are a few that I’d like to clarify, because I think the perpetuation of the particular pieces of misinformation are harmful to everyone with a genuine interest in GR (and yes, before anyone goes there, that includes me). I’ll handle a few of the big ones first, then a few smaller ones.
For clarity, I agree 100% with Crowella when he says, "the criticism of the development so far has been fair and just" - you'll hear no arguments to this from me. I plan, implement and manage software projects for a living - on projects vastly more complicated than GR - and if any developer working with me had done this poorly, he'd have been fired a long time ago (but, more on that below).
Why isn’t GR open-source?
Because I literally have a piece of paper here, that I signed, that dictates that I’m allowed to work on GR, use its source in derivative products, sell those derivative products, whatever, but I’m explicitly not allowed to provide the source to any third-party not directly involved in the closed-source development of GR. The only other provision of note is that if anything is sold, there is a royalty to pay on profits to Hannu & Jukka.
I could take a photo of the license agreement we have, with today's newspaper, and my own face... pointing at the clause that literally forbids us from distributing the source code, and it probably still wouldn't be enough for some people (for clarity, I’m not going to do this – don’t post your legal agreements on the Internet: it’s really dumb).
People seem to think we went to Hannu and Jukka, asking for the license to be "closed source" - but that's so far from the truth, it's not even funny anymore. I even asked Hannu about allowing us to open-source GR (as a whole or in “part” if they felt it wasn’t possible entirely) – he and Jukka considered their point of view, and decided they were happy to release the code on the condition it was not open-sourced.
We agreed to, and have respected, what Hannu & Jukka saw fit to license - without that, there was no future of any kind for the GR source. There wasn't even a plan for GR2 at the time we initially came to an agreement - this was only amended later, when all parties thought it would be better to start afresh (due to a similar set of circumstances that led to GR also not being open-sourced). I really don’t agree with the comment I saw the other day that Hannu & Jukka are “douchebags” – anyone who puts time and effort into a project they created, deserve to decide its fate.
Hannu and I had been talking for literally years about the GR source before any of this happened - and not about giving it to me, but giving it to anyone: it just wasn't on the cards. I’d suggested to him other people who could have taken on the project, but for whatever reason, he was only happy to license it to me (and only, eventually, after years).
Interestingly, I didn’t even have a “current” conversation with Hannu about this leading up to the licensing – out of the blue one day, in reply to a stale email thread of many months old, he sent me a zip file of a “new build” and some explanation about what had changed since the last release. 9 months later, Hannu handed over the source, provided some insight into various decisions and the numerous “black boxes” GR contains – and the rest is history.
It’s just worth remembering, that without Hannu agreeing to license the source to myself and Markku, the last GR version would have been released in 2003. We’ve corresponded on major decisions and on major version releases, but that’s about it – I gather he and Jukka are happier knowing GR is no longer their responsibility.
What are you actually trying to achieve here?
Honestly? Both Markku and I just want to make a fun, and worthy, sequel to GeneRally… we don’t really want to make another version “just because”, but because there are things we’d like to improve and like to add (primarily more cars, and some avenue for multiplayer) that really aren’t that viable in the current situation.
I actually had a discussion with Hannu about the possibility of both of those things, before we even wrote a single line of code, and it was his impression (after making a “working prototype” of more cars), that it just wasn’t that viable in the state GR was in. For example, the only real way we could get the moving cones working… yeah, those are “cars” – they have stats and everything.
If it was as straightforward as just bolting stuff onto the back-end of GR as-is, then that would have been better for everyone: quicker turnaround, and far less for Markku and I to do.
We honestly considered releasing the update to GR completely “anonymously” (well, without our names anywhere), but figured it was probably better for some kind of community interaction if we actually had a point of contact (some fierce irony here, considering how infrequently we actually post anything…). Furthermore, Hannu and Jukka did not want any level of involvement with the updates – and they certainly wouldn’t have appreciated folks bombarding them with questions. But, I guess that now qualifies as “always has to have his name on it” – damned if you do, damned if you don’t.
As far as funding goes: both Markku and I are financially secure, and have no real intention to “get rich” off the back of GR (that is a distinct statement from we “completely refuse to ever make money from GR” – for complete clarity).
So, what’s the state of the project?
As mentioned above, a bit of a mess – but not really for the reasons some people are probably imagining. It’s definitely a mess by “software development project” standards, but fortunately/unfortunately, this isn’t a normal project.
It really ties in to why we’re incredibly terrible at writing posts about progress – because I think we’re now on maybe the 6th or 7th iteration of the track loader/importer; the 4th or 5th version of the car physics; the 3rd lighting model; maybe the 4th or 5th implementation of the way skidmarks are generated (it has a surprisingly high performance impact); etc. We’re rewriting so many things, just because the pace of development is slow… something gets out-dated, or performs really badly when integrated with something else (keep in mind, we’re aiming for really low specs again), and the cycle repeats.
If you know you’re going to have 16GB of RAM, 4GB of VRAM, and a 4GHz processor to throw at your game, you can do whatever you like in almost any way you like – but we’re trying to keep to the mantra of GR being playable on older machines comfortably. Probably some of this falls into the realm of premature optimisation – but both Markku and I find these iterations quite fun, which leads to us getting drawn into them perhaps a little too often. This is something we’ve realised recently, and we’ve made some changes to ensure we don’t spend all our time rewriting things we already did.
Speaking of Markku, he’s pretty obsessively trying to keep a GR1 feel to the physics, whilst also allowing for car makers to really exploit some new features (like actual suspension, weight balance, etc.). Making “some car physics” is trivial, remaking GR’s car physics – without simply replicating the primitive way GR handles physics – is not that straightforward.
We also went back over a whole tonne of comments from KS and from the forum here (and other places), and decided to ditch the objects and start from scratch – they just didn’t feel “GR-y” enough for us. Currently we’re working with mostly placeholder stuff again, but we’ve got someone available to provide assets for us once we tie down what we actually want.
I’d say we’re not a huge distance from something broadly playable – but the time estimate for actually getting from “okay, everything’s a mess but we’re getting there” to “playable” is just not something I want to hazard a guess at. We’ve missed pretty much every estimate we’ve set so far, so it’s clearly not something we’re great at (and somewhat normal, considering the amount of free time really fluctuates).
Why don’t you just make more, small update posts?
Because it’s really just not fun for us. That’s not a good reason, it’s just the reason it’s been the case so far. I guess this is something that can be seen from two perspectives: posting updates about rewriting things for the nth time just leads to dissatisfaction and complaints about not making progress; and not posting updates about rewriting things for the nth time just leads to dissatisfaction and complaints about not making progress and the lack of information.
I know that’s not the full story, and I know that people appreciate something over nothing, but it’s pretty demoralising to write, before even thinking about the possible responses.
I suppose the logical follow-on to this is, “what are you going to do about it?” Honestly, I’m really not sure. Every single cell in me feels like saying “probably nothing” – that’s my default response to feeling like there’s not much that looks like progress. We’ve said a few times “when we have something new, we’ll post about it” – but our threshold for that seems pretty high (some whole feature, rather than maybe just “some improvements”).
Neither Markku nor I are really the social media types – and we’re both very private individuals – so sharing “this is what I did today” is not really something that comes naturally. Most of the blog posts we’ve written have taken hours upon hours to write, tweak and perfect – so it feels like when you sit down one weekend to make some progress that your choice is: “I can improve the way the AI works” or “I can write about how little progress we’ve made.” I think you can guess which wins time and again.
For some context, Markku is currently writing his PhD thesis… and I’m a father of one (soon to be two) – free time isn’t always as available as it might have been a decade ago and, in honesty, I’m not going to pass up the opportunity to do something with my son to work on GR at any point. If that means it takes until he leaves home for University, then so be it (but that’s not the intention).
For some context, a few months ago, I sat down and worked out a neat system for pulling leaves off trees as the car drove past, and have the leaves fall onto the track - that was fun, but spending a couple of hours writing a blog post about it is just… not quite as fun.
The best thing I can say right now is: we’re open for suggestions as to how to better handle communication – it’s really just not something that comes naturally. Markku and I need to have a bit of a chat about what our threshold for “news” is, and hopefully we can work something out to everyone’s satisfaction.
Why did you remove the Community section from the website?
I forgot to link it in the menu when building the new site, and didn’t notice until someone here made a post. The new site is built with a static site generator, and missing a definition in one place means it doesn’t build the menu link in – I failed to notice it when uploading.
It’s fun to theorise about more sinister ideas, though…
"Never attribute to malice that which is adequately explained by stupidity.” --
Hanlon's razor
Why is PGR at the same level as GRIF on the website?
Ah – the answer to the question literally one person is asking. There are two reasons here.
Firstly, it’s been that way for the last two iterations of the website (I checked). The “unofficial” vs. “official” thing was decided between Tuomo, Ivo and myself a long time ago – but again, it’s fun to think of more sinister reasons
Secondly, the only “donation” we’ve ever accepted for GR was from Crono for the domain name – Crono runs PGR – and so we thought it was fair to list PGR there as a “thank you” for his generosity. Crono, Ivo and Tuomo also form the backbone of our release-testing and have all provided incredibly valuable input and support over the years… so I always like to try and factor in things that give them a bit of recognition for their contributions to keeping the GR community alive.
-----
I don’t really have a lot to add to all of that – and I am, in theory, happy to answer further questions (though I’m not going to go as far as to say I promise to answer every question).
If you’ve read this far: thanks for your patience. As much as it may not seem it, Markku and I genuinely do appreciate the support that’s been given over the years (and the reasoned criticism) – and we’re never thinking “how can we annoy the hell out of everyone next time?!”
James