Skip to main content

News

Topic: neoSphere 5.6.4 (with Cell, SSj) (Read 445002 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.1.6
Reply #525
I'm just a regular juggernaut with this project, aren't I?  I just implemented module support, slated for minisphere 1.2:
https://github.com/fatcerberus/minisphere/tree/module-support

I converted kh2Bar to a module to test it out and so far it's working as intended.  This is awesome!

At present minisphere loads modules from ~/modules (or failing that, ~#/modules i.e. relative to the engine "system" dir).  I was originally going to use ~/scripts/lib, but as I already used that as a preferred search path for RequireSystemScript, I figured a separate directory was the better option.  That'll make it easier if someone wants to code up a NuGet-style dependency manager, too.
  • Last Edit: May 31, 2015, 12:39:47 pm by Lord English
Sphere 5.6.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.1.6
Reply #526
So the more I play around with modules, the more I realize, they're not always a suitable replacement for old-fashioned RequireScript().  For one-off dependencies that are only used in maybe one or two places, e.g. kh2Bar, it makes sense to use a module, but for more pervasive dependencies (Link, miniRT...) I've found that a RequireScript() at the top of the main source file is much clearer than var whatever = require('whatever') (or worse, a bunch of inline require()s littered throughout the source which Pegasus seems to advocate).
  • Last Edit: May 31, 2015, 11:43:00 pm by Lord English
Sphere 5.6.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

Re: minisphere 1.1.6
Reply #527

So the more I play around with modules, the more I realize, they're not always a suitable replacement for old-fashioned RequireScript().


This is particularly true with smaller libs. What we have right now is much more like a < script > tag, which for many things is more suitable. But we actually go a step further with RequireScript over EvaluateScript.
For something like my 1.5-style map engines, or (I'd suspect) your threader a module would be more suitable. But for my older MJ map engine, it would be silly.

That's kind of why I don't really care too much about module support. I don't really consider the namespacing to be too important, since it's pretty simple to do that yourself (and all modules I've ever seen already do), and we already handle a basic but quite effective form of dependency management.

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.1.6
Reply #528
The thing I really love about RequireScript is that, besides providing built-in protection against multiple inclusion, it can also be used to enforce load order in complex libraries.  In miniRT, for instance, the very bottom of miniRT.js has this block:

Code: (javascript) [Select]
// now that everything is in order, we can pull in all the miniRT
// component scripts.
RequireSystemScript('mini/miniBGM.js');
RequireSystemScript('mini/miniConsole.js');
RequireSystemScript('mini/miniLink.js');
RequireSystemScript('mini/miniPact.js');
RequireSystemScript('mini/miniScenes.js');
RequireSystemScript('mini/miniThreads.js');


The components are listed in alphabetical order, however miniThreads actually has to be initialized first, because everything else in the runtime depends on it.  And it indeed does get initialized first because the individual component scripts also have a RequireScript for it, and therefore it gets its initializer registered with the runtime before any other component.  This kind of thing I found is very difficult to do with modules because of the focus on encapsulation.

Nonetheless, this was a trivial addition I could have done ages ago (it's built into Duktape, and even if not it could be polyfilled easily using RawFiles and eval), and implementing it now puts me in a very good position to start work on some form of Pegasus support.
  • Last Edit: June 01, 2015, 02:30:11 am by Lord English
Sphere 5.6.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.1.7
Reply #529
@mezzoEmrys
Could you try the latest release (1.1.7)?  I'm pretty sure I fixed the crash on restart now.
Sphere 5.6.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

Re: minisphere 1.1.7
Reply #530
The release download link seems to be not happening. I also have no idea how to build it myself, and I'm not sure I even have the compilers myself. I really need to get on that...

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.1.7
Reply #531
The download doesn't work?  Odd.

You only need VS 2013 to build it. All the dependencies including Allegro static libs are included in the repo.
Sphere 5.6.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

Re: minisphere 1.1.7
Reply #532
Your link on the first post is just http://, no actual link body, at least not one that comes through to me.

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.1.7
Reply #533

Your link on the first post is just http://, no actual link body, at least not one that comes through to me.


Oops! :-[

https://docs.google.com/file/d/0BxPKLRqQOUSNX3pTNHU1Uk1tdm8/edit?usp=docslist_api
Sphere 5.6.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.1.7
Reply #534
Okay, download link is fixed.

For future reference, the latest release is always available in the SphereDev download repository.  You know, in case I post a broken link again... :)
Sphere 5.6.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

Re: minisphere 1.1.7
Reply #535
Huzzah! All works as expected. I tested both games this time, and everything seems to work as expected.

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.1.8
Reply #536
minisphere 1.1.8 is up.  This fixes diagonal movement commands not working as well as the long-standing issue where animation for diagonally-moving persons was too fast due to double-queuing of COMMAND_ANIMATE.

Note that, as a result of the recent changes (the way COMMAND_ANIMATE is handled internally has changed), persons will now keep animating even if they run into something, a la early Pokemon.  Technically this is a bug, but it does have a certain charm to it, so I'm not actually sure I want to fix it. :)  What do you guys think?
Sphere 5.6.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Radnen
  • [*][*][*][*][*]
  • Senior Staff
  • Wise Warrior
Re: minisphere 1.1.8
Reply #537

Technically this is a bug, but it does have a certain charm to it, so I'm not actually sure I want to fix it. :)  What do you guys think?


I say the animation is fine, I try to emulate the behavior in my games since I like it. I caution if it affects Lithonite or not.
If you use code to help you code you can use less code to code. Also, I have approximate knowledge of many things.

Sphere-sfml here
Sphere Studio editor here

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.1.8
Reply #538
It doesn't seem to, looks like Lithonite still works normally.

Edit: Huh.  That's appropriate--look at my post count. :P  I almost don't want to ever post again now, it's just too perfect. ;D (1025 being 413 + 612 and the date of Cascade, the most epic thing to ever happen in Homestuck)
  • Last Edit: June 02, 2015, 03:21:12 am by Lord English
Sphere 5.6.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • DaVince
  • [*][*][*][*][*]
  • Administrator
  • Used Sphere for, like, half my life
Re: minisphere 1.1.8
Reply #539
Oh, I thought it was 1024, a nice power of 2, and you already posted again since then or something. :P

I haven't had the time to play with the new releases. Once vacation starts, you can bet your ass I'm making a game powered by minisphere though.

Also, do you happen to have documentation for any of the new functionality? Or should I just be checking the older thread posts for now?