Chapter 1 - Introduction

From Frictional Wiki
Jump to navigation Jump to search

Greetings, reader. Welcome to this tutorial on AngelScript.
If you’re here, that means you probably want to get into modding SOMA or Amnesia: Rebirth, but you don’t know how to program the code that makes the game tick. Don’t worry, everyone has to start somewhere, and hopefully, by the time you are through this tutorial series, you will have enough understanding to get started working on your own mods.

Who This Tutorial Is For

This tutorial will be primarily geared toward people who have never programmed before in any language. If you do have some programming experience, you may just want to do a cursory glance over the tutorial series to just get a handle on what some of the similarities and differences there are between HPL3’s scripting language and other popular programming languages.

While this tutorial does take some looks into the interaction between AngelScript and HPL3, it is not for people who are looking for a comprehensive guide to HPL3 game modding. This tutorial focuses on the AngelScript language specifically so as to hopefully provide a more rounded programming experience. This tutorial will not teach you how to set up a map to make it playable, but once you have created a map, you can use the knowledge in this tutorial to do the scripting for that map and make it come to life.

What is HPL3’s Scripting Language

The language used to program everything that happens within HPL3 is a language called AngelScript. It’s a language specifically developed for use in modding and scripting environments, most notably video games. Some examples of other games that use AngelScript are Amnesia, Amy, DustForce, and Overgrowth.

What Tools Should I Use to Code in AngelScript

Most popular programming languages nowadays use an Integrated Development Environment, or IDE, to speed up and streamline the development process. An IDE typically contains various helpful features, such as an auto-complete feature (when you start typing, the IDE suggests names of various things that you could be looking for), code generation (type in a code word and the IDE creates a full block of code for you), syntax highlighting (color-coding the script to make it easier to understand what is what) or refactoring (a fancy term for renaming all instances of a certain word or name).

The most optimal tool we have for HPL3 is CodeLite, after configuring it so that it works for AngelScript. This process is laid out in the. Setting up CodeLite page.

What Other Resources Can I Use For Help

You can check around in other sections of the HPL3 wiki. There is a lot of documentation on how certain things work within HPL3, from a function reference (we’ll get to those later) to recommendations on how to import custom assets. There is documentation for AngelScript as well, which you can view on the AngelScript website. You can also ask for help or guidance on the Frictional Games Discord Server.