Page 2 of 3
Posted: Wed Dec 01, 2010 5:57 pm
by 67726e
I have to agree with Banshaku, that is blatant procrastination. Take it from me, I'm 17 and I have had more than my fair share of trouble with that. If I had that kind of time on my hands to just lay back and code I would be in heaven.
Usually in a situation like this, if you have been working on your code for a long time, you are probably burnt out in which case you should take a break from it for a while and wait for your muse to come back. If you are just not wanting to work on it for no apparent reason then maybe you really don't want to do it and won't admit it.
Posted: Wed Dec 01, 2010 7:01 pm
by 3gengames
Yeah, I'm 16 and have tons of stuff to do after school too randomly like goto swim meets and such. I am very active after school.
Well I guess this is good motivation to try working on my game only a little bit each day. If I show a new video to you guys, it has.

Posted: Wed Dec 01, 2010 8:08 pm
by Optomon
Nice to meet you all, and a couple of you, nice to see you again.
The number #1 reason to make games is self enjoyment, absolutely right. I always like the idea of making NES games with a high degree of passion and indulgence. A big issue seems to keep oneself motivated to make the game and stay focused on it, and not having it get too disorganized, which is understandable for large scale individualistic projects. But I'm glad to hear the value here in the NES, and the bottom line that if you make good games, people will play them.
I'm liking the advice about planning the whole thing out before you do it. It is very important to sit yourself down and know exactly what you are going to work on and plug away for hours. It's a good feeling.
Posted: Wed Dec 01, 2010 11:40 pm
by cartlemmy
Managing one's time really is an important topic. I have maybe 4 to 8 hours a week to work on my homebrew. And the one thing that keeps me moving forward is a rather granular TODO list. I plan out all the next things to do, as well as the bugs I need to squash. Also internal versioning helps as well.
Does anyone do anything similar?
Posted: Thu Dec 02, 2010 4:39 am
by 67726e
In that respect I'm kind of bad. I mean if I have an application I am working on, then planning it out is perfectly legitimate but when I'm working on a small homebrew project like I'm doing right now (I'm making a space ship fighting game that is pretty simplistic to get the hang of scrolling backgrounds) I typically will just jump into cowboy coding mode since there isn't necessarily a whole lot to work on. If I were working on something of the size that cartlemmy is working on, I would most certainly plan things out well in advance.
Posted: Thu Dec 02, 2010 7:46 am
by GradualGames
cartlemmy wrote:Managing one's time really is an important topic. I have maybe 4 to 8 hours a week to work on my homebrew. And the one thing that keeps me moving forward is a rather granular TODO list. I plan out all the next things to do, as well as the bugs I need to squash. Also internal versioning helps as well.
Does anyone do anything similar?
This sounds almost identical to how I work. I work on my game approximately 3 evenings a week, and on those evenings a max of maybe 2 hours. I keep a "dev log" text file. Every time I sit down I write in this and say what I'd like to accomplish for that session. If whatever that is is not extremely simple, I'll usually break it down into bite sized steps. Those steps may be as small as "create new source file for enemy." Sounds silly...but when you're as lazy as me it actually helps
The nice thing about not being able to work on it every single day is it almost builds burn out into your schedule. Instead of working like a madman for 8 hours a day for a month or two, I work like a mad man in tiny spurts with 2 day breaks in between. This way, I never burn out. I've been working this way for almost two years now, with zero gaps except for family occasions.
Everyone has to figure these things out for themselves of course, but it doesn't hurt to share; you never know who you might help/influence.
*edit* a more general comment about planning things out. This is next to impossible to do, at least for your first game. That of course may mean I just suck at planning. All I did for my game was decide what engine features I wanted to support, and gameplay features. I tried to stick to these constraints as ferociously as I could. For example, my first goal was to have 1 way scrolling. This kept certain aspects of the engine very simple such as the lifetime of items and enemies. At one point I decided I really wanted 2 way scrolling. This produced unforeseen consequences and I had to implement a lot more logic to handle enemies and items the way I wanted to. Thankfully, this did not kill the project. That was the last bit of "feature creep" I allowed into the game---any more would certainly multiply the remaining schedule. A better engine, more interesting gameplay can wait til the next project.
Posted: Thu Dec 02, 2010 8:53 am
by tepples
Gradualore wrote:Every time I sit down I write in this and say what I'd like to accomplish for that session. If whatever that is is not extremely simple, I'll usually break it down into bite sized steps. Those steps may be as small as "create new source file for enemy." Sounds silly...but when you're as lazy as me it actually helps
I learned from
this article at 43 Folders that until your next three steps are no longer than ten minutes each, the only work you should do on the project is analysis: break each step into smaller steps. I do much of my tool coding on the bus to and from my day job; breaking things into steps no longer than a bus ride is vital to me.
That was the last bit of "feature creep" I allowed into the game---any more would certainly multiply the remaining schedule.
I learned this the hard way when I posted
Lockjaw Tetromino Game (for PC) to tetrisconcept. It was originally a satire of certain specific aspects of Tetris DS, but over the course of
one thread, it grew into one of the most configurable Tetris clones around as people continued to ask for an option for this and an option for that. Eventually, I got bug reports that some of the options conflicted with other options: while option A was turned on, B did nothing and C made the game completely unplayable. That was the last straw, and for a while, it turned me off to development. (Open
this article and scroll down to "The Question of Preferences".) I still get occasional requests through e-mail to update the game, even though I have no time for Tetris clones anymore.
Posted: Thu Dec 02, 2010 8:56 am
by GradualGames
I once pm'd you about this and did not receive a response , but LJ65 is awesome. An old buddy of mine is a long time tetris nemesis, and for some reason he can clean my clock in LJ65, but I can beat him at the old tengen tetris. Weird huh?
[It looks like someone wants to split this to the LJ65 topic. --MOD]
Posted: Thu Dec 02, 2010 9:25 am
by cartlemmy
Gradualore wrote:I keep a "dev log" text file. Every time I sit down I write in this and say what I'd like to accomplish for that session.
Same here. Sometimes I'll make a general note, then realize it can be split into multiple steps. Like the item "Wall jumping!" below, I know that will be split into many steps, but I put it there for now just to remember I want to do it soon.
The cool thing about this is you can look back at your progress and really feel like you are going somewhere. I think that blindly developing can lead to feeling lost, directionless, and defeated.
Posted: Thu Dec 02, 2010 9:51 am
by GradualGames
Are you planning on creating your own music editor? I had considered this, but there are several mature and useful music tools out there like Famitracker. Famitracker even comes with a driver you can just stick in your game. I used this driver for a while but eventually found it a bit heavy weight for what I needed, plus I had a hack in place to play hand-written sound effects that was kind of clumsy. So, I eventually wrote a sound driver based on the Nerdy Nights sound tutorials (inspired by it, really), and made an addition to Famitracker that allows the addition of plugins that can export for different sound drivers. I've included an example exporter and driver (the one I'm using in my game) for others to play with. See
this thread. It is in more or less alpha stage right now, but I know at least one person has been able to use it successfully for their project and another person who I think is heading towards using it

. Oh crap, I just realized you're using linux! Hopefully famitracker works in wine...haha =D
Posted: Thu Dec 02, 2010 10:06 am
by cartlemmy
Gradualore wrote:Are you planning on creating your own music... ... Hopefully famitracker works in wine...haha =D
Yes, I was thinking about it. Hand writing it doesn't seem like much fun. And I agree the Famitracker engine is way too bloated for what I'm doing (and no sound effects from what I understand). But perhaps I could utilize the exporter you are talking about. Also, I have tried Famitracker, it seems pretty cool. I have a windows box as well that I switch to when I need windows specific stuff.
Posted: Thu Dec 02, 2010 10:21 am
by GradualGames
I forgot to mention, in working with a few guys who expressed interest in the exporter, I ported my sound driver from CA65 to ASM6 (which I am aware you are using). This is only available in the development version, until jsr releases the next version. I can send a local snapshot to anyone interested.
Posted: Fri Dec 03, 2010 7:43 am
by MetalSlime
cartlemmy wrote:Managing one's time really is an important topic. I have maybe 4 to 8 hours a week to work on my homebrew. And the one thing that keeps me moving forward is a rather granular TODO list. I plan out all the next things to do, as well as the bugs I need to squash. Also internal versioning helps as well.
Does anyone do anything similar?
I'm happy this topic has come up because I've been doing this in an extremely limited situation and have never really realized how useful it would be to do it all the time.
In the past, the times that I've used TODO lists and broken the TODO items into individual tasks is when I have been away from the computer. I have a little notebook that I use to jot down ideas for my game. Occasionally I find myself stuck somewhere with a lot of time and nothing to do and I'll pull it out and write 6502 code on paper. Somehow this situation brings out the best of me. Because I don't have the luxury of testing code real-time, I have to be meticulous in my planning. I break everything I'm trying to do into small steps and I attack them one by one. It's very systematic. And efficient.
On the computer my approach has usually been to dive right in. I have a vague idea of what I want done ("make a status bar", "end the game when the timer runs out") and I jump in haphazardly without a real plan. I can get things done this way, through trial and error, but the code isn't as good. When I come across a bug my habit is to just try random "reasonable" changes until one of them works rather than thinking the problem through. I think this approach leads to a lot of "rewrites" and "reorganization" of code I find myself doing every few months or so. Vague goals lead to sloppy code, and they're procrastination's best friends too.
Seeing you and Gradualore share your ideas about this has helped me realize what I've been (not) doing. Today I spent 15 minutes and made a small task-based TODO list and it made a huge difference when I started coding (at the computer!). Thanks!
Posted: Fri Dec 03, 2010 12:37 pm
by marvelus10
Something like this before you start coding.
http://dl.dropbox.com/u/2590713/SMB1.jpg
Posted: Fri Dec 03, 2010 12:53 pm
by tokumaru
I'm not sure how much planning is the healthy amount to make before coding. When I was younger, I wanted to see results fast, so I'd draw a shitload of sprites first and then make sure they were displayed on the screen as soon as possible. Note that I'm not even talking about the NES here, this was when I made games in QBasic. That approach did show results quickly, but eventually I couldn't get the program to evolve because of poor planning of the underlying architecture, so I would eventually give up on these projects.
Nowadays, I plan a lot before anything else, and I don't start coding until I have at least 60% of the game aspects figured out (which means a lot of schematics, pseudo-code, and things like that). However, because of all the time I spend planning and implementing this basic architecture, it takes me a long time to see something actually move on the screen, so there isn't much motivation to go forward.
If I ever find what the perfect balance is, I'll be sure to tell you guys! =)