Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Justin

Pages: 1 2 3 4 5
Shared Resources / Load actors from another scene
« on: December 16, 2015, 09:27:18 pm »
Load actors from another scene. Intended for loading enemy waves without switching scenes, but I'm sure it has other uses.

Code: [Select]
public static function loadActorsFromScene(sceneName:String):Void
var engine = Engine.engine;
var realScene = engine.scene;

engine.scene = GameModel.get().scenes.get(Script.getIDForScene(sceneName));

engine.scene = realScene;

I'm not yet sure if anything weird happens with actor IDs or if it has other side effects.

To use it, put it in a freeform code behavior. Assuming the class name is "CreateActors", you can call it from anywhere with this line.

Code: [Select]
CreateActors.loadActorsFromScene("My Scene");

Polydes - Open Source Toolset Extensions / Batch Processing
« on: October 30, 2015, 06:12:57 am »

New extension in development. Not planning on putting too much time into it right now, but I'm taking requests. Operations that people feel would be good to have for batch processing of scenes, actors, behaviors, whatever.

Right now the video just shows a behavior being added to all the scenes in a game.

Dialog Extension / Old Design Document
« on: October 28, 2015, 03:09:16 am »
So I was looking through some old files today, and one that I was surprised to see again was a design document for a new Stencyl feature three years ago: a built-in dialog system! (attached below)

It's been over three years since plans for this feature were first formalized, and nearly two years since I actually programmed it and released it to the public as an extension (and that was adapted from code I wrote over three years ago, back when Stencyl exported games in Java). Looking at it now and comparing it to the original specification, it's surprising how many of the original ideas are still unimplemented. Nevertheless, I've made pretty significant progress in the time I've put into it over the past few years. (in the past, I had to program during breaks from school. Now I program during breaks from working on Stencyl. :P )

Base Functionality:
- Draw characters onto a message graphic and display that graphic? Check!
- Different fonts and colors? Check!

System Extensions:
- Various places to hook in to the main system? Check!
- Ability to run code when certain <tags> appear in the dialog? Check!
- Set of preferences to determine the look and functionality of the plugin? Check!
- These have been part of the Dialog Extension for years, but until the upcoming 2.0 release, have never been selectable in the UI. All users have always been stuck with the default set of plugins.

Different Dialog Styles:
- Define different styles to display dialog with? Check!
- Easy to use properties editor for styles? We're getting there! That's one of the reasons the Data Structures extension was written.

Editing Dialog in Stencyl:
- Since I never coded this into Stencyl itself, some of the ideas I had before don't make a lot of sense. Right now everything is tucked away into the Extensions section of the dashboard, but perhaps it can be better integrated with Design Mode and the Scene Designer in the future.

Other thoughts:
- This document was written at a time when Stencyl only exported to two platforms: Flash and iOS. The prospect of writing code that would work on both platforms was one of the troubling issues of the time. Thankfully, with Haxe, that's a thing of the past! And with recent changes I've implemented in Design Mode over the past year, it won't be too long before dialog plugins can be written in Design Mode, too. :)

What do you guys think? What could make this extension more useful for you? I don't always have a lot of time to work on this extension, but I'm always open to hearing ideas.

Dialog Extension / Dialog Extension 2.0 Devlog
« on: October 26, 2015, 03:09:17 am »
For about half a month I've been working primarily on updating the dialog extension. One of the key features of the next update will be that the different dialog plugins will finally be truly separated again. This means you can pick and choose which features you want to add to your dialog system, and it also means you can write your own plugins and they'll work just like the built-in ones.

For now they'll need to be written in Haxe, but eventually I'm planning on integrating Design Mode with it so you can write your own dialog plugins with Stencyl's blocks.

Teaching with Stencyl / MOVED: Advanced gamepad setup
« on: October 01, 2015, 12:50:30 am »

News / Cppia (Faster Standalone Testing)
« on: September 01, 2015, 01:24:34 pm »
What is Cppia?

Cppia (pronounced "sepia") is a new beta feature that allows desktop games to be compiled faster. Using my favorite test case, Ghost Song, compile time went from ~40 minutes to ~40 seconds with Cppia and other recent Haxe generation improvements.

How does it work?

There are many steps to the compilation process of a Stencyl game.
- Design mode behaviors are stored as xml. They are read and transformed into Haxe code. (very quick)
- Generated Haxe code and assets are copied to the games-generated folder. (fairly quick)
- From here, the steps are a little different depending on what you're targeting. We're focusing on desktop games here.
- The haxe code, including the source for Stencyl, the haxe standard library, openfl, lime, and additional libraries we use, and your own behavior code on top of all that, is translated into C++ code. (very quick)
- The C++ code is compiled into an executable that you can run on your OS. (THIS TAKES A LONG TIME!!!)

Cppia is a way of speeding up the process. How does it work? Cppia divides the program into two parts: A host application and a script.

The host application is compiled C++ code, so it can be run on your OS, and has high performance. The host is made up of all of the parts of an application that don't change very often, and parts that are critical to performance, such as physics engines. In stencyl-cppia, the host is made up of almost everything except for the code you generate with design mode behaviors.

The script is not compiled C++ code. Instead, it's a plain text format that the host application can interpret. This means that, at the cost of losing highly efficient compiled code, we can have much quicker "compile" times for our games.

Since a huge amount of code is now compiled only once, in the host application, there's no need to worry about compiling all that framework code again when you test a new game. The only thing that will be "compiled" is the code from your behaviors, and it'll only be translated into a text format that the host understands, which is much faster than traditional compiling. The big drawback is performance, but since we place most of our performance-critical code into the host application, you only have to worry about performance drawbacks in your own behaviors, not in the engine.

How do I use Cppia?

(This step no longer required with the latest builds)
- Download the latest build (b8627, September 1) and set the cppia.enabled flag in [workspace]/prefs/boot.txt.
Code: [Select]
- Test a game in Stencyl with the "Cppia" target.

===== Feedback =====

This feature is still in beta, and there may be differences between a full native game and one run with the Cppia target. Please report any such differences or anything that causes a crash in cppia but not on desktop.

For now, this is a desktop-only feature, but in the future, we plan to also allow mobile games to be exported with Cppia.

Pages: 1 2 3 4 5