• Create Account

## Books (Long post sorry)

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

8 replies to this topic

### #1Saint Retro  Members

Posted 07 May 2014 - 10:15 AM

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.

Edited by Saint Retro, 07 May 2014 - 10:26 AM.

### #2Glass_Knife  Moderators

Posted 07 May 2014 - 10:33 AM

Here's an idea: (shameless plug)

http://www.indiegameprogramming.com/BookInformation.php

But that being said, there is no magical secret book that will teach you how to make games.  The best way to make games it to make one.  Tetris is actually a good start.  The graphics are squares, which anyone can make, but it ends up being a lot harder than you think.

I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Book: http://amzn.com/1305076532

### #3Saint Retro  Members

Posted 07 May 2014 - 10:38 AM

Thank you, I know there is no magic book, I suppose I'm asking for a selection of the best on multiple parts to make up to what I need.  I saw one thread where someone asked similar and I looked though a lot of the books but never felt comfortable that I was getting what I wanted.  Too many try to be a jack of all trades and don't cover anything in great depth, not that it may be a bad thing.

I shall look at your link now but the contents 'look right'

Am I naive to think that Java is fairly easy to translate to C# as well?  It seems a few of the things that are made already exist to my knowledge in the .net standard framework.

Edited by Saint Retro, 07 May 2014 - 10:41 AM.

### #4Glass_Knife  Moderators

Posted 07 May 2014 - 11:02 AM

Am I naive to think that Java is fairly easy to translate to C# as well?  It seems a few of the things that are made already exist to my knowledge in the .net standard framework.

Any language is just a tool to get things done.  They will all have idiosyncrasies that need to be learned and managed.  Writing a Java Swing game will not be the same as C#, but the core stuff you need to do: rendering, sound, input, are a small part of the game.  While those things are different for every language/API/engine, after you figure it out, the real challenge becomes making the game.

The above book does walk you through a complete game from scratch.

Edited by Glass_Knife, 07 May 2014 - 11:03 AM.

I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Book: http://amzn.com/1305076532

### #5SerialKicked  Members

Posted 07 May 2014 - 11:19 AM

Hi,

A game loop is a fairly simple piece of code that look like that for a turn based game

while not GameFinished
- PlayerInput = WaitForPlayerInput
- ApplyToGame(PlayerInput)
- ApplyToGame(GetAIinput)
- Display game board
- GameFinished = CheckForWinner
end

For a real time games, you don't wait for the player's input, you just check if he has the keys pressed or not and refresh. There's plenty of examples around the forum. Also the suggested book from Glass_Knife looks fairly comprehensive, you don't need to know Java to understand the basic ideas. Otherwise I am pretty sure you can find very similar tutorials directly in C#.

I'd discourage you from using any sort of engine until you're comfortable with the basics. One common misconception about game engines is that they make things easier. While it's true to those who are already comfortable with a language and with basic game logic, it's quite the opposite for newcomers who have 3 things instead of 2 to learn at the same time (programming, game logic, and inner working of the engine used).

It's certainly a bit early form you to learn about AI and pathing, but just in case, here's a book i found useful (mostly C/C++ oriented, but despite coding in another language, I had no problem reading it). No idea if it's still published, though.

Programming Game AI by Example by Mat Buckland (Wordware Publishing)
Basic math implied in 2D and 3D games (can be skipped to some extend), basic FSM agents, fuzzy logic, path finding. With many ready to be compiled mini-games and examples. Also goes around explaining game loops, some OO programing and lua scripting. It's probably a bit out of touch with the modern approach to game design (multi threading and so on) but for new to intermediate coders i still think it's a great read.

### #6Saint Retro  Members

Posted 07 May 2014 - 12:04 PM

Thank you all. I'm more than fully aware about where I am but I worry about the future scenario akin to 10 years ago. Fortunately having a full time job means I don't have to limit myself on the amount of materials I can acquire.
Holding off upgrading my laptop for now though the indie book looks,great 1-3 week delivery time from amazon UK but that makes no difference. Only downside of all this is now I'm getting curious about Java.

### #7spazzarama  GDNet+

Posted 08 May 2014 - 02:00 AM

Another shameless plug:

(or on Amazon)

This takes you through using Direct3D with SharpDX and C#. It doesn't go into game design itself, but does give you a good intro into rendering techniques with Direct3D (e.g. tessellation, bone animation/skinning, deferred rendering, etc).

Good luck with it, I find programming in general to be a really rewarding activity and I hope you can get out of it what you are after!!

Justin Stenning | Blog | Book - Direct3D Rendering Cookbook (using C# and SharpDX)

Projects: Direct3D Hook, EasyHook, Shared Memory (IPC), SharpDisasm (x86/64 disassembler in C#), Afterglow, C#raft

@spazzarama

### #8NightCreature83  Members

Posted 08 May 2014 - 05:23 AM

General programming courses can help in designing code and structure to, MIT and Standford have some awesome open courses you can watch on the internet about this stuff. This also shows you what most university educated programmers have seen so that you can increase your knowledge in areas you werent aware you might needed to know. One of the best topics to read about is logic and set algebra and general algorithm construction and design.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max

### #9Saint Retro  Members

Posted 08 May 2014 - 04:39 PM

Thanks for all the suggestions. I have ordered the java indie book but I will try to resist the temptation to read it until I'm a bit more solid with C#. It's hard balancing all the learning especially trying to do maths at the same time after 8 hours at work a day but hey ho

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.