Menu

Tag Archives: game script

First of all, I wasn’t really sure if I wanted to write this post or not. The data creation framework I made is mostly hacked without proper/formal scripting architectural design. But if this article could help anyone out there in some ways in their programming tasks, even just a little bit, then this blog wouldn’t be a waste. With this in mind, this article will be very brief with very little explanation for its implementation.

This data creation framework I will present enables a data driven architectural design to deliver game data/assets to your game. Since this is a data creation framework, its main purpose is only to bring data; nothing more, nothing less. That means that although the script looks like a full blown scripting language, it is not. This is not like LUA or any other scripting languages that you can define procedural-scripting or gameplay code. This framework simply defines a set of data with an assigned values for the framework to easily read in the data.

If you take a look at the class definition[1], you’ll see lots of containers supporting each data type that the framework supports. Let’s say for example you have a sample script code that looks something like in Code listing 1.

Code Listing 1

Vector3 vec3 = ( 1.0, 3.0, 2.578 ); // 3D Vectors

Code Listing 1: An example of declaring a Vector3 data with a defined value of (1.0, 3.0, 2.578)

vec3, as Vector3 as its data type, will be stored in the Vector3Array container.

So this framework is very simple and straightforward. It doesn’t do anything else other than declare data and this will do fine for the system I’m currently working towards on. The main methods that does the main string parsing and reading are in the GetLine, LoadFromFile, ReadSection, and ReadValue methods.

Here’s the implementation for the framework[1][2]. And a demo script on what the framework can do(Code Listing 2).

Code Listing 2

// This is a sample script used to test Pulse Engine's PulseScript system.

// Below shows some of the features already available.

// A comment. An empty space follows below.

/* MULTI-LINE COMMENT

This is a multi-line comment. Multi-line comments

can span multiple lines and PulseScript will strip

it all out until it hits the closing mult-line comment character.

*/

// Another comment

Section pass // Comment in the same line as the code.

{

String string = "PulseScript can take in strings!!!!";

String multiLineSting = "PulseScript can also take in multi-line strings!!!!\\par This is the second line of a multi-line string.\\par Third line of the multi-line string. Another string in the third line. \\par Fourth line of the multi-string. This is the end of a multi-line string. ";

// Supports boolean values

Bool bool1 = true;

// Supports scalar types (i.e. int and float)

Float f = 3.987654321;

Int n1 = 5;

Int n2 = 10.9257; // This will automatically convert the value to int(floor, so the value will be 10).