Sign in to follow this  
Silgen

Not getting anywhere - Advice needed

Recommended Posts

Hello there. I am a full time student, hoping to study computer science at university in a year's time. I have a reasonable knowledge of C++ and SFML, with a little bit of python on the side.

As the title suggests - I am struggling at the moment to progress with my game programming. I have made some half-assed attempts at simple games like pong and noughts and crosses - as well as partial games - such as a sidescrolling tile engine.

I really enjoy programming - but for some reason, I struggle to find the motivation to plan, continue and finish a project.

It is extremely frustrating for me to realise that by this point I could have produced multiple games, and be progressing at a much faster rate. Personally I feel that the problem is in the planning stage, as being so inexperienced - I often overlook things that cause major problems later on in the development. I also have a tendancy to bite off more than I can chew.

Does anyone have any advice that they could give me?
Should I make my life easier by switching to a language like C#? (I'm not saying I don't understand C++ - but it would remove a level of complexity.)

Share this post


Link to post
Share on other sites
i should probably be writing a longer post, since there are alot of things that need to be said here, but others will likely say it better than me
there's one thing though:
starting a game, or with an idea gives you _some_, somethings nothing new, in knowledge
finishing a project = progress
i spent 5 years writing an IRCd of all things... well i learned ALOT of things over the years, but the last year i felt like I KNEW what i was doing
it's a really good feeling! you can't miss it, and you can't go without it
doing what i did, i realize i just have to finish things :)

Share this post


Link to post
Share on other sites
This question is all about planning, and the one thing I thought when reading this post was "What is the end-goal?".

Just about any project plan (I'm a programme manager by the way!) can be created (although it's not always the best idea) by working from the end goal - which is usually 'Software Delivery'. In fact there's a whole load of user acceptance testing before the project is finihsed, but you know what I mean.

Your task is not just to 'create a game', it is also a learning exercise. So what you need to do is create a programme of work to enable you to realise the goal of 'seasoned game programmer' or something like that.

If you plot two things into a spreadsheet - 1. Now, and 2. Seasoned Game Programmer, then start thinking about what comes in between.

For example, this has been my own (flawed) plan:
1. Evaluate usage of core language: Java or C#?
2. Evaluate usage of graphics APIs: XNA, SlimDX, SFML.
3. Tackle command line driven C# game to serve as exercise for familiarising myself with most key concepts.
4. Follow tutorials for SlimDX
5. Create simple game framework to make 'Pacman'
6. Adapt game to create 'Snake'
7. Create 'Pong' game
8. Create 2d platform game

So having an outline plan like this somewhere will really help you. You will be able to go back and refer to it, perhaps make some changes here and there, or add subtasks. I'm not saying you need to micro-manage what you do - but having this down somewhere should help.

Another idea to help record knowledge, notes, and general thoughts and realisations (many times I have spent hours trying to diagnose a problem, and then amazing myself at my own stupidity) is to keep a log. At the moment I have a rolling huge openoffice document, into which I paste screen grabs, little sub-plans I think of, that kind of thing. If you can get into the habit of using a log like this it means the time spent remembering what you were doing the day before is greatly reduced. You'll also have a complete history of your various investigations etc.

I've recently been introduced to Wiki's, and this could be another option. You could evolve your own games programming wiki - recording answers to those problems which you spent hours diagnosing. This means that whenever you hit the same problem again, you'll have one central location where you can find all your answers.

For me, keeping a log is essential, and that's all I'm doing. The plan I have is in my head mostly, but it was quite easy to paste into this message anyway.

It didn't stop me wasting four hours the other day trying to understand why my new sprite class wasn't working. I would tell you what the problem was, but frankly it's embarassing! [img]http://public.gamedev.net//public/style_emoticons/default/wacko.png[/img]

People can see planning as dry and un-necessary, but the advantage is less hours spent coding.

In terms of switching to C# from C++, it might be worth a go. Personally it's a bit too low level for me. I should imagine that you'd be able to cross over to C# without much problem though.

It sounds like you've already made some really good proof-of-concept bits and bobs. I reckon you'll be able to nail a game in no time. Good luck with everything! [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img]

Share this post


Link to post
Share on other sites
Here some of the things which helped me:
- Have some kind of a to do list. This helps track progress as you can see what needs to be done and feel good at the things you have already done (or crossed out).

- Keep some kind of a journal. By reading what you have achieved and felt before, it may give you motivation needed to push forward.

- Understand yourself better. By knowing how you work and what makes you tick, you can improve your workflow. Eg Reading somebody’s dev blog may give you the necessary motivation to finish a particular hard part in your project.

- Set deadlines. Normally you would be able to fill your time better when you know that things need to get done by that time. By having that deadline, you will move forward and forward with the project. More features would get done. You will feel much better about stuff and there is less chance of premature optimisation.

- Try to analyse your projects and see what you can improve if you had another chance. Gradually with more experience, you will be able to better predict the impact of your design decisions.

I agree with Servant of the Lord that some parts are more about the mental/personal side of a person. Programming can be very frustrating thing at times. Its good to know how to pick yourself up hehe :)

Share this post


Link to post
Share on other sites
I set small goals for myself, trying to find the next logical step to make the game more playable. One of my first steps is drawing out diagrams to help me better solve logical problems related to the more fundamental parts of the gameplay.

Progressively splitting large tasks into smaller ones until you get to a point where you can clearly think in your head how to solve some of the tasks really helps. Otherwise, you would be biting off more than you can chew. Edited by CC Ricers

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