Pixel City Redux #5: Debugging Bugs Me

By Shamus Posted Tuesday May 8, 2018

Filed under: Programming 96 comments

In programming, sometimes things go very wrong and you have no idea why. Bugs happen all the time, and a lot of this jobOr hobby. Whatever. involves tracking down and fixing your mistakes. On any sufficiently mature project you’ll probably spend more time testing and debugging new features than you spend writing them.

So it goes something like this:

You’re busy playing the game you’re developing when suddenly you crash to desktop. Looking a bit closer, it seems like you got a division by zero error. It seems the variable named “distance_to” was somehow set to zero. The odd thing is,that variable is used for calculating the distance to the closest quest marker, and you know for a fact you weren’t anywhere near one.

So clearly this bug isn’t your fault. Obviously your code is fine. This is probably a bug in the compiler. Or maybe the operating system. Maybe even the processor itself. To sort this out, you’re going to need to send an irate email to the guilty.

But before you fire off that salvo of email abuse, you figure you’ll have a quick look at your code, just on the off chance that this is somehow your fault.

It’s true that you can “solve” this problem by having the program check for a value of zero before doing any division with this variable. That would certainly stop the crash, but it wouldn’t fix the bug. According to how things are supposed to work, it should be impossible for this variable to be zero. Stopping the crash won’t address the fact that something is going wrong.

The problem looks like this:

Continue reading ⟩⟩ “Pixel City Redux #5: Debugging Bugs Me”

 


 

Diecast #209: System Shock, TotalBiscuit, Minecraft, Mailbag

By Shamus Posted Monday May 7, 2018

Filed under: Diecast 43 comments

I’m really enjoying having these questions. As always, if you’ve got a question for the show please send it to diecast@shamusyoung.com.



Hosts: Paul, Shamus. Episode edited by Issac.

Show notes: Continue reading ⟩⟩ “Diecast #209: System Shock, TotalBiscuit, Minecraft, Mailbag”

 


 

Nightdive is Still Alive

By Shamus Posted Sunday May 6, 2018

Filed under: Video Games 42 comments

You might remember a few months ago I wrote about the sad story of Nightdive Studios. They got to rights to remake the 1994 classic System Shock. They made a dynamite demo and raised over a million dollars on Kickstarter. And then six months into development they threw away the demo and started over with a new graphics engine. A year later they (apparently) ran out of money and shut the project down. In the process, they laid off 15 people.

I predicted the project was dead at this point, but it looks like I was wrong. They’ve gone back to a design that matches the original demo and begun work on the low-tech version of the game they started with.

I don’t have much to say about what they’re doing, but after writing that very negative column back in February I thought I should at least acknowledge this change in direction. I don’t know what money they’re living on at this pointThey worked on the game for 18 months and employed 15 people. Even if everyone was talking a very modest salary and the company didn’t have a lot of operating expenses, the initial Kickstarter money ought to be long gone by now., but I’m glad work has resumed on the project.

While I still strongly disagree with their previous decisions, I think this new direction is the best possible response. I can’t think of anything the team could do at this point that would placate meWhich is OBVIOUSLY their priority at this point, right? more than what they’re doing now.

I wouldn’t say I’m feeling “hopeful” about the project at this point, but I’m no longer assuming the entire enterprise is doomed. And that’s sort of like being hopeful. I guess.

Best of luck to the team.

 


 

Black Desert Online #3: But Wait, It’s Worse!

By Shamus Posted Thursday May 3, 2018

Filed under: Retrospectives 171 comments

In terms of combat, this was the most fun I’ve ever had in an MMO. And it’s really pretty. And the loot system is kinda interesting. And I like the Black Spirit character, his stilted translated dialog notwithstanding. And yet the developer drove me away from the game. So what did they do wrong?

The Business Model is Awful

Thanks for purchasing the game. Now buy the rest of it, one tiny piece of content at a time.
Thanks for purchasing the game. Now buy the rest of it, one tiny piece of content at a time.

I got this game back in 2016 during the North America launch, and I paid $60 for it. That’s a lot to ask for in this world where MMOs are all offering you free access, but I had a good time with Guild Wars 2 and that game ran on a pay-up-front model, so I was willing to give Black Desert the same chance.

The problem is that once you pay your $60The game is down to $10 on Steam these days. Still too much, since it should probably be free on account of all the microtransaction crap. you’ll find it operates more or less like a free-to-play game. The game throws annoyances at you and then asks you for money to make them go away. Or the game tantalizes you with customization options that must be paid for.

In the old days, you paid $60 up front and $15 a month. I liked that model since it kept my costs fixed and I didn’t have to make real-world economic decisions while I was immersed in my videogame. But fine. I guess it’s all microtransactions now. If I had known up front how hard the game was going to push microtransactions then I wouldn’t have spent $60 on it. I don’t like constantly running into hurdles asking me to pay for this or that, but in theory I’d be okay with it if it was possible to just play the game normally for $15 a month.

The problem is that…

Continue reading ⟩⟩ “Black Desert Online #3: But Wait, It’s Worse!”

 


 

Pixel City Redux #4: I Didn’t Know I Didn’t Know That

By Shamus Posted Tuesday May 1, 2018

Filed under: Programming 58 comments

In the last entry I hacked together a solution that let me draw my scene without using a framebuffer object. But now I’m realizing that even though I got lighting working, I still don’t have the features I need to make this work.

The Loss of Framebuffer Effects

One of my goals at the start of this project was to mess around with goofy color reduction and dithering effects. I don’t know why, really. It was just something I wanted to see in action.

The idea I had for dithering would squash the image down to just 16 colors, which would produce something like this:

Continue reading ⟩⟩ “Pixel City Redux #4: I Didn’t Know I Didn’t Know That”

 


 

Diecast #208: Mailbag

By Shamus Posted Monday Apr 30, 2018

Filed under: Diecast 52 comments

It’s an all-mailbag episode. Thanks to everyone who sent in questions. Also to reiterate what I said on the show: This was recorded on Wed April 25, prior to me taking a trip.



Hosts: Paul, Shamus. Episode edited by Issac.

Show notes: Continue reading ⟩⟩ “Diecast #208: Mailbag”

 


 

Don’t Laugh at MeWe!

By Shamus Posted Sunday Apr 29, 2018

Filed under: Personal 35 comments

Well, this is embarrassing. It’s a lot more fun to write about malfunctioning technology than to explain my bone-headed mistakes, but the only way to avoid this sort of thing is to not make bone-headed mistakes and I still haven’t figured out how to do that.

A few weeks ago I posted the Twilight Zone story of creating a MeWe account, having it vanish, creating another, and then having the original account send me a friend request. Last week a member of the MeWe team saw the post. The did an investigation and were able to sort out what happened. (Spoiler: It was user error.)

Back in the old days – in the mid aughts or so – I was juggling three different email addresses. I had one from my internet provider, one here at my domain, and a third through gmail. The plan was that @shamusyoung would be the public-facing address conversing with the masses, and @gmail would be for a small list of friends / professional contacts. However, it was somewhat random which one I’d use when creating a new account someplace. When I’d try to do an account recovery I’d have no idea which email I’d used to create the thing. It was madness.

So about seven years ago I made a new rule: All accounts will use @gmailWhy? Because gmail has better spam filtering than my @shamusyoung address.. So now ALL accounts tie to @gmail. Over time, the @shamusyoung address fell out of use. If strangers want to contact me these days they usually leave a comment on the site or DM me on Twitter. Very few go to the trouble of finding the @shamusyoung contact info.

Obviously my two MeWe accounts were bound to these two different addresses. That was my mistake. I created the first using @shamusyoung and then went looking for it later, assuming it would be @gmail.

So that’s the mistake. But how did I make it? What would possess me to create a new account here in 2018 using an address I barely think about and haven’t typed in years? And having done so, how could I not notice when looking for the account two weeks later?

I THINK this was a result of the way I was invited to MeWe. Someone sent the invite link to @shamusyoung. I’m betting that when I clicked on the link, it set up an account for @shamusyoung without me needing to type in an email. So I didn’t notice I was linking MeWe to the wrong email. At some point in the distant past I set up @shamusyoung to auto-forward to @gmail, meaning this mistake was invisible to me.

So how did I get a friend invite from myself? According to MeWe:

On the first account you must have selected the optional feature to Sync Contacts. If this is selected it will auto invite your contacts ONLY if they join MeWe.

Huh. (That’s a cool feature, although I might suggest that invites make it clear if they’re sent via automated systems or through direct user interaction. Like, if I was divorced I might still have my ex-wife in my old contact list, and thus when trying to import all my buddies I’d end up sending her a friend invite. This would likely create confusion and misunderstandings for both of us. Then again, maybe feature requests like this ought to come from someone who kept their wits on the account creation page.)

So that’s how I created a surreal mystery for myself. I have to commend MeWe’s support for being so good they went and solved my problem without even being told about it or asked to do anything.