Thursday, December 24, 2009
Camera demo
This is the coolest demo thus far as it shows more of the inner workings of the game engine and what it's capable of. The engine is quite beautifully put together and allows for some neat effects, such as multiple cameras and on-screen view ports. It's even possible to load multiple worlds and control a character in each one.
Crossing the Bridge
I uploaded this last week to YouTube.
I was having too much fun with the game engine. I figured I'd see what I could to create a scene with an interesting mood. This is just a simple mock-up of a foggy bridge scene. This took about half an hour to create with the game engine and GIMP to edit the images.
Tuesday, December 15, 2009
What if Double Dragon fighting room was in 3D?
Yet another quick demo. This one is cool as I reconstructed a room from Double Dragon in 3D and then had some fun with the camera.
Quick game world demo
Here's an update. I've refactored just about all the code so that it's now using a new object-based engine. I really can't describe it in a few words, but the benefit of it is that creating games with the game engine should be much easier.
Here's a demo of the game world in action, the last bit to be refactored.
Sunday, November 22, 2009
Some Old Screenshots
New YouTube channel for demos
http://www.youtube.com/user/candygameengine
Tuesday, July 28, 2009
Yum yum yum
In keeping with the theme of candy, sweetness, and food, the name of the scripting language that Candy runs on has a suitable moniker: Yum.
Yum is a simple scripting language that lets you do just about anything related to images, game levels, game entities, screen text, and more. It defines the logic of the game, and is incredibly useful for creating on-screen menus and cutscenes, loading game levels and their inhabitants, and queuing up interesting in-game sequences. In fact, the game engine starts by launching the game module's bootup script.
I wouldn't consider Yum a "real" language, although with a bit of work it could be. It's not very internally consistent; it's a bit ugly and incomplete in a lot of places. That said, it should get the job done for Candy.
I'll have more to say about it in this blog over the coming weeks, but today I will focus on function support. In Yum, you can define functions as you can in other languages. Functions can take parameters and can return a value. You can define as many functions as you like in a script file, but they only have scope within that file. Variables created in a function are local in scope only to that function (I will discuss variable scoping in a future post).
Today I completed support for parameter passing to functions. As soon as I finished, the first thing I tested out was a Fibonacci function. If you're not familiar with the Fibonacci sequence, go educate yourself here. (The great thing about this function is that it's recursive, so I can test not only parameter passing but variable namespaces as well.) I ran it and, of course, it didn't work the first time... After a few bug fixes, it's now working great! Here's how you define such a function in Yum:
def fib(n)
if n == 0
return 0
elsif n == 1
return 1
else
return fib(n-1) + fib(n-2)
end
end
There are a few little things I will briefly mention here. 1. The def...end block defines the function, just like in Ruby. 2. return is a keyword used for returning a value to the caller. 3. Yum is a duck-typed language. (I'll have more to say about that in the future.) 4. Finally, recursion works in Yum!
If you want to use the function above, you can just use it as you normally would in any arithmetic operation, but you already knew that:
x = fib(20) * 3 / 5
That's it for now regarding Yum.
Monday, July 20, 2009
Another screenshot
Sunday, July 19, 2009
Here's a sneak-preview of Pong
Here's an early screen shot of the game engine in action.
Welcome!
Thanks!