10 ms·
I'm Slowly Losing My Mind
- meric 14y agoI suggest looking at Common Lisp for additional programming power. May be relevant: http://www.lambdassociates.org/blog/bipolar.htm http://www.lambdassociates.org/blog/bipolar.htm "He can see far; further than in fact his strength allows him to travel. He conceives of brilliant ambitious projects requiring great resources, and he embarks on them only to run out of steam. It's not that he's lazy; its just that his resources are insufficient. And this is where Lisp comes in. Because Lisp, as a tool, is to the mind as the lever is to the arm. It amplifies your power and enables you to embark on projects beyond the scope of lesser languages like C. Writing in C is like building a mosaic out of lentils using a tweezer and glue. Lisp is like wielding an air gun with power and precision. It opens out whole kingdoms shut to other programmers."
- waterhouse 14y agoGuy says he made an audio engine, graphics engine, game engine, and so on. In order for these to be useful for a serious, high-quality product, there must be no perceptible pauses induced by garbage collection. An audio engine in particular seems to need to run extremely quickly--on Mac OS X, at any rate. Perform this experiment: Pick your favorite music player, such as iTunes, play your favorite song, and run this: $ for ((;;)); do killall -STOP iTunes; sleep .008; killall -CONT iTunes; sleep .050; done This simulates 8-millisecond GC pauses. On my fairly fast, modern laptop, this is too much--I hear a bunch of stuttering in the audio. (It's kind of surreal.) I have to cut the pauses down to 5 milliseconds to completely avoid stuttering. This goes for every program that produces audio output that I've tested. It is possible that audio output under other operating systems is handled differently, and that you could install a buffer of sound output for the next 50 or 100 milliseconds or whatever [it may even be possible to do that on OS X--I don't know], but I'm not betting on it. ... Besides audio, usually games want to maintain a certain refresh rate, such as 30 or 60 frames per second. 30 fps is 33 milliseconds per frame. If a pause lasts any longer (in fact, if the pause lasts [33 msec - <time to compute and draw the next frame>]), the drawing will stutter. Maybe you might think, "Eh, who cares? It's just a little stutter from time to time." If I've read this guy right, this is exactly the sort of thing he would not tolerate. In order for such an audio library to be writable in Common Lisp, Common Lisp compilers/runtime systems will have to get their act together and ensure that the maximum GC pause time is less than 5 milliseconds on my machine, no matter how many objects are allocated by the program using the library. In the absence of Common Lisp compilers/runtimes that can do this, there are two choices: write it in a different language, such as C or C++ with manual memory management; or write your own Common Lisp runtime + compiler that can. I have gone down the latter rabbit hole. You may hear if I come out at some point.
- meric 14y agoYou could write bindings for libraries he's wrote and write higher level logic in CL. It also appears (from google searches) there are ways to tweak garbage collectors in some versions of Lisp as well as ways to manually manage some memory? I don't know if they can be applied to writing audio or graphics libraries though. I've ran your script. Was surprised lower milliseconds I wasn't able to notice the stutter. I'd have thought even 1 ms would be noticeable. >> Common Lisp runtime + compiler Would like to hear more about this. Have you written about it in a blog post somewhere? One more point: Common lisp isn't the only option. There are other powerful functional languages out there. e.g. Ocaml which uses an incremental GC.
- jes5199 14y agoHow about a C process that only manages audio, which takes instructions over a socket from your Lisp program of what audio to play? You could even stream stuttering audio from Lisp into a user-space buffer written in C that smooths it out.
- javajosh 14y agoThis is really ambitious, and fascinating for someone who (like me) has really never done anything serious in an environment that wasn't garbage collected. It brings up a fundamental question: what does it mean to release memory? How long does it take to release memory? I assume that it involves sending some sort of signal to the surrounding environment. Either that or your program gets two "special" values that it uses to tag memory regions, and the OS periodically truncates (or adds to) your image when those tags reach certain thresholds. If it's explicit, and a C function call that takes something like a memory address range as an argument what does the kernel do at that point?
- davidandgoliath 14y agoThe silliest part of this whole article? "I graduate college in 2 months. I'm running out of time." Ah ha! You've got all the time in the world to practice & hone your craft, why the rush? Graduation is just the beginning, not the end.
- jdavis703 14y agoNot to be pedantic, but those who believe their time here is a scarce commodity are often driven to do great things (e.g. Steve Jobs).
- chromaticorb 14y agowhy is that pedantic?
- astrodust 14y agoAfter you graduate it's a lot harder to get student loans, though. This also initiates the theoretical paying them back phase of your life.
- chromaticorb 14y agothis is the blog equivalent to someone blubbering in front of the camera on youtube
- asciimo 14y agoHa, that's true! Thanks for the analogy. Yet I sympathize with him in a way I never would a YouTube blubberer. There's something deeply poetic about a creative genius who can only produce tools. On par with Greek mythology.
- femto 14y agoI can see how it happens: You start off trying to solve a specific problem. You then spot all these related problems, that you could solve by generalising your solution. You tell yourself that if you build a tool to solve the general problem, the solution to your original problem is "free", since it is only a single button push or function call away. It seems wasteful to make your code specific, when it can be general. Before you know it, you are completely bogged down trying to write a general purpose tool and never get to the point where you can push that button, to generate the originally required solution. You are stuck producing tools. An alternative is to tell yourself, and continually remind yourself, that you don't know enough about the problem space to write a tool. You must solve the original problem, in order to teach yourself about the problem, by example. The solution is a prerequisite to writing the tool. Once you have your solution, you can either a) use the experience gained to generalise your achieved solution, to form a tool, or b) decide that the general solution is not important and move on to the next project. It seems so easy when written down...
- ChuckMcM 14y agoAh the existential crisis that is college graduation. Nothing quite like it. Certainly not for the clever and yet lost ones. Eric is suffering from a common ailment, lack of an agenda and fear of employment. Suffering from tales of drudgery and pain that is the "9 to 5 job" he dreams of something larger, but because he has no agenda there is nothing to target, nothing to attack. I hope he avoids a game studio initally, they chew up these guys and spit them out as spent rags into the world suffering from post tramautic coding disorder. Spend the summer after graduation helping people. People with real problems in the real world. Buy a one way ticket to another place and work your way back, drive from the polar circle to the southern tip of Brazil. Engage with the world, find the place where you can apply positive good with your skills and do that for a while. You'll feel better about yourself and the world will be better for it. Or find someone you respect and you can learn from and join them in their quest to make the world a better place.
- chii 14y ago> Engage with the world, find the place where you can apply positive good with your skills and do that for a while. Isn't that called getting a job?
- ChuckMcM 14y agoDepends on how you define 'job', if its something you do to make money so that you can do the thing you really want to do, no that wasn't what I was suggesting. Engage with people outside of your Internet friends, you can do that easily at most churches, volunteers are always scarce, or with your any number of organizations in your community. Depending on your life circumstances and the time of year you might not be in a position to live as inexpensively as you would like but the problem our author has is that he loves to figure out systems (cool) but doesn't have any meaningful systems to figure out (bad) so he's rewriting the systems he can get his hands on to burn up creative energy. And yet there are lots of broken systems that could really really use his help, and they aren't all technical. Lets talk about Aaron Schwartz for a moment, I met him at a small conference we were both attending and I got to talk with him a bit about his aspirations for making information available. Organizing around that goal gave him tremendous focus. Our author doesn't have a mission yet, that thing he's going to do. He needs to find it, and to find it he has to stop thinking job vs recreation vs my time vs work time. He has to think, goal, requirements to achieve that goal, next one on the list. That will organize his life for him and he won't be going crazy any more.
- noonespecial 14y agoYou sound like (younger) me and you seem to be getting some flak here from people who should know better. And if you are like me, I've got some good news and some bad news. The tl;dr is: Just hold on. It gets better. Much better. The bad news: You've probably got a good case of ADHD, coupled with mild depression, the usual existential angst, all made worse by a huge impending transition. The "tools" you're building (I was building) were really giant abstraction layers between myself and "the real world" (if that makes any sense). I'd start out with a specific purpose of course, but falter as the scope expanded until I was trying to encapsulate all of reality (or possibility?). I'd get excited when I'd discover parallels between the projects I'd started and excitedly think to myself "wow, when I get this thing done its going to do everything! Its a whole new way to see the entire creative space!" Really they were just all running together like melting crayons in the global namespace of possibility. What you're feeling about these projects is inexperience. I know it doesn't seem like it, but it will looking back. The hard realization was that the stuff in my head just couldn't be expressed by any real world media, even of my own design. Reality sucks like that. Worse, I only had so much energy in a day, and only so many days to live. If I had 10 lives I still couldn't explore half of what I already wanted to. The worst of all? Lots of people felt just like I did. They were better at most things than I was too. I was no-one special. The good news: I think you'll probably just outgrow it. And I'm seriously trying not to be condescending here. I think I was about 25 or 26 when I noticed that my mind was starting to get "quiet" for lack of a better term(1). I didn't feel desperately pulled in a thousand directions anymore. All of those world changing projects I'd desperately started and only built 30% of when I was young turned out to be completely useless. But the experience I gained wasn't. The soul-sucking jobs that had seemed so impenetrable were actually made of interesting little problems that were fun to solve. Soon I was comfortable enough to strike out on my own as a consultant, then start a business. I guess what I'm telling you, hopefully without even a hint of judgment or condescension is to hang on, I think I was a lot like you and it got much better for me through no special effort or grand insight of my own. I think it will for you too. Its just growing up. Not "growing up" in the awful, condescending way people say it when they want something from you. Just what happens. I truly wish the best of luck to you. (1) Apparently this is fairly common for many adolescent sufferers of ADHD.
- 14y ago
- yesimahuman 14y agoHonestly, it just sounds like you need to practice the art of getting things out there. It's a really hard skill to learn, but you only learn it by releasing little bits as soon as they are at least usable, and never a moment later. After awhile you'll be more content with imperfection, and you'll realize perfection isn't really worth it (or feasible). And if you do start putting price tags on things, you'll learn how to make your dreams a financial reality. You are just graduating, many people never learn this. Start shipping something now, because it takes a good amount of time to learn and improve this process.
- plaguuuuuu 14y agoA normal job will kill you. Source: I have a normal job, and it's killing me. It's not really fun in the way that hobby programming is fun. What I really live for tho is composing music. So I'm considering either working part time (because I can't compose any more at all, due to tiredness from my job, so maybe I'd relax enough to do it), or switching career entirely and eking out a living doing composition for movies/games/whatever. But then that would turn it into a job, which would probably ruin it for me.
- LVB 14y agoThere is huge variability under the term "normal job". My last job (of many years), was starting to drive me batty. It was directly impacting me due to a high work load and travel, and secondarily hitting me with almost constant mental stress. After making the decision to quit, I specifically sought out jobs within the same field at companies known for a more relaxed cultures. I found one and it has made a world of difference (been there almost 3 years). Top management on down want a "family friendly" environment with reasonable hours and no take home work. I can walk out that door guilt-free at 5pm, along with everyone else, and do my own stuff from then on. Such a role maybe won't fulfill anyone's dreams or passions, but it might providing funding to pursue such things while maintaining a stable household and not incurring money stresses.
- DigitalJack 14y ago" By the time I had gotten enough money to "pursue my dreams", I would have gotten married and be tied down by kids." Dear God, I hope this person never has children; or before he/she does that they have a serious change of heart.
- evolve2k 14y agoPlease, this comes across as quite insensitive.
- freework 14y agoThis guy needs to build something with the tools he's making. How does he know his tools are going to work well if he doesn't ever use them? I've built many tools in my day, but never in a vacuum.
- melloclello 14y agoAfter reading your article, my friend recommended a pertinent Venkatesh Rao column, which you seem to personify to an extreme: http://www.ribbonfarm.com/2010/03/18/the-turpentine-effect/ http://www.ribbonfarm.com/2010/03/18/the-turpentine-effect/
- defrost 14y agoThe good news is that there is a demand for and opportunities for those obsessed with building entire tool chains from top to bottom (or at least with coming to grips with non standard stripped out libraries). The typical application areas are bespoke high performance robust instrumentation; satellite communications, downhole radar systems, autonomous civilian drone projects, scientific instrumentation. Even gadgets like the recent leap motion device benefit from having custom drivers developed for it that seamlessly and compactly fill the layer between raw hardware and a clean and simple device API. Erik may never get to reuse and apply the bulk of the code he's already developed but he can leverage the fact that he has built his own components as opposed to simply banging together existing library routines. One way out of this particular hole might be to join a team with greater breadth and take on their demands as an external driving force.
- KVFinn 14y agoTools programmers for games are in demand. If you ever need to work for the man to pay rent you'll be okay. Realize most people, probably 99%, just go to work ever day. That's it. They aren't revolutionizing industries, they aren't creating a new company every six months. You've been in school getting an applied mathematics degree and you are absolutely despondent that you aren't also running your own successful games company by now. By your senior year of college? Not all companies are the same BTW, don't generalize your experience at MS to everyone. Apply at Valve: http://newcdn.flamehaus.com/Valve_Handbook_LowRes.pdf http://newcdn.flamehaus.com/Valve_Handbook_LowRes.pdf Or DoubleFine or TellTale games or Majang.
- seivan 14y agoI can relate to everything the guy writes, even in his comments, even in his previous article, http://blackhole12.blogspot.se/2012/12/dreams-of-failure.html http://blackhole12.blogspot.se/2012/12/dreams-of-failure.htm... Fuck, it's scary.
- jacquesm 14y agoHey Erik, Once you graduate, take a silly job for a bit (something not brain related) save every penny and then travel for a while. More perspective will help and you can't get that from sitting in one place.
- blackhole 14y agoI really want to go traveling. I've already taken a gig being an undergraduate TA this quarter in an effort to save up enough money to take me traveling if my last ditch effort at turning things around fails. One way or another I'm going to see the world before I turn 24. That's something your little christmas gift helped a lot with - thanks again :)
- evmar 14y agoWhat I read into this is a feeling I have to fight in my own work: it's easier, in an emotional sense, to fiddle around with your tools than it is to face the real problem. The amazing things you're imagining creating don't really need a replacement for std::vector to succeed -- people make great art with all sorts of tools way worse than the STL. The way I fight this urge in myself (and balance it against the real need to occasionally improve a tool or library) is to occasionally make a project where I make a point of doing everything the most straightforward/simple/least-clever way possible, even choosing the hackier way when available as it makes me uncomfortable. I find it helps me reset my acceptability meter. Usually I find the project works out just fine, and all the things I imagined needed improvement were just avoidance.
- deleted 14y ago[deleted]
- calhoun137 14y agoI took a 10 min break from another all night programming binge to check out HN, found this, realized it sounded like the story of my life, then realized that the majority of the comments are saying "yea that sounds exactly like me". It should make us all feel better to know we are not alone!
- thoughtcriminal 14y agoYou sound terrifically smart blackhole, but you took on too big a project. Maybe. Maybe not. Maybe you can get the project outsourced (in pieces or as a whole) to get it done that way and become famous :) Or continue doing it yourself (not recommended, but hey, if you are deriving some kind of joy from it...). But whatever you do, take care of you for awhile. Love yourself. You are a good person.
- dougk16 14y agoSome technical advice, since most of the comments here are life advice: Use higher-level languages like Java or AS3 or Haxe to flesh out new ideas wherever possible. You'll kill yourself using C++ to fully vet crazy new game engine paradigms from scratch, even if it's just the compile time you save. Once you've gone through your umpteenth refactoring in managed code land and are happy, you can do a source to source compile or something similar. This strategy has really helped me in the past. In fact, one time I wrote a quick 2d Flash application before writing the full 3d C++ version that was my goal (for a haptics-based viscous fluid simulation). It really helped me get a "mile-high" understanding of the challenges before diving into the lower-level jungle. EDIT: Oh yea, and never write your own GUI library.
- deleted 14y ago[deleted]
- switch33 14y agoPython is often very useful in higher-level language abstractions and has a huge commmunity developing many different things. Many big gaming projects have wrappers for their APIs programmed in python. Python used to be the de-facto for a lot of different gaming companies for the networking especially because it was proven to work. I know Haxe is a higher-level language and pretty worthwhile, but my god the syntax of it makes me cringe. The portability in my opinion more or less may way out as beneficial for sure, but I'm not so sure I'd expect to give it much of my time.
- kposehn 14y agoErik, you commented that you want to do these things before you get tied down by marriage and kids. In my experience, it does not tie you down; it gives you the most important, defining reason of your existence. It is a lot easier to change the world when you have someone to change it for.
- KVFinn 14y agoYour approach to game development reminds me a bit of: http://news.quelsolaar.com/#post42 http://news.quelsolaar.com/#post42 >Game developers Conference was a very strange experience. I used to love going to GDC sessions, because there was so much to learn. As you evolve your skills that cant last, but now it feels like I'm operating on a completely different plane, I cant learn anything because I have nothing in common with anyone in "the industry". Almost no one is talking about programming, and when they do they talk about problems i don't recognize, and techniques i don't use. My "reinvent everything" policy has taken me so far away form what others do that I can no longer relate. I was talking to someone about size of code base and realized that their games code base was ten time the size of mine, yet we couldn't account for the difference in what our engines could do. Am i missing some point? Its like we have developed two completely different branches of evolution to solve the same problem. I found my self sitting in session after session thinking that I would never do anything they would do. >What strikes me the most is how complicated they have made it. There are managers, producers, directors, scripters, leads, and assistants yet noting seams to become easier. Everyone agrees that's the way to do it, yet no one seams to prove it. Is no one asking why? We are doing the same things in games that we have always done, just now we make it so much more complicated for ourselves. Since what we could easily do in the past is now hard we cant do anything new, and we become stuck. Destructible environments now are hard, yet in Super Mario bros they where easy. We are raising the bar but we less gracefully clear it. We try to tell stories, yet we still cant do better then a text adventure. If we want to tell stories I cant understand why we make games at all. http://news.quelsolaar.com/#post41 http://news.quelsolaar.com/#post41
- javajosh 14y agoYou like to make things. Good. Now you need to make things that people want to buy. Or go to work for someone who does. That will give you money, which will keep you alive. And do not underestimate the value of staying alive. Food, insurance, housing, clothing, and the like is very good to have, and many people in the world don't have have enough of it. Your constantly decaying state is what will keep you sane, it's what will keep the pressure on to connect back with the world. Because to make things that people want to buy you have to pay attention to the world, and to other people's problems. Right now you're consumed by your own problems. If it wasn't for the need to stay alive, I'm sure you'd stay in that head space forever, pretty miserably. Luckily, you get hungry and have to pay rent or the cops will come and force you out. So you gotta make some money. Money is not evil. People who give you money of their own free will are usually happy to do so because their other options are worse (such as, for example, not getting their projects done). Pay attention to that when you get a job: they are giving you money so that they can do more projects. That's it. Nothing existentially deep or particularly horrible about that. The tough thing for a programmer with integrity is to learn to execute projects the wrong way, on purpose. There is a fear that coding the wrong way (the wrong language, wrong architecture, wrong idioms, heck, even the wrong code formatting) will somehow sully you. Nope, it won't. The codebase has momentum that is encoded in this structure and in the processes and people around it. It adds unnecessary, arbitrary complexity to even the most trivial of changes. Almost all installed codebases are this way or will get to be this way at some point. Don't worry about that. It is not your problem. Your job is to learn to do it the wrong way to the best of your ability, to navigate (and perhaps mitigate) that complexity as best you can. (And don't worry, you'll be figuring out ways to sneak in 'the right way' soon enough.) This job is going to take 40 hours of your life every week. (If you work for a game company other than Valve, double that.) That leaves about 8 hours of time on the weekdays and all day on the weekends free, plus vacation days. Learn to put your work down and do what you like - work on your pet projects, or your pets. Learn to ski. Buy a dog. Get a girlfriend. Outside of that 40 hours, it's your life, and as a programmer you'll be making good money. Spend it! Buy me a beer! I would recommend strongly against a startup, given your level of agitation. When you are able to control your own mind so that you are able to focus on work, and then put it aside, then you might try a startup. There is no need to give up your dream, kid. You just have to learn how to stay alive while you chase it.
- msbroadf 14y agoBrings back memories of http://www.imdb.com/title/tt0383028/ http://www.imdb.com/title/tt0383028/
- 42tree 14y agoI don't understand, why post this on Hacker News? "This is the blog equivalent to someone blubbering in front of the camera on Youtube"
- Qantourisc 14y agoBlackhole, I have the same problem (slightly): I once coded std::vector and more why ? Bad education mostly, turn out that stuff is rather good :) Took me the hard way to find that out. I still need to replace all that code. What I mostly learned: pick ONE thing, and assume you will spend 10 year to complete it as life will keep interrupting. Also if you ever decide to code an audio engine again, could use some help :p (from a person like you) (find me on freenode.org)
- blackhole 14y agoMy audio engine is open-source if you want to look through the code: https://sourceforge.net/p/tinyoal/ https://sourceforge.net/p/tinyoal/ I rewrote std::vector so I could separate arrays of objects that have constructors/destructors and objects that don't. These are almost always used by other data structures, not by themselves. I still use std::vector when I just need a dynamic array that respects constructors and proper copy semantics. The problem I encountered was that std::vector refuses to integrate nicely with other data structures. While I'm sure many would still cry foul just because they can and don't understand what I'm doing, I can assure you that my re-implementation of std::vector is purposeful and used in specific circumstances, not as a generalized replacement, which is the real issue.
- Qantourisc 14y agoMy project is a bit ambitious, and throws out OpenAL :( And I don't think you'd like my coding style :p
- blackhole 14y agoAnd here I thought I was supposed to be the crazy one :3
- gfodor 14y agoGood art comes by embracing constraints. By obsessively building your own tools you are desperately trying to remove the very constraints that will cause what you create to be amazing. Try embracing the constraints you so fear and see what you can do with them. Only once you have truly hit the barrier can you truthfully tell yourself the constraint is real and not imaginary, anyway.
- cpeterso 14y agoA change in perspective can help, too. Instead of aiming for "perfect code", try finding the "perfect compromise" to get to the important work.
- switch33 14y agoI thought about doing this as well when I was younger in high-school and even in the beginning of college with starting my own company upon graduation where I'd actually get freelancers who wanted to do it just for themselves. It almost completely enveloped my life reprogramming a game to match ideas. I had this mindset that the people who really want to see great games are the players and the players so hellbent and fed up with crap games that they are willing to go to great lengths to program their imaginations. I was much more on the analysis side of searching for projects that could do things better. I looked high and low for tons of platforms, libraries, and frameworks comparing them and seeing how they implemented the ideas. I came to the conclusion that some of them are pretty decent but almost all of them are rather bulky. And the ones that are not rather bulky in implementation aren't as separable/modular as they should be. In my opinion it's not necessarily an ADHD thing as it is an creativity with games thing versus the constraining realities of programming (for corporations or not). I don't think I have ADHD I just tend to obsess over certain things for certain periods of time. In fact I like the way I am because I have an undying determination when I am focused on certain things that I do have some control over. I still like reading programming concepts a lot, just not so much into spending hours upon hours rebuilding everything. Many companies just want something that will work. This is irritating to me as it is to many people, but it's the reality of the situation. If your still hell bent on releasing some games my suggestion is to open source good parts of the tools you are developing if you haven't already and ask for support from people who really want to make games. I will definitely consider joining in on working on some projects for free if it means that better games are developed.
- blackhole 14y agobss-util: http://code.google.com/p/bss-util/ http://code.google.com/p/bss-util/ TinyOAL: https://sourceforge.net/p/tinyoal/ https://sourceforge.net/p/tinyoal/ FeatherGUI: http://code.google.com/p/feathergui/ http://code.google.com/p/feathergui/
- switch33 14y agoThanks for the links, I'll read into them and might write some comments. Do you have an e-mail or skype account for contacts? I know a friend or two who may also be interested and I'll point them to the projects as well. I think it'd be fun to try something new and create a team if possible.
- bartwe 14y agoWith your amount of passion you can still work on your ideas after marriage and kids.
- ohwp 14y agoThis story reminds me of the story of Blender http://en.wikipedia.org/wiki/Blender_(software) http://en.wikipedia.org/wiki/Blender_(software) now one of the best 3D software packages available.
- ChrisNorstrom 14y agoEric, I think you need to find your other half. Not a wife or girlfriend but your "Non-Competing Non-Biological Brother". Jobs had Wozniak, Brin has Page, and the list goes on and on from YouTube to Yahoo to Microsoft to Valve. A lot of big things are built when one man finds his non-competing other half. Men need other men to serve as a balancing force for their weaknesses and strengths. Otherwise you're going to end up like Nicoli Tesla and all the other brilliant people who died penniless.
- xyzzy123 14y agoI'm coming really late to this thread, but I'm going to comment anyway. What I'd like to propose is the idea of the "success loop". It seems to me that you are stuck in this place where you get no positive feedback from your work. The other way to work is to throw out a lot of small things, and then build on the things which work, and people find valuable. All of my large hacks have turned out to be the result of small hacks, positive feedback and collaboration. Consider not focusing on the whole vision, but choosing a kernel, just one novel contribution. The best ideas will attract other people. Once you have a bunch of minds working on things, it becomes like a relay where your analysis paralysis gets "routed around" by someone else. If you can create this environment for yourself and roll with it, I promise you will have the time of your life.
- LatvjuAvs 14y agoSounds fun, you are doing what you are enjoying and some aspect of collective consciousness are contradicting with your definitions. Continue doing what you enjoy until you can't. Life will provide if you put trust in it, if you don't, heh, it will provide with it also :D
- ezolotko 14y agoLet's spill bit of hatred on the rooster's nest: "...box2D physics integration,..." Why not make 2D physics engine by yourself? The answer: just because it involves real research and development to make it. Do it well, and you will be praised, and nobody will call you insane. And what the author really does is a poor cock-a-doodle-doo with a custom string class.
- Aardwolf 14y agoI also often start but never finish a game programming project, and reinvent the wheel a lot (though not as far as reimplementing C++ strings, more like 3D and UI libraries and such). Don't forget to open source everything, and maybe one of your reinventions of the wheel may land you a good job. And maybe this means you're meant to be a systems programmer, not a game programmer.
- dollar 14y agoWord to the wise - just stop. Get a life. Do something else with your time. Go see movies. Spend time with friends. Just sit outside in the sunshine and breathe the air. Do exactly nothing for a while. What are you trying to prove, and who are you trying to prove it to? In all likelihood you are not going to change the world one little bit. Enjoy yourself, it's later than you think.
- deleted 14y ago[deleted]
- granitepail 14y agothe phrase i see uttered time and time again throughout his posts (i've read three, now) is "then i realized that <library/component> sucks" followed by a self-indulgent pursuit to make a better <library/component> that ends in failure. i am the type of programmer who loves to reinvent the wheel (albeit, mostly as a means of exploration) but i never approached it like this. this seems to be very self-destructive behavior rooted in the cop out of the yet-unvalidated claim, "i can make something better." it seems as though many of his judgements are made before gaining an intimacy with the subject he wishes to work on. i would suggest an investment in actually refining his skill set. he may be able to see the need, but doesn't seem to understand how things got to where they are — an important step in moving forward. i wanted to sympathize with his plight, but it seemed as though a lot of his suffering was caused by an unchecked ego. i think he'd be happy undertaking and completing some VERY simple projects — perfecting them before moving forward.
- qu4z-2 14y agoI've been much happier since I switched from trying to make a better wheel to simply trying to better understand existing wheels (by reinventing them).
- cmccabe 14y agoSo you created your own string class? Wrapped all the operating system's APIs in your own custom classes? Built a lot of infrastructure on the theory that you might need it later? Obsessed over the best way to shave some efficiency yak, without ever measuring whether it mattered? Relax. You're a normal C++ programmer. I did all the same stuff, years ago. Now get a job at a company that doesn't suck, and relax. Try to get hired at Valve, or Blizzard, or some indie company. Don't work for the people you know suck and you'll be fine.