7516 & 7517
We continue to be impressed with your work.
Easy to access and practical.
Many of our students choose to create a computer game for their practical project. We use the Defold IDE with Lua code because it is perfectly pitched for A level. We provide step-by-step tutorials so assuming students have some programming experience with sequence, selection and iteration commands they will have no problem accessing and learning Lua.
IN OUR OWN CLASSROOMS
Most of the students we teach have already studied GCSE Computer Science, although some have not. Therefore, we do an accelerated course in Console Basic programming between September and Christmas of year 12 and in the new year introduce students to Defold. By Easter they are making their own small games, and this gives them plenty of ideas for starting their own project in the summer term of year 12.
ARE GAMES SUITABLE PROJECTS?
Making computer games can either be really trivial if you use visual editors such as Kodu or just not advanced enough, for example with Construct or GameMaker. Although it is acceptable for students to write raw C++ or Java code this is often too complex. Students at A level need an IDE that is pitched somewhere in between. They need to write real code because this is what they get credit for, but at the same time they don't need to tackle more difficult aspects such as working directly with the graphics card. Indeed, this is how many modern games are developed with engines such as Unreal, CryEngine, Lumberyard, LibGDX, Urho3D etc. There are several engines that are more suited to students beginning their learning in the field such as Unity, GoDot and Defold. They require students to write real code but also have libraries to speed up development.
We contacted the AQA subject advisers to be absolutely sure that Defold/Lua is acceptable for A level practical projects. It is. AQA do not specify which languages students must use. Instead they present a table on pages 95-96 in the specification with examples of technical skills that make a project suitable for each mark band. All Defold developments meet group C. Most Defold developments will meet group B. Perhaps introducing a high score table with a bubble sort and/or loading level data from a file would be useful to secure this. Group A can be achieved with creativity. For example, AI pathfinding algorithms, recursive maze generation etc. Defold itself does not provide any of these utilities natively so there is plenty of scope for able students to write plenty of their own code. When marking projects, remember that if a project cannot easily be marked against table 1 then provide a full explanation of how you have arrived at the mark when submitting work for moderation.
Defold is an IDE for the Lua programming language. Used by professional and indie studios, it's a proven tool for developing games of all genres. Defold is built and used by "King", the studio famous for Candy Crush Saga. A game that earned the studio over $3.9 billion, being one of the most popular games of all time. Defold is used by more than 40,000 developers worldwide and is a great steppingstone to other industry standard game development tools including Unreal and Unity.
WHAT YOU NEED TO GET STARTED
To develop games in Defold, all you need is the IDE. You can download it free from https://defold.com/download
It is a simple installation and no trouble for a school. We have included a help sheet on potential installation issues on a locked down network! Then use our tutorials to get started.
WHY WE LOVE DEFOLD
The Defold IDE gives you a solid framework for games development but leaves you plenty of room to create your own algorithms too. With Defold you are able to create a highly polished game using industry standard techniques. It's real coding, not drag and drop or menu-driven programming, but many of the more complex aspects of games development such as collision detection, physics, cameras and particle effects are made easy. Lua is not truly object-oriented, but it has so many properties of OOP it practically is:
- Game objects are classes. You use a "factory" to create instances (objects) of a class.
- The .self associative array structure provides for encapsulated class arributes.
- Every game object has methods for init (construction), update, final etc.
- It uses message passing which is a very strong feature of OOP. You have to use this because all objects are encapsulated.
OUR EASY TO FOLLOW TUTORIALS
We have produced step-by-step tutorials for making games with Defold and Lua. Each tutorial starts from a blank canvas, provides the graphics, sounds and code you need. Detailed explanations tell you how the code works. At the end of each tutorial there are extension activities where you can extend the games yourself independently using the skills you learned in the tutorial.
YOU DON'T NEED TO KNOW LUA YOURSELF!
You don't need to be experienced in Defold or Lua at all yourself. We have done the heavy lifting and your students will learn for themselves. Just provide them with the resources and let them go! If their code doesn't work, they will have made a mistake somewhere in following the tutorial. Just back-track with them methodically. We know the tutorials work and are error-free because our own students have made working games with no help from us!
You will be amazed at how much they enjoy these activities and what they can produce with a bit of enthusiasm and determination.
GETTING EVEN MORE
Not only do we provide full in-depth tutorials, but we have a growing library of help sheets and assets that students can use in their own projects. Defold is so well supported in the community you are never far away from additional help and inspiration either.