Dear all,
I am currently reading the Head First C# 2nd edition book. It is an excellent book for me and I'm really finding the information to be sticking, although I have dabbled with learning programming before (Visual C++ 6.0 and a book called 'A complete idiots guide to c++, this was 11 years ago) before so I wasn't totally new.
I see a lot of posts where by someone finishes a book and then think they are a programmer, I am a realist and I know that learning the syntax of a language doesn't make me a programmer. I am 28, I do not work specifically in IT but I have long had a feeling that it's my calling in life to keep plugging at this because of the way my brain works and how I think of problems that arise daily in my work and life in general. I am rubbish at Maths, I have been teaching myself what I think I'll need through various great resources, mainly around Trig and Algebra, things I couldn't give two figs about in school but now that I actually want to learn them I find I can quite easily.
My issue is this, whilst I'm learning some useful things in this book I know what will happen at the end, I'll struggle to work out how to design and implement a game and fall back into the void only to resurface years later again. I am determined to not allow this to happen again, time is getting on.
I need a book albeit not immediately that doesn't focus on language so much but on the design (code wise) of a game, the thought process around it. Ok so I should make pong, not even a clue where I would start, I'd probably work out a few classes for things but no idea how to glue it all together. This is exactly why I gave up when I was 17, I felt I had a good beginners grasp on C++ and no idea how to implement it into anything game wise, in reality though I knew nothing. That said I was also guilty of buying lots of advanced books, and then trying to read ahead and not keep focusing on the beginner stuff. I actually wish I didn't throw away all my books from back then, I genuinely thought I could pick up Game Programming All In One and off I'd go, same with Programming RPG's With DirectX, those books were years ahead of me in terms of my ability.
The difference this time round is I'm finding everything much much easier, I don't know why but I'm not complaining. I was using an ebook first but I got the paperback as I prefer and find it easier to study around the house.
I prefer books to online resources when it's a lot of material, I like internet articles for shorter things like a small focused article or the Trig I was studying, brilliant. Before I even think about engines (likely to use Monogame as I had a sneaky look around) I want to understand more about the design, I like books that talk to you like you're an idiot so to speak. I don't want a book to teach me about making an engine, it's pointless for me as I have no desire to make one and I don't think there would be any point for my goals, I have spent literally weeks reading descriptions, studying content guides and downloading e-books to give myself a preview before deciding to buy. I am just concerned I may be missing some really good suggestions because a lot of the questions asked on here are akin to "how do I learn to make a game".
I have no idea on state machines, game loops, nothing. I think I make a simple game in my book later on which may give me a good leg up but it won't be comprehensive. A good book would be one that presumes you have an intermediate understanding of a language (pref C# but it doesn't mater specifically for this case) and maybe it even uses an already available engine, it focuses purely on the design, how to think about implementing it etc.
I'm talking 2d simple games here, I'm not trying to set myself an unrealistic goal, I want to get educated on the design and implementation so I can manage more ambitious projects in the future perhaps, although to be honest I'd be absolute elated if I ever manage to get Pong going. If I am missing something obvious I should be looking in to please let me know. Rest assured I spend hours on this site reading many many similar questions but ultimately I feel they are written with no research or thought going in. I appreciate any advice here.
Edit: One thing I haven't made clear is that I am not content in simply using something like unity to make pong, I now understand that trying to get low level is pointless for me (I used to want to understand everything below even assembly) and makes my goals unobtainable but I do not want to use something with that level of hand holding, I want to have a bit more control and when I played with unity it seems I could set properties on objects and create something very fast. This is great for some people but I wouldn't really feel like I created it then.
In some respects I even disliked C# at first because too much was automated but I have to compromise somewhere to achieve anything.