• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Bacterius

Reinventing the wheel and personal satisfaction

7 posts in this topic

Hello,

do you sometimes feel like not reinventing the wheel and simply using/building on somebody else's work doesn't give you as much personal satisfaction? I.e. if you were trying to code up something interesting as a hobby, which you deliberately know [i]someone[/i] out there has done better than you could ever do, do you give up on it and try and find something else to do, or do you keep going? And if you keep going would you code it [b]all[/b] up yourself (barring perhaps some minor, painful to write code), or would you end up using an already existing library (which does the heavy lifting of your application) to reach your goal?

Just eager to hear everyone's opinion, because I have met a few people who tend to deflate as soon as they find out that [i]it's been done before, and is a 'solved problem'[/i] , whereas other people just think "screw them, I'm doing this my own way and see where it takes me", and I wanted to know (out of curiosity) how the community as a whole feels.
0

Share this post


Link to post
Share on other sites
Depends on what my goal is. I tried to write my own game engine once (well... I guess it kinda stretched into several times) because my goal was to learn about how game engines work. I learned a lot and I enjoyed it. But right now I have a different goal, which is to just get a game finished, so I'm using as many existing libraries as possible.

So yeah, I've been there, and there'll probably be another day when I do it again (not necessarily a game engine though). But I'm not there right now cause my goals have changed as I've progressed in my programming ability and my interests have changed. It is a good way to learn about something in particular, if you have that desire.
1

Share this post


Link to post
Share on other sites
I'm pretty much the same as Cornstalks. I've made my own DX9 engine from scratch but anymore I'm more concerned with getting the game done then endlessly fiddling with all the other bits. I think its kind of a natural progression of programmers. When I first started out I wanted to reinvent everything as a means to get experience but the older I've gotten the less interested I've become in how everything works. Just that it works is good enough for me. Once you get a job programming all day it gets harder to want to do anything outside of work (at least for me) so the more tools I can use to let me get a game done faster is great. Which is why I'm really loving Unity at the moment.

As a kind of a tangent, I would say that anybody who is truly interested in doing game programming should create at least one game engine on their own to see how everything fits together. Whether that is specifically a game engine or core code collected through several projects is up to the person. In retrospect, my game engine wasn't very good but it does give me an understanding why other game engines do some of the things they do.
0

Share this post


Link to post
Share on other sites
As they say there is a time and place for everything. Reinventing the wheel is a great way to learn and as Cornstalks and stupid_programmer have said are great for learning how game engines work. However if you're more interested in making a playable game in a reasonable amount of time especially if that amount of time is limited due to work/college/school/etc.

Definitely when I get something working I feel a great sense of achievement even if I did just "reinvent the wheel". For example I rewrote a couple of STL headers like "string.h" and I had great fun and gained a lot of C++ programming knowledge by doing then, even if my friend told me I was completely bonkers.

There is of course a disadvantage to reinventing the wheel in that your solution may not be the most efficient method of completing the task and of course it is more often not the case that existing libraries and code that has been tested through fire and brimstone and used by a large number of people, therefore it is less likely to have any critical bugs or faults. This is a major factor when considering whether or not to use an external library.
0

Share this post


Link to post
Share on other sites
My personal policy on "reinventing the wheel" doing so intentionally is best confined to side projects which have the goal of understanding the details of a particular concept. In projects in which actual work is to be accomplished, "reinventing the wheel" is permissible if it is the best way to solve the problem/meet the specifications for the software. Otherwise, it is best avoided; one should always try to see if somebody else has already solved the problem, and to determine whether their solution is applicable to your problem. Note well that this does not mean that one should seek the solution before the problem is fully understood; taking existing solutions to problems and adapting your problem to the solution is exactly backwards; one should adapt solutions to problems, not vice versa.
0

Share this post


Link to post
Share on other sites
I'm in the "reinvent the wheel for fun, not profit" camp. If I want to actually get work done, then I will do my best to make use of existing software that solves problems for me. I rather take a week and learn a new extensive library than spending a month or more rewriting it to do the small part that I [i]think[/i] I'll need.

On the other hand, I will happily work on making things like 1940's and 50's tech/hardware. I'm considering doing an Enigma Machine sometime soon.
1

Share this post


Link to post
Share on other sites
I'm guilty of trying to "reinvent the wheel".

I'm doing some hobby general a.i. programming, and I know that people have coded the techniques and features I'm coding.

It's hard to continue. People value originality more than rehashes, even if those rehashes are done well.

A lot of people have discouraged me from pursuing my goals.

I want to learn, and if I can I want to make software better. It's easy to forget in the discussion of originality vs. reinventing the wheel that the first wheel isn't always the best wheel. There is always room for innovation. It is hubris for me to think that a novice programmer like myself can do things better, but knowing that doesn't dampen my desire to try.

I don't expect any help. If I do need help, I ask technical questions that have factual answers. I also research what people have done (which anyone who is trying to learn should do anyway) and try to find useful alternative or better ways to do it.
0

Share this post


Link to post
Share on other sites
I think everyone needs to reinvent the wheels, up to a certain degree. You need to know how the wheel works before you can use it confidently.

The only time I would reinvent is when I don't need all the extra garbage that others have. For example, I need a linked-list, but find out that the existing linked-list implementations are creating a lot of dummy objects internally. Or I need a simple Python interpreter, but I don't need the full-blown features, just enough to parse basic Python scripts.

I'd reuse others when I know how to make it, but too lazy to do it myself.
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0