Probably Dance

I can program and like games

Category: Uncategorized

Collected Advice for Doing Scientific Research

I’ve been collecting advice from various sources about how to do research. I can’t find a good place that collects this, so let’s see if I can create one.

The idea is that this should be something similar as George Polya’s “How to Solve It” but for doing research instead of solving problems. There is a lot of overlap between those two ideas, so I will quote a lot from Polya, but I will also add ideas from other sources. I should say though that my sources are mostly from Computer Science, Math and Physics. So this list will be biased towards those fields.

My other background here is that I work in video game AI so I’ve read a lot of AI literature and have found parallels between solving AI problems and solving research problems. So I will try to generalize patterns that AI research has found about how to solve hard problems.

A lot of practical advice will be for getting you unstuck. But there will also be advice for the general approach to doing research.

Read the rest of this entry »

VR Will Be About Using Your Hands

I have been cautiously optimistic about VR for a while: DK1 and DK2 made me feel motion sick pretty quickly, but I could see that there was something neat there. Being able to effortlessly look around changes how the game feels. When you could lean forward in the DK2, it highlighted how constrained our camera has always been in games. Still I didn’t quite get what this would be useful for other than puzzle games.

The obvious use case is for news reports and videos. When I now see pictures from Syria I want to have a 360 degree picture to be able to look around and get a better feel for the situation. But for video games, VR didn’t quite click for me.

At GDC I played two games that used the Oculus and Vive controllers, and now I finally get what you can do with VR  in gamesthat you can’t do otherwise: You can use your own hands to interact with things in the virtual world.

Read the rest of this entry »

Another explanation for the Fermi Paradox

I just finished a science fiction book (The Algebraist by Iain M. Banks) in which people travel through space, but there is no faster than light travel. That is except if there is a wormhole connecting the solar system that you’re in with where you want to go. If there isn’t, it will probably take hundreds of years to transport the other end of a wormhole to where you want to go.

The long travel times offer another explanation for the Fermi Paradox. (in addition to all the explanations already in that article) If you lived in a spaceship and heard that there might be a young civilization on a rocky planet somewhere that is just emerging out of their evolutionary phase, would you spend hundreds of years to have a look? (While knowing that that new species is probably pretty boring and that you’ve probably seen five other species like it before and you already don’t like hanging out with those all that much)

You probably wouldn’t. Nobody would. And the proof lies in the fact that there are still hundreds of uncontacted tribes around the world. (Wikipedia) Now that I’ve told you that there are hundreds of uncontacted tribes around the world, will you go out and try to contact them? Probably not. Too many reasons against it, too few reasons for it.

And in space everything takes a heck of a lot longer, so no wonder that nobody has bothered to say hi.

On Self-Improving Intelligence

I just watched this TED talk by Nick Bostrom which is about what happens when computers get smarter than we are. It follows the theory that once we have created AI that is smarter than us, that AI will be able to create AI that is even smarter than itself. So at that point we’ll be left behind very quickly. Intelligence will develop a dynamic of self-improvement that can’t be stopped.

What he doesn’t realize is that we are already in that mode. We have already created people that are smarter than we used to be. And those people have created people who are smarter than themselves. That process has been going on for hundreds, if not thousands of years. The human brain is not the limit for human intelligence.

Read the rest of this entry »

format_it: Iterator based string formatting

format_it is my attempt at writing string formatting that is good enough that it could make it into the C++ standard. It’s not quite there yet but I haven’t gotten to work on it in a few months, so I will publish what I have so far. It is fast (much faster than using snprintf to write to the stack), type safe, memory safe, doesn’t truncate, extensible, backwards compatible for std::ostream and somewhat composable.

The syntax is a mix of printf, ostream and varargs. I’ll just show an example:

// format "100 and 0.5" into 1024 bytes of stack memory
fmt::stack_format<1024> format("%0 and %1", 100, 0.5f);

// print "Hello World" into 1024 bytes of stack memory
fmt::stack_print<1024> print("Hello", "World");

// prints "100 and 0.5\nHello World\n"
auto format_to_cout = fmt::make_format_it(std::ostreambuf_iterator<char>(std::cout));
*format_to_cout++ = format;
*format_to_cout++ = '\n';
*format_to_cout++ = print;
*format_to_cout++ = '\n';

Where the first and second struct mimic snprintf, and the third example introcues the formatting iterator that they use behind the scenes.

Read the rest of this entry »

How do you secure Bitcoin?

After the Mt. Gox thing the bitcoin course is going back up again. My initial response was “this is a Mt. Gox problem, not a bitcoin problem” and I think this seems to be the general opinion right now.

But then it looked like the most likely reason for the disappearance of the money is that some insider at Mt. Gox just ran away with it. And the more you think about it, the more you realize how easy this is. Let’s say you are an admin at a company which has a lot of bitcoins. One day you book a vacation to some Caribbean island, and the day before you leave you copy the private keys of all the big bitcoin wallets that the company has onto a thumb drive. As soon as you’re out of the country you use those private keys to transfer all of the company’s money to your account. You’re rich, and it’s not easy to see how that could have been prevented.

Read the rest of this entry »

Bitcoin Mining for Space Heating

When googling for the above words you find lots of people making jokes about how Bitcoin mining hardware will turn into an expensive space heater quickly after purchase because the mining difficulty increases so fast. But using Bitcoin mining hardware as space heaters is not necessarily a bad idea.

In my apartment we mostly heat with electric heaters. Which is a giant waste of money, but we don’t have a choice. And electric heaters are basically devices that try to waste as much electricity as possible, because the more electricity they waste, the more heat they generate. Sounds kinda like Bitcoin mining, right? When I realized that I turned off my electric heater and made my computer mine Bitcoin. By my estimates I will get something like 2 or 3 dollar worth of Bitcoin out of that by the end of the month. Which is 2 or 3 dollar more than my electric heater gives me.

If I had realized this at the beginning of the winter and had bought specialized mining hardware, I could have actually gone through the winter making a good amount of money. If I can’t convince my landlord to switch our heating solution by next winter, I’ll certainly be doing that next year.

The privacy implications of databases

Google Street View has had problems with being accepted in several countries. In Germany Google gave up for now after people requested that their houses be blurred. In Switzerland Google is now shooting images after some modifications and restrictions were agreed upon.

But one thing that you always find on the Internet is people expressing how they don’t get that someone might be upset about Google Street View. After all it only shows things that are already public. The problem is of course, that there are different scales of how publicly something is known about you. And if someone puts information about me in a searchable database on the internet, that’s very public.

Read the rest of this entry »

GDC bragging

Since I’m handing out business cards at GDC this year, people should at least be able to see my current project on this site. So here is a simple video of my teammate running through a level.

Our game is very much inspired by Mirror’s Edge. We are receiving positive feedback from playtesting, and I think we’ll be able to finish a good game by the end of the semester.

We are still learning a lot from player feedback and we will not be using this level. We are working on new content, and are just interrupted by everyone going to GDC. Our tools allow us to make new content rather quickly, and I am really proud of them. So here is a video of them: