I created this page on the notion that I can update it as I get more and more experience in the field of game development. Having started this page fairly early on - I am more intimately knowledgeable on the obstacles and issues that you may or may not run into as a beginner delving into this incredibly vast field. So on that note - I do hope this helps you out if you are still a beginner getting into Game Development!
For the sake of convenience - the date of this page's last update is listed here: 24/04/2017
This will help clear any conflicting information if a software listed was updated and something mentioned here would be out-of-date. I will attempt to ensure that the information listed is up-to-date as much as possible; however the date will help you make your own fixes to information without my intervention so to speak. Note that the information I will be listing and speaking of comes from my own personal experience. As such I will be providing information that I have worked with and has worked for me.
Choosing Your Path
Choosing Your Path
"All roads lead to Rome"
Game Development is incredibly diverse as a field. Something I've come to appreciate the more I learn and develop my own skill-set. See this as a blessing - the fact of the matter is you can find the areas your strong at and focus on those. One of the things I used to say when I was younger was simply I want to get into Game Development - I wasn't aware of how vast that field actually was. You have artists, researchers, writers, game designers, producers - and even then professions tend to be split into even more specialised fields such as UX Designers, Concept Artists, Level Designer, Systems Designer and so on.
That said - the best way to experience what Game Development truly consists of is by developing games. Start small - and look up tutorials to follow. In the next section I will list a few which I found useful and which I believe can be beneficial. As well as the software I personally make use of and tried out. When you finish a project based on a tutorial - delve deeper into the concept on your own. Put in features that the tutorial didn't mention, put extra effort that the tutorial doesn't mention such as using your own artwork. All in all - this will help you not only get started on the road to developing your game development skill-set but it will give you a feel of all the different roles that exist in the field.
For me personally - in broad terms: Game Design was the area I was most interested in. As I started working and developing - I found Systems Design to be quite appealing to me - on the other hand, Level Design didn't appeal too much to me. That said - I wanted to be as self-reliant as I could be. I wanted to be able to develop prototypes and games by myself if need be; mind you - this doesn't mean I didn't want to work in a team; I simply wanted to ensure that if something needed to be done - I could do it to a reasonable degree.
Tutorials and Guides
HeartBeast - Youtube Channel Series "Let's Pixel'
HearthBeast Studio provides a number of very useful tutorials. The channel's series Let's Pixel is useful because it shows the step-by-step drawing of a particular piece pixel art. I found it to be quite nice to have on the side whilst I draw my own pixel art when I was starting out. It also provided inspiration when I felt locked as to what to do or how to improve. Since the videos is from start to finish - it helps you visualise how to start and finish a piece of pixel art!
Draw With Jazza - Youtube Channel
Draw With Jazza provides a wide variety of art tutorials. One of the most interesting ones I found was on Designing Weapons. If your looking for something that isn't pixel art specific, I found this channel to be very useful. I have yet to delve deeply into this style of art however - as my focus was primarily pixel art up until this point.
Pyxel Edit [$9]
PyxelEdit is a pixel-art software currently still in heavy development - however I immediately loved using the software for 2 key features. The first is that it allows you to more easily create tiles - this is because it allows you to split the canvas into tile sets, and then save those individual tiles on a side panel that you can then easily replace to help you build a scene to see if things fit right. The second feature is with regards to colours. Aside from the normal colour wheel and options to modify the RGB, Hue, Saturation, Lightness and Opacity - you can open a small panel that shows you the various shades of Hue, Saturation, Lightness and Shades. If you are still starting off - these are very valuable and can be very handy as you get used to working with various colours and themes.
Aseprite [Free Download]
Aseprite is a pixel-art software that I found helps a lot with regards to animation. The software itself allows you to split various parts of a character into sections, as well as allowing you to animate, draw and see frame by frame how the animation is coming along.
Piskel [Web Application]
Piskel is a handy free pixel-art application available via a browser. The convenient element of Piskel is that it allows you to have a pixel-art software that has more or less all the basic features you'd need - without the need to have it installed on your device. The web application works very well - and it allows you to save on the website, as well as download the files themselves to save locally and export the images as needed.
Game Development - Engine Specific
Game Maker: Studio [On Steam: $149.99] [Out-of-Date: Game Maker: Studio 2 released]
Game Maker: Studio is currently the engine I am heavily focused on. I found it offers a lot of flexibility for me to development in 2D and the workflow and interface is fairly comfortable to use. The engine allows you to use certain drag and drop features to minimise the amount of coding you need to do - if that isn't something you want to do. However I do highly recommend using the Game Maker Language (GML) - there are various useful tutorials online that show you how to work with GML, and working with GML opens a lot of possibilities within the software itself. I personally have not used the drag and drop features - so I cannot say how far they will take you; using GML however - I am still learning and discovering a lot of things I can do with the engine itself!
Game Maker: Studio 2 [On Steam: $99.99]
Game Maker: Studio 2 is the new version of Game Maker - it has an ample amount of new features that make it more intuitive and easier to work with. I have yet to work with the software at the moment - which means I can not give you a full idea of how the engine performs at the moment. That being said - I do plan on switching to work with it later on down the line.
RPG Maker Series [RPG Maker MV $79.99, RPG Maker VX Ace $69.99]
Prior to using Game Maker Studio - I used to work using RPG Maker VX Ace. The engine itself is very useful if you are not very fond of coding but are looking for a means to create an RPG. The engine uses 'Events' as they are called to replace elements that would otherwise need coding - and it allows you a decent degree of flexibility using these events. The newer edition, RPG Maker MV allows you to code in scripts via Java language. Prior to this - Ruby language was used to code in scripts as far as I am aware.
Managing and Planning
Scrivener is described as a content-generation tool for writers. It essentially acts as your virtual desk towards what ever you are looking to write. It has come in handy for me - particularly during the Dungeons and Dragons campaign planning - as it allows me to keep everything I need in hand and organised. Scrivener works by having a side panel that allows you to organise files and documents in various folders. You are also able to edit document files within the software itself - so it essentially allows you to have a word processor coupled with a file organiser. The software itself does a lot more however - it allows you to set notes to review later, it allows you to structure and revise your work easier by allowing you to outline your work, and many many more. I highly recommend looking into this software if you need something to help you keep track of elements of a project - be it lore or as notes.
Scapple is a mind-mapping software. It allows you to create notes, then connect these notes via arrows. The software is very free-form - allowing you to move your notes on a large canvas, as well as allowing you to highlight and create highlighted sections and borders to help organise your ideas.
yEd Graph Editor [Free Download]
yEd Graph Editor is a very powerful software that I primarily use to create flow charts. The software can also be used to create other diagrams depending on your needs. It features not only the ability to create comprehensive flow-charts, but also a means to automatically organise your diagram based on a few pre-sets - if you don't feel like organising it yourself after your done.
A Guide To Engineering Experiences by Tynan Sylvester [$32]
Tynan Sylvester's book was one of the first books I read specifically to begin expanding my knowledge on game design. I have previously written on the book so if you are interested in my thoughts on it - feel free to look at here. It is a book I highly recommend.
Game Design Workshop by Tracy Fullerton [$52]
Tracy Fullerton's book was a more practice focused approach to learning elements of game design. Those of you who are looking for a practice approach towards learning Game Design might find Game Design Workshop to be a very valuable book. I have previously written on this book so if you are interested in my thoughts on it - feel free to look at it here. The book itself uses exercises to help ease you into the role of being a game designer and is full of insightful comments by individuals in the games industry.
How do I start?
As previously mentioned - the best way to learn game development is through game development. It is a field that is best learned through practice. That being said - how does one start off as a complete beginner?
1: Decide what you are willing to learn, and what you are not.
Whilst yes - you will likely touch upon a lot of fields as you begin learning game development; it can be helpful to know what you are looking to learn. If you are someone who does not want to learn coding - using an engine that demands a lot of coding can be counter-productive.
2: Choose an engine, based on what you are willing to learn.
Some engines allow you to develop with little to no coding skills, others will need to know at least a little coding.
3: Find a tutorial online that aims towards developing a small game.
I found it far easier to follow tutorials that pushed me towards developing a game - rather than simply looking at a lot of different guides for a lot of different things. Eventually - you will need to look up guides yourself to learn more specific things - but starting off, you want to familiarise yourself with the workflow and the software. If you think a tutorial series isn't teaching you anything useful - you may wish to just skip it and find something new. Sometimes, it's better than spending hours following a tutorial series with little return.
4: Reflect, experiment and keep going.
I learned a lot through experimentation. Evening following the guide to creating my first ever game on game maker - I added features and modified mechanics to suit my own purposes. The game is quite different than that of the tutorial itself. Tied to this - don't be discouraged if you don't understand something immediately - reflect, think, and just keep moving forward. If a problem can't be solved now - maybe you'll think of a solution tomorrow. Sometimes - all you need is some rest and time off the project.
The above 4 steps are - in a very simplified manner - how I learned most of my practical game development skills. Do not neglect however to learn things that impact game development but aren't necessarily software related skills.
Learning how to better manage your workflow, learning an approach towards game design, doing research on topics outside game development such as history, and many many other things will all help towards you becoming a better game developer.