What is wrong with reinventing the wheel?

I just wanted to start this topic because I have seen a lot of talk about ‘reinventing the wheel’ on other topics…

I myself absolutely LOVE reinventing the wheel… I just find it boring using other people’s stuff when you can make your own version… It also makes me happier knowing that when I finish a game, I have made the game engine and the launcher creator…

I don’t really see any problems with ‘reinventing the wheel’…

If you’re having fun and not under a deadline/don’t care about dev speed, then by all means.

I agree, by all means do it all yourself, you’ll learn a lot that way.

However, you never really realize how valuable it is to have a ton of libraries to pick from until you are making games under a deadline, or not just for fun. The studio I work for is laid back, but you still gotta get your game out in a reasonable amount of time so using more libraries = saving time and not dealing with unecessary complex code re-writing. You probably haven’t reached the point where games require you to know a lot of math, either. When you hit that point you’ll cherish libraries like Box2D because not everyone is a mathemitician.

I still use libraries if I can’t do it myself… I use jBox2D, LWJGL and Paul’s Code SoundSystem…

But when I can do it myself, I do it myself… But I usually keep the same code… For instance, I have made a 2D game engine (which I think is very good) and I am plan to use it for all my 2D games…

If I ever want to do 3D I might make my own 3D engine or just use something like Unity…

Yes it’s a fine line, but definitely always at least think about reinventing the wheel. A lot of time libraries are fantastic and save heaps of time, but also a lot of time they’re bloated and provide a thousand times what you need. And can be super-generalized to cater for all users, and consequently either less efficient or have excessive requirements on the amount of wrapper code you have to write to use them.

Personally I’m a big reinventer, but I code for fun. I kind of think games development, among all industries, should be one where reinventing the wheel would be more valuable, purely because novel gameplay might result. And surely that’s the holy grail - I would worry about if a game’s entirely written in libraries it might look and play like loads of other games. But I’m a game dev noob so what do I know :slight_smile:

I don’t see any problem with reinventing the wheel. There’s no better way to learn how it works.
How would we know that a circle wheel is the best solution unless we try square wheels and watch them fail horribly?

The one problem I have is when newbies ask where they should start and people tell them to use their half-baked engine/library.
I don’t have a problem with people “wasting” their own time. But when they start wasting other people’s time (especially those who don’t know any better), it really annoys me.

Slightly less annoying are the ones that keep asking for help on problems that wouldn’t exist if they weren’t trying to make an engine/library and just made a game.

My main problem is that I see such great APIs like Guava, JSoup, etc. and I then hold myself to too high a standard to get anything done.
I might do it once myself to learn it (huh, image compression/smoothsort/AI is pretty neat), but then I’d rather use something else which does it better.
I’ve also simply become more lazy.

A little bit of topic here, but I like notch’s way of programming…
He just programs for fun, he doesn’t like being in the game business…
He actually said in his blog:

[quote=""]

It’s the status quo argument.
People think that because we have tools which already work well, we shouldn’t try making anything better nor similar.

It’s annoying and incredibly demotivating.

  • Jev

Except there is legitimate reason for it.

Obviously, you may re-invent the wheel specifically for the purpose of improving on existing technology, it happens all the time. If it didn’t nothing would ever improve.
It’s the usual “best most appropriate tool for the job/what are you trying to do” deal, IMO.

I know what you mean, it is enjoyable and satisfying knowing that you made more of it yourself.
But why don’t you create your own computer from parts you make from scratch, rather than just use “other people’s stuff”? Then create your own programming language and operating system?

I’m rather hoping (and have been for about 20ish years) some group of bored people do both of these in a way that’d make me happy.

You decide what to do with your time so no, ofcourse there is nothing wrong with inventing the wheel.

IF you want to learn more about how the wheel works:
reinventing the wheel is excellent

IF you want to make a cart:
consider using someone else’s wheels

I’m not stamping silicon wafers for chips or programming in assembly, but I’m also not using game maker (which I think may be a wheel with too few possibilities for me). Each their own level of reinventing. Just do your reinventing consciously; it would be a shame if you would never finish a game due to continuous reinventing of wheels (assuming you want to finish a game).

Progress does not work like that. You build top of other achievements so even small upgrade is progress. But with reinventing you just start from scratch and don’t use other ppl valuable experience of same problem domain into account and end up with somewhat similar but different solution without any immediate benefits for anyone.

GNU/Linux.

  • Jev

GNU/Linux: That’s only exists in RS mind. I’ve been using linux since you had to compile it from source. It’s simply another antique pile of junk OS…like all the rest.

Why don’t you form that group you were talking about instead of waiting then? :wink:

  • Jev

Reinventing the wheel usually results in bad to mediocre solutions in excessive time.
Learning is great - based on the state of the art and not from scratch.

If everyone just used the same wheel we would all still be using wagon wheels. We would never have airplanes if everyone just carried on using the same old tec. Remember that crisis is the mother of invention. Even if you have a deadline sometimes that is when you produce something new and fantastic. Many inventors have been people who just having lost their job have a great idea and choose to go for it.

No margin in it. An OS…I don’t have the background. A language…I do, but it isn’t worth the effort…unless some nut case tosses insane an amount of money at me.