It's dumb but you do it anyway.

Discussion in 'Indie Related Chat' started by Wayward, Aug 2, 2004.

  1. Wayward

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    92
    Likes Received:
    0
    I'm a terrible indie game developer. There are lots of things I do that I know I shouldn't; I just can't help myself.
    • On a whim, I decide my 2D game will not use any bitmap graphics at all.
    • I prototype my game in BlitzBasic in the first week and I'm a month from completion, so instead I start writing a C++ engine from scratch. Three months later, I still haven't got to where I was at the end of week one with Blitz.
    • On another whim, I decide the game will not use any existing file formats, including audio ones. Everything will be programmatically generated.
    • I spend three weeks on intense market research that tells me I'm working on the wrong kind of game, but I continue anyway.
    • I stare at developer studio for 16 hours a day for three days straight without writing a single line of code.
    • Unhappy with C++, I try BlitzBasic, Java, C#, D, Lua, Python, Squeak, and ASM, only to go back to C++.
    • I keep doing low-level optimizations when I know I shouldn't.
    • I constantly fighting the urge to write my own bytecode programming language and virtual machine.
    • I've learnt the intricacies of SDL, ClanLib, Chillkat, Ogre, Irrlicht, NeoEngine, OpenSG, OpenSceneGraph, PTK, and PTC, yet I'm not using any of them because they don't do precisely what I want.
    • I began with DirectX 9, downgrade to DirectX 5, go too far and end up with DirectX 3 before realizing I actually need DirectX 7.
    I'm doomed. This is exactly how NOT to approach indie game development. What's worse? I'm enjoying every minute of it.

    I'm wondering if anyone else would like to admit to their silliest whims, vices, and idiotic tendencies to make me feel less guilty.:)
     
    #1 Wayward, Aug 2, 2004
    Last edited: Aug 3, 2004
  2. Bluecat

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    330
    Likes Received:
    0
    Been there, done that!

    I can relate to nearly all of your points in that list, especially learning the intricacies of various engines but not finding something that does *exactly* what I want; and the desire to create my own scripting language.

    I've learned a lot about engines and languages and other things, but it's no wonder I've not released a game yet!

    My current strategy is taken from the Extreme Programming philosophy. Do the simplest thing that can work; and: YAGNI... You aint gonna need it. I hope it works this time!
     
  3. ggambett

    Moderator Original Member Indie Author

    Joined:
    Jul 26, 2004
    Messages:
    1,982
    Likes Received:
    6
    It looks like you don't want to make games, but low level stuff. Why are you trying to make games?
     
  4. Bluecat

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    330
    Likes Received:
    0
  5. mathgenius

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    29
    Likes Received:
    0
    Time and again, I have written smart code that ends up being chucked out because the brute force approach is faster and easier to maintain. And if there's a nifty bit of mathematics (abstract algebra, logic, convex sets) that's it, I can't resist. It's like I need something difficult to think about :p

    I've been in pure python land for 16 months now; bought a zippy new computer so that I didn't have to worry about the framerate. I still feel the need for speed, and get kind of sea sick whenever I script another camera raytrace etc. I'm like an adict, constantly wondering about my next c code speed hit. But I've been good so far; about 3 years ago I went through my "let's code a 3D gfx engine that works on a P133" period, so maybe it's just out of my system now.

    I've been meditating on this mantra:
    • make it work
    • make it right
    • make it fast
    And I guess I'm still in the first stage.

    Simon.
     
  6. Jim Buck

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    1,158
    Likes Received:
    0
    Hey, I'm very intereted in using Python since reading "Learning Python". I will at least use it for tools, but I weakly consider the idea of using it for the game. (I *may* at least use it to prototype the game.)

    Could you tell me how fast/slow Python runs on older (say from 1998) machines or if there are good articles that discuss this? (I suppose I should start a new thread but couldn't resist asking the obviously-zealous Pythonian. :) )
     
    #6 Jim Buck, Aug 3, 2004
    Last edited: Aug 3, 2004
  7. mathgenius

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    29
    Likes Received:
    0
    It depends on what you want to do. The standard practice is to code everything in python, then find the bottleneck (if any) and rewrite that in C.

    What kind of machine are you talking about ?
    Have you seen this?

    Simon.
     
  8. Rod Hyde

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    123
    Likes Received:
    0
    I can't speak for machines from 1998, but as an exercise in learning Python, I'm porting my old 2d shooter, Corvids, using a simple SWIG-generated wrapper around the excellent PTK. The original game ran at around 60-70fps at a screen resolution of 320x240x8 on a 166MHz Pentium. The new version runs at a (self limited) 60fps at 640x480x32 on a 600MHz Pentium III laptop with an ancient and venerable ATI graphics card. If time permits then I'm hoping to release the Python version by the end of next weekend.

    My conclusion so far. Python is great for prototyping and it isn't half bad for writing tools either. Once Corvids is out of the way, I will certainly use it to evaluate/prototype some ideas for my next game and, depending on the results, may even use it for the final product.

    I know I'm in danger of turning into a Pythonista (some would say I already have) but I do like the speed at which I can turn ideas into code and I love the readability of the language. Anything that runs too slowly, I can re-do in C or C++, having done the hard work (ie, thinking) already.

    If it helps, I have a bunch of Python-related links here.

    --- Rod
     
  9. Nemesis

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    273
    Likes Received:
    0
    @Wayword:
    You're doing this full-time yet taking the approach of a techie hobby? :)
     
  10. Wayward

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    92
    Likes Received:
    0
    My trouble is I've set aside five years for this lark, so there's no hurry; I can afford to play around a bit. I'm building a very simple but high-level game engine in C++, so I can write the game code quickly in Lua without worrying about performance. I would have preferred to use an existing engine but my game design relies on a peculiar form of dynamic geometry which most off-the-shelf engines can't handle.

    I just think it funny how I get pulled into doing things I know I shouldn't, and I was hoping others would share similar anecdotes. I guess I'm the only unprofessional pro here.
     
  11. Jim Buck

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    1,158
    Likes Received:
    0
    I'm creating a new thread for the Python stuff.. very interesting so far.. :)
     
  12. Inous

    Original Member

    Joined:
    Aug 3, 2004
    Messages:
    2
    Likes Received:
    0
    I had many of the same problems for the longest time. Alot of it comes down to lack of knowledge(and who here can honestly say that isn't an issue with every new project?) :))

    I also love writting low level code, hence my focus on 3d engine technology. AKA my portfolio work for getting a job designing games in california ;).
     
  13. Nemesis

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    273
    Likes Received:
    0
    Ah yes I know the feeling.. but you might want to get some smaller games out of the door so you'll start generating some cash, a user base and a smooth business running. I think you're incredibly lucky to be in a position to afford 5 years not being a wage slave.. you should take full advantage of it! If I were in your shoes I'd try to finish off one or two *polished* puzzle or arcade games and publish them in liew of working on something bigger.

    If I wasn't already involved in a team-based project that we started with no business knowledge, doing a largish project (sounds like a recipe for failure? :)) can land you in a state of perennial tweaking, re-writing and branching off. We've managed to keep the focus and work at a steady rate, despite me getting my new place done, one getting married, another seeking work in other countries and yet another working isolated from the net using only email from his day job.
     
  14. mathgenius

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    29
    Likes Received:
    0
    Ah, very interesting :) Care to expand a little ?

    :D Haha, no way !

    • My version control is I copy everything to an "old" directory
    • variable names have the same name as the type (but lower caps), and I pre/postpend underscores when I need more variables (this comes from mathematics where we use primes)
    • I break the law of demeter all the time (but at least I know what it is)
    • I only write comments when I am trying to figure out what some old piece of code does that should have been commented in the first place
    • sometimes I spend all day surfing the net!
     
  15. Kai Backman

    Original Member Indie Author IGF Finalist

    Joined:
    Jul 28, 2004
    Messages:
    297
    Likes Received:
    0
    Your diagnose is simple. You have a hobby .. :)

    To get focused go full time, and in case you have any excess assets lock (or donate) them away. Buying bread with you game development income will quickly make you regain your senses .. ;)
     
  16. sordith

    Indie Author

    Joined:
    Jul 30, 2004
    Messages:
    5
    Likes Received:
    0
    * I always reinvent the wheel instead of using a library, even if I find one already perfect for the task. The only exception is the Independant JPEG group's jpeg library, and I feel bad about using that.

    * I set up various tools and then promptly ignore them. I have bugzilla, a wiki, a todo list, a database, and RCS set up which I haven't touched in months. I have a nice web based front end set up and had some cool graphics made. We even named the server S.H.E.P.R.D.
     
  17. Coyote

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    697
    Likes Received:
    0
    I'm slowly hacking away at my 'less productive' habits. I guess the key is identifying them and getting rid of as you discover them.

    I also have had a problem with reinventing the wheel. Part of this comes from not being aware that the wheel existed - though being active on a few forums (including this one & the former Dexterity forums) has really helped in this regard.

    Sometimes just going ahead and DOING it once - and learning all the pitfalls and pains involved (especially when debugging later) is enough to cure you of that tendency. I had written my own network engine for Void War - which worked really well and had all kinds of great features. Except it also had some nasty intermittant bugs that would crash the whole game and were extremely hard to track down, as it crashed only sometime after data had gotten corrupted. So finally I decided to go ahead, yank out my own low-level network code and replace it with another library. Fortunately, a lot of the higher-level work was able to stay with only minor re-writes. That fixed some ugly bugs (since the networking library was fairly mature already) AND gave me a few new features to work with that simplified my job.

    But I think knowing HOW to create low-level networking code really helped in this process. Ditto if you go with an off-the-shelf graphics enging... knowing how to dig into the code and fix / change things is very useful.

    But while not every decision has to be some kind of business case (the joy of being an indie is that you can feed some of your personal demons and have freedom to do what you want, right?), you need to be careful and take a look at decisions you make from a business perspective, if your goal is to really turn this hobby into a business (even a side-business).
     
  18. Kai Backman

    Original Member Indie Author IGF Finalist

    Joined:
    Jul 28, 2004
    Messages:
    297
    Likes Received:
    0
    I think you hit the nail on the head here. I created a custom 3D engine for Space Station Manager which gave me a good overview of programming DirectX on a Windows machine (I previously only had OpenGL experience). Now when picking up a generic 3D engine the design decision make much more sense.

    You need a bit of experimentation to keep yourself current. However, at least for me, installing new tools and thinking about future solutions sometimes works as a way to avoid a present problem. I procrastinate. Many time solving the problem when you get there is more productive as at the time you have the maximum knowledge of the domain. Many times preplanned "great" solutions turn out to be inadequeate or overengineered.

    I would second the business perspective but you also need to look at it based on your personal goals. We all have something that we would like to keep as a hobby. :)
     

Share This Page

  • About Indie Gamer

    When the original Dexterity Forums closed in 2004, Indie Gamer was born and a diverse community has grown out of a passion for creating great games. Here you will find over 10 years of in-depth discussion on game design, the business of game development, and marketing/sales. Indie Gamer also provides a friendly place to meet up with other Developers, Artists, Composers and Writers.
  • Buy us a beer!

    Indie Gamer is delicately held together by a single poor bastard who thankfully gets help from various community volunteers. If you frequent this site or have found value in something you've learned here, help keep the site running by donating a few dollars (for beer of course)!

    Sure, I'll Buy You a Beer