Gamemaker and GCSE

gamemaker environment

Gamemaker environment, with list of assets on the left and a room displayed

One piece of software that I’ve enjoyed playing with is Gamemaker. This is a 2d games engine, reasonably easy to use, that can produce games to be uploaded to the website or given to friends as a stand-alone executable file. Gamemaker Studio is the latest version, and is available in a feature-limited free version, an academic version or full professional version. Note that I’ve changed the skin – I find the new default skin (appearance) of the Gamemaker environment very hard on the eyes, and the monochrome effect makes it harder to identify the different icons (You can’t say the blue or the red circle when every single button is in green or grey!).

Gamemaker is a step between Gamestar Mechanic and Scratch or Greenfoot: it is mostly drag and drop elements with settings, rather than scripting (although there is a scripting option) but with more flexibility than Gamestar Mechanic – the interplay of the objects is completely within the creator’s grasp, and there is the full ability to add your own assets: graphics, sound etc.

While Gamemaker serves well as an introduction to programming concepts, it is not a programming environment; rather it is a tool to introduce logical thinking and game making skills.

Using Gamemaker

The Gamemaker environment consists of a list of assets: sounds, background images, sprites, objects, rooms etc. Note that here a sprite is a graphic file, while an object is something that can be added to the game, whereas in Scratch the costume is the graphic and the sprite is the thing that can be added. Each room is one screen (e.g. level selector, start/finish screen), or one game level.

The man object, showing the Event/action interface

The man object, showing the Event/action interface

The basic syntax of Gamemaker is Event -> Action; When this happens, Do this. The creator chooses an event that may happen, e.g. When colliding with… When keyboard <X> pressed… When No more lives left… and then orders the actions that should take place as a result. In this example, the man is designed to move in a maze. He should respond to key presses by moving in the appropriate direction, and should not move when he hits a wall or when no key is pressed.

The direction can be seen/set by double-clicking on the Move in Direction button.

A game can be built up by creating more and more objects, setting their behaviours appropriately and adding them to the game room.

One way to introduce Gamemaker is with a set type of game with recipe cards for extra objects to add in order to increase complexity. Lower ability children can follow the recipes exactly while more able children can start to experiment with settings, and as they gain experience in different types of games they will naturally mix and match.

I find the easiest way to start students on Gamemaker is to start with a maze game. The first objects needed are an avatar and a block to act as the walls. Once the objects are created correctly it is a simple matter to add to them to a room to  create a maze to explore. Then extra objects can be added easily, such as coins to pick up, a door to move to a next level and a bomb or moving enemy. This works especially well as the first step up from Gamestar Mechanic, as the principles of the game/level design should already be understood. With lower ability students, I have created the basics of the game so that they start with something very similar to Gamestar Mechanic, and once they have created the object to move to a new level they work independently on level design while waiting for support to create further objects.

Strengths of Gamemaker

Where Gamemaker excels over Scratch is its built-in facilities to handle things like lives. As it is purpose-built for games, commands already exist to deal with such common features, and it is as simple as saying Event: No more Lives -> Action: Restart game. The game will then finish automatically and restart.

Games such as platform games need a lot more thought, and many objects will stretch children’s ability to work through logically, although features like the built-in gravity property of objects help considerably. Children with low ability/experience will still have high expectations, and so balancing what they want to be able to do with what they can actually achieve by themselves can be a challenge. On the other hand, some children really take to Gamemaker and quite happily explore options by themselves and there are teaching materials available if you look around (some on my site). There are two very good books, The Gamemaker’s Apprentice and The Gamemaker’s Companion, but these are fairly technical and require a good level of ability in order to access them. They are also written for earlier versions of Gamemaker, so might require some checking/adjustment.

Using Gamemaker for coursework/assessment

I looked into using Gamemaker for GCSE and similar qualifications, and found mixed results: OCR GCSE ICT contains a unit on creative use of ICT, for which the solution can be a multimedia presentation, multimedia web pages or a computer game, so using Gamemaker would be a valid way of fulfilling the unit. Other GCSEs did not appear to have that facility, however. Edexcel offers a single and double award ICT, for which the double award contains a unit comparable with the Creative Use of ICT in OCR; information on the types of tasks covered is limited, but the Examiner’s Report suggests that the expectation for a game-based solution would be a scoring system, rules to play/win, single player or turn taking and the ability to include user-created assets, so that would suggest Gamemaker is indeed a viable option.

Other exam boards appear to focus on business use of ICT or traditional multimedia such as web pages or presentations. Even BTEC ICT overlooks game making as a valid use of multimedia, focusing instead on graphics, animation, video, sound or programming.

More on BBC Basic

Since my previous post about BBC Basic I’ve been prompted into looking into the topic further, and it appears the language might have something going for it after all – it’s very similar to the pseudocode used by OCR, and OCR seems to be supporting it, as they have provided training materials using BBC Basic to illustrate solutions.

One problem the language does seem to have is a lack of materials available, so I decided to have a go at remedying that, and have produced a KS3 workbook, similar to my Python workbook, which provides guidance into the first few steps of programming – input, output, variables, IF statements and loops – using BBC Basic, including simple exercises. My intention is that the booklet provides enough information for the more able students to progress by themselves, while others will benefit from extra guidance from their teacher.

I myself missed out on BBC Basic, as by the time it was introduced in schools I was at the top end and about to leave, but I did start off with Sinclair Basic, which was very similar. I do miss the old days of line numbering, but I have to admit that these days it’s far easier! If there is a generation of teachers out there who need to learn how to teach computing in a hurry and they’re already familiar with – or even just have a passing acquaintance with – BBC Basic, then capitalising on that would seem to be a viable way forward.

I intend to look further still into BBC Basic and pseudocode, as students are expected to understand pseudocode anyway for OCR GCSE Computing, and being able to write programs in pseudocode that translate directly into executable code would be useful, but I do feel that there needs to be some sort of introduction to another language as well. Watch this space for more news on training materials.

I remember reading once (a long time ago, admittedly!) that universities don’t want students who have already learned a programming language because they get confused when learning a second, but on the other hand those who already have experience in two find it far easier to learn a third. I myself have found that it’s the thinking and planning skills that are vital – once you understand exactly what you are trying to do, finding the exact syntax in the language of your choice becomes the easy bit. It’s like learning to drive a car: when you first learn, you’re bothered by every small difference in another car – the side the indicator is on, the biting point of the clutch – but once you gain more experience you’re aware of the differences and can work better with the similarities. In the end it doesn’t matter what sort of car you learn to drive in, as long as your skills and knowledge can be easily transferred to any car.

Gamestar Mechanic and the new computing curriculum

learn to design video games with gamestar mechanicOne resource I was pleased to come across was Gamestar Mechanic. This is a purely web-based resource that teaches elements of game design. It’s aimed at 4-9th graders (I make that 9-14 year olds) and offers them a chance to move from playing games through fixing games to making and sharing their own. Of the many resources I’ve used with key stage 3, it’s the one I see consistently used voluntarily by the students outside of formal lessons. As we’re partway through our year 7 computing unit, which so far has looked at Scratch, I thought I’d take a closer look at GSM and see exactly what offers in terms of learning and how it fits in with the new computer-orientated curriculum.

One feature that makes GSM easy to use in class is that the registration system does not require an email address. It does, however, have a system to recover passwords that depends on students being able to remember a username and sequence of favourite colour, subject and animal, which isn’t ideal (it can change from attempt to attempt, let alone lesson to lesson!) so this time round I intend to make students make a note of their user name and passwords somewhere secure. They can use any nickname as their user name as long as it’s not already taken, but often it’s easier to tell them to use their school log-on names and passwords rather than spend hours trying to think of something suitable.

Once registered, the student is presented with a quest to work through. There is one quest available free, while others are available for those with premium membership ($19.95 for premium membership, and it may well be that students are interested enough to get their parents to pay for it, but free membership is plenty for school use).

There are two other areas of the site that will also interest users: in the workshop they can create their own games, while in Game Alley they can publish their games and try out those made by others, but more of those later.

episode 1 screen

Episode 1 screen

There are teaching materials provided by the website to serve as an introduction to the site, in the form of five lessons. Lesson 1 works through episodes 1 and 2 of the quest and then provides an opportunity to reflect on learning so far. The resources provided for lesson 1 are a set of cards that can be printed and used for matching – one set provides images of various concepts, while the other set provides names and explanations of those concepts, which are grouped into mechanics, space and components. For example, under the space group you will find bounded and unbounded space, under components you will find health meter and avatar, and under mechanics you will find collecting mechanic and exploring mechanic. This will give the students a whole collection of key terms and concepts to build the rest of the unit on, but I wonder just how many they will be able to take in and remember. The suggestion is that in small groups they work to pair up concepts and images and then everyone goes through the answers. I’m considering giving them worksheets with the concepts on and the cards with the names on, so they can fill in their worksheets and keep them for reference.

Lesson 2 introduces the core design elements, which are defined as space, components, rules, mechanics and goals. Episodes 3 and 4 of the quest provide a chance to investigate ways of changing each of these and showing the effect on the games. The resource provided for this lesson is a graphic to serve as a reminder of the core design elements.

Lesson 3 looks at balance, investigating how the different core design elements balance a game to achieve the right level of difficulty. This focuses on episode 5 and then gives students the first opportunity to build their own game. This ability is there right from the beginning, by the way, via the workshop, but each challenge the player completes in the episodes unlocks another feature they may use, either a different sprite, different background or something similar, so the further through the quest they get the more they have to use in their own games.

gamestar mechanic game creation screen

Games design screen

Lesson 4 gets the students to design their own game, and offers challenge cards for different themed games should you wish to use them.

Lesson 5 encourages students to play-test each other’s games and give feedback via the sheet provided. This guides them into answering questions like “What were the core mechanics of the game?” “how well was this game balanced?” and “how could this game be improved?”.

So far so good, but what got me really thinking was when I started looking at the new computing curriculum and how Gamestar Mechanic might be considered to fit into it, because that was when I struggled to find anything in there that would link easily to games design. While games design is only a small part of what computing offers, at the age of these students it’s their most immediate attraction and links in most closely with what they already enjoy doing, so whether it fits into the computing curriculum or not,  I feel it has a lot to offer.

One aspect of the computing curriculum is to use two or more programming languages. Does this provide a programming language? Well no not really, but it does provide objects that have attributes. By changing those attributes the student interacts with elements of the game and causes changes. While this does not count as a programming language, I would certainly argue that it is an important step towards moving into object oriented programming in systems such as Greenfoot, by providing a way to play with parameters and settings in a very controlled and accessible way.

Object oriented programming gets no mention in the computing curriculum, which is a shame. I’m starting to get the impression that it was written without the needs of children in mind; I can’t imagine too many children being excited at learning sorting algorithms, but give them a chance to learn games programming and they’ll be much more engaged (I know that object oriented programming and games design are not the same, but the latter provides a very good way into the former). What they learn via games design can then be applied more widely as they develop their skills.

game alley screen

Game Alley – published games

What about the creative element of the computing curriculum? Undertake creative projects that involve selecting, using and combining multiple applications … to achieve challenging goals… well it’s selecting, using and combining multiple elements and experimenting to see how they work together in order to achieve a playable game, does that count? It’s not really multiple applications, although it is multiple elements, which can include sound. What students can’t do with this, as far as I can see, is design their own elements. I’ll be taking a look at Gamemaker very soon, which is a natural successor to Gamestar Mechanic and does offer this facility.

Create, reuse, revise and repurpose digital information and content with attention to design, intellectual property and audience – well it’s doing some of that, not intellectual property maybe, but attention to design and audience, and combining the elements in a suitable way, particularly if you use the challenge cards to set a specific purpose or setting for the game.

Maybe Key Stage 2 would fit it better? After all, if the students haven’t been through computing at key stage 2 there’ll be some need for overlap for a year or few. Here we have solve problems by decomposing them into smaller parts, use sequence, selection and repetition in programs; work with variables and various forms of input and output, use logical reasoning… I would argue that it covers all those, although maybe not in the way those who created the curriculum were expecting them to be covered.

What it does do is provide a common language and set of concepts for games design that can then be developed further in many directions, so that students can move on to programming their own objects while already aware of concepts like level design, object interaction, responding to events and parameters.

Key stage 4? Here we fare much better.  It should provide a chance to develop their capability, creativity and knowledge in computer science, digital media and information technology and to develop and apply their analytic, problem-solving, design and computational thinking skills, all of which I would say it does. Considering the restrictions on it, however, I would suggest that GSM would need to be used as a springboard to Gamemaker, Greenfoot or Scratch, all of which are much more versatile and provide more opportunity to incorporate a wide variety of imported assets. It does, however, have the advantage of allowing students to focus on the game design elements and how they interact without worrying too much about how they create them, so they are not trying to learn everything at the same time.

So strangely, this seems to fit in far better with the older key stage than with the younger ones (although, of course, the key stage 4 curriculum was deliberately left very vague in order to fit in with the many ICT and computing qualification courses already available).

profile page showing badges earned

Each games designer earns badges as they learn

Looking at the old ICT levels, Gamestar Mechanic seems to fit in much better: strand 1 covers planning, developing and evaluating systems, using feedback to develop work, strand 2 covers creating sequences of instructions and changing variables and explaining the impact, and strand 3 covers presenting information in a range of forms for specific purposes and audiences.

In summary, while GSM doesn’t completely seem to fit the new computing curriculum, it does seem to have a lot to offer as an introduction to game making, and as part of a larger unit or with explicit teaching on various aspects such as changing parameters and looking at audience and purpose, it does have a place in either late key stage 2 or early key stage 3 learning. More importantly, I would argue, it engages students and keeps them coming back for more, and shows them the satisfaction of creating their own games for others to play and comment on. Any frustration they eventually feel at the limitations of games created through this method can then be directed into Scratch etc, where they have much more control but need to create the behaviours themselves.

game review screen - players encouraged to fill in detailed responses

Game review screen

And that reminds me of another aspect that appears to be missing from the new computing curriculum: there is no mention of collaboration in there, of working together as a team to achieve a common goal and of supporting each other in their learning. This was present in the old system (use ICT to communicate and collaborate) and would appear to be a vital digital literacy skill, considering the extent to which young people use ICT to share ideas in the real world. In Gamestar Mechanic they have a chance to do this by writing reviews for games.

Still, until the new computing curriculum is confirmed and we have more concrete information about what it entails and how to deliver it I’m happy that my students will indeed experience the games design fun of gamestar mechanic.

 

 

Python at key stage 3

a simple programI recently had the pleasure of introducing some year 8 and year 9 pupils to Python. They had previously dabbled in Scratch, but the idea of writing formal text-based programs was new to them, so we took it slow and steady.

The first lesson was mostly taken up with getting to know Python – we started by typing commands directly into the shell, and then they learned how to open up a new window, type a simple program into it and run the program. By the end of the first lesson they could type up print statements and simple maths statements into a program listing, save it correctly and run it.

Lesson 2 introduced the idea of variables and input. I reminded students at the beginning of the session how to start up a new window and create a program rather than type into the shell, and how to save their program with .py on the end to conserve the colour coding. They were also starting to discover the pleasures of debugging, and learning to look carefully at their code to spot errors. They helped each other out with this, and I showed them how to check not only the area of code that Python highlighted as a concern, but to check just before it as well, as often the error was missing speech marks or closing brackets.

Lesson 3 was where the real fun began, as we looked at if statements. Combining these with input meant that we could create a question and answer program, and combining that with a variable called score gave them the option of creating their very own quiz. Reactions varied, as some struggled to get their program running and grew frustrated while others started to really fly, creating inventive listings that checked for a user name and password before allowing access to the quiz. Generally, they seemed to enjoy the sessions, and my favourite reaction was that of frustration expressed as the code refused to work, followed by that surge of satisfaction and achievement as the error was spotted and fixed.

Our work developed by way of writing programs to solve problems, and for this I used my flash resources. This had the advantage of offering different levels of challenge and support, so that those who were able could work at a higher level while I could help those who were really struggling. By the end of the sessions all students understood a little more about how programs are made and they had learned that little details like capitals and spelling really matter. Most were starting to see how their program worked and how to fix errors and develop the functionality, while a small number really enjoyed the unit and were starting to come up with their own ideas and solutions.

This was only a very brief introductory look at programming, but it was enjoyable and worthwhile as a taster of computing rather than ICT, especially for those going into options, and encouraged students to think carefully and increase the accuracy of their written work. I saw expressions of satisfaction from both ends of the ability level, as those who struggled finally got something working while those who experimented showed off what they had managed to work out for themselves. Students whose first reaction as “This is stupid” moved over to “Oh, I see what the problem is”, as they learnt that the computer would do exactly what was it was told to do, and discovered for themselves the harsh realities of Garbage In Garbage Out. Even if they never see another Python statement, I believe they’ve taken away the understanding of how carefully you need to express yourself in order to be properly understood and how accuracy leads to better results.

As a result of my experiences I’ve developed a workbook and some flash resources, which you can find on my website here.

 

A Flash resource for Python

As I introduce Key Stage 3 groups to Python, I’m finding that some of them really “get it” and have started trying to develop and experiment with code, while others really struggle to make any sense of it at all.

In order to help them work more independently at all levels, to free me up to give more targeted help where needed, I wanted a resource I could use that would offer support at all levels.

I had an idea for an interactive Flash resource, to offer different levels of challenge, with support available if needed. I keep looking at Flash, telling myself that it’s not worth going into, and then reconsidering, so it was an ideal opportunity to see if I could make good use of it after all.

developing a resource in flash

Developing a resource in Flash

I came up with a simple idea for a coding project – working out the costs of something with a fixed element and a sliding element – that was within their mathematical understanding as well as programming experience but complex enough to require some thinking. Once the basic idea was there, I found ways to develop it, from a simple changing of the fixed and sliding costs to adding a discount which would require an if statement, and started to build my resource.

This was my first time creating an interactive flash resource for a specific purpose, but having tried out various tutorials I had at least a vague idea of how it worked, and as I progressed I found that all that theory started to make sense and I got a much clearer idea of how to proceed.

The end result was a resource that posed a problem, provided listings for students to copy if they needed, and then provided three levels of challenge, each of which could be tackled independently, again with code to copy if needed.

I tried it out with students of various abilities, all of whom are very new to Python, and all completed the basic program, the majority tried at least one challenge and the bravest went straight to the highest level of challenge.

Easy challenge

Easy challenge

While I wouldn’t recommend copying code indefinitely, students at the early end of learning to program definitely benefit from having something to work from, as checking capitals and spelling can be enough of a challenge to start with! They are starting to look more carefully at what they do, and to see how to adapt their code, and some are starting to show the buzz of excitement at getting a program running that shows they are getting a real sense of achievement at coding rather than just being an end user of software.

I’ve since adapted my resource to a second project, and while the first took a couple of evenings to complete the second one took only a couple of hours, and felt much easier to do, proving that Flash is a viable tool for creating interactive resources.

Both resources are available on my website.

 

The new computing curriculum

Back when I was at school, people suggested to me that I could work with computers. Believing that working with computers consisted of entering data and typing, I rejected that option outright, unable to think of anything more boring.

Then I got my hands on a ZX81, and I discovered that while using a computer might be boring, someone actually had to write the programs for others to use. That was where my interest lay, and where I found real pleasure.

I completed a degree in computing and IT, and by the end of it had a growing understanding of how much society is dependent on computing systems, and of how problems are solved by careful thinking and planning.

At this point I was also trying to earn some money, and extended the childminding training I was doing by getting a job teaching in adult education. I was teaching beginner IT classes, so while I had done all this marvellous learning, I was now teaching how to use a mouse and use basic spreadsheet formulas. It wasn’t the most inspiring of subjects, but it was enjoyable, and at least in the early days I was learning more about my subject all the time as I came across problems that others were having.

I went further by qualifying to teach in a secondary school; the business ICT was not the most interesting of topics, but there was the creative and computing sides to tempt me. The first school I trained in used Flash and Fireworks, and the second had a strong control element, and both of these encouraged me to believe that the subject was well worth teaching.

It seems to me that the trouble with ICT is that it’s easy to teach but hard to teach well. Most people these days have some level of ICT skills, but generally the subject seems to have a bad reputation as far too often it’s taught by people who have no real training in it and don’t have any real knowledge to pass on (I rush to add that this is the general impression I get, not from my very limited first hand experience).

I have sought to keep a balanced curriculum, including creative, business and more technical elements, within the current guidelines, and I feel this is really the best way to go. The skills of word processing, basic spreadsheets and (to a lesser extent) databases are still important, even if you’re only running a home. Being able to balance a budget using a spreadsheet, write a well laid out letter, use the web efficiently and understand the consequences of using ICT for a business will be applicable to everyone, surely. Being able to express yourself creatively using ICT is also important; I’ve long had admiration for those who take ideas from the world around them and modify and develop them through use of technology, and I feel creativity is essential to living well. That’s not to say the new curriculum is wrong: you can’t possibly make the most of computers without having at least a basic understanding of how they work and the implications of them.

Now the curriculum is being completely overhauled. I should be rejoicing: it’s changing to embrace the side of the subject that first attracted me. I only became interested in computers when I found that I could write my own programs; surely I should welcome the chance to encourage that interest in others?

Sadly, things are not that straightforward. The draft curriculum does seem to be written in a rather biased way; maybe this is simply a reflection of the extra detail needed for the new elements, but it would be a shame if in the pressure to include computing elements the creative side was lost, not to mention the less interesting but still important business ICT.

Partly prompted by these changes, there are discussions taking place on the future of the subject: there are fears that the focus on computing will drive students away, or that the lack of teachers available to actually teach computing will mean that the subject will become still more watered down and weakened. I was shocked when I did my training to discover that while to teach maths you had to have a degree containing at least 50% maths (and that means maths, not accounting or economics), to teach ICT all you needed was an A level or equivalent experience.

There are already schools where ICT is taught in a cross-curricular way rather than in discrete lessons, and this worries me; while there are teachers who will encourage the use of ICT to complete work, are they actually prepared to teach the ICT skills needed, or are they dependent on the skills the students already have? Will they merely take advantage of the fact that students have a basic ability to type and correct documents, or are they willing to spend time teaching how to use audacity, for example, to create a podcast, thereby increasing oral skills? As long as there are discrete ICT lessons where the students can learn these specific skills, I can imagine some teachers taking advantage of those skills, always assuming they have the knowledge themselves to support them, but I don’t see much space in an already crowded syllabus for the extra teaching of ICT skills alongside the specific subject knowledge, which is a shame as using two separate skill sets will surely develop students’ thinking skills and ability to relate learning to different areas.

The new curriculum is still under consultation, and I have to trust that by the end of the consultation period it will feel more balanced. In the meantime, I intend to do the best I can to encourage good ICT and computing teaching, by developing and offering materials to help support teachers in the new curriculum, including cross-curricular learning. It worries me, for example, that primary teachers are expected to teach computing, which for many must be completely new and alien. I also see many opportunities to combine ICT with other subjects, but feel that often teachers just don’t have the time to investigate and create materials suitable.

I’ve no idea how this will pan out, just as I had no idea when I started this blog how it would develop, but it’s a good excuse for me to put my own skills and creativity to use, and to extend my own ability and knowledge. And so www.coinlea.co.uk is born. Not much there yet, but I’ll be adding resources as I develop them (or find them in my filing system!), safe in the justification that as I’m offering them to others I don’t need to feel that time spent on them is mostly wasted.

Feel free to take a look, make use of anything you fancy and suggest anything you’d like to see in there.

 

 

codea – coding on ipad for ipad

While browsing code.org last night I came across a link to an ipad game that promised to help teach sequencing and control – a game called cargo-bot. There was mention of the app that was used to create it as well, so I went off to investigate.

a screen of cargo bot, showing a puzzle

cargo-bot, showing all tools available. Match the pattern at the top to complete.

Cargo-bot itself is free, and provides exactly what was promised – a way to practise sequencing instructions. If you’ve ever played with light-bot, it’s very similar, but also offers conditional instructions. The aim is to move the coloured crates and stack them in the right place in the right order, using only commands like left, right and down, plus the facility to create subroutines and loops.

The really interesting part comes when you start looking into how Cargo-Bot was created. An app called Codea, which costs £6.99 ($9.99 in the US, I believe), provides a way to code directly onto the ipad using Lua. The coding for several examples is included, and this includes the complete listing and graphics bundle for cargo-bot.

codea's front page

codea’s front page, showing example projects and link to wiki and tutorials

While learning yet another language isn’t necessarily the best idea, I couldn’t resist, and so bought and installed the app and started playing.

my game in action

my game in action

Within about an hour I’d produced my own program that drew a character on screen who responded both to gravity (tipping the pad) and touch.

The longest aspect of this coding was having to switch constantly from the app itself to the wiki with its tutorials, find the right place in the tutorial and then swap back again and try to remember. I did try to borrow another ipad so I could use both at once, but ended up reverting to the tried and tested method of paper and pen!

codea's editor adds extra buttons to help type in code

editor, showing the quick buttons on the top row

The editor seems to provide a lot of help, for example a button to provide brackets, another to provide speech marks, both leaving the cursor in the middle for typing, and a quick += button. Pop-ups provide help with coding, and I did eventually find a comprehensive in-app help system.

built in reference guide

built in reference guide

There are a couple of graphics bundles provided, plus a program that lets you design your own sprites pixel by pixel. You can also link it to your dropbox account and use graphics you’ve placed in there.

I haven’t looked into how you export the game from codea to become a stand-alone app, but cargo-bot is living proof that it can be done and the game can then become part of the app store.

Even without this, the app provides a fascinating way to write your own code not only for ipad but on the ipad itself.  While I wouldn’t rush out and buy a class set of ipads just for this, given the opportunity to try it out I think it would be an excellent way to encourage interest in those who want to try coding. There’s a wiki that’s easily available from within the app, which includes tutorials, and while typing on an ipad can be fiddly, the editor provides enough help to take away a lot of the pain.

code listing

my complete code listing

My program has the sprite moving across the screen to respond to gravity (tilt the pad and it moves) and to touch (it jumps to the touch point).

Code is colour coded and clear to read, with parameter help and code hints. Auto completion options help to make ipad coding a straightforward affair.

One thing that I’m reminded of when looking at this is that while once upon a time it just felt like there was hardware and there was software, nowadays there are the hardware providers, the end product coders and a whole variety of people in the middle, who are providing things like game engines, physics engines and so on – the steps in the middle seem to be growing fast, each level building on the last to produce an end product that is the result of many hours of work by many people.