Jump to content

  • Log In with Google      Sign In   
  • Create Account

Tim Cooper

Member Since 17 Aug 2005
Offline Last Active Apr 02 2014 06:14 AM

#5056750 I read the articles about how to dive into game dev but still in a dilemma

Posted by Tim Cooper on 25 April 2013 - 04:04 PM

If it's your first project the problem can often be that you don't even know what you don't know yet, which makes the studying side of things slightly tricky!

 

One way around this is picking a project to work through from start to finish. Either come up with a game idea of your own or (possibly easier) create a copy of an existing game. In many ways it doesn't matter what you decide to create, just that you pick something to work towards. Make it something you'd enjoy playing (you'll be working on it for a while), but simple enough that you have a real chance of completing it. And yes, this means don't pick a full scale, multi-country rpg game with umpteen classes and skill trees, a monster manuals worth of creatures and detailed back stories for every npc in every town :)

 

When you set out to create a complete game (or finished mobile app or desktop app) it gives you a lot of experience about what goes into it. Game frameworks, gameplay, game graphics, sound effects, user interface and probably lots of other areas I can't think of off the top of my head. There's so many details that it's almost impossible to learn everything in advance, you have to dive in and try it. As you work through putting everything together you have a much better idea of what goes into a game. Just get started in one area and build things up.

 

For example:

1. Show a world using tiles and load the world information from resources.

2. Show a character in the world and get them moving.

3. Show baddies in the world (random or scripted).

4. Add some form of combat system (sword animation, attack button, damage versus defence/life and track for each character).

5. Animate the combat - hit animation, death animations.

6. Get some free old school sound effects and create a sound system. Play sounds on attack, hit and death.

7. Add a user interface - character health, items, etc.

 

and so on. Every time you add one detail it highlights other things that need to be added, or other things that could be done. A lot of this you can read up on as you're going along, which should give you even more ideas for how to do things, structure things or just ideas for more things to add.

 

So yeah. Pick a game to create and start working on it, and it'll help focus your efforts straight away :)

 

Good luck!

 

Tim

 

P.S. Most peoples first development projects are pretty rubbish. This is completely normal, so if you start to get frustrated don't worry about it (everyone does it) :) First time through you're just figuring stuff out and making all the mistakes, no matter how much reading you do before hand you won't really know it until you've tried it. Each project you work on will be better than the last one you did, as you know more and make better design and development decisions. Stick with it and you'll soon be slapping together little games easily and wondering how you every struggled to get the first one going :D




#5040456 Beginning game developing (books, software etc.)

Posted by Tim Cooper on 07 March 2013 - 11:22 AM

Well, congrats on having set some big goals for yourself. It never hurts to aim high :)

 

First, the easy one. Depending on where you live, owning your own company simply costs a little money to start and a little more money+time to keep going. E.g. in the UK it cost me £35 to have a company do it all for me. I just told them the company name and my details and they did the rest. Every year I have to file some company accounts and pay a few fees and that's it. It helps that I don't have any employees, I'm just the unpaid Director ;)

 

Next up, all the rest of your goals - this is a little trickier...

 

The game side of things: There are several areas involved in making games, which you'll be learning as you go along:

  • Game Theory - making a good, fun game. Try reading "The Art of Game Design: A book of lenses" by Jesse Schell, or other books on the general theory of game design.
  • Software Development - The nuts and bolts of getting the game working. Either build everything from scratch or speed things up by using existing engines.
  • Graphics - Making it look pretty. Get an artist or graphic designer on board, people can usually spot Developer Art a mile off.
  • Sound - Never underestimate the power of good sound effects and music.
  • Marketing - I started thinking about this as I released the game, which was way too late. You're young so hopefully social media and constantly blogging everything comes easier to you than me :D

There's all sorts of other things, but those are the broad strokes. The first thing to remember is that you're going to make mistakes in all the above areas (don't worry, everyone does). Then you'll figure out what you did wrong and do it better next time, and if you repeat that often enough you'll become good at it and a professional in that area.

 

What does this have to do with your goals? Simply that you need to build your teams skills and abilities, and keep their motivation for doing more projects. If you start a huge project that'll take you all 2 years (at best) with nothing to show until the end, while none of you know quite what / how to do it, then I'm afraid your chances of finishing aren't so good. If this is the first project you're all working together on then I suggest trying something a little more achievable than a full scale 3D MMO based off your own game engine.

 

Try building up to your planned big game with a series of smaller apps and games that help your team learn what they need to know. E.g.

  1. Simple app or browser based single player game - not MMO :) - Simple game play, simple (2D) graphics. Gives you all experience in creating all aspects of a game, should shake out any problems in the team and get you all used to the process. Plus it shouldn't take a team too long at all (3-6 months?), so you'll all have something to show for your efforts and can feel good about doing it. If you want to create games, use an existing game engine to speed things up. Otherwise factor in the extra time needed to create your own framework and get the graphics guys working on even better art work with all their spare time.
  2. 3D app or browser single player game - Same as number 1 above, add 3D and some other features that you want your main game to have. 3D adds a lot of graphical overheads, plus requires a different display engine. Use an existing game engine to speed up development if you want to make the actual game, or continue developing and improving your game engine from the first game.
  3. Multiplayer game - convert one of your games to support multiplayer gameplay, or write a new one. If you plan this in from the start it can be pretty easy, otherwise it can be a big re-working. Either way, you'll learn a lot about what's needed in this area, plus you get to re-use your projects.
  4. Stop and realise you currently have a portfolio of released games people can play, which is awesome.
  5. Make your big game. By now you've got most of the experience you need to create the game you want. Sure, there's more to learn but now it's a step up to it instead of a giant leap.

Add more games in there if you like. You'll know more about what you need to learn once you've actually started, and may find you can jump to your big idea right after your first game.

 

One note: I say focus on creating and releasing your games for a reason (which some may disagree with)... It's easy to cut corners on quality in pet projects that aren't for release ("it crashes if you open that door, but that's ok", "Ignore that texture, it's just filler graphics", etc). By committing to creating a finished product right from the start it changes the level of quality you're aiming for (or it should, at least), and gives you a different mindset when thinking about things. And by releasing your game you get real feedback on how well / badly you've done so you can learn from the experience.

 

If you follow and commit to this sort of process - progressively improving your skills and producing demonstrable evidence of your achievements - then becoming a professional <anything> should pretty much take care of itself.

 

Anyway, hope some of that helps you all.

 

Good luck!




#5040330 Staying motivated.

Posted by Tim Cooper on 07 March 2013 - 05:17 AM

Quick tip - Turn off the distractions and work for at least 30 minutes without them, and keep working after 30 minutes until you really, truly need a break. Repeat.

 

You've decided that you want to do something in your life, but your not progressing as fast as you'd like. If you find yourself being distracted easily then ask yourself the following: Is this something I really want to do?

If the answer is no then you need a new goal. If the answer is yes, then you have some self development to do smile.png

 

Generally, if you want to achieve anything in life you need some of the following skills. Fortunately, if you're not too good at any of them then you can practice and improve.

- Self discipline - There's a lot of definitions out there so take your pick. The one I like is: "The ability to make yourself do what you know you should do, when you need to do it, whether you feel like it or not."

- Perseverance - The ability to keep working at something until it's finished. If you want to avoid half finished projects and unfulfilled dreams, practice this.

- Hard work - Ever heard of the 10,000 hour principle? The people who are truly great, and masters at what they do, have spent over 10,000 hours developing their skills. There will certainly be exceptions, but it basically means if you want to be good at something you need to put in the time and the hard work. Get good at (and enjoy) doing this and you can pretty much achieve anything in life.

- Set goals - Know what it is your trying to achieve. "I want to get rich" isn't a goal, that's a dream. "I want to write and release my first game <game codename> on the <platform> by July" is a goal. Nailing down what you want to achieve helps you focus on what you need to do and build passion around your projects. Sure, you won't achieve all your goals (who does?), but you'll be better for setting and regularly reviewing them.

- ... Ok, I forget the rest. These are the most important ones to start with so lets just focus on these.

 

If you want to be good at games development then you're going to have to put in the time. If distractions are your problem then you need to remove them until you've built the habits of self discipline and hard work to the point where you're not easily distracted. Basically if it pings, buzzes or talks at you then turn it off. Tell your parents / partner your going to be working for an hour and not to distract you. Stick some music on (if you like), set a timer, and get to work. Once you've done your time, go nuts and check you email, social media stuff, look at cats, whatever. Just remember to set another timer for, say, 10 minutes. After that, get back to work for another block smile.png

 

Practice doing this several times a week (every day if possible), every time you need to get something done (homework, writing CVs, programming, educational reading, etc). While this might sound boring there is another way to look at it. Say you have homework to do. You can spend 2 hours working at it, checking email, chatting with friends and feeling like you're wasting your time and would rather be doing something else. Or... you can get it out of the way with one solid 30 minute block of work and spend the rest of the evening happily doing something else.

 

A final tip is constructive procrastination. If you don't feel like doing programming then distract yourself by reading a book about it instead, or by looking up programming stuff on the internet, or researching games and game theory, or try out a game that has a feature you're trying to reproduce in your project. Sure you're not working on programming as such, but you will be feeding your head with ideas to try out next time you want to do some work.

 

Right, that's enough waffle from me, hope some of it helps. I should really get back to work (doh!) ;)




#5040319 What would you make armour out of?

Posted by Tim Cooper on 07 March 2013 - 04:26 AM

Ghost armour - makes you incorporeal. Totally useless against anything that's already incorporeal or weapons designed to hit ghosts. Those tattoos might come in handy at that point.

 

Sun armour - Woven from light. Enemies attacking you are blinded, increasing their chance to miss. Could burn them on hits. Optional special ability to occasionally flare the armour and deal damage to everyone around you.

 

Natures Sacrifice Armour - The armour spawns (or summons) small creatures and birds that constantly circle you, sacrificing their lives to save you from attacks. Animals spawn over time, so enemies can wear away your defences if they can keep attacking. Optional special ability to spawn cute kittens for the kitten eye attack (will save negates).




#5030226 How you design your games? And where to start?

Posted by Tim Cooper on 08 February 2013 - 05:43 PM

Designing your game will often start in one of two ways:

1. You have an 'idea' for a new game. Write it down: what are the players doing, how do they do it, what's the challenge in the game, how does the difficulty ramp up as they play and so on.

2. You don't know what game to you want to make. Time to make some lists: games you like, games you want to write, ideas for gameplay or interface that you think might be fun or interesting. Basically, come up with as many different ideas for games of any kind that you can think of, regardless of good, bad or ugly ideas. Try for at least 20. If 20 was easy, try for 40 (you want to push yourself for the last few ideas). Then simply pick one - look back over the list and remove all the rubbish ideas, unrealistic ideas, too-similar-to-other-ideas ideas. Think about what might be catchy, fun or interesting to work on (and to play) and pick that. Congratulations, you just found your first game 'idea' :)

 

Once you know what sort of game you want to write you need to do 1. above. Think about as many elements of how the game will work as you can in advance:

1. What screens are you going to have? Menu, playing game, paused, finished, etc

2. What's the game control system? How will the user control the game and is that going to work for the type of game you want to make. E.g. console controllers don't seem to translate well to touchscreen, mouse based RTS games can be tricky to play using a console controller.

3. How much content will there be and how will you keep the player interested? Will you add harder levels, trickier puzzles, tougher baddies, less time, less ammo? Can you get enough into your game idea to keep a player interested? Would you want to play it?

 

and so on. Try and come up with as many ideas as you can. Get your friends involved and bounce ideas off them, if you can. Everyone has a different viewpoint on things, so they might spot something obvious but brilliant that you missed. Be prepared to ignore them though, this is your game and you get to make the choice about what goes in or not :)

 

Got lots of ideas? Great, go back to your original idea for a game and review it based on all the new ideas you've had. Come up with the core game idea that you want to create. It should be possible to express this game idea in one sentence, maybe two. Anything else and your core idea is still too vague, which will make it a lot harder to know what you need to do to create the game.

 

Once you've got your game concept nailed down, separate all the ideas you've had for your game into three lists:

1. The core game concept - what needs to go in to make the core concept of your game work. E.g. jumping, shooting platform game with occasional short term flight special ability that recharges, fighting baddies to save the princess on the moon.

2. Nice features - things that would be awesome to do / add but which aren't key to the core game concept. E.g. Moon buggies stages, moon golf mini-game, etc.

3. Fluff - features that might be nice but are not essential. E.g. sparkly full screen effects every time you start flying, customisable space suits, purchasable in-game hats.

 

Once you've got your list of features needed to support your core game concept the task list for creating your game should fall out of that. 

 

Now start working on realising that and avoid spending any time (or at least too much time) working on list 2 or 3. They might be fun features to work on, but they won't get your game finished. Once you've got your game fully working and tested, then consider adding them.

 

Don't worry about knowing everything in advance though, that tends to come with experience and practice. This is your first game, do enough design so that you know what you want to be working on, but not so much that you start wasting time trying to hammer out every detail. However good your initial design, as soon as things start to get playable you'll start revising the design. E.g. Your initial weapon ideas just may not be fun, or the way the character was going to fly makes it too easy so an extended jump might be better. Always revise your design though, make sure you have something on paper describing what you're aiming to do even if you start changing things. It'll point you in the right direction when you're not sure what to do next.

 

A tad waffly, but I hope some of that helps get your creative juices flowing :)




#5023588 High School Student with High Goals -- Need Advice

Posted by Tim Cooper on 20 January 2013 - 01:22 PM

Thought I'd mention something on the drive and getting stuff done side of things. I came across the Pomodoro Technique a few years back and, while I hate the name for some reason, it was a pretty effective way of helping get work done and building the habit of working effectively.

 

http://www.pomodorotechnique.com/get-started/

 

There are a number of time management techniques out there so if you like the idea of it, but this one doesn't work for you, have a look round for others. Ha, just realised this'll work for your studies as well as your development projects. Time management is one of those things most students are pretty rubbish at, so if you want an easy advantage over the average students then time management and a good work ethic would be it :)

 

On the money making side of things, web and mobile development currently seem to offer the best opportunities for solo projects or freelancing simply because they're (still) a growth market that's rapidly changing. Plus, it's fairly easy to get something simple but helpful and useful out in the market. Where I work we like to see an interviewee who has working software in their portfolio, released or not. More are cropping up who can simply point at an app-store and say "there's mine". No matter how simple the app, it still looks pretty good.

 

Hope that helps!




#5018250 Sprite Animation - SFML

Posted by Tim Cooper on 06 January 2013 - 11:47 AM

A little hazy on exactly how you're movement system works, but I'll take a shot :)

 

From what you've described, you could try changing the bool variable to a int (or adding a separate int) which keeps a tally of the number of active keys. Your animation could would just need to check for > 0 to be animating instead of the key press/release.

 

Hope that makes sense.




#5017418 Anyone have one tip for a beginner programmer?

Posted by Tim Cooper on 04 January 2013 - 06:03 AM

One beginners tip? Comment your code as you're going along.

 

Coming back to a project a year later and trying to figure out what the heck you were doing back then when you wrote it is never fun (and wastes time). If you take a moment to add method comments describing what the method is for, what algorithm it's using and maybe a link to any websites you've been learning from then it'll be a good habit to get into. A line or two is often all it needs.

 

This might not seem important now but there are a several reasons why this habit will help in the long term:

- Memories are bad, so anything you can add to speed up work on old projects will help (or when reusing work from old projects).

- You'll get better. A year later and you'll probably be a completely different programmer. What made sense when you wrote it often looks simple, silly or confusing compared to what you're capable of now.

- People coming to work on your projects will have an easier time getting up to speed.

- Employers like to see evidence of good commenting in your code portfolio (at least they do where I work).

 

This is true regardless of which language you decide to work in :)




PARTNERS