Skip to main content


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.

Messages - Eggbertx

Welcome to the community! While miniSphere does have some 3D functionality, there isn't really enough of it to create a fully functional game without a lot of effort on the developer's part, but if you just want to create 2D (or predominantly 2D) games, it's a great engine and it's cross-platform too, more so than 1.x.
Do you have an ETA on a stable 5.0 release? I'm not complaining, I just haven't been updating the AUR package. I'm pretty sure I'm the only person who actually uses it, but I don't want to update to a potentially unstable release, and I don't feel like creating a second AUR package for unstable builds.
Projects / Re: Project ZeC (My Zelda-esque Clone)
I agree, though I was never a huge fan of Zelda 2.
Game Development / Re: The Screenshot Thread
That looks great! I didn't play much of Legend of Goku 1 or 2 but I immediately thought of those when I saw that screenshot.
Engine Development / Re: miniSphere 5.0b2 (stable: 4.8.8)
I'm not sure if this is a bug with ChakraCore or miniSphere, but I noticed an issue with miniSphere pointing to the wrong line number when an error is thrown
Code: (js) [Select]
// md = blah blah blah (unimportant)
md.bodyB = body; // line 47, mouseY); // line 48
But I'm getting this error:
Code: [Select]
ReferenceError: 'mouseX' is not defined
   at Anonymous function (src/main.mjs:47:4)
Libraries / Re: box2d-sphere
This is nice! I want to create a platformer in miniSphere eventually, so this would come in mighty useful. :)
That was what I had in mind. I've had an idea for a while now for a game with similar gameplay to Abuse, using this.

Nice!  miniSphere 5.0 will make this kind of thing more practical too, thanks to Chakra's blazing-fast performance.
I figured that was the case. It runs decently with Duktape, but I'm definitely looking forward to ChakraCore.
I spotted that SSj Blue badge in your screenshot.  I imagine you might have leaned on the debugger a lot while developing something like this! ;)
Actually, I was just frustrated with OBS, so I just pressed F5. I do usually make decent use of SSJ, but I haven't used it much with box2d-sphere.
Libraries / box2d-sphere
I've been working off and on on a port of box2d.js to miniSphere, which would allow a developer working with miniSphere to make more dynamic platformers. If you aren't familiar with box2d, it's a physics engine used in games like Angry Birds, LIMBO, and Happy Wheels.
The screenshot shows the stage in "Debug draw" mode, which would be the equivalent of drawing only collision objects in miniSphere. When it's more stable, I would be able to attach a Person object's position and rotation to a box2d object.
Unlike box2d.js and the original, I'm also working on a stage object to make stage building easier. So rather than writing boilerplate code for each static and dynamic body, you can just create a JSON file and save a lot of effort. For example, this is the file that sets up the stage shown in the screenshot:
Code: [Select]
"name": "Test stage",
"gravity": { "x": 0, "y": 32 },
"allowSleep": true,
"border": {
"top": 5,
"bottom": 5,
"left": 5,
"right": 5
"objects": [
"type": "rectangle",
"dynamic": false,
"position": { "x": 32, "y": 32},
"size": { "w": 50, "h": 10},
"angle": 5
"type": "circle",
"dynamic": true,
"position": { "x": 55, "y": 64},
"radius": 10,
"angle": 0

I wanted to make an animated GIF showing it in action, but OBS studio wouldn't play nicely.
This is a somewhat low-priority project compared to the other ones, but I figure you guys might be interested. I'm going to hold off on uploading the code, since it's a bit of a mess right now. As soon as it's at least a little bit more stable, I'll probably upload it to GitHub or something.
Actually, it looks like it does show a problem if you declare a variable with let twice, but not with var.
I'm not sure about duplicate definitions, but it does, but there is a section that shows problems with your code.
Definitely. And it has a lot of plugins that make it even better, like a live Markdown preview pane, or various language-specific extensions. I don't know if you noticed, but it also has a built-in terminal that defaults to bash in Linux (and presumably macOS) and Powershell in Windows.
Editor Development / Re: The Sphere Studio v1.2.1
Instead of changing the background color based on priority, why don't you create an icon for each?
Atom is nice, but I always felt like VS Code is a bit snappier and has less cruft. Which is surprising, considering the developer :P
I was actually thinking of creating a random map generator at one point as well, but I have too many other projects and things that need attending to to get around to it.
I think a general class for doing general operations on maps would be nice as well, possibly with load and save functions.
I somehow never noticed that hoisting behavior. I always always (almost) always declare my variables at the beginning of the script or source file, immediately after the imports, aside from temporary variables in if/for blocks, and to avoid confusion, I generally don't use those temporary variable names outside of those blocks. I just tested that with
Code: (javascript) [Select]
var a = true;
if(a) {
var b = 43;
let c = 44;
console.log(b); // 43
console.log(c); // error
and I see what you mean now. That doesn't make any logical sense why the above code is the way it is.
I'll probably make a poll or something when this gets off the ground and I can confirm that it's going to replace QtSphere IDE. If that is the case, should I just lock this thread and make a new one? Or can a mod split this thread, starting at my first post about electron?

One thing I like about ES6 is that if you do this:

Code: (javascript) [Select]
let pig = 812;
/* .......... */
let pig = 1208;

You get a runtime error.  Also modules are strict mode by default so if you forget to declare a variable that's an error too.  It's still indeed nice if the IDE catches it first, though. :)
Honestly, I've never really used lets, just because I never saw much of a point in them. With the errors, that should be something that the programmer is responsible for, shouldn't it?

Also nice: let is block-scoped, like in C, and the variable is not hoisted so if you use it before the declaration, you *also* get a runtime error.  The JS community has given that phenomenon a name: the variable is said to be in the "temporal dead zone".  Pretty goofy, huh? :P
So it treats it like use strict? And how is it goofy? Is "temporal dead zone" a reference to something?