Projects About Me Email

I am Nicholas Fleck.

I'm mostly known online as "Berkin". I'm a developer living in the Minneapolis area. I specialize mostly in procedural content generation and back-end development for games and the web. I hope to get into game development someday.

I have 7 years of experience with C# and the .NET Framework, but I have also worked with JavaScript, C++, HTML, CSS, and Lua. I know Rant, too, but you probably figured that out.

Why procedural generation?

Because it can be used to create a mind-bogglingly diverse variety of content, of incomprehensible depth and complexity. The games industry is always searching for new ways to diversify the player's experience and increase replay value. However, the first place most people think to look is usually not a computer algorithm. I'm working to make that path a lot easier.

There are, of course, shining examples of PCG being successfully utilized in games, such as Minecraft and Rust. But something I've yet to see is procedural generation being used to create believable, intelligent interactions between the player and the game that aren't scripted.

But that's not what got me interested in it to begin with...

As a junior in high school I had a lot of spare time, so I did what any regular kid would do when bored and opened up Visual Studio. I remembered back in the day when I used to fill in those Mad Libs sheets that created a semi-random story, and I wanted to make something that would fill them out for me, so I started working on a random story generator. It worked by taking a template provided by the user which had tags in it that designated spots for random words, and the program would fill them in. I wrote a few short word lists to provide the data and tried it out.

I spent most of that day laughing myself to tears at a console application. I didn't realize at the time what huge potential that horrendous mess of code had.

Over the years, I've taken that original idea and refined it into something more and more complex. I created a language called Rant. It could create a random mess like the original code did, but it could also create complex interactions between what was originally randomized nonsense. I could make people remember each others' names and generate whole conversations. It was pretty cool.

Procedural generation is much like art - you can scribble out a huge, incomprehensible mess and call it unique, but it takes experience to create something impressive. In the right hands, procedural generation can make people laugh, tell a story, or just look plain cool.

In randomness, there is an infinite world of possibilities. Most of them will make no sense, and that's okay. But my ultimate goal as a programmer is to give creative people everywhere the tools to reach into the noise, and pull out something spectacular.