|
In the past I wrote a few blog articles here on TL about game programming with the goal of introducing the idea to new people. I had been a bit unorganized and didn't really seem to get clear ideas out there to readers. So I've decided to try yet again except this time in the form of a TL KnowHow. I'm sharing this blog for two reasons; firstly it'd be cool to generate a little bit of hype! Be aware that I've taken great pains to write the entire article in such a way that it can easily be consumed by someone that has little to no programming experience at all; I explain a lot of concepts and provide a lot of high-level descriptions and ideas that aren't written in "programmer speak". I'd like anyone new and interested in learning something about programming, especially game programming as a profession, to be able to take something away.
Take a look at my table of contents for the KnowHow:
+ Show Spoiler [Crazyiest ToC Ever] +Introduction Goal of this Article Game Programming and Software Development The Hobbyist Professional Programming Real-Time Applications Memory intensive Computation intensive Prerequisites Variables, Keywords and Identifiers Basic formatted input/output Control structures Arrays Functions Pointers Structures Classes Quick Refresher Stack and Heap Bits and Bytes Arrays Second class type Sizeof Pointers Address of Indirection Pass by value References Pointers and Arrays Pointer arithmetic Pointer to pointer Preprocessor #define #include #ifdef, #endif, #undef Compiling and Linking Code Organization for Large Projects Coupling Source files Header files Macros Prototypes Multiple Include protection Circular inclusion Forward Declarations Extern Data structures and program design Linked lists Ordered list Array std::vector Hash table Messaging Game Engine Architecture Overview Systems Main Loop Display Input Memory Management Object Management Game logic Physics AI Component Based Design Component Based Game Objects Factory Data driven composition Additional isolated topics Finite State Machines ActionList Improved Messaging Generic programming Bitmasks User Interface by Sean Reilly Game User Interface From Scratch Preexisting Library Editor User Interface In-Game External External with Game Embedded
The second reason I've written this blog is to ask, just in case, if there's anyone who would like to request a specific topic (related to software engineering and/or game programming). If I have knowledge of the topic, or know someone who does, I might get it in before the KnowHow goes live.
As for what the various sections look like, here's a tiny snippet of the very beginning:
IntroductionHello! My name is Randy Gaul, and I am a computer science student. I study at DigiPen Institute of Technology, and am majoring in Real-Time Interactive Simulation (a fancy way of saying game programming). I’d like to share my know-how in the ways of game programming as a profession for anyone interested in learning. I encourage anyone interested in programming or creating games, no matter how little knowledge you have in either topic, to check out this article. Goal of this ArticleBefore my studies at university I had spent a good deal of time trying to learn what it is like to create a piece of useful software from scratch. I spent many hours studying the basics of programming such as control structures, program design and even abstract data types. I however was very hardpressed to find any high-level information on how to piece together the smaller tools of programming in order to make a project of my own. This article aims at bridging the gap between the realm of a beginning programmer, straight into and through the intermediate level. ...
I hope anyone who reads this looks forward to the new KnowHow that will be coming very soon!
|
Ooh I'm excited for this !
I however was very hardpressed to find any high-level information on how to piece together the smaller tools of programming in order to make a project of my own.
This in particular is currently my own dilemma as well.
|
Super excited for this.
"Goal of this article" section is music to my ears.
|
ALLEYCAT BLUES49479 Posts
I am so looking forward to this.
|
This is awesome! I just recently switched to Computer Science so I would love this!
|
How about threads/multithreads and sockets/networking. I've made some simple games myself in my spare time but I've never been able to create a functional server client system since it's so damn confusing to me.
Like everyone else I'm really excited for this.
|
Godspeed! I always wanted to learn more about game programming
|
CecilSunkure delivers once again!
|
As someone learning C with an interest in game development, as well as a former Protoss player, I'm pretty sure you're just the world's greatest person, Cecil.
|
Russian Federation823 Posts
I bookmarked your blogs and cannot wait for your new blog.
|
Oh shit your blog has a section on collision. Excellent excellent. Gonna pad my resume with programming projects this winter. Thanks for the info
|
Right on, will be reading this for sure.
|
On October 24 2012 15:22 Rhaegar99 wrote:How about threads/multithreads and sockets/networking. I've made some simple games myself in my spare time but I've never been able to create a functional server client system since it's so damn confusing to me. Like everyone else I'm really excited for this. To second this, I'd really like a section on sockets/networking too. Other than that, looking forward to reading this! :D
|
On October 24 2012 15:22 Rhaegar99 wrote:How about threads/multithreads and sockets/networking. I've made some simple games myself in my spare time but I've never been able to create a functional server client system since it's so damn confusing to me. Like everyone else I'm really excited for this. I'm about to do that for a programming assignment :d Threads can be a bitch if you don't lock things properly
|
On October 24 2012 17:40 Krikan wrote:Show nested quote +On October 24 2012 15:22 Rhaegar99 wrote:How about threads/multithreads and sockets/networking. I've made some simple games myself in my spare time but I've never been able to create a functional server client system since it's so damn confusing to me. Like everyone else I'm really excited for this. To second this, I'd really like a section on sockets/networking too. Other than that, looking forward to reading this! :D Definitely won't be covering any networking. As for threading, I will consider a section on that. Although if I do it will be about higher level concepts rather than nitty details of a specific implementation (as is the rest of the KnowHow).
|
This looks very much like it will be all about C++. I don't particularly like giving people the impression that you can read a rather short piece about C++ and be ready to properly work on a medium or large scale program. I generally support the article of course, but you should make sure that you make people aware that C++ is pretty much the Broodwar among the programming languages. Your article cannot possibly replace reading good books like The C++ Programming Language, Effective C++ and so on. A medium/large C++ project without a deep understanding of the language is extremely error prone and very hard to maintain.
Personally, I'd rather do an article purely on Game Programming, without talking about specific programming languages. For beginners, languages like C# or Java are suited so much better anyways. Game Programming by itself is still a broad topic.
|
On October 24 2012 17:56 CecilSunkure wrote:Show nested quote +On October 24 2012 17:40 Krikan wrote:On October 24 2012 15:22 Rhaegar99 wrote:How about threads/multithreads and sockets/networking. I've made some simple games myself in my spare time but I've never been able to create a functional server client system since it's so damn confusing to me. Like everyone else I'm really excited for this. To second this, I'd really like a section on sockets/networking too. Other than that, looking forward to reading this! :D Definitely won't be covering any networking. As for threading, I will consider a section on that. Although if I do it will be about higher level concepts rather than nitty details of a specific implementation (as is the rest of the KnowHow).
To be honest, I really think you should reconsider including networking-- it's really intimidating for people who aren't familiar with sockets to get started, but if you can show even just how to get a simple UDP client/server up and running it'll be much easier for those interested to continue on from there.
Most hobbyist games really don't gain anything by using threading, but simple networking can make a small project really cool! If it doesn't fit with how you've got the articles planned then don't worry about it of course, but if it's at all possible I think a lot of people would benefit from an article or two on the subject.
EDIT:
On October 24 2012 18:17 spinesheath wrote: This looks very much like it will be all about C++. I don't particularly like giving people the impression that you can read a rather short piece about C++ and be ready to properly work on a medium or large scale program. I generally support the article of course, but you should make sure that you make people aware that C++ is pretty much the Broodwar among the programming languages. Your article cannot possibly replace reading good books like The C++ Programming Language, Effective C++ and so on. A medium/large C++ project without a deep understanding of the language is extremely error prone and very hard to maintain.
Personally, I'd rather do an article purely on Game Programming, without talking about specific programming languages. For beginners, languages like C# or Java are suited so much better anyways. Game Programming by itself is still a broad topic.
I disagree with this-- it's very easy to have a decent idea of how to program in C++ without knowing how to translate that into making a simple game. Personally, I don't think using C++ for small projects like what I assume the articles will be covering is significantly more difficult or risky than using Java/C#.
|
Italy12246 Posts
Dat toc is impressive holy crap :O Are you doing the whole thing by yourself?
|
On October 24 2012 19:06 Teoita wrote: Dat toc is impressive holy crap :O Are you doing the whole thing by yourself? I had some help
|
On October 24 2012 18:17 spinesheath wrote: This looks very much like it will be all about C++. I don't particularly like giving people the impression that you can read a rather short piece about C++ and be ready to properly work on a medium or large scale program. I generally support the article of course, but you should make sure that you make people aware that C++ is pretty much the Broodwar among the programming languages. Your article cannot possibly replace reading good books like The C++ Programming Language, Effective C++ and so on. A medium/large C++ project without a deep understanding of the language is extremely error prone and very hard to maintain.
Personally, I'd rather do an article purely on Game Programming, without talking about specific programming languages. For beginners, languages like C# or Java are suited so much better anyways. Game Programming by itself is still a broad topic.
This was the exact feeling I got looking at the contents aswell. C++ and game programming are very big topics on their own, putting both together...seems very ambitious.
Might be easier to focus on a managed language, with minimal input on programming itself, and go deeper into the game programming side of it. In that way your article could help people who are kinda new to programming but also want to learn about game dev. People who already program (in c++ or otherwise) can easily grasp concepts about programming in general, and can learn of it.
|
|
|
|