Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


How do you know if you are not reinventing the wheel in your language


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
11 replies to this topic

#1 warnexus   Prime Members   -  Reputation: 1474

Like
0Likes
Like

Posted 13 May 2014 - 09:05 PM

It may sound like a straightforward answer like "Research until you are absolutely sure it has not been done".

But it does not seem to be an easy answer to me. Games are complicated piece of software. From experience, it would seem I need to build my own systems just so I can have total control of how the game looks(ie: GUI) how the game feel like (ie: animation system). I made 5 games. Finished a small scale rpg last month and every project I did always had its trials and tribulations.

Any thoughts if I am reinventing the wheel by building the above mentioned systems or is there something just like it?

Sponsor:

#2 ultramailman   Prime Members   -  Reputation: 1582

Like
4Likes
Like

Posted 13 May 2014 - 09:35 PM

Whatever you do, you are probably reinventing the wheel. I don't think there's anything wrong with it though. If you have a problem and you come up with a system to solve it, good for you, and you learned something, wheel or not.



#3 DarkRonin   Members   -  Reputation: 614

Like
2Likes
Like

Posted 13 May 2014 - 09:46 PM

It depends...

 

I re-invent the wheel all of the time (sometimes through ignorance). But, I do like having complete say on what my code does (and complete understanding on how it does it). Makes it a lot easier to bug find I think.

 

You have to account for your time too. If something will take you a year to code and you can have it right away by using another API, you need to weigh up that too.



#4 Tutorial Doctor   Members   -  Reputation: 1657

Like
7Likes
Like

Posted 13 May 2014 - 09:58 PM

There are many styles of wheels though, and different types of wheels are more efficient than other types for specific tasks. Who invented the wheel really? Then ask who invented the car wheel, and the bicycle wheel and monster truck wheels. 

 

I want my system done my way for my purposes, especially if a library doesn't work the way my mind works, or is hard to use. 


They call me the Tutorial Doctor.


#5 DarkRonin   Members   -  Reputation: 614

Like
0Likes
Like

Posted 13 May 2014 - 10:03 PM

There are many styles of wheels though, and different types of wheels are more efficient than other types for specific tasks. Who invented the wheel really? Then ask who invented the car wheel, and the bicycle wheel and monster truck wheels. 

 

I want my system done my way for my purposes, especially if a library doesn't work the way my mind works, or is hard to use. 

 

I agree 100%.

 

I often find when I set my mind to it to sort out a problem, most of the time my wheels 'spin faster' in the end (compared to alternative solutions).

 

What is written by people can usually be improved upon by people.



#6 SerialKicked   Members   -  Reputation: 576

Like
2Likes
Like

Posted 13 May 2014 - 11:13 PM

In the end it is a matter of taste. I see nothing wrong with reinventing the wheel especially when you like the act of coding itself, and it gives you more control.

 

As an example when I was looking to implement A* and other path-finding solutions, I could have taken any of the libraries that already exist, instead I made my own. It's not the fastest or most elegant implementation ever, but it works. And more importantly I do understand how the A* algorithm work, I can reuse it in all my games and specifically customize it to handle game specific cases. Things that would have been much harder to do with a 3rd party library. I would never do my own GUI system, though tongue.png.

 

That's also why I am kinda annoyed by the "unity love parade" I see each time a beginner is asking where to start. Suggesting heavy high level engines to someone who barely know anything about programming or game logic systems is doing him a big disservice imho.



#7 Buster2000   Members   -  Reputation: 1737

Like
1Likes
Like

Posted 14 May 2014 - 06:14 AM

If you reinvented the wheel by accident then there is nothing to worry abbout.  If you reinvented the wheel because you evaluated the other possible solutions and they didn't quite fit then this is fine.
When reinventing the wheel does become a problem is when you insist on writing everything yourself just because you don't trusst anybody elses code.  I have worked on one XBOX 360 title that failed because the new lead programmer insisted on scrapping the third party engine that had been used for the last 3 successful games  and writing the new one in house he even insisted on writing things like XML parsers and zip libraries in house because he didn't trust third party libraries.  Naturally the game missed its deadline the publisher pulled out and a once successful studio laid off nearly all its staff and now consists of just two guys doing edutainment mobile apps.



#8 Shane C   Crossbones+   -  Reputation: 1283

Like
0Likes
Like

Posted 14 May 2014 - 08:05 AM

Reinventing the wheels tends to save frustrations and money.

 

Think of it like this: you make an egg omelette from scratch. And any time you need to tweak the ingredients, you know exactly how to make it. Using pre-existing tools is like trying to tweak an egg omelette someone else made.



#9 Buster2000   Members   -  Reputation: 1737

Like
0Likes
Like

Posted 15 May 2014 - 01:40 AM

Reinventing the wheels tends to save frustrations and money.

 

Think of it like this: you make an egg omelette from scratch. And any time you need to tweak the ingredients, you know exactly how to make it. Using pre-existing tools is like trying to tweak an egg omelette someone else made.

 

I know how to make an omelette in fact I know how to make dozens of different variety of omlettes ( I worked as a chef).  However nothing beats the satisfaction of paying somebody else to do it for me simply because my time is too valuable.

 

Its the same thing with games you may think it will save you frustration and money but most games have deadlines (even indies can only last for so long before they need to ship).  Also there it is a known condition that most developers will see a piece of software and say "I can write that better and it will only take me X amount of time" and they nearly always either take much longer than they initially figured or they produce a much worse version but won't admit to themselves that it is worse.

One of the most detrimental problems in any software house is Not Invented Here Syndrome (NIHS).



#10 Olof Hedman   Crossbones+   -  Reputation: 2909

Like
1Likes
Like

Posted 15 May 2014 - 03:12 AM

Also, some wheels are quicker to just make yourself, instead of trying to find a ready-made that fits your requirements.

 

3rd party code does not mean "no work", and not even necessarily "less work".

 

And its easier to evaluate the wheel-options if you have some experience in actually making wheels


Edited by Olof Hedman, 15 May 2014 - 03:13 AM.


#11 Brian Sandberg   Members   -  Reputation: 1353

Like
1Likes
Like

Posted 15 May 2014 - 10:34 AM

My wheel has an extra degree of freedom and is more of a ball joint really, and also has fittings for when I later want to attach a jet engine.  Don't judge; it seemed like a good idea at the time :)

 

Seriously though, there can be good reasons for reinventing the wheel.  It can be a learning experience, or you may need some feature that doesn't exist and makes it faster to reimplement from scratch than add to an existing library. If you're writing code as a hobby, then write what interests you. If you're doing a job for money, then other considerations become more important.



#12 Vortez   Crossbones+   -  Reputation: 2704

Like
0Likes
Like

Posted 16 May 2014 - 02:19 AM


If you reinvented the wheel by accident then there is nothing to worry abbout. If you reinvented the wheel because you evaluated the other possible solutions and they didn't quite fit then this is fine.
When reinventing the wheel does become a problem is when you insist on writing everything yourself just because you don't trusst anybody elses code. I have worked on one XBOX 360 title that failed because the new lead programmer insisted on scrapping the third party engine that had been used for the last 3 successful games and writing the new one in house he even insisted on writing things like XML parsers and zip libraries in house because he didn't trust third party libraries. Naturally the game missed its deadline the publisher pulled out and a once successful studio laid off nearly all its staff and now consists of just two guys doing edutainment mobile apps.

 

Totally agree.






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS