Author: James Floyd Kelly
Audience: New users of Kodu
Reviewer: Sue Gee
The subtitle "The Official Guide to Creating Your Own Video Games" gives the clue you may need to knowing what this book is about.
You may be wondering why I'm reading and reviewing a book called Kodu for Kids - kids are not a huge segment of I Programmer's audience. Well perhaps it's for the same reason the Microsoft developers, who had previously worked on Windows Vista decided to develop a game lab accessible to young children - a concern about the shortage of students enrolling in computer science degrees and recognition of the role of a fun and motivating environment to encourage youngsters into programming.
When I first encountered Kodu Game Lab my reaction was that it was odd it was being developed by Microsoft. Over the years I've discovered that lots of interesting an unexpected things go on bits of Microsoft like its Research and FUSE (Future Social Experiences) labs. But one thing these Microsoft outposts seem to be really bad at is publicity. If you have never heard of Kodu it is probably not surprising - and if you have that isn't surprising either as we have covered it on I Programmer quite frequently.
Our most recent report was about the winners of the Kodu Challenge for 9-13 year-olds in this year's Imagine Cup and something that struck me was the world wide distribution of entries, with first placed the winners coming from Iceland and Argentina - quite a feat considering the contest required English.
In the foreword to this book Rick Rashid, Microsoft's Chief Research Officer writes:
Perhaps the biggest barrier to teaching children to create programs has nothing to do with the child but rather with the preconceptions of adults and the relative dearth of people willing or aboe to teach children basic programming skills.
So while this book is accessible to kids who are keen to program games using Kodu it also needs to appeal to adults - parents, teachers, club leaders - who are often the gatekeepers to the resources needed to access Kodu. Currently the prerequisites are a version of Windows 8, Windows 7, Windows Vista or Windows XP. Kodu is free software and its site has introductory videos to get you started - so really it is likely to be adults who need extra help, especially if they want to keep one step ahead, or at least keep up, with enthusiastic young users.
One question raised in the Foreword is what a child needs to know before being introduced to game creation in Kodu and it provides the answer:
"basic reading and writing, very basic arithmetic, simple notions of logic ("true and true equals true", "true and false equals false) and the basic notions of abstraction. Most children have those skills by the age of 6 or 7."
Given that almost all of the information in this book can be gleaned from the very generous use of full-color screenshots, many children of this age will be able to follow the instructions in the book - but it's reading age is probably 10 and above. All readers are advised not to skip ahead (apart from to see what's coming) but to work through it methodically. There's "homework" in the Moving On section at the end of every chapter from Chapter 2 through Chapter 18 and these provide a good way to check that Kodu users are confident to experiment.
The book starts at the beginning - Chapter 1 is on downloading and installing Kodu - and proceeds in a steady, logical, fashion at an unhurried pace. In Chapter 2, you explore the Kodu Game Lab and encounter the basic user controls and tools. Kodu can be used either with keyboard and mouse or with a game controller. The book focuses on the former method but provides Notes for game controller users when the method works differently. Notes and Tip and Caution boxouts are a feature of the book and crop up frequently. You'll also encounter two characters - Rover and Kodu - both of them creatables from the software, who ask and answer questions in a helpful manner.
Each chapter opens with a bullet point list of what you'll learn in it - so Chapter 3 in which you Take a Test Drive lists:
- Programming an Object to Move and Jump
- Taking Rover for a Spin
- Adding and Modifying an Object
By the end of Chapter 3 you can create terrain, place obstacles in a world and move characters around in it (and you've discovered how to save your game) but the author points if that was all that was possible it "would make for one seriously boring game" so in Chapter 4 introduces missiles, target and firing controls, Chapter 5 adds game elements with a second player, points and scoring.
In Chapter 6 you get to Build Your OWn WOrld, a step forward in terms of creativity, and then Chapter 7 looks at increasing the difficulty level, introducing complexity into the game with targets that can fire back or dodge missiles. This chapter introduces path following and using colors to assign paths and control scoring - by now Kodu users are programming for themselves!
In Chapter 7 you start work on a game called Saucer Hunt and subsequent chapters, at the same time as adding more features to add to the fun such as enemies that fight back and timers, more sophisticated game elements are introduced - what to do to end a game, using pages for greater complexity - as you move to Saucer Hunt Extreme.
By this point in the book the author makes references to well known games such as Pacman and in Chapter 10 which is about cameras and viewpoints, Flight Simulator but at the beginning of Chapter 11 he points out:
... there's something really cool and fun about creating a game from scratch with Kodu Game Lab that no one has ever seen or played before.
This chapter is the first of three on Good Game Design (the others are interspersed as Chapters 15 and 19) with tips and tricks for World Design; Game Management and Object Programming. Having gone beyond the basics Chapter 12 is on Adding Conversations and In-Game Instructions; Chapter 13 is on Creating Environmental Special Effects and Chapter 14 is on music and sound effects.
Chapter 16: The Role of the Storyteller: Scripting Cut-Scenes Between Game Action achieves a new level of sophistication and it also has some hints for polishing gameplay, such as hiding scoreboards. Chapter 17 has more hints and tips as it introduces features of Kodu that haven't cropped up so far in the book.
Chapter 18 takes a different tack - it exhorts readers to join the Kodu community to share games and also get (and provide) help. This is the first time the community has been mentioned since Chapter 2, and that was cursory - and for a product that has an active community this seems a bit remiss.
After the final Game Design tips which has advice for Giving Players a Great Experience, there are four chapters each presenting a sample game:
- 1-player Shooter
- 2-player Competition
- Mission Quest
- Side-Scroller Experience
While these games can simply be played they are intended as ones that readers can upgrade and improve.
The short final chapter points to some of the programming tricks that readers who have made it through the 23 preceding chapters will have learned and has some links to online resources. This chapter ends with a list of points (without any bullets) which feels like notes and that the author has run of of steam - or perhaps time!
Finally, an Appendix introduces some of the Kodu Developers and how and why they became involved in it. And if you are already a developer you are likely to be interested in this.
At the end of the book I'm not sure exactly who it is for. It goes to far and to deep for the young end of the potential audience - and also for some of the adults who want to aid and encourage them without actually programming games themselves. It really is written by an enthusiast for other enthusiasts. Let's hope it gets the message across that this enthusiasm needs to be shared with others and that starting kids off on the route to game programming gives them a really good start.
This paragraph, addressed to kids, from the introduction expresses a sentiment most programmers would agree with:
Kodu will also teach you some real-life skills that will help you throughout your education and into your future career. You see, the ability to create a game requires some logical and critical thinking skills.... some of the skills you will learn as you develop your own games will never leave you and will benefit you no matter what career you choose later in life.