Skip to main content

News

Topic: neoSphere 5.9.2 (Read 522958 times) previous topic - next topic

0 Members and 13 Guests are viewing this topic.
  • Radnen
  • [*][*][*][*][*]
  • Senior Staff
  • Wise Warrior
Re: minisphere 1.0.4
Reply #240

I never thought it would be an issue since I expected games to always use the named constants, but didn't account for the possibility of keys being saved out to a file...


Yeah, the game has the ability for you to set your own key mappings.

I added the ability for the game to recognize default keys on startup. If no options.ini is available it'll fill it out with the correct keys on first run. If you switch sphere engine, just delete options.ini and it'll re-scan the keys again.
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.0.4
Reply #241
Okay, that did the trick, now I can select stuff from the menu.  Unfortunately, now I'm getting the same error as in DaVince's game: Invalid base value, with no filename or line number to indicate where the issue is.  What fun...
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.4
Reply #242
Radnen, you'll be happy to know I just got Blockman to run in minisphere. ;D  There do appear to be a few glitches, though--such as persons occasionally "jumping" from one place to another during cutscenes instead of moving smoothly, and some camera jerkiness.  Not sure what's causing that.

However, there's unfortunately one thing that prevents it from being fully playable: FollowPerson is not implemented.  I've been putting that off forever... I knew it would come back to bite me eventually. :(
  • Last Edit: April 06, 2015, 12:36:27 am by Lord English
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Radnen
  • [*][*][*][*][*]
  • Senior Staff
  • Wise Warrior
Re: minisphere 1.0.4
Reply #243

Radnen, you'll be happy to know I just got Blockman to run in minisphere. ;D  There do appear to be a few glitches, though--such as persons occasionally "jumping" from one place to another during cutscenes instead of moving smoothly, and some camera jerkiness.  Not sure what's causing that.


Don't worry, happens in Sphere too! :P


However, there's unfortunately one thing that prevents it from being fully playable: FollowPerson is not implemented.  I've been putting that off forever... I knew it would come back to bite me eventually. :(


Yeah, I've been wanting to write my own FollowPerson rather than use Sphere's anyways. :P So once you do fix it, I might not use it. There is only 1 instance in the game FollowPerson is used, and it's optional to follow that person.
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.0.4
Reply #244


Radnen, you'll be happy to know I just got Blockman to run in minisphere. ;D  There do appear to be a few glitches, though--such as persons occasionally "jumping" from one place to another during cutscenes instead of moving smoothly, and some camera jerkiness.  Not sure what's causing that.


Don't worry, happens in Sphere too! :P


Oh good, so nothing to fix on my end.  Phew!
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.5
Reply #245
Well, that was a hell of a ride. 1.0.5 is done.  This release represents a huge chunk of maintenance and fixes about 7 different bugs.  Most of them were pretty minor in the grand scheme of things, but they were enough to prevent a lot of games from running, so fixing them is important.

@DaVince: Could you have your friend try minisphere on Vista again, this time with 1.0.5?  I'm pretty sure the Win7+ requirement is gone, but I don't currently have access to a Vista or XP machine to know for sure.  Also: Sir Boingers now (mostly) works. It tends to error out on death/damage though, due to the stricter type checking in minisphere (this is mentioned in the readme).  With a few edits to the game itself, it should now run flawlessly.  Awesome game, by the way. :D
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Radnen
  • [*][*][*][*][*]
  • Senior Staff
  • Wise Warrior
Re: minisphere 1.0.5
Reply #246

Well, that was a hell of a ride. 1.0.5 is done.  This release represents a huge chunk of maintenance and fixes about 7 different bugs.  Most of them were pretty minor in the grand scheme of things, but they were enough to prevent a lot of games from running, so fixing them is important.


I know exactly what you mean by that. ;)
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

  • DaVince
  • [*][*][*][*][*]
  • Administrator
  • Used Sphere for, like, half my life
Re: minisphere 1.0.5
Reply #247

@DaVince: Could you have your friend try minisphere on Vista again, this time with 1.0.5?  I'm pretty sure the Win7+ requirement is gone, but I don't currently have access to a Vista or XP machine to know for sure.  Also: Sir Boingers now (mostly) works. It tends to error out on death/damage though, due to the stricter type checking in minisphere (this is mentioned in the readme).  With a few edits to the game itself, it should now run flawlessly.  Awesome game, by the way. :D

Sure, I'll send it to her and let you know. And thanks! :)

I've also fixed those bugs, though I'll hold off on releasing a Sir Boingers with such a minor modification until I've done more tests/fixing... and I might as well continue actual development on the game now that I have the opportunity.

Also, I couldn't help but notice that the error displayed was simply "not boolean" - it didn't tell me what variable exactly it was having trouble with. While that was no issue whatsoever for my simple code, imagine it happening on a more complex line.

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.5
Reply #248

Also, I couldn't help but notice that the error displayed was simply "not boolean" - it didn't tell me what variable exactly it was having trouble with. While that was no issue whatsoever for my simple code, imagine it happening on a more complex line.


A bit of background on that.  Here's what an API function looks like internally:
Code: (javascript) [Select]
static duk_ret_t
js_SetPersonVisible(duk_context* ctx)
{
const char* name = duk_require_string(ctx, 0);
bool is_visible = duk_require_boolean(ctx, 1);

person_t* person;

if ((person = find_person(name)) == NULL)
duk_error_ni(ctx, -1, DUK_ERR_REFERENCE_ERROR, "SetPersonVisible(): Person '%s' doesn't exist", name);
person->is_visible = is_visible;
return 0;
}


duk_require_*() is shorthand for "get the value at this location on stack, but if it's not the type I'm looking for, throw an exception".  It's very convenient, and keeps the code size down.  But normally you don't even get a filename and line number for such errors: the only reason you do in minisphere is because I manually pull it from the call stack. Otherwise you'd just get a completely useless bare "not boolean" error.

I could fix it, of course, but that would require a bunch of extra conditional checks in every single API function, which really puts me off.  Go look at the Sphere source sometime: For a lot of API calls, half the function is argument checking (which, mind you, doesn't really make sense since it still ends up type-coercing 90% of what you throw at it anyway; Spidermonkey is a ridiculously verbose API), and I'd prefer to avoid that here.  The "mini" in minisphere is really about the code size more than anything; the fact that the engine itself takes up less space than Sphere 1.5 is just icing on the cake.
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • DaVince
  • [*][*][*][*][*]
  • Administrator
  • Used Sphere for, like, half my life
Re: minisphere 1.0.5
Reply #249
Okay. If it can't be helped, it can't be helped. Thanks for the explanation.

I really love the fact that all you really need to distribute a game is the engine binary, startup and system folder, by the way. So much cleaner.

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.5
Reply #250

I really love the fact that all you really need to distribute a game is the engine binary, startup and system folder, by the way. So much cleaner.


Yep, early in development you also needed the Allegro monolith DLL, but a static link fixed that handily (I static link to the MSVC runtime for the same reason).  I always hated that Sphere requires you to distribute about 10 different DLL files along with the engine.  Worse, some of those are only needed for the editor, and it's not necessarily obvious which ones.  So you have to basically guess which ones you can leave out, or just copy them all and bloat your distributable unnecessarily.  Having everything self-contained in the engine executable means that's no longer an issue. :)

If I could, I would also get rid of the system folder requirement, but as a usable system font--at the very least--is required for the engine to even run, not much I can do there.
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.6
Reply #251
Just posted a quick hotfix release, 1.0.6, fixing a map collision bug that rendered Sir Boingers unwinnable.
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • DaVince
  • [*][*][*][*][*]
  • Administrator
  • Used Sphere for, like, half my life
Re: minisphere 1.0.6
Reply #252
Could you insert this after line 40 in minisphere/SConscript? It fixes compilation on Linux:

Code: [Select]
    "m",


Well, I suppose that's not supposed to be in a variable called allegro_libs, but hell if I know where else you're supposed to put it. :P

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.6
Reply #253
Done. :)
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub

  • Fat Cerberus
  • [*][*][*][*][*]
  • Global Moderator
  • Sphere Developer
Re: minisphere 1.0.6
Reply #254
@Radnen: Curse you and your evil ways! :P  Apparently you delete persons in a command generator script?  minisphere doesn't particularly appreciate entities being pulled out from under it, and it leads to all sorts of random crashes.  Should be fun to fix...
neoSphere 5.9.2 - neoSphere engine - Cell compiler - SSj debugger
forum thread | on GitHub