ace, enby, software engineer and game developer that draws sometimes, ACAB, Free Palestine


There's a discord server I guess
discord.gg/xxsh8SvFfp
I stream once in a blue moon
www.twitch.tv/qwarq
video james
qwarq.itch.io/

posts from @Qwarq tagged #data design interactive

also:

It's been a hot minute since the last part. I almost forgot about this entirely until I looked at my drafts. Would've been a shame if I never finished this before cohost died.

I worked at the infamous Wii shovelware developer Data Design Interactive for a short time right out of college and these are some of the interesting details from that time. The other parts are here (part 1), here (part 2) and here (part 3).

I mentioned it in part 3, but DDI has a system called NuYu, which was just a knockoff of Miis. There was a character creator where you could swap and recolor various parts of your very simplified avatar. It was very uninteresting in concept, but some interesting things happened around it.

First off, they weren't always called NuYus; the original name was Yuu. Nintendo did not like that Yuu was so similar to Mii and they very quickly threatened a lawsuit. They didn't care about the extremely Mii-like functionality - it was entirely the name they took issue with... at first.

Later on, another lawsuit came in from Nintendo. They were going hard on patent trolling even back in the Wii era, because they were suing over the concept of generating a static image from a 3d model, or something like that. Whenever you saved a NuYu, it would create a thumbnail image with the character's face so you could browse them at a glance. Well, apparently Nintendo tried to patent some part of that process. I believe the suit was dropped or dismissed, thankfully, because I don't think anything ever came from it - we were still using the same thumbnail process the whole time.

With that out of the way, let's get into My Personal Golf Trainer (you can even see my coworker Karl in this video). This was, as the name suggests, a golf trainer that tried to analyze your golf swing and help you fine tune it. You'd be swinging a wiimote though, so that alone invalidates a lot of it, since the weight of a club is a huge factor in how you swing. Despite that, MPGT was probably the most polished and professional-looking DDI game on the wii. This one wasn't really shovelware, but my experience with it is still pretty interesting.

First off, MPGT had already been released when I was hired, so once again my focus was on getting things ready for a PC port. One task for this was the iTrainer integration. So, when I said you'd be swinging a wiimote instead of a club, this is what was supposed to fix that. There was this little doohickey called an iTrainer which clips onto your real golf club and records the forces as you swing. It could also send swing data in real time over bluetooth (iirc), and that's what we wanted to feed into the game for instant analysis. I think I've blocked a lot of this think out of my mind, because I don't remember many specifics except that this iTrained thing fuckin' sucked. I remember having to power cycle this thing every 5 minutes because it disconnected and refused to reconnect.

A little trivia about MPGT now: it was apparently the most expensive wii game at retail. This bad boy sold for a full benjamin ($100 USD). Stewart told me they wanted to target the golfing enthusiast demographic, not just grannies and kids who wanted to swing wiimotes around, and that these golf guys didn't take it seriously as a training aide for $60 or under. Apparently a $100 price point gave it the feel of a real, legitimate tool instead of a game. I should note that the game also had David Leadbetter's name and face plastered all over it. He's a pro golfer or something (idk, i hate golf) that they roped into endorsing and advising on the project. So it was laser focused on golf nerds.

Anyway, back to what I was doing next. Last time I mentioned Stewart wanted to setup an online component where users log in with their DDI account, or something like that. With MPGT, he wanted it to go a step further. He wanted users to be required to log in with an account tied to a product key. To make it even more absurd there were no product keys yet. This wasn't going to be released on steam or any other established marketplace. This was going to be purchased and downloaded from the DDI site or something like that. That brings me to the most ridiculous thing from my time at DDI - Stewart wanted me, a junior programmer not even a year out of college to create a key generator and server backend for authentication, as well as a custom DRM system that will lock users out if they aren't authenticated. On top of that, he wanted me to implement a system for DLC where only purchased modules could be loaded.

The absurdity of that wasn't lost on me at the time but, again, the only two employees at the company were myself and Karl, the lead programmer who had designed a large portion of the GODS engine. I gave it my best attempt though. I had a server working with some basic authentication. I had basic checks for potential DLC modules (even though we didn't actually have any DLC made yet). I made a very simple key generator that would insert valid keys into the server database. I even added a few checks to make sure the authentication wasn't trivial to circumvent.

I had been working on this for well over a month and the end was nowhere in sight. We were months away from even having an idea of a release date, and major design changes were still coming in regularly, but Stewart was insistent that I put in overtime on this nonsense. I gave him an extra hour a day for a week before I finally accepted that it was time to get out. The next week I finally built up the courage to submit my 2 weeks notice. I still remember my voice shaking as I told Stewart I was quitting. One of the best choices I ever made though.

Not even a week later I got a call from a recruiter. I hadn't even expressed any interest in looking for work, or submitted any applications yet, but they called anyway, and at the perfect time. I remember sitting in my car during my lunch break and doing a phone interview. I managed to get that job and while it was less interesting than DDI, it was so much better in every other way.



If you haven’t read the other parts where I talk about my time working for Data Design Interactive, you can find part 1 here and part 2 here.

Backtracking from part 2 a bit, about a month after I started, before the office got partitioned, Stewart called me over to his desk out of the blue. He didn’t say why he wanted me to scoot my chair 15 feet over to him, so of course my mind started calculating the worst case scenario. Was I about to get chewed out and potentially fired?

“Have you ever played the Spyro games?” he asked. I had to take a second to think because it was such an incredibly unexpected question.

“Yeah. I rented Spyro 2 a few times.” I said, desperately trying not to look utterly confused.

On his computer was a Visual Studio window with a bunch of code visible. He hit the “Run” button and a few second later a window popped up with the standard DDI and GODS intro splash screens. After that though, it jumped straight into a map with, you guessed it, the silly little dragon, Spyro, at the center of the screen. He grabbed his xbox controller and started running and jumping around, and it looked believably like a Spyro game. The level was quite simple without any enemies, but there was some platforming elements that showed off the rather faithful movement and animations.

He went on to explain that a few years back they had put together a tech demo in order to pitch developing a Spyro game to Activision, and that they made this demo in only a week. Only a week for such an important demo seems insane, but showcasing their speed was a major goal. By this point I was very aware of the company’s history and reputation and the idea of a Spyro game developed by DDI fascinated me immensely. Of course Activision didn’t go for their pitch, but even this little demo was one of my most memorable moments at DDI. It's something only a few people have ever seen and I’m still kicking myself for not grabbing the files for it from the version control server before I quit.

Moving forward again: after the batch of changes to Kidz Sports Soccer, my next project was Kidz Sports Crazy Mini Golf. It’s a fairly generic minigolf game that uses the wiimote to simulate swinging a golf club. My task was to get it ready to release on PC. Honestly, I don’t remember all that this entailed, but it included significant UI changes, adding mouse support for putting, and tweaks to the physics.

I don’t know how, but the physics ended up being subtly different from the Wii version, despite running the same code. This made a few of the later levels basically impossible. Thankfully it was a simple fix to go into the editor and adjust the levels… is what I had hoped would be the case. I’m not sure if it was because Stewart wanted parity in level data, or he lost the relevant editor files, but I didn’t actually have access to the editor and couldn't change anything in the levels. Unsurprisingly, this was a shitshow that took more than a week of tweaking and playing through each level.

Minigolf was also the start of the online connectivity saga. Stewart’s vision was for players to have a DDI account that they would log into in-game. The exact details of what this account would do for the player wasn’t clear at this point, but I had to setup the connectivity with a framework for logging in and loading and saving their NuYus (more on those next time) and high scores. The GODS engine had almost no support for network communication, since it was meant for single player console games, so I had the fun task of implementing most of this low level stuff. I probably shouldn’t have been implementing this kind of stuff as a junior programmer fresh out of college (keep this in mind for later), but I eventually managed to get something cobbled together.

In the next part I’ll finally delve into My Personal Golf Trainer, the game I spent the most time with, and all of the madness that came with it.



If you missed my first post about how I got my job at Data Design Interactive, you can read that here.

Before I get into more of my experiences, I should probably give some backstory on Data Design Interactive (or just DDI). It was a British game studio founded in the 1980s. They released a few games over the years, most of which received average to mediocre reviews, but nothing particularly noteworthy. That was until the Nintendo Wii came around. At that point they shifted from decently produced games to churning out heaps of shovelware - basically prioritizing the quantity of games released, rather than quality, resulting in a ton of really awful games such as Anubis II. They quickly become infamous for this among the gaming industry and communities.

For a few years this strategy worked well enough that they were able to open an office in Sarasota, Florida. By 2010 though, they had run out of steam and closed the office in the UK. This is where I came into the picture as a junior programmer.

With my tenure of a single day, I was given my first assignment. A client in Italy was requesting a version of Kidz Sports International Soccer that they were going to use in an arcade cabinet. The cabinet was basically just a Windows PC with all controls mapped to keyboard inputs, so there wasn't a whole lot that needed to be done. Most of the changes were primarily UI-based, like adding a high score table. Karl, the lead programmer and only other person in the office regularly got me up to speed on the build system and I was off to the races.

DDI really prided itself on its in-house engine called GODS. I think it officially stood for "Game Object Development System", or something generic like that. It was written primarily in C and used a rat's nest of IFDEF blocks to allow for compiling to Win32, Wii, Playstation 2 and Xbox. Compiling for other architectures was actually pretty smooth, so I can't fault it too harshly there. What I probably can fault it for it the bizarre markup language used for handling the UI. I don't want to get too technical here, so I'll just say that most of the UI code lived in a single file that was about 20,000 lines long.

After 2 or 3 days I had gotten a handle on the system and finished the requested changes, got a build setup, sent it to Stewart Green (the CEO) to pass along to the client, and went home with my head held high. The next day Stewart calls me over and shows me an email from the client. It turns out the high score screen breaks if you do X and Y first. He then starts to go on a spiel about how products going out to clients needs to be properly tested first. Bugs will make the company look bad, after all. Back during the interview for the job, he mentioned something about "helping with many different areas of game development", to which I obliviously nodded and said "Sure!". This is when I realized what he meant by that. I would need to be my own QA tester, among other things.

As I said before, it was just me, Karl and Stewart in the office, but Stewart, being exclusively a businessman, would often be out of the office for long stretches doing "business" things, leaving just me and Karl most of the day. Karl was a legitimately cool guy - casual, good sense of humor, very good programmer. I'm pretty sure he's gay too. After a few weeks, though, the office situation changed. One day, a man who I can only describe as a Tommy Wiseau look-a-like walked into the office. Stewart got up and introduced him to Karl and me. I can't even begin to remember his name so I'll just call him Tommy, but he was apparently a music producer who would be sharing the office with us. Keep in mind this was a roughly 20 foot by 30 foot studio that would now be housing two businesses.

Tommy setup his desk by the door the following day. It was an awkward day. Yet another day later, Stewart had called in some people to build some walls to keep things separate. Separate how? One end of the room had been blocked off and split down the middle, creating two small, private offices for Stewart and Tommy.

Anyway, the big question was how were we supposed to actually make games with just 2 programmers? First off, Stewart's daughter was supposedly an artist that helped with some assets, but more substantially, most creative work such as music, animation, 2d art, etc, would be contracted out. "That sounds completely untenable!" I can hear you say. The way this was viable is that... we weren't making any games. At least not any new ones.

The newest game DDI released was My Personal Golf Trainer (there's a lot to say about that later) on the Wii back in 2009, and no new games had been started since then. The focus was entirely on supporting and re-releasing existing games. If the writing on the wall for DDI wasn't clear on day 1, it absolutely was when I realized this.



Many years ago I wound up working at the infamous Wii shovelware developer Data Design Interactive. I wasn't there for very long, and it was shortly after their Wii era, but it was an... interesting experience. I want to start out with how I got the job and the initial impressions. This might be a little long.

Way back in December of 2010 I had graduated college with my degree in Computer Science and I was desperate to find a job. In May of the following year I was still jobless and I saw an ad for a junior programmer at a small game development studio. Considering 80% of my brain is dedicated to video games I applied instantly, even though I was sure I'd get passed over like with the previous dozen applications.

Fast forward a week later and I get a call from an unknown number. In those halcyon days my phone wasn't completely overrun with spam calls so I picked it up with a curious "Hello?" On the other end was a British man who introduced himself as Stewart Green of Data Design Interactive and he wanted to schedule an interview with me! In the six months I had been looking for a job I had been called in for an interview exactly one other time, so this was huge, on top of it being a video game job. I was pumped.

The interview comes around and I drive up to Sarasota, manage to get turned around and find myself on the wrong side of the street and almost walked into a meat & cheese company's HQ, but thankfully I found the right place on time. I open the door directly into a conference room and see two people seated at a large table. They greeted me and invited me to have a seat at the table. The shorter, balding man introduced himself as Stewart, the man who called earlier, and the other as Karl White. Both of them were exceptionally British.

The interview started with some very generic questions "Tell us about your education", "Why do you want to work with us", etc. Eventually they got to "Can you show us some of your work?". Ah, now the stuff I had prepared for. I whipped out my shitty little Dell netbook and loaded up a few of the game I had cobbled together over time, though most were just clones of various arcade classics. They nodded approvingly, but they both had some strong poker faces so I couldn't get a good read on what they thought. That's when I pulled out my trump card: a nintendo gameboy emulator built from scratch during my senior year of college. I loaded up a ROM of some weird homebrew game about ants, because taking pirated ROMs to a video game development job interview seemed like a bad idea. At last, I had found a crack in their expressions - it looked like they were impressed.

The interview had ended and I drove home feeling pretty good, though I kept my optimism in check - I had no idea how many people I was competing against. Only a week later I got another call, but this time I recognized the number. "We would like to offer you a position for $35,000 annually" Stewart said, immediately sending me over the moon. I thanked him profusely and pranced around the house in joy. Those previous six months with no job or school had been the lowest point of my life and it was finally over.

My first day rolled around the following Monday and I hit the road for the 45 minute commute as my nerves wanted me to puke. Interestingly I had been given a different address than where the interview was held, so I got to search for the office again. I pull into the address - it's basically a strip mall along a canal, and my destination was up an odd staircase to a loft above a clothing store. I turn the knob on the door and... it was locked. I checked the time and I was only about 3 minutes early. Confused, I look through the window on the door and see a one-room studio with two desks, three chairs, a big box and absolutely nothing else. 95% of the floor space was completely empty.

At this point I started to freak out. Did I get the wrong address? Did I get the wrong start time? Was this whole thing bogus? I start walking down the stairs considering my options when I see Karl on his way up. "Ah, you're locked out, huh? Let me get that" he says as we walk back to the door. Karl sets his things down on one desk and comes over to me standing there confused. "It was just Stewart and I in the office until now." he walks over to the box in the corner "Sorry about the state of the office. We just moved in. We'll need to get your desk setup." he said apologetically as he started cracking open the box to assemble the desk.

About 20 minutes of the two of us assembling this desk, Stewart finally arrives. I shake his hand, he puts his things down and he heads out again. A few moments later he comes back in with a desktop computer in tow and assured me they'd get me all setup. About an hour into this "setup" what sounds like an air raid siren suddenly screeches from outside and I practically jump out of my skin. "Oh that's just the drawbridge warning" Karl assures me. I look out the window and sure enough the drawbridge barely 100ft from the office is raising. "It goes off every hour or two" my eyes cross as I look out the window.

The rest of the day was taken up with finishing the desk, installing visual studio, doing some HR paperwork, getting me connected to the subversion repo, and looking through the documentation for the proprietary GODS engine. 5 PM rolls around, I pack up and start the 45 minute drive home while contemplating the emotional rollcoaster I experienced that day and thinking "What did I get myself into?"