Home
jeff using livejournal [entries|archive|friends|userinfo]
Jeff Lindsay

[ website | progrium.com ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Charming little music [May. 2nd, 2008|04:10 am]
Tonight while Timothy was over I impolitely ignored him and started playing the guitar. Then I got bored and started playing with MIDI drums. This led to chiptunes percussion sounds and then my 8-bit synths... then I started recording things.

By this time Timothy decided to leave, supposedly because he was "tired" but I think he hates chiptunes. Actually I don't think that. But he left and I kept working until I had something I could arrange as a short piece. So here you have my first chiptunes piece:

Walk Outside, It's Nice


Does this make me a chiptunes artist?!
link1 comment|post comment

Ignorance vs Denial [Apr. 10th, 2008|02:03 pm]
I don't think there's anything intrinsically wrong with ignorance. Ignorance is exactly your capacity to HAVE knowledge and information, and that's a good thing. What you don't know is something you could know, hence an opportunity to learn. But I think most people understand that the *effects* of ignorance can be a bad thing. Sure.

Denial, on the other hand, is a sort of synthetic ignorance. This *is* intrinsically bad. It has all the downside of ignorance but none of the upside. Unlike ignorance, denial is something you will consciously or subconsciously fight for. Therefore it directly harms your capacity to learn.

So in summary: be more okay with ignorance, and keep a better eye out for denial.
link2 comments|post comment

[Apr. 10th, 2008|12:06 am]
linkpost comment

I just solved a world problem, in theory [Apr. 9th, 2008|03:23 am]
There are more than one ways to skin a cat. This is function vs process. The function is skinning a cat. The process is how. For programmers, process is called implementation. Sometimes people argue about process, what works best, etc. I would like to propose the best strategy possible that trumps any argument about one way vs another, unless it's arguing how to implement this strategy. And that's probably too much for this (although it's probably recursive).

What works for you is fine. If it produces the results you want, nobody should be able to take that from you. However, where this breaks down terribly is when you have two or more people trying to work together in conflicting ways. They won't get anything done even though they're doing what individually works for them. Once they find a way to work together that works for all of them, they'll be fine.

But consider the implications of that. First of all, once you find a way that works for you and you decide that's what you should be doing, how hard do you think it will be to do it any other way? This means that when two people with their own ways of working are put together, it may be a long time before they can get anything done together. Then try adding a third. Or more.

Second is something more important. If you had the choice to choose how you work, finding something that works for you, wouldn't you prefer a way of working that is most compatible with others, especially knowing the chances of that occurring?

The point is, no particular way of doing anything is any better than another for an individual unless it shows to be more effective *for that individual*. But this becomes moot when you're working with others because it then becomes about finding a common way of working that is most effective as a group. Therefore, you should probably have those two aligned:

Make the way you work best (which is *often* your own choice) the way which is most likely to work best with others (which you don't always have a choice of). Or better, make the way you work best the way which is most likely to work best with the people you most likely work with.

If everybody did this, there would be no arguments or conflicts. People would just almost always work well, together or alone. The tradeoff is that there wouldn't be any innovation in process. But is that such a bad thing? Wouldn't you rather be more effective than efficient?
linkpost comment

[Apr. 9th, 2008|02:13 am]
If I ever gave programming lessons...
linkpost comment

Grok Systems: Openness [Apr. 8th, 2008|03:09 am]
When I started the blog, I was going to post once a week. After two posts, I got stuck on this post and put it off for about 2 months. But now it's done! Learn about abstract environments and why they are important to every aspect of your life!

Grok Systems
linkpost comment

Why does time have to be modeled as we experience it? [Apr. 7th, 2008|03:41 am]
I'm finishing a post for Grok Systems and I was struck by an interesting thought. You see, the post is about context, or what system scientists generally refer to as the environment (as in the environment/context of a system). I was making the point that I usually make about history being the context to now. And I would usually visualize it the way a system in an environment is usually visualized: "now" being a circle inside a larger circle representing the "past."

The problem I originally had with this is that now is always changing, history always growing. So I imagined that the now circle would be constantly pushing out into history and that seemed to make sense. The next problem though is that it was one way. Systems *interact* with their environment. This was a one way relationship.

What about the future? I just figured in this model, the future was the direct center point of the circle. It didn't actually exist yet, so it didn't need to be visualized.

But the thought I just had was what if the environment was both past and future. It just seemed weird that history was the only environment that was ... well either write only or read only depending on how you look at it. But if this environment of the present was somehow both the past and the future, you have something interesting.

We normally model time like:

past -> present -> future

But in this realization it's modeled more like:

past/future <-> present

Which... is interesting if you really see what I'm saying. I mean, the past and future as the same thing? They certainly have the same property of not being the present. It's just always bugged me that as a dimension of reality, it's been a special case. The past cannot be changed, but the future is always change. They're two sides of the same coin. They're the same thing somehow...

It's like past/future is all existence interacting with some kind of update mechanism called now. Some believe now is the only thing that is real... the past is gone and doesn't exist as well as the future, but what if its the other way around? I suppose that wouldn't matter from our perspective.
linkpost comment

[Mar. 28th, 2008|09:51 pm]
DevHouse is tomorrow in Cupertino. I'm supposed to remind Adam to give a lightning talk announcement about something. I forget what it was. I'm sure he remembers, my job is to remind him. Hopefully he'll read this.

There is nothing you cannot question?
link1 comment|post comment

Return of Metal Draft [Mar. 28th, 2008|02:50 am]
It's been a long time since I've recorded anything. But I've been gathering everything I need to get back into it. Now I just need to get my process down. Here's a trifle of an experiment I did tonight:

Return of Metal
linkpost comment

Freedom is relativism, absolutes are conventions [Mar. 25th, 2008|03:42 pm]
I was just thinking about love and lust, how in some value systems they can't be apart, while in others (usually individuals) they're fine apart. This led to thinking about morals, which led to my continually evolving understanding of ideal policy management.

Policy as in anytime there is a rule or law, including but not limited to those in religion, corporations, judicial law, etc. But I say policy because I mean policy and that it should be in place of absolute law and rule because its about something more general and potentially more useful.

As for making policies, I've believed that the best policies are made to reinforce existing emergent solutions. Instead of creating a hard policy to create a behavior, try to stimulate the behavior by other means or even just let it happen and then create a policy to strengthen this more natural means to a desired behavior. Although, this raises an interesting question about whether policies should focus on function or procedure, the ends or the means, the intended outcome vs how it is reached.

It seems like most laws focus on the means and there isn't always much context to understand why that law is there, what the intended outcome was supposed to be. Then again, intended outcomes are always going to be the means to another intended outcome, so this becomes difficult, but it would be nice if both aspects were always encoded into policy.

But the real point of my policy philosophy is around enforcement, and this might seem controversial, but only because it's incomplete. It's based on core principles that seem more generally effective. The core of it is treating policy as convention more than anything else. Because that's really what it's about. You create policies to create conformity in a way that is somehow beneficial/effective.

Think of it this way: a policy is effective when it works, which generally requires everybody in the context it exists to follow it. A policy is not effective when people do not follow it, therefore the value is in the convention it creates. It turns out this is a major value of technologies and why many of them work (think standards and protocols).

This affects enforcement in that it becomes not about control, but about convention. And when it's only about convention, it becomes *okay* to not always follow convention, yet it should always be beneficial to those that do. This means enforcement almost becomes unnecessary in this model because enforcement is for control, whereas convention is about... allowing options but giving guidance.

And that's actually where I started from. Because we know that options, variety, choice and freedom are supposed to be good things. They allow new paths, possibly better paths to be explored, which is beneficial to the development of humanity. The problem comes when there are too many choices because then we become overwhelmed and things start to go bad.

I originally thought the ideal solution to this is to have technology understand individual cases and present choices in a way that will be most beneficial to the decision maker, while still allowing them access to other choices if they wish. This is why search is so important these days because it's about ranking the relevance of options in a world of too many options.

However, another part of the solution to too many choices (or another way to look at it) is to have conventions. These conventions are choice biases that exist in a particular context to help those in that context best operate through those choice biases. So for example a religion that has certain values will have conventions (as opposed to rules, laws... even morals?) that will give people a default choice that they don't even have to think about, but they know supports the values of their belief and therefore the well-being of those people.

The same can be applied to a corporation or organization. Default choices (policy) with the intention of benefit to the company, which should (but doesn't always) benefit the people involved. Or you could (and probably should) look at it the other way: it benefits the people involved which is a benefit to the company because they are more effective at their job.

The interesting thing is that if you can figure out how to make this model work, it makes choice not to conform okay. In this framework, just because it's against the law doesn't mean you can't do it. Because it's only a convention, but a convention that if followed *should* be beneficial to everybody in that context, which should be plenty of incentive for people to follow it.

By the way, this is how I look at laws already, but it doesn't exactly work all the time because we collectively don't look at it this way... in other words, the convention isn't there. This model promotes freedom, but where is lacks is in support of justice. Or at least, is incomplete in that regard. It's an interesting idea though, but involves a lot of moral relativism. But I don't see how you can have freedom without relativism.
linkpost comment

[Mar. 24th, 2008|06:42 pm]
TIGdb has gotten lots of positive feedback and we have a good idea of where to go next with it. So that's good.

On the other hand, I spent all day with Casey as our sort of last day together. Last night the machine was turned on for breakup. And she just now left with all her stuff. And the apartment feels empty.

It may or may not be as complicated as it seems to me. If you feel the urge, route consolation her way. I think she's more deserving of it.
linkpost comment

TIGdb [Mar. 24th, 2008|01:07 am]
I went to Las Vegas last Thursday night to visit my grandmother for two nights. I flew back Saturday afternoon and went directly to SF to meet up with Derek Yu. Towards the end of the GDC we were talking about some ideas on things to help support the growing indie community. There was a lot to it, but it seemed to all boil down to starting with a simple website that would act as a definitive directory of high quality indie games.

We'd talked about that particular thing before as an extension of TIGSource, but we never really moved forward with it. This year at the end of the GDC I told him we should schedule a time to meet up and hack on something. And so that's what this weekend was.

What did we build? Well with only 4 hours of sleep in the past 36 hours, I'm pretty happy to say that we built and deployed our indie game database. Think of it like the start of a good IMDB for indie games. And it's fully functional with a growing base of games with screenshots and developer information. It's called TIGdb, or The Independent Game Database.

After hanging around in Vegas until my flight, then at the airport because I missed my flight, I finally got to SFO and took Bart to SF. I think I got there around 7pm, but we didn't really start working on it until midnight. And I remember mostly working out the object model while Derek figured out how it would look until about 3am or so. We had intentionally kept the spec as simple as possible so we could finish it that night or the next day. A couple more hours later I finished the majority of a slick admin UI and helped Derek finish the layout and logo. Around 6am I started working on the frontend, getting some simple game listings up, authentication, and a rating mechanism, which I haven't really done before.

At 8 or 9, Derek finished HTMLizing the design and I started implementing it while he took my admin UI and started populating the database by hand, but more importantly, he was actually using and testing it live from my development environment. It turned out to not have many problems at all. In fact this whole experience went very very smoothly.

By noon, Derek decided to take a nap and I decided to do the same. By then there were about 25 games in the database, and I had a lot of the HTML templates fleshed out and implemented. In fact, besides screenshots, downloads, search (fancy search), and lots of minor tweaks and additions, it was pretty done and functional when I went to sleep. I had started noticing the effect of being up for so long and working so hard. I kept forgetting what I was doing. At some point I starting hallucination Derek's closet was a window to outside and I kept thinking I saw a person moving out there. So I went to sleep.

I woke up at 4pm. Derek was up adding more games to the database. He was using the app served over the local network from my laptop. It was really neat to do it that way because as I worked on it I would see new content show up as well. But it did mean I had to be more careful with database migrations. And for the most part, Derek was able to use the app without me braking it since I was able to keep out of the Admin part that he was using.

Finally it was ready to deploy around 7 or 7:30, but we stopped to eat Tai food. I had to compile Image Magick on the server and that really took the longest part. I didn't use a deployment system other than Mercurial, which I think is the way to go for deployment/rollback systems. By 8 it was online and working with 30 games fully fleshed out, just in time for me to get down to catch the last train back home.

It's definitely a lot of work to put in content, but Derek is the perfect person to be doing it since he has a lot of access to high quality content through the TIGSource community. In fact, tonight some of those guys are going to try it out and hopefully tomorrow we'll start spreading the word.

But it was a really fun and productive experience for both of us, especially since we've never directly collaborated on anything before. Hopefully it'll grow into what we were envisioning and people find it useful. It's probably the most finished useful thing I've built in the shortest amount of time (about 16 hours).
linkpost comment

Hacking on Mailhook [Mar. 11th, 2008|05:37 am]
It's coming back. This time way better, rewritten in PHP and Python running on EC2 and S3. It's taking longer than expected, and I should have known. Email is a pain in the ass, which is why I'm glad to be solving it.

The biggest change in design is not relying on any sort of sendmail configuration. It implements a simple Python SMTP server that just does what Mailhook needs. The switch to PHP for the web part was to keep things simple, so far working out okay. And this is my first use of EC2 and real use of S3.

This time around there will be a 100 email limitation and in order to use it without limitation there will be a $10/year fee. I'll be using PayPal's recurring payment system, which is new and nice. I was building my own for a while, so I'm glad they solved that problem.

I should put some other things on EC2 to make it worth the $70/mo...
link8 comments|post comment

No I will not stop writing! Two for one special! [Mar. 9th, 2008|09:45 pm]
Actually I already wrote these last night and earlier today. These are why I've been so writey. I've been putting them off, but in exchange for my GDC pass, not only did I have to do two interviews, but write a few short articles during GDC about some of the sessions I went to. I have one more to go, but I'll put it off a short bit longer.

Evolving Aquaria: Exploring the path to indie success )

Metaplace is going to change the game. )
linkpost comment

Stupid high school teachers [Mar. 9th, 2008|08:15 pm]
My high school economics teacher once said during a lecture that the record companies already know what musical style the general public will be listening to for the next few years. I don't remember what my response was then, but thinking about it now makes me cringe. Unless it was meant to be a figurative statement, I think she was full of shit.

First I think it's giving them too much credit. They're not that smart. But it also suggests that they have some kind of plan or long-term strategy, like some sort of conspiracy. Sure, but it's to make money and that's no surprise. That never changes. Most large businesses like that really don't know anything about what they're selling because it doesn't matter. They've developed a system that abstracts that away. They're market driven, which is to say empirically driven. If something sells, make more of it. If it doesn't sell, don't make more of it.

However, when talking about organizations, we have to remember that there *are* people behind them. And it's true, a producer might hear an artist and like them enough to "make them big" ... but what are their conditions for liking them? That the market will buy it. There's no way you can be a successful producer in the record biz without thinking of it like that. Even if they personally liked the artist's sound, their own taste has been conditioned and framed by everything before and around them.

I just find it highly unlikely given the nature of the system that even some head exec would say something as logically probable as "You know I really loved listening to early Judas Priest as a child, but I don't think the mainstream market will buy into it. Unless we condition them with x,y,z existing bands, then push an interstitial sound until we can find and market a band that sounds like early Judas Priest. The success we create from them will inspire other bands and even execs and producers to cash-in with their artists and then we'll all be listening to early Judas Priest!"

Even if some crazy visionary found their way into the good graces of executive decision and could potentially make something like this happen, chaos theory, the environmental fallacy, and other systems principles would make the success rate slim to none. And with the increasing rate of change, market segmentation, and democratization of content creation, it's only going to continue to be less likely.

The figurative interpretation is that they don't "know" in advance, but when it comes time, they're going to market and manipulate the public to want whatever it is they have. If they have an artist working on a record that's taking a year or longer to make and they know they're going to try and make people like it, they may know that. But they certainly don't know for sure that it will happen, let alone what it will even sound like, especially in advance.

So. Full of shit. I can see how she thought it was true, growing up in a very different, slower time and being so disconnected from the musical world. As well as having the myopic perspective of a faux guru pushing the outdated-in-the-real-world curriculum of public high school economics.
link2 comments|post comment

[Mar. 9th, 2008|05:52 pm]
And if that wasn't enough of my writing for you, here's probably the most patriotic thing I've ever written:

Confusing emergent behavior with the mechanics of the system

EDIT: I made some minor changes and additions that make it better get at what I was feeling. But it sort of changed the whole takeaway of the post, so I made the title more relevant:

Dissolving our nation's bootstrap bias
linkpost comment

Weird messes of meta [Mar. 8th, 2008|08:52 pm]
This is a post about drama. As you might expect of me, I have attempted to formalize the mess of problems and explore explanations with the intention, if not to become a better person, to better understand humanity. Or whatever it is that compels me to think this way...

Read on )
link2 comments|post comment

Super Mario Bros [Mar. 4th, 2008|01:37 am]
link2 comments|post comment

Experimental cash flow game? And game design dream (literally). [Mar. 2nd, 2008|04:34 pm]
I've been designing a game on the way to and from CollabRx (I'm consulting there) based on the idea of using games to express the dynamics of a given system through metaphors that are more fun to play. This was directly inspired by recent experimental games by Rod Humble (The Marriage) and Jason Rohrer (Passage).

Before I've been playing with the idea of using this metaphoric gameplay as a way to teach things, like say programming competency. The idea being that if you can create an metaphor for the way of thinking about programming that's abstract enough, you can implement it through gameplay without being totally obvious it's about what you're trying to teach, but by playing you learn lessons that are applicable.

Now I'm working on a game that was originally just about managing personal cash flow, paying bills, earning money, etc. But that would be a boring game. So I pulled the dynamics out and then used familiar game mechanics together in a way that would express them in a more compressed and obvious form (the dynamics, not that it's about cash flow, would be obvious, and therefore lessons about them). The hope was originally that by playing the game, you'll realize good habits in managing your money.

Then thinking about Passage and The Marriage, they weren't just about modeling a system not usually modeled in games, they were modeling their perspective of it. And how it makes them feel. This personal touch and form of personal expression through *gameplay* is something that I don't think has been shown to be possible so obviously before. Miyamoto would talk about childhood experiences dictating feelings evoked, content, and metaphors used in his games, but never a direct expression through the rules of the game (that I can think of).

This lead me to the realization that I'm making a game about cash flow... Money, while important, has never been a ends to me. It's always been a means and I would never get it confused with anything else. But the "temporary meaning of life" in this game so far would be about money, and I didn't want that. In fact, ideally I'd want that to be a lesson of the game, that's it's only a means to an end that has more meaning.

So I decided to throw in a subgame that would be the real reason you'd want to do well in the money game. I decided to model it after my creative endeavors, things that take money, have the potential to make money, but usually never do. So I wanted this subgame to be creatively oriented. Maybe in contrast to the sort of fast-paced money game, it would be a slow problem solving game, and when you play it is up to you, but it does cost money to play it and you aren't making money while doing it.

Until last night I didn't know what exactly it would be. I thought maybe puzzles, but I couldn't find anything that was hard enough, easy enough to design myself (making puzzles seems hard!), or was even abstract enough to be in the middle of this game. Talking with Tim there was the point that creative games were usually more open ended. Yet I wanted some kind of even vague success metric. It can't just be "draw a picture" because not only would I not find that all that interesting, but it would be hard to do a success metric. But that was closer to what I wanted.

Late last night, combined with Rod Humble's Stars Over Half Moon Bay game about creativity, and then thinking about my childhood, I came up with something I was happy with: Building things with blocks. You get a set of blocks in various shapes... and you build something. It doesn't matter what, but given that you use all the blocks and they're all touching somehow, your success metric would be based on overall size and then symmetry. So grandeur and beauty. Your structure would be saved and somehow presented during the game, and over time you'd form a collection of them. If "good enough" you might get money from it. And you get a different set of points that are more valuable to the game as you're in this creative mode, but remember, it's a tradeoff because you can run out of money staying in it and then lose.

ANYWAY, the whole point of this post was not even going to be about this game because I haven't even started writing code yet. The point was that while I was sleeping last night after figuring this out, I was dreaming that I was in a situation where I was being pulled in a lot of different directions as far as how I could spend my time, but I was being pressed to work on a game. And in my dream I knew about this game I'm talking about, as well as another game I've been thinking about. But for some reason, I had to do a different game because these other ones meant too much to me... I wouldn't finish them fast enough (as it sometimes goes), and while doing so I'd learn how to better use the tech I wanted to use for the real games (in this case Flex/ActionScript).

There were a lot of random other dream things going on, but the fact that these things were so clear and so tied to reality was interesting. Now I think in the dream I was at Derek's house (since I was there last week for GDC) and I remember in the dream I kept thinking of some basic gameplay mechanic to do this simple project with. I remember playing with a few ideas, but I kept coming back to Aquaria and the mouse driven navigation. So at some point I realized (which is contrary to the point of the project) that I would make a fan game set in the world of Aquaria. I remember thinking about how I'd get the content, background art, etc, whether I should rip it from the game or convince Derek to give it to me. Then I realized I should worry about the art later. And then the character animations and I remember playing Aquaria thinking about how I'd want to implement various TINY details...

OH, and I just remembered, for some reason, a handful of other awesome indie game developers were there and we were together trying to find a game to work on. And I was trying to impress one of them because she's cute. ANYWAY, so I wanted to do this Aquaria mini game, but I didn't want to have to do all the content of an exploration game. I had the idea that if it were a more linear 2D sidescrolling platformer I could just throw some levels together (since this was an experiment after all). But how do I make Aquaria a 2D sidescroller like Mario? The main character is underwater... (obvious answer I didn't see in the dream: see underwater levels of Mario)

Then I got the idea that I really like the parts of the game where you were playing around near the surface and you could jump out of the water and stuff. You could even climb the cliffs a bit. I found that particularly compelling even though it wasn't really a major part of the game. So I thought, what if the game was a series of water and then land, with enemies and powerups only on land, so you'd be swimming in the water but you'd have to jump out onto land for a bit to progress and do anything interesting. And there would be larger pieces of land that might have pools of water that you could retreat to. And that did it for me.

I realize that sounds a bit silly, but it's not *that* silly and I went through the whole frustrating creative process and came up with a solution in a dream. There's only been 1 or 2 other times when I came up with something potentially useful in a dream, but this one included the annoying process too... and in the context of a real world-ish scenario. Not that I'm going to make this game, but... it just seemed noteworthy. But I'm sure the fact that I went through the process is because I've been thinking about it a lot, going through it myself, but also getting meta. Both of Rod Humble and Jason Rohrer's new games that I played recently are ABOUT the creative process.
linkpost comment

[Feb. 17th, 2008|10:47 pm]
Seems like every year there are less and less GDC sessions that stand out. Yet it gets bigger every year. Interesting. Some of my favorite speakers aren't speaking this year. Oh well. The Indie Game Summit looks to be pretty cool again this year... it's like its own mini GDC. That and the Experimental Gameplay Workshop.
link1 comment|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]