Tuesday, November 23, 2010

Pitfalls of Data-Oriented (DO) development

Object oriented development is ubiquitous in the games industry and it's quite hard to remove your brain from thinking along those lines if you've been doing games for a reasonable amount of time. I just read this post and thought about the problems I faced when I started doing DO. The whole entity ID problem that finally faded away with practice and the general "no, wait, XYZ said that was bad". I thought that it was about time to point out some of the problems I have with data-oriented development after I started doing it in my day job.

Firstly, data-oriented is different. This makes it harder for seniors to look at your code and appreciate that it even works. Sometimes you might get a "what is that? why did you do it like that? can't you just wrap it up in a class to make it easier to read?" These are disheartening to hear, especially from people you should be learning from.

Secondly, there's the stress of not being able to write data oriented. You still have to work daily with object oriented code bases, so if you're a good developer, one that work well with others, then you're constantly chomping at the bit to write it better, but hampered by style guides and already in place systems that do everything in an OO style.

Thirdly, there's the solitary feeling. It's not just a feeling of being alone with the concept of DO, but also the feeling that there might be groups or gatherings of others that do it the DO way, but you're not part of them, yet. It can be draining, and you may want to shout out about it, but no-one will have time to listen to a completely alien methodology when they're all concentrating on just getting stuff done. Which admittedly is your job too, so you have to suck it up.

Friday, November 19, 2010

Nuclear power vs renewables

Okay, so I've listened to both sides of the debate here, and to be honest, I'm sure both could have done a better job arguing their point.

Firstly, the anti nuclear pro renewable guy (Mark Z. Jacobson) probably should have gone into a lot more on the impact of the lag of installing nuclear power plants, this is a real threat, as opposed to the threat of terrorist activity. It's about the only thing that has any real hard hitting negative impact as far as I can see for nuclear approach.

Secondly the nuclear fella (Stewart Brand) seemed constrained artificially to try to solve the problem posed without extrapolating. Don't know why, but he's not pointing out that nuclear power provides a surplus opportunity.

This is the reason why I'm pro nuclear.

I believe that surplus energy provides the opportunity for good things to happen. If energy becomes cheap, then a lot of things become easier or possible. With cheap energy comes invention and innovation, which in turn are self propelling. I like things that are self propelling (see my work on taking advantage of innovation by random creation and critical selection) and with a world of cheap energy, creatives will have the opportunity to do more before the bills cause them to do a day job. Creatives are what keeps progress going, what keeps our next level of comfort approaching. Without surplus we're doomed to live a subtractive experience, cutting away at what is bad, not adding more good. That's not what I was brought up with, and it's worrying that my poor privileged brain might have to put up with it.

What if we had infinite computing power?

Just a little mind exercise, what do you think would happen if we found a trick and managed to create something like quantum computers that took virtually no power to operate and would run any program to completion as soon as it was run?

  • don't forget: with infinite CPU power, comes a massive reduction in clever coding. We can all write games in python / C# / natural language maybe even.
  • this isn't just about games, what about your daily commute, or your breakfast choices?
  • what about the rest of the world? How do you think it will affect the third world?