Slick Forums

Discuss the Slick 2D Library
It is currently Sat May 25, 2013 1:09 am

All times are UTC




Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: Fluent Cutscenes
PostPosted: Wed Aug 26, 2009 5:15 pm 
Offline
Regular
User avatar

Joined: Thu Dec 18, 2008 6:07 pm
Posts: 238
Location: Bournemouth, UK
Image

I've created a small and simple library to easily handle creating cutscenes within your games. It uses Alex Schearer (manunderground)'s Fluent Effects library.

It's aim is to:
* Simplify interactive cutscene creation code (using Fluent Effects).
* Cut down the number of lines of code needed to create cutscenes (using Fluent Effects).
* Only depend on Fluent Effects.
* Run on Java 1.5+.

What it doesn't do:
* Provide a way of parsing any form of cutscene files to create the cutscenes.

Eclipse Project download

Kudos to Alex Schearer for the great Fluent Effects base.

This code is no longer actively maintained.

_________________
- Gwinnell (irc.freenode.net, irc.chatspike.net)
- Game Jolt Moderator


Last edited by Gwinnell on Mon May 23, 2011 7:48 pm, edited 2 times in total.

Top
 Profile  
 
 Post subject:
PostPosted: Wed Aug 26, 2009 9:58 pm 
Offline
Oldbie

Joined: Tue Jun 17, 2008 5:11 pm
Posts: 336
Cool, looking forward to see what this can do. If you'd like I can post FluentFx to some public repo where it'd be easier to maintain/track/file bugs if you have them.

_________________
My website about game development http://anotherearlymorning.com


Top
 Profile  
 
 Post subject:
PostPosted: Thu Aug 27, 2009 12:25 am 
Offline
Regular

Joined: Sun Oct 05, 2008 9:24 pm
Posts: 173
have a demo showing it off? :)


Top
 Profile  
 
 Post subject:
PostPosted: Thu Aug 27, 2009 6:30 am 
Offline
Slick Zombie

Joined: Wed Apr 02, 2008 1:32 pm
Posts: 1315
Location: Italy
i'm waiting for some example :D

_________________
Blog | Last game Gravity Duck tribute | In progress Gravity Duck tribute


Top
 Profile  
 
 Post subject:
PostPosted: Thu Aug 27, 2009 12:34 pm 
Offline
Regular
User avatar

Joined: Thu Dec 18, 2008 6:07 pm
Posts: 238
Location: Bournemouth, UK
manunderground, I don't have any issues yet, but there are a few gimmicks in the library that could be addressed with a few RFEs, most of which are getters.

Timeline.getConfig(), to return the FluentConfig object that is passed in when the timeline is created.

FluentConfig.getCalls(), or similar to return a collection/array of all of the options put in using FluentConfig.add(method, start, stop, duration).

Timeline.getTotalTime(), or similar to return the total running time (in milliseconds) of the timeline, as specified e.g. using Timeline.forwards.halt(500).backwards().loop(5), or return -1 if loops indefinitely.

_________________
- Gwinnell (irc.freenode.net, irc.chatspike.net)
- Game Jolt Moderator


Top
 Profile  
 
 Post subject:
PostPosted: Fri Sep 25, 2009 3:01 pm 
Offline
Regular
User avatar

Joined: Thu Dec 18, 2008 6:07 pm
Posts: 238
Location: Bournemouth, UK
Bumped up to version 1.02.

TimelineGroup object has been added.
- If you have lots of Timeline objects in your classes, you can reduce lines of code by calling update only once.
- You can retrieve the Timeline objects if you add them with a key, but the Timeline objects are removed when they are stopped(), so you will have to call start() before adding them!
- I use this for Timelines that I "fire and forget".

src | jar| docs


As a sidenote...
I seriously don't recommend using this library at the moment, I refactor things far too often locally. I am just posting updates here.

_________________
- Gwinnell (irc.freenode.net, irc.chatspike.net)
- Game Jolt Moderator


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 28, 2009 6:39 pm 
Offline
Regular

Joined: Mon Feb 23, 2009 11:32 am
Posts: 113
Like the concept!! I would also like ot see a simple demo :)


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 05, 2010 1:37 pm 
Offline

Joined: Tue Jun 02, 2009 3:33 pm
Posts: 33
Wow, this sounds promising. Do you have any update? Cause in yout last post, you said "I don't recommend using it".

Kind regards!


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 05, 2010 2:29 pm 
Offline
Regular
User avatar

Joined: Thu Dec 18, 2008 6:07 pm
Posts: 238
Location: Bournemouth, UK
I used Fluent Cutscenes in my game Inverse Polarity if you wanted to see something showing it off.

The name "Fluent Cutscenes" is not really appropriate. It's more like a bunch of useful utilities I've needed above the FluentFX library.

I'll be writing Inverse Polarity 2 soon enough with better cutscenes than the original so I imagine the library will become more thorough. :)

_________________
- Gwinnell (irc.freenode.net, irc.chatspike.net)
- Game Jolt Moderator


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 05, 2010 3:59 pm 
Offline

Joined: Tue Jun 02, 2009 3:33 pm
Posts: 33
Thanks Gwinnell! I'll look into it.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jan 06, 2010 4:40 pm 
Offline
Regular
User avatar

Joined: Thu Dec 18, 2008 6:07 pm
Posts: 238
Location: Bournemouth, UK
Been working on this a little more due to the interest a few of you have taken. :)

A few possible requests to the Alex and the underlying Fluent FX library:
Timeline.pingpong();
Timeline.pingpong(int times);
... and the few mentioned in the above post.

Just to clarify, pingpong() would be looping from start to finish and then from finish to start, similar to Slick's animation class.

_________________
- Gwinnell (irc.freenode.net, irc.chatspike.net)
- Game Jolt Moderator


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jan 07, 2010 6:37 am 
Offline
Regular
User avatar

Joined: Thu Dec 18, 2008 6:07 pm
Posts: 238
Location: Bournemouth, UK
Changes:
CutsceneConfiguration object for defining actions/events when reading in Cutscene's from files.
See Cutscene.create(String file) and Cutscene.setConfiguration(CutsceneConfiguration cc).
Completely removed AnimationObject and Cutscenable.

Example cutscene file (No DTD yet):
Code:
<cutscene>
   <events>
      <static name="SET_TEXT" params="param1, param2, param3" at="200"/>
      <static name="PAUSE" params="" at="201"/>
      <tweened name="MOVE_OBJECT" params="" at="200" duration="50" repeattype="PINGPONG" repeatamount="5"/>
   </events>
</cutscene>


Version 1.03.
JAR | Javadocs | Source

Sorry for the double post.
zenzei, I said "I don't recommend using this library" because it isn't as easy as I'd like it to be to create cutscenes, usage is a bit gimmicky, and I've got ideas I've not put in yet.

_________________
- Gwinnell (irc.freenode.net, irc.chatspike.net)
- Game Jolt Moderator


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jan 10, 2010 4:06 pm 
Offline
Regular
User avatar

Joined: Thu Dec 18, 2008 6:07 pm
Posts: 238
Location: Bournemouth, UK
Fluent Cutscenes 1.04

Mostly safe for use, see todo list!

Changes:
- Cutscenes can now wait on a particular key before it will continue. It's the equivilant of pause() unpause() but with a keypress.
- Events that are not affected by the cutscene state begin with "addIndepentant".

Todo:
- Multiple cutscene configurations so it's not all in one definition.
- Possibly, waiting on more than one key, if you'd find that helpful.
- XML DTD.
- A good working example.

Version 1.04.
JAR | Javadocs | Source

It's important to note that all of the cutscene methods named below are implemented by the developer, that's how the cutscene files work with their configurations. I could have easily combined the "WAIT_FOR_KEY" code into "SET_TEXT" with an extra parameter.

Example Cutscene file (No DTD yet, again):
Code:
<cutscene>
   <events>
      <static name="START" params="" at="500"/>
      <static name="START_MUSIC" params="RECAP_THEME" at="0"/>
      <static name="DISABLE_PLAYER_MOVEMENT" params="" at="0"/>
      <static name="SET_TEXT" params="IPO# Hey, Opi. What are you doing?" delimiter="#" at="50"/>
      <static name="WAIT_FOR_KEY" params="KEY_ENTER" at="50"/>
      <static name="SET_TEXT" params="OPI# IPO!\nI'm just lockin' up some ol' blind people! for fun!" delimiter="#" at="100"/>
      <static name="WAIT_FOR_KEY" params="KEY_ENTER" at="100"/>
      <static name="SET_TEXT" params="IPO# But that's not fair! Beauty is in the eye of the beholder!" delimiter="#" at="140"/>
      <static name="WAIT_FOR_KEY" params="KEY_ENTER" at="140"/>
      <static name="SET_TEXT" params="OPI# Hah! Like I care?!\nHow are you going to stop me, eh?" delimiter="#" at="180"/>
      <static name="WAIT_FOR_KEY" params="KEY_ENTER" at="180"/>
      <static name="SET_TEXT" params="IPO# Uhh, I'll just follow you around and undo all of your doing!" delimiter="#" at="220"/>
      <static name="WAIT_FOR_KEY" params="KEY_ENTER" at="220"/>
      <static name="SET_TEXT" params="OPI# Just you wait!\nI'll turn your world upside down!" delimiter="#" at="260"/>
      <static name="WAIT_FOR_KEY" params="KEY_ENTER" at="260"/>
      <static name="ENABLE_PLAYER_MOVEMENT" params="" at="400"/>
      <static name="END_MAP" params="" at="500"/>
      <!-- <static name="END" params="" at="500"/> -->
   </events>
</cutscene>

_________________
- Gwinnell (irc.freenode.net, irc.chatspike.net)
- Game Jolt Moderator


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 11, 2010 1:16 pm 
Offline
Slick Zombie

Joined: Wed Apr 02, 2008 1:32 pm
Posts: 1315
Location: Italy
really intersting, Gwinnell keep us informed :D (and build a jnpl example :D )

_________________
Blog | Last game Gravity Duck tribute | In progress Gravity Duck tribute


Top
 Profile  
 
 Post subject:
PostPosted: Sun Feb 06, 2011 11:07 pm 
Offline

Joined: Wed Feb 02, 2011 12:21 am
Posts: 12
The links 404 :(.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group