Programmers

Jeremy Scheff

July 28, 2014

As a child, programmer Jeremy Scheff was first introduced to computers by his grandfather, who had an IBM clone running DOS that enabled Scheff to play video games such as Frogger and blackjack. While playing blackjack, however, Scheff noticed a bug in the program, and figured out how to go into the data file, find the offending line and delete it, enabling the game to run properly. In 1996, as the internet age was dawning, the 11-year-old Scheff read an article in Internet Magazine about creating websites and built his first basic HTML site on GeoCities. The experience unlocked a universe of possibilities for the inquisitive Scheff.

An alumnus of Rutgers University — where he studied Biomedical Engineering, earning a BS in 2008 and a PhD in 2013 — and currently a research scientist at Biotechnology HPC Software Applications Institute in Frederick, Maryland, Scheff recently launched Basketball GM, an online basketball simulation in which users take control of a franchise and attempt to guide them to the championship. As the general manager of the team, you control every aspect of the team, including drafting rookies, signing free agents, arranging a roster and adjusting team finances in order to maximize profits. Your goal is twofold: To win, and to make money for your team’s owner. Fail to do either of these, and you could find yourself in the unemployment line.

Learn more about Scheff at his website, www.dumbmatter.com, and check out Basketball GM here.

jeremy-scheff1What was the inspiration behind Basketball GM, and what were the biggest challenges you faced in getting the simulation to work properly?

The inspiration mostly came from a game I previously played called Baseball Mogul, which is fairly similar to Basketball GM except for the sport. For a while I had wanted to play a similar game for basketball, but the ones I tried weren’t nearly as good. The idea to make a basketball management sim had been in the back of my mind for years until I finally decided to give it a try.

The biggest challenge I faced was time. It’s not that hard to build a semi-reasonable basketball simulation algorithm; most programmers could probably come up with a simple one in a few hours. But that doesn’t get you very far on its own. Think about all the other features you need in a game, like contract negotiation, schedule generation, player development, etc. Until you have all of that plus a UI on top, nobody cares about the simulation. That takes a lot of time.

How has Basketball GM evolved since it was first launched?

Building on my last answer… I knew that it would take a lot of work to make a complete game. When I originally started working on it, I didn’t think it would ever be complete. I looked at it as a learning experience, a chance to play around with some new technologies that might be useful to me some time down the road. At some point, I realized that it had grown to the point where some extremely nerdy basketball fans might actually enjoy it. However, at that time it was a traditional downloadable application, and I knew that was going to severely lower the amount of people who would try it.

Luckily for me, that was around the time that various HTML5 technologies were getting enough browser support that I could conceivably port the game to run completely in a web browser. Again, I saw this primarily as a learning exercise. It was a huge task that involved rewriting nearly the entire game. But it did work, and the fact that Basketball GM runs easily in a normal web browser is a huge plus now.

However, in terms of the core gameplay, it hasn’t actually changed that much. I knew what kind of game I wanted to make when I started (something simple and easy to play, but also with some depth), and I haven’t really deviated from that. I’ve added and refined features, but the overall concept is the same.

What improvements to Basketball GM do you hope to make in the coming weeks, months and years?

Weeks – I’d love to promise the world, but realistically there will probably only be minor changes. Bug fixes, small new features, things like that.

Months – I want to make some improvements to the AI and simulation code to make things more realistic, particularly interactions with the AI and player development. I also want to add more things to do in the game to help keep it exciting. For instance, random events like, “Player X was arrested for Crime Y. Do you suspend him and piss him off, or defend him and annoy some of your fans?”

Years – I can’t plan this far ahead in any aspect of my life! I keep a list of improvements I want to make in Basketball GM, but it just keeps growing. There’s hundreds of entries now. I have no idea which ones I might work on years in the future.

When his playing career is over, where do you think LeBron James will rank among greatest players of all time, and how do you think he’ll be remembered by future generations?

I’m biased because I’m a huge LeBron fan. I like smart players, guys who make the correct decisions to help their teams win. LeBron was that kind of guy even as an 18-year-old rookie, and he never changed his game despite years of media criticism. He’ll always favor passing to an open teammate over taking a contested shot. What really makes him special is combining that intelligence and mindset with incredible talent and athleticism. He’s truly a complete player.

So when it’s all said and done, I think LeBron will rank #1, the greatest of all time. If he wins a couple championships in Cleveland (and I think he will), he’ll be seen both as a hometown hero and as someone who is a winner in multiple different situations.

How do you foresee the careers of Andrew Wiggins, Jabari Parker and Joel Embiid playing out?

It’s one thing to project the future of a veteran like LeBron, but rookies are another story. If they were players in Basketball GM (and people have made roster files including them…), they would all have very uncertain futures, like any young rookie with a lot of room to grow.

Embiid is the best big man prospect since Oden, but he unfortunately seems likely to follow in Oden’s footsteps.

Wiggins and Parker aren’t as good prospects as Embiid. They are the best SF prospects since… what, Harrison Barnes? Sure they might turn into stars, but I don’t think they are so much better than several other players who went in the top 10. So I predict that they both turn into good role players and not much more, maybe on the level of guys like Luol Deng and Chandler Parsons.

What is the best basketball game you’ve ever watched, and what made it memorable for you?

Brandon Roy’s last great performance. This was in the 2011 playoffs in the first round against the Mavs. At the time, it wasn’t supposed to be a particularly notable game, and when the Mavs got up by like 25 points, probably most people turned it off. For some reason, I kept watching. And it was incredible.

More backstory: Brandon Roy had a series of knee injuries that basically took away his athleticism and seemed likely to take away his entire career. His numbers were down. His playing time was down. Everyone could tell the end was near, and Roy was publicly distraught over the situation.

With his team down huge in the 4th quarter, Brandon Roy suddenly started hitting everything. Jumpshots, layups, floaters… everything. It was unreal. He scored 18 points in the 4th quarter on 8/9 shooting. The Blazers won by 2, on a Brandon Roy jump shot. I’ve never seen an entire arena – fans and players – so happy for a player.

After that game, the Mavs won the next two and the Blazers were eliminated. Roy retired due to his injuries at only 26 years old. But I’ll never forget that last incredible game he played.

As a research scientist, what does a typical day for you look like?

A typical day probably would appear pretty boring to most people. I’m a computational biologist, so mostly I’m just sitting at a computer. My time is split mostly between reading, thinking, and programming. Despite how it may appear, it’s actually quite fun! I get the freedom to think deeply about scientific problems and the resources to attempt solutions that nobody has tried before.

What’s the best meal you’ve ever cooked for yourself?

Something simple. Probably a ribeye steak with salt and pepper cooked in a cast iron pan.

What do you miss most about the early days of the internet?

“Early days” to me is mid-late 90s.

I miss that it felt like nobody knew what the fuck they were doing. Both end users and programmers. As a user, you didn’t know how to find anything. You didn’t know how anything worked. You didn’t know if it was safe to type your credit card number into Amazon. As a kid learning programming by building websites, it was just horrible, although I’m kind of nostalgic about it. There wasn’t a lot of information freely available, and as mentioned previously, it was difficult to find what was available. Most of what I could find was pretty terrible and basically just taught my how to very tediously write software that was full of security holes. On the plus side, all of that also meant that there were tons of opportunities to create new things, even more so than today.

What do you wish you’d learned at a younger age than you actually did?

Tough question for a 28-year-old, since in the future I’ll probably look back at my 28-year-old self and think he was a moron.

Maybe I’ll say… learn to always understand both sides in a debate/conflict/relationship/whatever. It’s a very general principle, applying to technology, politics, personal relationships, etc. It is rare that people disagree with you because they are completely irrational. Usually, they just have some relatively benign difference in their thought process, like in their initial assumptions or their ultimate goals. That doesn’t mean you have to agree with everyone or consider each opinion equally correct, but you should be able to empathize enough to think of a minimal set of assumptions that could lead you to the other side.

How do you think you’d fare as the general manager of an NBA team?

Past a certain about of competence, intelligence, and work ethic, I think running an NBA team mostly comes down to luck. Nobody knows which prospects are going to pan out. Nobody can force a free agent to sign with them. Nobody can control who other teams want to trade. What if the Spurs got the #2 pick in 1997 and took Keith Van Horn instead of Tim Duncan, and then either Ginobili or Parker turned into a bust? Suddenly RC Buford is no longer a genius.

Judging based on how well I can play Basketball GM versus how well other people play it, I’d be a pretty shitty GM.

1 Comment

  • Reply Justin July 29, 2014 at 7:05 am

    Interesting interview. BasketballGM is one of the best sports sims I’ve ever played and I would love to see it get some mainstream attention. Jeremy deserves it.

  • Leave a Reply