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:

That sounds cool! Pokemon Mystery Dungeon is awesome!

Why do you have a @ before every single command? You could parse it just as easily without it.

Haha, finally someone replied to this thread. I’m working quite hard on it and I think people can expect a release soonish.

The reason I’m having an @ before every command is so that it denotes that it is a command statement. There will be other types of statements such as # (for comment) and $ (for internal variables) and I suppose having a ‘@’ is like a lazy man’s way of checking if that line is a statement because all I have to do is:


if(statementLine.startsWith("@") {
   //Yay its a statement
}

There are other ways to do this, but that’s one way I went with :slight_smile:

You could have done it like this:


if(statementLine.startsWith("#") {
   //comment
}
else if(statementLine.startsWith("$") {
   //internal variable
}
else {
   //command
}

Exactly, that is another way of doing so. Personally I prefer to go with an @ symbol, it sort of indicates that it is something meaningful. I mean, having some special statements with prefixes and most doesn’t isn’t a good look :slight_smile:

Quick Progress Update
So right now I’ve made quite a few statements functional and just recently completed execution of other script files within one script file. Now there are alot of bugs so far, so I’m going to have a bug-squish this week and some of the next.

Expect the ‘alpha’ of Alpha in about 4 - 7 weeks :smiley:

Here’s a little update video to satisfy your retina

5uBNntYeAfk

It shows you how to setup a simple project with SublimeText using a regular Alpha distribution (still no download link just yet) and also some fo the scripting engine, unlike last time, where I had to manually control the entity on-screen using mouse. This time everything is fully animated with SCP
scripts… Watch me derp too, I can’t believe I’m not familiar with my own script language o.0

The next things on the list are still script related, but I’d love to do some audio stuff soon as well. I hope you guys enjoy and leave any feedback :slight_smile:

mrdeathjockey

The project is finally ready to see the community for the first time. Some internal stuff are still being worked out, but some scripting basics are there and I’d like the community to try it out, and give me feedback, submit issues and suggestions on new commands etc.

Here’s the website to download Alpha: http://animatoralpha.tk/

It requires Java 1.7, and should run without any errors. It might be slower starting up on windows than on macs, but I haven’t tested it out on Linux, so if anyone could help me test it, it’d be much appreciated :smiley:

I’m still working on the wikis, use the example for now and have a play around. Perhaps try setting up your own project with your own folder hierarchy, and submit any bugs found. If something goes wrong when executing the script, post your script contents alongside with the exception you are getting in the console/cmd also.

I understand the fustration with working on scene files and laying down tile IDs, this process will be made much easier when I get the GUI ‘scene maker beta’ ready.

Recently Done

  • Audio Loading and playback
  • Basic Scripting Engine
  • Animations and movements for Entities
  • Entity Loading
  • Scene Loading
  • Tile loading

Planned/Upcoming

  • Fullscale Scripting Engine
  • Documentation & Examples
  • Scene Creator Beta
  • More commands and more functions

Thanks :slight_smile:

Wow i’m impressed. I’ve been wondering when someone would make something like this :slight_smile:

Thanks, it has been on my mind for quite a while now, inspired by Pokemon Mystery Dungeon initially. I’m currently enhancing performance and adding features such as font and dialog support :slight_smile:

By the time that is done I guess I can call it a pre-release v0.4 and get it released :smiley:

Looking amazing! Can’t wait to use it :slight_smile:

I’ve just released pre-release v0.4 of Alpha. This new version features 2 visual changes and a lot of background stuff which you won’t notice. You can download it from the Alpha website: http://animatoralpha.tk/

Changelog:

  • Fonts are now implemented (dynamically loaded)
  • Fonts can now be drawn or typed to the screen
  • Support for fade-in and fade-outs at a custom duration and custom color
  • SCP engine bug fixes
  • Overall performance fix
  • Overall stability fix
  • Smaller issues that is not worth being mentioned fixed

Again I’ve included an example project. Some feedback, suggestion or criticism would be appreciated :slight_smile:
Submit any issues on Github or just here.

Have fun!

It sure has been a while since this project first started and it has made a lot of progress. The screenshot shown below is a basic summary of what is implemented after pre-alpha release v0.4:

I’m going to start work on an user-friendly GUI ‘scene maker’ called Beta, which will be packaged as part of the ‘alpha’ version of the Scene Animator Bundle. Stay tuned for more!

Oh dang, I might just use this :smiley:

Usually I code these kinda things myself, but if it’s plug-and-play and slick enough, I might let you reinvent the wheel for me :stuck_out_tongue:
I’m staying tuned for sure.

Haha, thanks, currently I’m just going through Alpha’s code and addressing problems and add any other things I feel is necessary. Then I’ll work on the scene creator. Aside from that, Alpha’s running on Slick2D, so I’m finding as many ways as possible for it to run on different things such as LWJGL, LibGDX etc. (If it is possible).

I just made a short scene using Alpha, I know some animation parts are a bit rough, but that’s currently in the to-do list :slight_smile:

L69TT0DXq34

Do what you need to do first, but if this gets [ported?] to LibGDX, then I’m sold for sure. :point:
Nice stuff either way.

LibGDX would make it so much better! You could port it to Android, HTML5, and other amazing platforms! :smiley:

I am definitely going to keep myself updated :slight_smile:

I’m actually considering using LibGDX, just because slick is out of fashioned now days. I might take a while to get familiar with it, but rest assured, LibGDX it is :slight_smile:

Alright, so I’ve released v0.7 of Alpha because I thought you guys might want to fiddle with dialogs and stuff. I think I’ve included a boilerplate with a rough introduction in ‘almost’ every single project file. I’ve also included a shorthand written script document.

Download here: http://animatoralpha.tk/

Changes:

  • Added Dialogs and portraits
  • Overall bug fix again
  • Few new SCP commands regarding dialog is introduced
  • Will break older projects

Submit any issues onto Github, here or the animatoralpha website :slight_smile:

Well isn’t this a nice reply from a kernel on this forum? JGO… full of good devs as well as jerks.
Look, I’m happy to remove it if you tell me it wasn’t nice to have it up, no need for that, ok?

Thanks for bumping the thread anyways, should probably announce an update soon too. Here’s a list of planned features for the ‘alpha’ release, which will be the first major release:

  • Scene parallax (multiple parallax support)
  • Doodads (additional terrain layer)
  • Effects (Explosions etc. for scene, startle, surprise emoticons for entities)
  • Background sound effects (hopefully, things like tidal wave sounds or crowd noises)
  • Custom images imported and drawn <- Currently working on

Dude, the guy’s only fourteen, no need for all this.