Posts Tagged ‘Virtual Machine’

Update5: Timelapse video (fourth part)

Posted by (twitter: @PavelDlouhy)
Monday, October 29th, 2012 1:41 pm

Timelapse video (speed: 10x) – Work on my Virtual Machine and work on my new microgame Tiny World Adventure developed inside this new VM.

My LD23 entry: Tiny World Adventure. Consider to provide constructive criticism. 😉

Enjoy!-)

Hi, I like to introduce to you a new script language: ExecutionCode
I didn’t inted to create a language for games, but of course it can be used for games. It’s inspired by normal assembly, but cutted down to just one parameter. Also there are huge changes to some other things. But look at your own at a small application (it counts to 10):

//All commentars are done c-style
/*so of course these multiline commentars
are supported!*/

/*
programs are not splitted up in functions, okay basically they are,
but I call them modules and all the functions imported from C++ have their own name :)
*/

//a command is splitted up in group name and function name
main {
//those square brackets indicate variables
system.alloc [counter]
system.alloc [isNowEnd]
//first I push a raw numeric value (here 1) on the param stack
system.push 1
/*then the system.set command pops that value from the param stack and copies it to the given
variable.
If you put something on the stack, the value! is on the stack so if a command wants to change
a variable it has to require it as param*/
system.set [counter]

//this is a jump mark, because you have to implement your loops on your own
LoopStart:
//first I print the variable to the world
console.println [counter]

/*a mathematical operation is done by pushing the two values on the stack and give the
target to the command
*/
system.push [counter]
system.push 1
math.add [counter]

//and now I want to if [counter] came to 10 so I use the logical.lesser command
system.push [counter]
//these brackets indicate a ressource
system.push
logical.equal [isNowEnd] //so if counter==11 then isNowEnd=1

//and if isNowEnd==1
system.skip [isNowEnd]
system.jump “LoopStart”

//don’t forget to free the variables
system.free [counter]
system.free [isNowEnd]
}

//a ressource can be like variables a number or a string
//and here is another feature: if you put a ‘#’ in front of a number you can type hexadecimal
//decimal, this is 11
ressource #b

The code might look irritating, if so, delete the commentars and try to understand just the actual code.
The compiler/interpreter application is done in the meaning that this code can compiled in bytecode and this bytecode can be executed by the virtual machine in the same application, but it isn’t enough finished (particularly the error handling procedures), so it won’t be released now, but I hope I’ll get this done before next LudumDare. I’ll also write a full reference of this lanuage, the bytecode, the virtual machine and the compiler.
If you have any questions about it just ask me.

Helco

Update4: Timelapse video (third part)

Posted by (twitter: @PavelDlouhy)
Wednesday, June 13th, 2012 12:15 pm

Timelapse video (speed: 10x) – Work on my Virtual Machine and work on my new microgame Tiny World Adventure developed inside this new VM.

My LD23 entry: Tiny World Adventure. Consider to provide constructive criticism. 😉

Enjoy!-)

Update: My microgame is available for Windows!-)

Posted by (twitter: @PavelDlouhy)
Tuesday, April 24th, 2012 7:25 am

My microgame Tiny World Adventure is now available also for Windows. Enjoy!-)

Note: Ingame editor (unlocked when game is finished) is not yet available on Windows version (OS/X only) .

This microgame can be finished in few minutes. Longest time since now (played by one of my friends) is 10 minutes. 😉

[cache: storing page]