Me my motivation and my game-programmers life

Started by
8 comments, last by Finalspace 9 years, 7 months ago

Hello there,

that title is a little weird i know, but it describes it perfectly:

I am developing software since i was 6 or something - started with basic on the C64 and had no understanding what i was doing there, how it works, what programming is etc. I was just fooling around, trying to modify existing codes and see what changes. A bit later in the starting of the dos-age, i was creating simple text-based games with BATCH-files using the choice command. After that my interests of creating games was starting to grow and this was also the turning point for me which has leads me into a programming-career. Now i am a professional software engineer since over 10 years and also have 10 years additional programming experience as creating software, websites, services as a hobby.

But, in all that times i never ever finished one damn game. I only have made hundreds of prototypes, technology demos and applications but never got to a point where i could call that a game. Today i understand mostly how a game is built, what technologies may be used or need to be created and i have a good understanding what a game engine are - thanks to the internet and books and such.

Now i comes to the actual question/problem i have:

I have made several game-prototypes which got to a state where you can see a bit of the game - no good graphics at all, but basic stuff was working fine so far and then... i just lost the motivation and dont know what to do anymore. Thats really depressing, because it happens all the time and really want to get over it. Its like loosing the grip how to proceed, what to do next - just feeling overwhelmed even with good progress :-( Even now i have a prototype for a game again which looks a bit like a platformer now - i can jump collide etc, but i am nearly at the point where i get overwhelmed and starts to get unmotivated. I know the time may be the biggest factor after all, cause i dont have much of it - have 2 kids and work as a software-developer on a daily basis - so i just have a few hours for each week.

Dont get me wrong, i think from the programming perspective this should be no problem at all with my experience, but from the organization-perspective it may be a complete wrong approach i do - i am not sure...

My current project is a medium-sized game with a design document which all the relevant game ideas and such and i have a digital todo-list like this - thats it:


Starting today 2014-08-14 - this is the new TODO-LIST !!!

Every task here must not be removed and will just be marked as [DONE] when its done.
Tasks will only be removed when is really not needed anymore.
Done main tasks will be moved to the other done tasks - undone tasks are the bottom!
There are no difference between engine and game, everything is just for the game!
Tasks may classify the state of funniness - like how boring it is, or how interesting etc.
Tasks may have sub-tasks and sub-tasks can have sub-tasks as well, etc.
If a task have no brackets at the start - then its just a "hint" / "information" and no real task
New tasks are to be placed at the bottom!

!!!! DO NOT GET TO TECHNICAL !!!!

-----------------------------------------------------------------------------------------

[DONE] Integrate bitmap font creation in the editor (rather boring)
	-> [DONE] Create a simple ui for font selection and an image preview panel
	-> [DONE] Create a bitmap font texture for a given font and size
	-> [DONE] Convert created font chars to a signed distance field
	-> [DONE] Fix missing alpha channel in final bitmap font

[DONE] Create a simple LWJGL sample for drawing text using bitmap fonts (partly fun)
	-> [DONE] Drawing a single letter with the on-the-fly created bitmap font
	-> [DONE] Drawing more letters
	-> [DONE] Fix letter advance calculation
	-> [DONE] Create a simple shader for the signed distance field rendering
	-> [DONE] Create a good shader for the signed distance field rendering
	-> [DONE] Make a good test example "The quick brown fox jumps over the lazy dog" with multiple font sizes
	  
[	] Save font asset from the editor
	-> [DONE] Save font files images/font description onto the filesystem
	-> [DONE] Move font file saving into the asset utils

[DONE] Add a fps counter on the top left corner (partly fun)
	-> [DONE] Create a HUD component
	-> HUD components have just a bunch of labels with a relative position, a text and v/h alignment
	-> The fps counter is a label in a hud component
	-> [DONE] Create a HUD system which renders the HUD - always in orthographic mode
	-> [DONE] Fix wrong aspect ratio in font rendering
	-> [DONE] Implement text alignment and block alignment
	-> [DONE] Use drawElements instead of drawVertexArray
	
[	] Fixing internal edges collisions using b2edge (boring)
	-> [DONE] Set a bit of restitution to the static body to fix this issue for now
	-> [	] Calculate the outline of the entire level and create the edges instead of boxes

[	] Improve player behavior (somehow boring)
	-> [	] Player movement is still too slow and is not perfect
	-> [	] Player double jumps bounce only when pushing against the wall
		
[	] Tileset mapping to ids (rather boring)
	-> Currently there is no mapping - the first tile index in the platform layer is always solid
	-> [	] Create mapping file structures for defining tilesets and map tile indices to an string key - this key maps to a template 
	-> [	] Create entity template file structure. This is used to automatically create entities with all its components, including material and behaviors. 
	
[	] Drawing cubes for tiles instead of rects (a bit fun)
	-> No idea where to store the vbo/texture instances to not hurt performance
	-> [	] Just draw a blue-chess-like "test"-textured cube like in HL2
	-> [	] 6 Textures per cube (Z-Front and Z-Back, Left and right, Top and bottom)
	-> [	] Drawing the textures like in HL or Quake - repeat, texcoord calculation based on original pixels
	-> [	] Improve performance by sorting the textures - to reduce draw calls and switch states

[	] Complete level loading in the engine - not in the game code! (boring)
	-> [	] Loading tilesets and mappings
	-> [	] Creating collider edge shapes for the level outline
	-> [	] Creating entities like triggers, traps, jumppads etc. from templates -> tile mappings
	
[	] Restrict the camera to a certain area (rather boring)
	-> When camera-area hits the boundary-area (restriction) the player target movemenent stops for the axis.
	-> When the player is in the half camera-area beside the boundary area then movement for the given axis starts moving again.

[	] Fix rendering lagginess by using position interpolation in the game loop (extremely boring)
	-> [	] Keep track of latest position/orientation somehow - not sure where? Transform? Do not touch the physics system for that!
	-> Must happen before every update system!
	
[	] Adding lights (starts boring but will get fun in later states)
	-> Lights are entities as well
	-> [	] Single point light (Look into the OpenGL ES 2.0 Book!)
	-> [	] Placing point lights with the editor on a separate layer
	-> [	] Specular support for point lights
	-> [	] Spot lights
		
[	] Create jumppad (seems to be fun)
	-> Entity must have at least one shape which is flagged as sensor
	-> Entity must have a physics component
	-> Entity must have a transform component
	-> [	] Behavior needs to be extended to accept incoming collisions/overlappings
	-> [	] Create jumppad behavior class and add a velocity impulse when triggered - take trigger states in account (when other entity has not triggered yet and triggers it and still penetrates there should be no impulse!)

Can you guys give me some hints how to organize a myself better to not feel overwhelmed on creating a game, cause i think the main problem i have is to organize myself.

Thanks for reading.

Will be glad for every tip i get from you guys!

Greetings,

Finalspace

Advertisement

Hard to say exactly what the issue is. It seems you have 75% of it solved already just by recognizing a weakness you may have. You do seem pretty organized, and maybe that's part of your frustration, that you're an organized person, and can't figure out why you can't quite get to the end of the product.

Just taking a guess, I'd say you get more satisfaction starting with a blank screen and starting to make things appear and work correctly. Once you get to the end, you're fixing less noticeable bugs and are getting less satisfaction from it. One idea is to maybe help out an aspiring game dev by working with them to do these smaller tasks. It may be more fun for you to help someone else, plus it will give them some experience, as well.

As far as the organization, maybe look into a work item tracker. http://trac.edgewall.org/ is a free one. I haven't used it, but I've heard good things about it.

I wonder if your lack of motivation is in part because you've already decided what your level of motivation is going to be when you say stuff like "boring", "somehow boring", and "rather boring". What was the point of labeling that task as such? Does this actually help you in some way when it comes time to approach the particular task? If it doesn't add some sort of value to your project organization get rid of it.

Do you really want to make games or would you actually rather be making tech demos? Nothing wrong with making tech demos if that's what you'd rather be doing.

Do you really need the various features you've identified in your game? Can you make a game out of what you already have? Can you organize your project such that you don't need everything on your list completed to see how what you do have will build on to your larger game?

Are you not overstretching yourself, burning yourself out, you haven't ever seen any fruits of your labour, how demoralising would that be, finish a game and publish it for $0.99 and your may have some rewarding results.

Define “finishing a game” as apposed to “prototypes, technology demos, and applications”.
As in, what constitutes a “game” to you, and are you sure you’re not setting the bar too high for a single person?

My first game was either a number-guessing game or a 2-player TI-81 ship game (so long ago I forgot which came first).
One didn’t have graphics at all and 1 had shit-tastic graphics. They were still games.

Later I did another ship game in DOS with lines for graphics. It was a game.

Later I did several Tetris clones. They were “finished games”, simple as they were.


Are you saying that you have been programming for 54.36968326 years and never completed even a Tetris clone or a text-based game (A)?
Or are you saying you don’t consider them to be games because they are “too simple” and don’t have “good-enough graphics” (B)?

If it is A, you have some issues. No one doesn’t do Tetris or Pac Man or Pong at some point. And if you have never even tried one of these and then worried about never having finished a game, you have a major problem, because finishing one of these is 3 days away.
If you are worried about never having finished a game yet these are only 3 days out of the 39.3798723 years you have been programming: serious issues, beyond help, sorry.


I am assuming your problem is B. That you’ve done the clones but you just don’t consider them games because you’ve set the bar too high.

Here is a hint: In that case I’ve never finished a game of my own either.


Either lower the bar to within reason for a single person or stop worrying about not finishing anything.
If you insist on keeping the bar too high, stop being concerned about motivation and focus on having fun. Who cares if you didn’t write Doom 8 all by yourself?

You may very well find that your interests lie elsewhere.
I have tried 3 times now to make the ultimate space shooter and always just stop after getting a ship moving on the screen and maybe an asteroid to shoot.
It turns out, I really love the low-level programming more than the game programming, so I focus on making engines, not games.

Look at what you have finished and what you have rated as boring vs. fun.
It seems to me you have more fun focusing on the low-level things rather than the gameplay.

Hint hint?


It doesn’t look to me as though you are a game programmer at all. You appear to be an engine programmer.
So why are you beating yourself up for not finishing games? In fact, why are you even trying?


L. Spiro


[EDIT]
In addition to all of that, I felt my own motivation for your project drop significantly reading your TODO list.
#1: Part of the fun is the spontaneity. Having a vague idea of the overall picture and deciding on-a-whim what part you want to do next and then mentally refining that part. My motivation wains here-and-there, so I randomly jump into a new part and keep things fresh. But it’s partly fresh because you haven’t thought about the new task too much.
#2: Having a huge list of undone features sitting in front of you undoubtedly makes a reality just how much work is ahead of you.
Ignorance is bliss.
Without a measurement of how much work is ahead of you, you may often find that by the time you realize just how much work there was, most of it has already been done. Besides, I’ve always found that trying to put all this out ahead of time is futile—you always figure out some new task along the way etc.


It may just be me, but your list is a major buzz-kill. Your fun hobby looks like a menial job task now.
[/EDIT]

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

For me, the only "finished" game is the game that was released. If that's your definition, you definitely should not plan on "medium sized games" - start with "very small game". Something that will be fun to play for a kid, or for adult, for half an hour. Finish it and release it on some platform, for free, of course, since it'll unlikely it'll worth actual money for buyers, eh. May be some adverts there, although you ain't gonna be rich from that.

But at LEAST you will know that it will take to actually finish a game, and will know the process from start to finish, and will know what it takes to make a game.

I am not sure where you get that number from @L. Spiro, but "54.36968326 years" seriously? I am near at a age of 32 right now and do coding since i was 6 or 7. So to summarize it up, i got over 20 years of programming experience - maybe a bit more, because even as a kid i was fooling around with code instead of playing outside which was not good always.

But to get back at the actual topic: i have made prototypes for tons of clones, breakouts, platformers, rpgs, card-games etc. and this clones was really simple and was near at completion but was suffering from motivation loss. And with completion i mean i game with a definitive start and a end + acceptable but some sort of graphics and whats most important - a game which is fun to play!

But you would not believe what happened today at work - i finished a game. A fairly small one physics-like breakout game, but i completely finished it.

But the downside - it was not a project for myself - either a easter-egg for our business intelligence software at work -.-

Hard to say exactly what the issue is. It seems you have 75% of it solved already just by recognizing a weakness you may have. You do seem pretty organized, and maybe that's part of your frustration, that you're an organized person, and can't figure out why you can't quite get to the end of the product.

Just taking a guess, I'd say you get more satisfaction starting with a blank screen and starting to make things appear and work correctly. Once you get to the end, you're fixing less noticeable bugs and are getting less satisfaction from it. One idea is to maybe help out an aspiring game dev by working with them to do these smaller tasks. It may be more fun for you to help someone else, plus it will give them some experience, as well.

As far as the organization, maybe look into a work item tracker. http://trac.edgewall.org/ is a free one. I haven't used it, but I've heard good things about it.

Hmm i am not sure, i dont think to just start from scratch has more satisfaction than extending an more advanced one for me, but one thing which i havent tried to create a game with one or more developers yet. Maybe i can try that.

I wonder if your lack of motivation is in part because you've already decided what your level of motivation is going to be when you say stuff like "boring", "somehow boring", and "rather boring". What was the point of labeling that task as such? Does this actually help you in some way when it comes time to approach the particular task? If it doesn't add some sort of value to your project organization get rid of it.

Do you really want to make games or would you actually rather be making tech demos? Nothing wrong with making tech demos if that's what you'd rather be doing.

Do you really need the various features you've identified in your game? Can you make a game out of what you already have? Can you organize your project such that you don't need everything on your list completed to see how what you do have will build on to your larger game?

That todo-list is an actual experiement to improve my organization of my current game project. Also i had read somewhere that marking tasks what state of interesting it is, may be a good idea or not... i am not sure about that. Its just a try.

I have made so many tech-demos in my programmers-life - i dont want to do that anymore. So to answer that question i really want to make a game - also i have a vision about creating a platformer game which is based upon some ideas from my childhood (I and a good friend of mine was drawing 2d platformer games on plain paper and use our imaginary and fingers to play it). There was so many great ideas in it, so that i really want that to create a game out of it.

I think some developers get into a mindset that creating a complete game is largely a matter of writing code. That's actually fairly far from the truth. A non-trivial game requires a significant amount of Design, Art, Audio, Playtesting, and general Management, and if it's something you intend to actually release for sale, then some form of Marketing is necessary as well. Obviously, a one-man team has to wear all those hats and any project inevitably reaches a point where the development portion of the project is mostly complete while many other aspects aren't anywhere near complete. If you're labeling development tasks in degrees of boredom, it's quite possible you just aren't cut out to be a one-man team.

I think some developers get into a mindset that creating a complete game is largely a matter of writing code. That's actually fairly far from the truth. A non-trivial game requires a significant amount of Design, Art, Audio, Playtesting, and general Management, and if it's something you intend to actually release for sale, then some form of Marketing is necessary as well. Obviously, a one-man team has to wear all those hats and any project inevitably reaches a point where the development portion of the project is mostly complete while many other aspects aren't anywhere near complete. If you're labeling development tasks in degrees of boredom, it's quite possible you just aren't cut out to be a one-man team.

Yeah i know that - i had never worked in a game company before, but i have read so many books, watched tons of videos, including making of´s, documentaries etc. I think i have a pretty good understanding what it takes to make a game and i now what i am capable of and what i am not.

For example, story-telling is definitely not a strong point of me and i am not that great at making art (textures, sound), but for a prototype it should be sufficient.

I think i remove the funniness part, it seems it just distract me too much and i need to use a ticket system instead of plain text files.

This topic is closed to new replies.

Advertisement