Dark Forest Crow Notes - Interactive fiction, text-interactions based and roleplaying games

Thursday, September 1, 2016

Real computer programming tutorial for writers and complete beginners


I didn't want to do this since Internet already contains millions of decent programming tutorials, but I already received 2 messages with the contents like this: 

'I usually use ${name_of_the_interactive_fiction_framework} for games development. Now I want to create something bigger. Can you tell me what should I do? Should I learn ${name_of_the_programming_language}?

My research of interactive fiction developers across the Internet gives me yet another intention to write this short guide since the case when those guys understand that their frameworks are complete trash when it comes to serious game development is not that rare (surprisingly for me, to be honest). Most of them then tend to just give up and remove any unique content of their projects that can't be easily implemented via particular framework.


I feel responsibility for those fellows and I know that I can show them the right way into software development. (As well as they can show me the right way into proper English. Joke. Noone can help in this case.)


Let's start!


So, your stage of easy Twine mini-games and Inform7 pseudo parsers is finished. Maybe you do have some programming experience (most likely, it's javascript), maybe you don't. 

The main problem is that usually you simply don't know what to do next. 'Probably I should read some guides' - you think. You use google and then you see strange words and symbols like 'opengl, directx, webgl, unity, cryengine, unreal engine, python, c++, java, c#, visual studio, eclipse, netbeans, qt'. You can search for tutorials and guides, but there is no easy ways to determine if a particular guide is good even if you understood it and even if you managed to copy-paste and launch some code examples. 

The probability of situation in which you find a good guide that not only gives you some advices and some working code snippets, but also explains you the essence of programming and some basics of computer science is very low. You will find some decent guides for sure, but the maximum you can achieve is an experience of solving particular tasks and problems like 'how to display pixel on the screen', 'how to display words on the screen', 'how to change font', 'how to process keyboard input' with a huge amount of gaps in your knowledge.

What you need is a systematic knowledge. Education can give you proper knowledge, of course, but it takes a lot of your time and money. The simplest way to educate yourself in my opinion is to find a good book. That's what I'll do right now - I'll present you a right book that will help you to start your programming career without crawling Internet or paying for expensive courses. It's a hard task since usually books that teach you how to program are boring and contain only theory that can be useful only for experienced readers.


Super book


This book will teach you how to create your programs from scratch. It will tell you how to use the most valuable programming language in game development - C++. It will give you a good basic knowledge of object oriented programming using this language. This book also contains cd (ye-ye) with all needed software for you to start doing real stuff. It's 'You Can Program in C++: A Programmer's Introduction' by Francis Glassborow and Roberta Allen. You can find it on wiley and on amazon. I suppose there is also pdf version available on the Internet so you can find it, read a few pages and decide if it's for you. I extremly suggest you to read 'Before purchase' section in the beginning of this book. I am sure it will properly motivate you.

Here's the important snippet: 'This book is a collaboration between me as a technically knowledgeable and experienced teacher and Roberta, whose qualifications were exactly those that a reader will need. Roberta’s contribution is small in textual content and vast in helping me to write a book that can be used by someone whose computing skills are just enough to load a program, use a word processor, use email and surf the Internet. When she started as
the student half of the authorial team, despite having used a computer for a decade she still had not grasped the concepts of directory structures and the like. Her study of mathematics ended at 16 and her mathematical skills more or less stop with simple arithmetic and those skills needed to keep a set of company accounts.'

Yes, you are right, an impossible thing happend - professional developer found 40 y/o woman who had no clue about programming and asked her to review his book! After that he rewrote every single chapter in such a way so she managed to understand everything. It's such a rare case I must admit! Now this book is the only C++ book I know that is understandable by a normal person with a zero experience in real programming.


You will learn and you will do these things


- How to write and how to launch your first program if you know nothing about programming.

- How to display some pixels on the screen. I think it's like a 'Hello World' program for game developers. This book uses it's own simple toolset so it won't be painful.

- How to process user input via keyboard and mouse.

- How to process input data like strings and numbers via command line.

- Basics of object oriented programming - classes.

- You will write a class sprite that will help you to display complex images and animation.

- You will write a class turtle. You will have a lot of fun implementing this class and playing with your results. Check this video, for example.

- You will write a class font that will allow you to display...your own font via pixels.

- You will complete hundreds of useful programming exercises that cover almost every basic aspect of C++.

Summary

You will understand this shit, I promise.

So, where is that tutorial that I promised? Real computer programming tutorial is not this article, it's the book described above that I highly recommend to you if you are a beginner who is planning to become a real software and game developer.

If you think you need to read something advanced about C++ or Java - leave a comment here or contact me via email or twiter, I have a lot of interesting and useful resources to share with you!

// Bonus for those who already knows about our game project: Dark Forest: Reborn will be written in pure C++. Moreover, natural language processing core of chatbot that we are using in Dark Forest: Reborn is written in C++, too.

No comments:

Post a Comment