Stormkeeper: Ok. Settle down children. Ladies and gentlemen, tonight we have two members of the SCP team, Chief1983, and Goober5000.
* Goober5000 waves
Chief1983: Si senor
Stormkeeper: And they have graciously consented to be subject to the First Action. So gentlemen. How did the SCP start?
Chief1983: Pardon who? The whatsit? First Action?
Stormkeeper: The First Action, but let's not worry about the small details, eh?
Chief1983: I'll let goober field this one I think, if he can be reached. I've only been a member since 2006. Even after more than 4 years, my knowledge of how it started is pretty weak.
Goober5000: Heh. Um may have to wait for a bit. Ok, well it all started with the original release of the source code in 2002. It was pretty informal at first; people started by submitting patches to do this or that, mostly ship flags or simple SEXPs. Eventually we had a bunch of small patches floating around the forum. That's when it became clear we'd need some sort of organization, so Inquisitor stepped in with a CVS repository all ready for us to use. And then the forum admins created SCP boards on both HLP and VolitionWatch.
Chief1983: Which forum was this again? I mean, this was before there was an HLP wasn't it? Or at least, an HLP with its own server.
Goober5000: General FreeSpace probably. HLP existed, and the Volition Watch BB still existed. Note, this is not the same thing as the Volition BB. Penguin was the guy who really got the repository set up; he imported the code into CVS, sorted out the project names, and fixed the file case. All the files were mixed-case, which penguin realized would play havoc with case-sensitive operating systems if we ever got the code ported. This was, of course, back when the code was Windows-only.
Once Penguin got the code imported, the repository was opened up for people to commit their features, so everyone who had a different feature on the board started merging theirs in.
Stormkeeper: Wouldn't that cause problems?
Goober5000: Yup. We hadn't really developed any ground rules at this point, even though we had a repository. It was basically a free-for-all; people would commit bumped limits, game-breaking AI changes, and so forth.
Chief1983: Hence SCP Rule #1: Don't break retail.
Goober5000: Yup. Someone realized that pretty quickly, though I forgot who.
Stormkeeper: Inquisitor, maybe?
Goober5000: I don't remember as this was still before I joined, but the coders added a few command-line flags to distinguish game breaking features.
Stormkeeper: So how many years back, give or take?
Goober5000: This all took place during 2002.
Chief1983: And thus started the habit of making a command line option for everything.
Goober5000: Hehe, yeah. At this point the features were still pretty small, so adding command-line flags wasn't such a big deal.
Chief1983: And there weren't too many better options, since many tables we have now were still hard-coded data.
Goober5000: We did get oddities like the "two scan lines" command-line flag, which I think is actually still a launcher option.
Chief1983: I use it
Goober5000: Heh
Stormkeeper: 2 scan lines? ...Oh.
Goober5000: That was phreak's idea, to make cargo scanning a little more interesting
Chief1983: 2 pairs I think actually.
Stormkeeper: Idiot ball moment. >.>
Goober5000: The first really ambitious feature was when Bobboau decided to add fighter beams, which was pretty difficult because there were assumptions all over the code that beams could only be used on turrets. You could use a beam on a bomber turret, if you wanted to, but not on a primary gunpoint.
Stormkeeper: But we can do it now.
Goober5000: We can. The fighter beam feature has been tested, fixed, and refined over the course of several years. Unfortunately, it was buggy for ages because of Bobboau's... unique... coding habits. Bobboau is a really creative guy, but for some reason his code was all over the place, and often littered with bugs. Not to pick on Bobboau, because coders are prone to leaving bugs in their code, especially when they work fast, but Bobboau was the first example and hence the most famous, and since he was a very prolific coder with very creative feature ideas, his features (and bugs) tended to show up in places you wouldn't expect.
Meanwhile, during all of this, I was working on TVWP and we were having a lively debate on whether or not our campaign would use the SCP. I had been following the SCP with interest, but I had avoided getting involved myself, because I knew if I did, I would get REALLY involved
Chief1983: That worked out well I see.
Goober5000: Hehe
Well, my prediction was accurate. As an amusing HLP historical footnote, I argued AGAINST using the SCP in TVWP because I believed people would be reluctant to use it due to stability problems. Let me see if I can find that thread ... yeah here we are. November 13, 2002, a thread titled "We will use original FS2 or Else!!!
" followed by "just kidding". I said I still wasn't convinced, but I wanted to make sure we weren't going to cut down on our potential audience
Stormkeeper: Hmmm. I would think that's a moot point now. =P
Goober5000: So Solatar (who was then called Hades) managed to bring me around with talk of ship trails, the ability to add ship flags and SEXPs, and the ability to have more text in tables.
Chief1983: Yeah, since by the time TVWP released anything playable, no one still runs retail builds
Goober5000: Hehe. In parallel with this, Sesquipedalian was intrigued at the possibilities of adding SEXPs for Scroll as he had an important need for a shields-on/shields-off SEXP for one of his missions. So he posted some threads in the SCP forum asking how to add those SEXPs, and several people walked him through it.
Stormkeeper: This being the time when the Great Ones were still mostly noobs.
Goober5000: Yup. Inspired by this experience, he started a thread in the SCP public forum which became the SEXP Request Thread which I can probably find, one sec ...
Here it is.November 24, 2002. So this was the thread that finally convinced me to join the SCP. I got CVS access, started looking at the code, and read daveb's helpful "Guided Tour" introduction. The SEXP system, was, as he said, very easy to both understand and add to and so, during the 2002-2003 Christmas break from college, I ended up adding a metric boatload of SEXPs, as well as a few other features. Hence Inquisitor's comment in his first interview where he said "Goober5000 codes like a madman"
Stormkeeper: FYI, if
this is the interview with Inquisitor you're talking about, it dates back to 2003.
Goober5000: Rampage posted a
thread in 2003 asking for people to list the features they added, in effort to organize some sort of documentation. Yep, 2003 would make sense. I think that was my most prolific FS year ever for all three of TVWP, FSPort, and SCP. At that point, I had added by far the most features in SCP so within a year, I moved from not wanting to use SCP for TVWP, to contributing tons of features for it, to actually becoming the SCP leader. Which, in turn, led to me being nominated as a HLP admin in 2004. I don't know how I got anything else done those years
Stormkeeper: Member to HLP admin in what, 3 years? A success story.
Goober5000: Pretty much. So this is also when we started to get a little more serious about making the code stable, and fixing bugs.
Chief1983: Heh, as much as two years ago, Goob, didn't you shield me from getting nominated for an admin spot? I seem to remember something along those lines. Something about not wanting to burn me out
Goober5000: Hah, yes, exactly. The disadvantage of being involved in so many things is that you're spread pretty thin. When you have a lot of free time, such as when you're in college, this isn't much of a problem, but it becomes much more significant when you start grad school or an actual job. So, as chief said, I've tried to apply this lesson when nominating people for certain posts in my capacity as HLP admin. I happen to think chief would make a great HLP admin, but he is more involved with his other projects such as FotG and now the SCP.
Chief1983: Yup, that's thin enough as it is. Especially after 4 years.
Goober5000: Yup. Specialization is handy.
Stormkeeper: Burnout seems to be a very big problem with the SCP. Short of calling a psych or forcing people to take timeouts, there's really no way to solve it, is there?
Goober5000: Heh, well, the problem has historically been the opposite. People would get burned out, or lose their enthusiasm.
Chief1983: Any long term volunteer project has these issues.
Goober5000: This typically happened after they had coded all their super features, and subsequently were faced with providing technical support and fixing bugs. So, the coders would go inactive for a period of time, right when we needed them the most
This is a good segue back into the bug fixing discussion. We attempted to use BugZilla for a while, but nobody was ever really happy with it, and we had a hard time convincing people to report bugs using it.
Stormkeeper: So Mantis.
Goober5000: So Inquisitor did a bit of research and came up with Mantis, which was more user-friendly, and people started using it more often. but even though people were reporting more bugs and coders were fixing them more often, the code was still not entirely stable. Around the time of 3.5, especially, the code was *very* unstable and had a tendency to crash almost every time you used it.
This is mostly because of "code rot" -- people had added so many features that it was hard to keep track of them anymore. People would change things that other people wrote, without having a full understanding of what their changes did and also, people tried to enhance the graphics and media code without having a proper handle on how that worked.
Very few people fixed bugs on a regular basis, and if SCP had continued like that for a few more years, it may not have been very easy to work with but fortunately, it was right around that time that Taylor came along
Taylor was basically a godsend... he fixed so many bugs, stabilized so many features, and made so many useful infrastructure changes that he made my efforts during 2003 look like peanuts.
It was the stability that was crucial, because it repaired the foundation of the code and really patched a number of holes that had been problematic for some time. I'd be hard-pressed to name an area of the code that Taylor hasn't improved
Chief1983: Just to put this into reference, we're not even up to the part where I knew of the SCP's existence yet.
Goober5000: Taylor also holds the record for the most number of bugs fixed on Mantis
Chief1983: I think FUBAR has the record for most reported at this point.
Goober5000: Hehe. And note, this isn't even the number of bugs closed as duplicates, not-bugs, or unable to reproduce. This is number of tickets which were actually bugs, and which were subsequently fixed.
Stormkeeper: This interview may inspire Taylor-worship now.
Goober5000: Hahaha. Maybe not worship, but he deserves a lot of credit. Unfortunately, this also comes back to the burnout issue you mentioned... Taylor was so prodigiously productive that we started taking him for granted.
Chief1983: The impression I get is that without the task he performed, the SCP might not have survived. Not saying he's the only one that could have done it.
Goober5000: That's probably true, the SCP was in dire need of some re-engineering. And a lot of this was in areas that most people (including me) weren't familiar with, such as the DirectX and OGL code.
Chief1983: And cross platform support
Goober5000: Oh yeah, Taylor is single-handedly responsible for SCP working on OSX and Linux. This is thanks to his expertise porting retail FS2 to Linux as part of the Icculus project and retail FS2 to retail FS1 on Linux. In fact, I made use of Taylor's expertise when coding in the FS1-emulation features that the FSPort now makes use of including the FS1 method of cycling between music tracks
Stormkeeper: Which differs from FS2?
Goober5000: Yes, they have different styles of playing music.
Chief1983: Actually I think a lot of people like the FS1 style better.
Goober5000: FS1 is structured more like a typical song, where you have a "refrain" and a number of "verses". The FS1 soundtracks are like themes that repeat in a certain manner, for example NRML3 is always the track that plays when the battle is over and you're transitioning back to calmer periods, the calmer periods being the NRML1-NRML2 music. And then the BTTL tracks also have their own sequence.
Whereas FS2 is more straightforward but less artistic. It uses a simple ranking algorithm to play a certain track at a certain battle intensity, judged by things like player hull strength and number of enemies. Both styles have their own advantages, but they are most certainly different, and the FS1 music is awkward when played in the FS2 style. So yeah, there's barely an area of the code Taylor hasn't touched.
Stormkeeper: And did he burnout?
Goober5000: Unfortunately, yes. He had to stop being a full-time member of the SCP because he was just doing so much work. For example, he was fixing so many bugs on Mantis that if one of us tried to fix a bug but couldn't figure it out, we would invariably assign it to Taylor. I was guilty of this myself.
Stormkeeper: I do notice that he's still around, even if he tends to stick to the SCP board.
Goober5000: Yeah, he does hang around a little, and he and I and Chief have often held discussions over email, about some project issue or feature proposal and I think he did inspire us to be more careful with the code and more scrupulous about fixing bugs.
And as his most recent awesome contribution, event post-retirement, he went ahead and finally implemented his new pilot code which was a tremendous amount of work and which will enable things long sought-after, such as increased limits for ships in ships.tbl
I think this is starting to overlap with chief's period of involvement, so I think I might let him pick up from where he joined the SCP
Hades: Mind if I ask one quick question?
Goober5000: it's okay with me
Stormkeeper: Go ahead.
Hades: Has Taylor totally retired from the SCP, and might it be possible for him to return to it?
Chief1983: He hasn't totally retired, or we wouldn't have any more FS2NetD
Probably a good time to mention that as well.
Goober5000: Yeah, that was originally Kazan's project. Kazan is a funny character, but that's another interview. Suffice it to say, FS2NetD has been in development for many years, and it works pretty well now. In fact, it was helped by the SCP's acquisition of the PXO code at one point. PXO code was one of the notable omissions from the original source code release, but at one point a couple of years ago, one of the Volition guys was able to provide it to us. I think that was thanks to Inquisitor's connections
Stormkeeper: PXO being the multi for retail.
Goober5000: Yes.
Chief1983: The backbone for the in game matchmaking service.
Stormkeeper: And FS2NetD differs from PXO how?
Chief1983: In game, not much.
Goober5000: I think by now it has almost the same functionality, a stat tracker and a lobby -- although the lobby broke recently, I've been told.
Chief1983: The website portion, where you sign up and view stats, etc, looks completely different though.
Chief1983: The old SquadWar page looked like
this.
Stormkeeper: Interesting. So. About this pilot file that you mentioned. How will it differ from the original?
Zacam: A lot. That's the short answer. The longer answer is: You won't have to split between SP and Multi anymore.
Chief1983: Most, if not all, of the original's shortcomings seem to have been addressed.
Stormkeeper: So can they be used for all mods? Like, can my pilot be used in BP and FSO?
Zacam: You also won't have to create a new Pilot for every campaign/mod you want to play.
Goober5000: That's another great feature about it. The original pilot file format used indexes for everything.
Stormkeeper: TBH, I haven't been creating a new pilot =P
Goober5000: So, if you load a campaign, it will think, "okay, ships 5, 7, and 14 are available for use" The problem is that if you switch mods and add a new ship at position 10, ship 14 is now ship 15 so the load outs will get all messed up. This affects not only ship and weapon load outs, but also stats and campaign progress this is why it's a no-no to switch from one campaign to another and then back to the first campaign.
Zacam: Key binds is another biggy.
Goober5000: Yes, the original pilot file had strict limits for certain things, including key binds -- you couldn't add a new key without bumping the file version.
Zacam: The ability to mod-map key binds and store those (or externalize them) is helped by the new way of storing t he values in the pilot file.
Stormkeeper: No longer using indexes?
Zacam: Well, it's that it is more capable of adapting itself, as I understand it.
Goober5000: Indexes cause the ship ordering problem I mentioned above -- if you add a new ship at position 10. But the new pilot code will refer to ships by their names. A "GTF Apollo" is the same from mod to mod, so your stats will remain intact, and so will your permitted load outs.
Zacam: And it can recover better if you point it to a mod that doesn't have a GTF Apollo (when saving Campaign data in relation to that mod) by going for the available "Player Starting Ship"
Stormkeeper: Player Starting Ship?
Zacam: Usually every ships.tbl has one defined, it kind of needs to.
Stormkeeper: Ah, right. I remember what you're talking about. Though I usually use .tbms so I don't come across it that often.
Zacam: I suppose it's actually the "Default Player Ship"
Hades: How long do you think the bugs in the new pilot code will be ironed out?
Zacam: That's still sort of up in the air right now. We're still tracking down WHY they are happening, before we can start making changes to fix them. It's mostly been a Me working on it in Antipodes branch (which I guess I sort of took over after portej05 left us) and The E has mentioned giving a hand.
Chief1983: Well, as far as the next release, I had wanted to have it out by Thanksgiving, but we've got a couple regressions to iron out still with the HUD code and the like.
Zacam: Otherwise, I think other people are mostly working on polishing up whatever they're working on and getting things that are issues in Trunk resolved first and foremost.
Hades: Ah, like the multiplayer issues associated with the new HUD code, for example?
Chief1983: Yes. There's still one or two issues with that lingering that are keeping MULTI from using recent trunk builds.
Zacam: While the Pilot changes are a big step for us and a very important turning point for us (and long anticipated), we've noticed some drift taking place from previous Antipodes merges so I don't mind that we're focusing a bit more on those. It's not like the code is going anywhere any time soon. The code is still pending and being worked on, but there is a bit more of a focus right now on tightening Trunk up first and foremost, I think. But it will be one of the big turning points and Milestones for us once we get it done and out there. It's currently in our Testing branch (Antipodes) and has been for awhile now, so we're not going to be losing it any time soon.
Stormkeeper: So Antipodes is the testing build?
Zacam: Yeah.
Chief1983: Antipodes is our proving ground for large features
Stormkeeper: So does it have many extra features?
Chief1983: Things that will almost certainly have unforeseen consequences, bugs, etc.
Zacam: We try to keep it at a "One at a time" deal.
Chief1983: The difference between what we now call Antipodes, and what in the CVS days used to be called 'HEAD', is that Antipodes has been reserved for one major feature at a time. It's allowed us to keep the code relatively stable, although it does create somewhat of a queue for new features to wait in. But when many coders can't be depended on to stick around and fix their bugs after their big feature commit, we weren't left with many other choices.
Zacam: Nothing is worse than trying to find the straw that broke the camel's back when an entire bale of hay is throw on it, so we took that approach here.
Chief1983: If, after a run in Antipodes, a feature just can't be stabilized enough for general use, we can just scrap it and try again some other time. This sort of ties into why I got involved with the SCP in the first place now. I wasn't really following SCP development too closely until after Taylor was already backing out of much of his development roles. SCP development first started off in the CVS versioning system. About the time I took an interest in the SCP, they made a move to Subversion, or SVN. CVS had two lines of development as well, 'stable' and 'HEAD'. HEAD really could have been better named 'unstable', because it had become a dumping ground for many different buggy features.
Zacam: "Only developers should get HEAD" <-- Hence the birth of that famous quote
Chief1983: The first version of the pilot code, some texture management code, a few features from WMCoolmon and Bobbau, etc. So, throwing all those features into one place that wasn't ever getting regular testing, except from developers and single-use builds (there was no nightly system yet), made HEAD an unusable mess after a while.
CVS' stable branch was imported into Subversion, history and all thankfully, and that's when I finally started to wrap my head around how the SCP worked. The move to SVN is what encouraged me to write the cross platform nightly build script in fact. This gave me a huge exposure to the various build mechanisms on all three currently supported platforms. I started off with my main Windows desktop, a Linux VM on that box, and a PowerMac G3.
Only one of those machines could hardly run the builds, but since there was no shortage of people wanting bleeding edge builds to test, it didn't really matter. Enough people got their hands on the fresh nightly builds that I'd find out soon enough if something was broken recently. I'm sure many would agree that the speed which we can now get feedback from a large portion of the community through nightly build testing has been a huge boon to development.
Goober5000: Definitely. Also, one nitpick: CVS had two branches, the main aka "trunk" branch, and the "unstable" branch. Or actually, it was probably the "stable" branch and the "trunk" branch, because "trunk" was getting pretty unstable at one point
Chief1983: Wasn't unstable called HEAD and the main branch was called 'stable'?
Goober5000: The "stable" branch is what became the "trunk" in SVN
Chief1983: I thought 'unstable' was just a nickname for HEAD
Goober5000: HEAD actually refers to the most recent revision of *any* branch. The quote "only developers should be getting HEAD" is because we were trying to encourage end-users to use the official builds, not the most recent builds.
Chief1983: Like I said, CVS was just before my time, so I might have been a little fuzzy there.
Goober5000: Yeah. Even many coders weren't sure what HEAD actually meant. And along the same lines, CVS's "trunk" branch is still sitting in SVN as the "unstable" branch it contains a number of interesting features, such as the shield subsystem type I implemented, and some experiments by WMC.
Chief1983: Right
Goober5000: the unstable branch hasn't been touched in years, but one of these days we should really run a diff on it and try to copy the changes into antipodes.
* Zacam shudders
Zacam: I tried that once...
Goober5000: Hahahaha
Chief1983: Yeah dunno how well that'd work...
Zacam: NOT fun.
Chief1983: But yeah, my involvement in the SCP started out as nothing more than making builds. As head of Fate of the Galaxy, we were starting to get some features coded for us, and we had no reliable way of making sure we were testing with recent code, and having to wait on other developers to make builds all the time.
I started making builds straight from SVN's trunk myself, once I finally got Visual Studio to compile. After so long of doing that, I figured why not automate this a little bit for everyone's benefit. I had wanted to learn Perl anyway, so I sat down one weekend, read a Perl primer, and hammered out the first version of the nightly build script for Window. A couple days later I had OSX and Linux covered too. I got my badge, and started pushing along for a move to 3.6.10.
About that time, we were also practically panicking because it had been so long since the last stable release of FSO.
Stormkeeper: The current stable release at that time was 3.5?
Chief1983: Oh no. By that time we'd already passed 3.6.9. 3.6.9 final came out within a week after I took over FotG, around New Year's 2006/2007.
Stormkeeper: I do remember that 3.6.9 was the only stable build for quite a long while.
Chief1983: It wasn't until 2008 probably I got involved with the SCP. And 3.6.10 wasn't out until July '09. I pushed for a Release Candidate process that would help us move toward that goal. But so much had been committed in two years, it took a while to clean up enough of the bugs in Mantis.
We had a huge crackdown on Mantis in late 2008/first half of 2009. Actually we'd been in a feature freeze since the beginning of 2008 I think.
Stormkeeper: I remember that.
Chief1983: About the time I stepped in, the team was ripe for someone to fill the role of Release Manager. It had been so long since a release had been made, I wasn't even at all familiar with any previous process for it. So most of what we have today for releases, was rebuilt from scratch or from tribal knowledge I gathered from the Elders.
Stormkeeper: Did you document your process?
Chief1983: I think it was about that time Goober started to hand the leadership of the SCP to me, in almost a Dread Pirate Roberts fashion at first. The build process itself is documented in the nightly build script, although that sounds like a Kazan answer probably.
Zacam: Heh.
Chief1983: I have also made tweaks to the wiki where I had been given misinformation about things. Updating the Linux compiling steps, etc. I'll admit though, if a new coder came in and wanted to compile a build with TTS and Voice Recognition, he'd probably still have trouble finding out how from the documentation.
But updating the README in SVN is on our to-do list
Goober5000: Hehe, Dread Pirate Roberts
Stormkeeper: What
Goober5000: That's pretty much exactly what happened -- I sort of designated chief as the new SCP leader, half in jest, but over the next year or so he grew to earn it
Chief1983: Goober had identified me as a good candidate to take his position as SCP lead months before the official announcement was made.
Goober5000: I was fairly involved when he took the helm of FotG, so I knew he was a good project leader and it probably helped that there was a transition period as opposed to a sudden change
Chief1983: Perhaps, but I think the real issue had been that before the transition, there hadn't even been a fully defined lead. You yourself had never really claimed the title of SCP lead by yourself, it had been more by committee.
Chief1983: But the rest of the committee had already stepped down
Goober5000: Well, I did write SCP leader on my resume
Chief1983: lol
Stormkeeper: FYI, from Wikipedia's article of FSO:
To prevent a plethora of different versions of the game from appearing, a single 'umbrella' project (with the unified goal of enhancing the game) under the name FreeSpace 2 Source Code Project was formed. The initial leaders were Edward "Inquisitor" Gardner and Ian "Goober5000" Warfield, the team is currently led by Cliff "Chief1983" Gordon.
Looks like the two of you are famous
Goober5000: cool
Chief1983: If you read the edit history, I'm pretty sure I put my own name on there. Gotta love Wikipedia
Goober5000: Hahaha
Chief1983: But as it's still there, at least no one seems to object.
Stormkeeper: lol
Chief1983: I will admit, my motivations for working on the SCP are really tied to FotG to some extent. We'd already put so much work into it that I started to worry about the delay in the time between releases.
Stormkeeper: Well at least it made you want to work on the SCP
Chief1983: Yes. And I also try to keep my interests in both completely separate as well. So far there hasn't really been much of a conflict.
Zacam: I think most of ours are tied into having an externalizing motivation.
Chief1983: Yes, not too many coders are interested in the SCP solely for the engine itself. There have been some though.
Zacam: They've usually gotten super frustrated though.
Stormkeeper: Why?
Chief1983: If by 'they', you mean portej and Hery, yeah that did seem to be what happened.
IssMneur: IIRC, Taylor never had anything to do with any mods
Chief1983: Long story short, I think that anyone interested in this engine purely for the engine itself will probably see a lot of things wrong with it when they look at the code. As they're purely interested in the engine itself, they might tend to get over-ambitious.
Zacam: And given the Golden Rule, they feel they have an immovable obstacle in their way.
Chief1983: Wanting to halt development of the engine for very long periods of time for various overhauls, when many mods are depending on fairly recent builds with new features they rely on, isn't going to be a very popular idea.
You basically have to commit to the mindset that, yes, the engine isn't perfect, but it's what we have, and there's a lot of people depending on it.
We take help where we can get it, we optimize and clean up when we can, but it's like being in a constant battle. You don't get a chance to return to port and go into drydock for 6 months. As a volunteer project with a small team of developers, any project revolving around a massive overhaul usually stalls and crashes and burns.
Stormkeeper: So how bad or good is the state of the code base now?
Chief1983: Well, I think both 3.6.10 and 3.6.12 were each some of the most stable releases we've ever had. At this moment, trunk is a little buggy, but I hope that our next stable release will be one of the best yet again.
It definitely has the potential to be the best and fastest. And I still play with nightly builds on occasion and am usually very pleased with the stability. Just a couple years ago, using recent builds could lead to quite a bit of headache.
Stormkeeper: But now?
Chief1983: Like I said, I'm happy.
Zacam: I remember that. Or using the "whomever compiled" distros where you could choose a WMC, Goober, Redemence or whomever build...
Chief1983: Kara too
Zacam: Yeah. The Nightly Build system made a lot of things easier.
Chief1983: or Taylor's X-whatever
Zacam: Heh. I liked the XT Tree builds. We got Shaders from that.
Chief1983: Yeah. But I think the XT stuff was the end of an era. We've had so many awesome new features added just since I joined the SCP, it really is a fun project to work with. The hardest part is probably trying to satisfy everyone though, because sometimes it just can't be done.
Zacam: Ugh. Yeah. And that leads to some rather interesting fireworks too.
Chief1983: This is also an area where the SCP and FSU overlap. As enhancements are added, sometimes a segment of the community can't agree that it's really an 'enhancement', and not an abomination of their beloved FS2.
Or instances when a mod has a need that just can't seem to be done in a manner they're happy with, that meets the SCP's requirements of being non-interfering with retail behaviour, etc.
Chief1983: I can cite examples, unless you have another question for one of us?
Stormkeeper: ... I'm trying to figure out what you said, actually.
Chief1983: lol
Stormkeeper: So modifications to the code base by mods that are accepted as being pwnsome by most if not all the community are integrated into the code proper?
Chief1983: Well, first I was referring to things like the 2d/3d shockwave debate. A situation created by the FSU stemmed into a need to support both in the codebase.
Stormkeeper: Ah. I remember that one
Chief1983: And for the second thing I said, Wing Commander Saga is probably the best example. Unfortunately, the inability of the SCP to accommodate their requests in what they considered a timely manner has led to the only outright SCP fork that I'm aware of.
Stormkeeper: Ah. So what kinda features are you working on now?
Chief1983: Personally, I've been trying to get a replacement for SquadWar off the ground. Again, I'm pretty sure that would benefit FotG, so I have some external motivation for that particular project. Oddly enough, I probably have the fewest subversion commits of any SCP member, ever. Or at least those with 2+ years as a member under their belt.
Zacam: Of course, there is always the danger of working on too many things at once as well. And not just in handling multiple projects, but even in just deciding what to work on code wise. There is always a lot to do.
Chief1983: I'm not even that great of a C++ coder. I didn't really write any C/C++ after my Senior year of college. I switched to PHP and web development after that, so that's where I try to make myself the most useful. My job really is kind of a paper-pushing type position. Not a lot of hands on with the code, but then again, a lot of management positions are that way.
Zacam: I'm possibly the least C/C++ experienced coder on the team, actually. But I get by on drive, verve and being there to help with anything in any way that I can. This for me first started when I compiled the SVN checkout and thought to myself 'What's with all these Warnings?"
Chief1983: Yes Zacam's OCD has been a double edged sword with the
code I think
Zacam: Heh.
Chief1983: It's great to be picky about keeping errors out of the code, but I know he gets frustrated when it seems the code is conspiring against him to ensure he can't eliminate them all.
Zacam: Yeah, it has at that. But I do think it's good that the project, while it needs people who can code, really WILL take on people who are just willing to make a difference in any capacity.
Chief1983: Even promote them to project lead
Zacam: And the code -is- conspiring, I'm building proof of that.
Chief1983: Aside from diplomatic issues, release management, and SquadWar, I mostly just fiddle with the websites. Did I mention I fixed Mantis new account emails? Anyone even remember when those didn't work?
SDM: I did.
Chief1983: That wouldn't have been possible without the last Mantis upgrade, which is needed again actually. Another project I need to sit down and do. Maybe tomorrow. I never know what Goober is working on, until he commits it.
Stormkeeper: Goober works in silence and shadow. He strikes without warning.
Chief1983: I believe he keeps a running list of things to do, and occasionally sits down for a day or two and just spews code.
Zacam: Echelon9 has been working on getting a Documentation Standard in place, which so far is working out rather well using the Doxygen setup.
Chief1983: I'm amazed that some of the veterans are still as productive as they are. Many of these members have pretty busy lives. Yes, I think the Doxygen project is going to really help. We've got a few big projects still waiting for Antipodes too, I think.
Zacam: Antipodes Schedule: Objectypes overhaul. Haptic Support. Animated PNG Format (along with a PNG code update), not necessarily in that order.
Stormkeeper: So still no decals?
Zacam: Well, there are other things in the works, but Decals can be re-implemented, though I think we're going to see about updating some OpenGL and Shaders code for that.
Chief1983: Well, decals aren't slated for Antipodes yet at least. I don't know that anyone has stepped up saying they're going to work on them.
Stormkeeper: Doxygen?
Chief1983: It's a code self-documenting framework, If I recall. You document the code as you write it, via comments, and Doxygen tears through the code and outputs the documentation by itself in a readable format.
Stormkeeper: Doxygen seems very useful.
Chief1983: Yes, it is. The hard part is enforcing its format amongst the team.
Chief1983: I'm pretty excited about the objecttypes expansion. Currently we can't create entirely new object types, just modify existing ones. And the Haptic support - I can't wait to have that back again!
Zacam: Both The E and myself are really interested in moving progress along those fronts. (Expanded OpenGL and shader code, including Geometry shaders and the like)
Stormkeeper: So with the object types expansion you can create new ship classes like gunship or something like that?
Zacam: Essentially, yes.
Stormkeeper: ... Cool.
Chief1983: I don't think we currently have a type that could easily be used for say, a shuttle, if you wanted to differentiate it from an escape pod or something.
Zacam: And with being able to define new object types, each type can have its own particulars in terms of how it's AI handles, rather than being limited to either Fighter or Bomber or Support ship like it is now, if I recall correctly.
Chief1983: Yeah it's a pretty small set. Perhaps you need a dedicated Carrier type
Stormkeeper: So you can set up the gunship class to endlessly circle its target or something like that?
Chief1983: If there was AI support to do that, yes you could do that
Zacam: Or at least have a better chance/opportunity to be able to get it set up so that you can. But without the opportunities, you don't really get anybody driving it along as "must have" or "need that". Which is another double edged development sword.
Chief1983: Until some guy tries to create a new one, only to be told it doesn't really work.
Zacam: You want new features, but you also want them to be used, otherwise what's the point?
Chief1983: I think that's another area nightlies have helped, coders can see their new features being used almost immediately, without even having to point out their new build to people. It's to the point where the modding community often reads the commit logs in the nightly posts to see what new features were committed. I think having someone say, 'oh, this feature sounds awesome! how does it work so I can use it?' is pretty neat. And it happens quite often these days.
Stormkeeper: So it seems you're quite pleased.
Chief1983: Yeah.
Zacam: I don't know about anybody else, but in my case, it's kinda hard not to be. There is always something to be done, some new piece of awesome just waiting around the corner.
Chief1983: Plus, I wouldn't be the same person I am today, without HLP, and the SCP, and FotG. For one, they've both been very helpful in job interviews. I end up talking more about my volunteer work than stuff I did at a previous job or in school. And the fact that so many members of the community come from completely different cultural backgrounds, it's really opened me up to a world I don't normally see. I live across the street from east Jesus, so having so many different world views around me, it's really pretty exciting. I'm always learning something new.
Zacam: Same here. FSU and SCP have actually kept me going despite of some pretty major difficulties and set-backs in real life.
Stormkeeper: So, have you actually thought about joining a real game company?
Chief1983: Yes actually.
Stormkeeper: And?
Chief1983: I applied at Volition after college, they're only a few hours from me in Champaigne. Didn't pan out.
Stormkeeper: Ah.
Stormkeeper: How long ago was that?
Chief1983: Like I said, I kind of stopped writing C a year before I applied, and their qualification test was in C, so... That was spring '07.
Stormkeeper: What about now?
Chief1983: There's an industrial flight simulation software company with a headquarters near me, and apparently they're looking to convert their professional simulation into a more mainstream PC simulation, as they've had a few job openings. If my current job ever goes south, I'll probably be giving them a call.
Zacam: I wanted to join Gas Powered Games for a while now. Maybe even Bethesda or BioWare. But in the end, I think I'm more happy right here with the SCP and Hard-Light than I would be anywhere else.
Chief1983: As it stands though, I actually like having my job and HLP commitments being two completely different things. If you do for a living what you like to do in your spare time, you either have to _really_ love it, or you're going to get seriously burnt out in a very short time. Whatever I'm doing at work, I usually just want to do the opposite of that when I'm at home.
Stormkeeper: True.
Goober5000: This is very true. Happens to me from time to time. Happens to Kazan all the time, apparently
Stormkeeper: Occupational hazard. Studying games programming makes me less likely to play games. Because it makes me think about how they did it and all that ...
Chief1983: Makes it hard to enjoy the game as it was intended then eh. Same goes for studying film, or lots of things. Hell, my roommate for a couple years in college was a film nut. I ended up being a film student by proxy, and that was enough to forever screw with my ability to sit down and match a movie.
Stormkeeper: TVTropes will ruin your life.
Chief1983: That too. But I'll admit, at least now I know _why_ I like Tarantino, and Scorsese, etc. Also, when I was in college, I was computer science from day 1. However, you see a lot of kids who go into it thinking, I love computer games OMG I want to make the best computer game ever. They have no idea what programming or computer science really is. I on the other hand, had no aspirations at all about seriously working on a computer game after college.
Stormkeeper: And how.
Chief1983: I knew what CS was, and what I'd probably end up doing. Lo and behold, I end up leading a game engine development team. Quite ironic it was.
Goober5000: Hahaha
Stormkeeper: Indeed. No one expects irony!
Zacam: Rather like a Spanish Inquisition.
Stormkeeper: True.
Chief1983: Story of my life really. I never expect to end up where I've ended up so far.
Stormkeeper: Well. I bet that's true for a lot of people. So, I have no further questions. Floor is open for FAQ.