Scene Animator 'Alpha' - [Pre-release is out!] [Almost 'alpha']

Last updated on 21/November/2013 - visit http://animatoralpha.tk for latest updates

[b]Hello everyone,

It has been a while since I have last made an update on Alpha, I’ve been busy with school exams and studies and yadda yadda. I am submitting this project soon, and I’d like some feedback on existing work so far.

You can download the project here: http://animatoralpha.tk/

Please post any bugs & problems (I will include a guide later, but just have a play around for now. Remember the dialog module in Beta is still a WIP!)

Thanks![/b]

3 months has passed since the project started, I’m still busy working on the Scene Maker part of the animator. Currently I have just finished the entity module, which makes 3 module complete (tileset, scene and entity).

The scene is working fine in Alpha, and there’s an update video too in the last post since embedding too many YouTube videos on one page isn’t kinda nice.

Another screenshot to show the entity module, here I customize the movement animation of riolu walking right.

And the last one, showing how users select the right frame size for their entities:

This is it for now. Visit the last post for the update video, visit Alpha’s website for source code (And you can clone it and get it early :p). Stay tuned for more!

Original Post Below

Alpha is a flexible animation library based on Slick2D

Prelude
A few weeks ago I was sifting through YouTube videos as usual. Until I came across some videos spoiling the ending of Pokemon Mystery Dungeons: Red Rescue Team and Explorers of the Sky. I was always fond of PMD games, but I either can’t be bothered finishing it or they are always too hard.

After watching the videos, they literally brought me to tears with the twist in the storyline and separation of two buddies. That night was unforgettable, and I’ve decided to work on a scene animator ever since.

Alpha isn’t just an animator for Pokemon. It works for any 2D top-down games as long as you got the graphics for it… At least that’s what I’m aiming to do :slight_smile:

About

Scene Animator Alpha, or Alpha for short, is a lightweight slick2D animation library. The goal for this project is to dynamically generate 2D top-down game scenes for either stand alone enjoyment or game intro/outros (which would require alpha to be embedded into a JFrame using CanvasGameContainer).

The focus on Alpha is to make it as dynamic as possible, which means that users can:

  • Manually define entities with different width, height and textures
  • Manually define tile textures, ids and animation for tiles (for tiles such as water & lava)
  • Create your own scenes in games, or for your own game, with the entities you made, map you made etc.
  • Create custom animations for separate entities
  • And much more!

The project is designed in Java and will eventually come with 2 jar files: One is the scene player, which plays the scenes in the projects folder. The other being a GUI scene maker (which is still in early stages of development), allowing the users to create custom scenes with ease.

Most of the project files in the hierarchy are XML files which are straightforward to edit, and Alpha will use its own custom ‘Alpha Script’ to animate and assemble everything. The script will come with good examples and detailed documentation.

Currently alpha is still in early stages of development, but an ‘alpha’ for Alpha is going to be out soonish. I’ll keep this updated, but in the mean time follow @DeathJockey on Twitter for more screenshots!

Here’s a video I uploaded a few days ago showcasing the entity movements I’ve done:

FvR3By4fJr4

And the entity files I used are not unified, as seen below:

Riolu:

Bulbasaur:

However, by dynamically defining frames in the entity XML file, the same animation effects are achieved:


<entities>
	<entity name="bulbasaur" sprite-size="24x32" sprite-location="bulbasaur.png">
		<moveset type="0-up" frames="6,0;7,0;8,0" />
		<moveset type="1-down" frames="0,0;1,0;2,0" />
		<moveset type="2-left" frames="3,0;4,0;5,0" />
		<moveset type="3-right" frames="9,0;11,0;10,0" />
		<moveset type="4-sleep" frames="14,0;15,0" />
	</entity>
	<entity name="riolu" sprite-size="24x32" sprite-location="riolu.png">
		<moveset type="0-up" frames="0,1;1,1;2,1" />
		<moveset type="1-down" frames="0,0;1,0;2,0" />
		<moveset type="2-left" frames="0,2;1,2;2,2" />
		<moveset type="3-right" frames="0,3;1,3;2,3" />
	</entity>
</entities>

Where the co-ordinates in the frames attribute are x,y pairs separated by semicolon.

Alpha Script
Now this is something that is still in development and is still being drafted. What I’ve shown below is a proposal of roughly what it should look like:


@scene set Cliff
@audio load tune.ogg

@graphics set overlay state on
@graphics set overlay color 0,0,0
@graphics set overlay alpha 0

@audio play tune.ogg loop
@audio volume set 50

@dialog {"Voice";5;"Hi";1000}
@dialog clear

@scene entity add bulbasaur
@scene entity add riolu

@camera track bulbasaur

@dialog {"Bulbasaur";0;"I'm so confused of which one to implement";1000}
@dialog clear
@dialog {"Riolu";0;"Perhaps your fans could provide some suggestions";1000}
@dialog clear

@graphics effect startle bulbasaur

@dialog {"Bulbasaur";2;"Me? Fans? You got to be kidding me!";1200}
@dialog clear
@dialog {"Riolu";1;"Look on the bright side!"}
@dialog clear

@scene entity moveto riolu 21,21

@dialog {"Riolu";0;"Ugh, got to go!!"}
@dialog clear

@dialog3p {"The voice ends the show";1000}
@dialog3p clear

@end terminate

The script should be relatively straightforward. It is simply ‘@command parameters…’ but with the exceptions for dialog commands.

Project website: http://animatoralpha.tk
The project’s source is also available on GitHub: https://github.com/DeathJockey/Scene-Animator-Alpha

Finally, I am open to any feedbacks and suggestions. The download link will be provided as soon as it is ready to be tested, but check out the code otherwise. Thanks :slight_smile: