Friday 3 February 2012

No longer in development.

I'm sorry, but this project is no longer in development. :(

Wednesday 12 October 2011

Development Preview [Demo]


Now that the Battlefield 3 beta has ended, I once again found some time to work on the game. Progress is going slow, but steady.

So, for my faithful blog readers I'm releasing a special demo.
In this demo I've polished the game some more and finished the energy system.

In the demo you will find:
Bucking (for Applejack): To use this, simply press 'e' to activate buck mode.
When in buck mode, walk against a buckable object (e.g. a magic box) and Applejack will buck it!
Destruction (for Applejack): The same as the above, but you can also stand right next to it to buck the object.
Energy system: Each time a pony does a special action such as bucking or creating magic boxes, the pony's energy bar will deplete. Your energy will replenish itself over time.
- Added and revised the original "playground" map to match the current Trilight art.
Reduced size by streaming the background music rather then embedding it in the flash file.


Demo


http://student.nmct.be/michiel.de.mey/trilight/grim/
The demo is public, so feel free to share the link with other bronies that might be interested!

And as always, feedback is always welcome!
Got an idea, found a bug, want to make a suggestion? Feel free to comment.

Your Brony
Michiel

Sunday 2 October 2011

Energy system [Preview]

Took me too long to post this, you can blame Battlefield 3 for that.

This time I've added an energy system to the game. Each pony has a certain amount of energy. Certain actions will drain the energy from your pony, such as sprinting, flying and drawing magic boxes. If your energy is below 100% it will automatically regenerate over time until your energy is full again.

This allows better cooperation between ponies. This also prevents the player from using the same pony too much. You will probably have to switch between ponies more often now and that's a good thing.

Screenshots below!


Screenshots

Yes, that's Trixie.
That's it for now. Stay tuned for more!
Now, back to playing Battlefield 3.

Your Brony
Michiel

Sunday 25 September 2011

Destruction [Preview]

Today I'll be bringing some more interactivity and gameplay to the game. I wanted to post this yesterday earlier today, but when I looked at the clock it was already 5:30am. So yeah. Whilst trying to drag myself to bed I ran into my mother who apparently had to get up early to go to work. She wasn't happy.

Today I'll be introducing destructible content. In terms of gameplay this can be a very interesting feature. It allows the game to slow the hero down in case you're in a time-based level or if you're running from something.

But that's not all, I've made the choice to add physics to my destruction. Why? Because animating destruction is soooo 20th century. Nah, I mostly only want to prove myself capable of doing it. This game is all about challenge.

Being a student, this is the perfect opportunity to prove and improve my skills. It took me a few hours to get it working, but I did it. And I'm proud of it.

Enough with the text, on with the video!


Video


And in case anypony would be interested, I'll post my DebrisSpawner Class here. I'll probably extend this class further when needed.

Code

package mlp_effects
{
	import Box2DAS.Common.V2;
	
	import flash.display.DisplayObject;
	
	import wck.BodyShape;
	import wck.World;

	public class DebrisSpawner
	{
		public function DebrisSpawner(numberofdebris:int, theWorld:World, theObject:DisplayObject)
		{
			trace("DebrisSpawner>>> Spawning debris.");
			for (var i:int = 0; i < numberofdebris; i++)
			{
				var part:BodyShape = new Debris_part;
				part.x = theObject.x + randomNumber(-theObject.width/2,theObject.width/2);
				part.y = theObject.y + randomNumber(-theObject.width/2,theObject.width/2);
				part.rotation = randomNumber(0,359);
				part.categoryBits = 0x0004;
				
				var scale:Number = randomNumber(10, 100)/100;
				part.scaleX = scale;
				part.scaleY = scale;
				
				theWorld.addChild(part);
				
				part.b2body.ApplyImpulse(new V2(randomNumber(7,14)/100, randomNumber(5,10)/100), part.b2body.GetWorldCenter());
			}
			trace("DebrisSpawner>>> Done spawning debris.");
		}
		
		private function randomNumber(low:Number=0, high:Number=1):Number
		{
			return Math.floor(Math.random() * (1+high-low)) + low;
		}
	}
}

And when the object is destroyed, simply create a new DebrisSpawner
new DebrisSpawner(15, parent as World, this as DisplayObject);

Stay tuned for more awesomeness!

Your Brony
Michiel

Thursday 22 September 2011

Buck em' up, AJ!

It's Applejack time! I've done a few Applejack improvements.

I've gotten quite a lot of comments about Applejack. I admit, she was't very helpful in the demo. But I got some great suggestions from the bronies.

- UltimaShadow7 suggested that AJ should be able to jump further when galloping a while ago.
This is now possible. Sorry, for the late implementation. Better late then never, right?

- I've also got quite a few suggestions that AJ should be able to buck objects and send them flying. This too is now possible. It took me a few hours, but I figured it out.

Some other improvements:
- The zombie was so stupid, you could actually prevent him from moving any further by spawning a magic box. He's now a bit smarter and he'll now destroy your magic boxes. I've also slowed him down, he was moving way too fast.

- Tweaked the magic sparkles animation so that you can now recognize the shape you're drawing.
(removed the gravity effect) -Thanks Firebane


Screenshots





And it's been a while since I last posted some code, so have my Buck() function. ;)
It activates when you press a button and a collision is found between AJ and a Dynamic BodyShape.

So for now, you can press "e" to enter buck mode. When a collision happens, she will buck the object and send it flying. After that, buck mode is disabled again

public function buck(e:ContactEvent):void {		
			trace("Pony Buck>>> Contact!");
			var theBody:BodyShape = e.other.m_userData as BodyShape;
			
			if(theBody.type == "Dynamic") {
				b2body.SetLinearVelocity(new V2(0 , b2body.GetLinearVelocity().y));
				enableMovement = false;
				
				movementState = MovementState.BUCKING;
				gotoAndPlay("buck");
				
				trace("Pony Buck>>> Body is dynamic, applying timer.");

				var myTimer:Timer = new Timer(850);
				myTimer.addEventListener(TimerEvent.TIMER, runTimer);
				myTimer.start();
			}
			
			function runTimer(event:TimerEvent):void {
				trace("Pony Buck>>> Timer ended, now bucking.");
				var distance:Number = 25;
				if(dir_left)
					distance = -25;
				else
					distance = 25;
				
				theBody.b2body.ApplyImpulse(new V2(distance, -10), theBody.b2body.GetWorldCenter()); //BUCK IT UP!
				
				//Reset and stop timer, otherwise -> errors!
				myTimer.stop();
				myTimer.reset();
				
				removeEventListener(ContactEvent.BEGIN_CONTACT, buck);
				enableMovement = true;
				trace("Pony Buck>>> Not listening to contact anymore. Done bucking.");
			}
		}

The timer activates after 850ms, this is needed to make the push synchronize with the animation.

So that's it for now. Stay tuned for more information. ;)

Your Brony
Michiel

Tuesday 20 September 2011

Trilight demo is a great success!

All the support from you bronies really gave me a moral boost to continue with the game. I love this community!

So, what's next for Trilight? Well, I'm currently working on a few new levels, including the Diamond Mines.

But before I start working on the new levels, I'm going to do some more game tweaks. There are still some minor issues to be taken care of.

And before I start posting screenshots, I'd like you guys to know that I'm not an expert at level design. So for now the levels will probably look a little "cheap". You can always help me out with that.


Screenshots

Everything is suddenly much easier when you can edit your levels on the fly in Flash.


I'd love to work some more with the community; so if you are an artist, writer, composer, level creator, ... whatsoever and you'd like to contribute something to the game, please do so. You can always mail to de.mey.michiel[at]gmail.com. Be it some piece of art, a great idea, maybe a story or some music.

Your Brony
Michiel

Monday 19 September 2011

Trilight Revamp [Demo]

Finally, after almost 2 months I'm ready to release my second demo to the public.

Some new features since my previous post:
- I've tweaked the movement a little so that you now move a little slower, thus you can jump less far.
- I've also adjusted some GUI elements to fit the new game art style.
- Added background music to increase the atmosphere.
- Added a preloader.
- Zombie pony experiment.

Controls:

- Use the ARROW keys, WASD or ZQSD to move your pony.
- Use the scrollwheel or the numeric keys to switch between ponies.
- R key will reset your pony the the nearest spawnpoint. (doesn't work in fullscreen)
- ESCAPE will bring up the game menu.

- As a unicorn you can draw a box in the game. (best drawn from the upper left corner)


Demo:

Performance suggestions:
- Best played on medium quality.
- Intended for a resolution of 800x600,
rescale your browser accordingly to increase performance.

The link to the demo: Clicky!

Let me know what you think.

Your Brony,
Michiel