Admittedly I often reinvent the wheel for quite a few tasks such maths library, image loader, socket code, model and animation library.
I have a few reasons for this...
1) User Convenience I hate it on Linux / FreeBSD when I have to drag in thousands of dependencies to install a single (often simple) piece of software. For example, the DevIL and SDL image loaders support a large number of image formats even though I only use PNG. So for this reason they will drag in libjpeg, libpng, zlib, libxpm, libgif, etc..., etc...
2) Maintainability If a library changes in an unusable way, on Unix, it is very hard to maintain your own specific version of the library in each package repository.
3) Profiling / Bugs / Leaks If I find a bug (for example a memory leak using valgrind) and I fix it... even if I can get the change to the upstream vendor, it will be a matter of months before the change appears in package repositories.
One of my main reasons against writing code for Java and C# is the user needs to install that whole platform. This is such a pain for the end users (especially on open platforms where Java still isn't 100% free).
However, I also use Glut 99% of the time for pretty much any 3D software so I am not against utilizing the code of others. (And yes, valgrind throws a fit when I allow an exception to propagate up through glutMainLoop() ;)
When it comes down to it however... you still need to write the damn game so any time saved on tech is a bonus ;)
Show differencesHistory of post edits
#3Karsten_
Posted 20 November 2012 - 06:45 AM
Admittedly I often reinvent the wheel for quite a few tasks such maths library, image loader, socket code, model and animation library.
I have a few reasons for this...
1) (User Convenience) I hate it on Linux / FreeBSD when I have to drag in thousands of dependencies to install a single (often simple) piece of software. For example, the DevIL and SDL image loaders support a large number of image formats even though I only use PNG. So for this reason they will drag in libjpeg, libpng, zlib, libxpm, libgif, etc..., etc...
2) (Maintainability) If a library changes in an unusable way, on Unix, it is very hard to maintain your own specific version of the library in each package repository.
3) (Profiling / Bugs / Leaks) If I find a bug (for example a memory leak using valgrind) and I fix it... even if I can get the change to the upstream vendor, it will be a matter of months before the change appears in package repositories.
However, I also use Glut 99% of the time for pretty much any 3D software so I am not against utilizing the code of others. (And yes, valgrind throws a fit when I allow an exception to propagate up through glutMainLoop() ;)
When it comes down to it however... you still need to write the damn game so any time saved on tech is a bonus ;)
I have a few reasons for this...
1) (User Convenience) I hate it on Linux / FreeBSD when I have to drag in thousands of dependencies to install a single (often simple) piece of software. For example, the DevIL and SDL image loaders support a large number of image formats even though I only use PNG. So for this reason they will drag in libjpeg, libpng, zlib, libxpm, libgif, etc..., etc...
2) (Maintainability) If a library changes in an unusable way, on Unix, it is very hard to maintain your own specific version of the library in each package repository.
3) (Profiling / Bugs / Leaks) If I find a bug (for example a memory leak using valgrind) and I fix it... even if I can get the change to the upstream vendor, it will be a matter of months before the change appears in package repositories.
However, I also use Glut 99% of the time for pretty much any 3D software so I am not against utilizing the code of others. (And yes, valgrind throws a fit when I allow an exception to propagate up through glutMainLoop() ;)
When it comes down to it however... you still need to write the damn game so any time saved on tech is a bonus ;)
#2Karsten_
Posted 20 November 2012 - 06:42 AM
Admittedly I often reinvent the wheel for quite a few tasks such maths library, image loader, socket code, model and animation library.
I have a few reasons for this...
1) (User Convenience) I hate it on Linux / FreeBSD when I have to drag in thousands of dependencies to install a single (often simple) piece of software.
2) (Maintainability) If a library changes in an unusable way, on Unix, it is very hard to maintain your own specific version of the library in each package repository.
3) (Profiling / Bugs / Leaks) If I find a bug (for example a memory leak using valgrind) and I fix it... even if I can get the change to the upstream vendor, it will be a matter of months before the change appears in package repositories.
However, I also use Glut 99% of the time for pretty much any 3D software so I am not against utilizing the code of others. (And yes, valgrind throws a fit when I allow an exception to propagate up through glutMainLoop() ;)
When it comes down to it however... you still need to write the damn game so any time saved on tech is a bonus ;)
I have a few reasons for this...
1) (User Convenience) I hate it on Linux / FreeBSD when I have to drag in thousands of dependencies to install a single (often simple) piece of software.
2) (Maintainability) If a library changes in an unusable way, on Unix, it is very hard to maintain your own specific version of the library in each package repository.
3) (Profiling / Bugs / Leaks) If I find a bug (for example a memory leak using valgrind) and I fix it... even if I can get the change to the upstream vendor, it will be a matter of months before the change appears in package repositories.
However, I also use Glut 99% of the time for pretty much any 3D software so I am not against utilizing the code of others. (And yes, valgrind throws a fit when I allow an exception to propagate up through glutMainLoop() ;)
When it comes down to it however... you still need to write the damn game so any time saved on tech is a bonus ;)
#1Karsten_
Posted 20 November 2012 - 06:41 AM
Admittedly I often reinvent the wheel for quite a few tasks such maths library, image loader, socket code, model and animation library.
I have a few reasons for this...
1) (User Convenience) I hate it on Linux / FreeBSD when I have to drag in thousands of dependencies to install a single (often simple) piece of software.
2) (Maintainability) If a library changes in an unusable way, on Unix, it is very hard to maintain your own specific version of the library in each package repository.
3) (Profiling / Bugs / Leaks) If I find a bug (for example a memory leak using valgrind) and I fix it... even if I can get the change to the upstream vendor, it will be a matter of months before the change appears in package repositories.
However, I also use Glut 99% of the time for pretty much any 3D software so I am not against utilizing the code of others.
When it comes down to it however... you still need to write the damn game so any time saved on tech is a bonus ;)
I have a few reasons for this...
1) (User Convenience) I hate it on Linux / FreeBSD when I have to drag in thousands of dependencies to install a single (often simple) piece of software.
2) (Maintainability) If a library changes in an unusable way, on Unix, it is very hard to maintain your own specific version of the library in each package repository.
3) (Profiling / Bugs / Leaks) If I find a bug (for example a memory leak using valgrind) and I fix it... even if I can get the change to the upstream vendor, it will be a matter of months before the change appears in package repositories.
However, I also use Glut 99% of the time for pretty much any 3D software so I am not against utilizing the code of others.
When it comes down to it however... you still need to write the damn game so any time saved on tech is a bonus ;)