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 - Rahkiin

Engine Development / Re: minisphere 3.1.2
regarding the function() wrapper in node: that is NativeModule only. Actual modules are loaded like I do it: using a new context. This NativeModule is modules with coded already in the node executable. Totally different case.
Engine Development / Re: minisphere 3.1.2

At some point I may need to replace Duktape, though.  In my experiments with doing things in script, e.g. Galileo-based text rendering, minisphere's CPU usage nearly tripled compared to doing the same thing in C.  Before I do that though, it'd be nice if I could create a shim which would allow me to swap out the JS engine without having to rewrite the entire API layer.  How feasible that is, I'm not quite sure.  It may be impossible.

That is pretty much impossible. Also, V8 and SM require C++ and works very differently regarding memory management. Don't start.

Why not just keep more stuff in C then? Why move everything to JS, if C is faster.
Engine Development / Re: minisphere 3.1.2

So you will be adding a large bunch of globals? Make sure they are all classes and start with capitals.

Could you give me the classes you will expose?
Engine Development / Re: minisphere 3.1.2
So what are you going to do? You don't actually mention that.

My engine just always loads the audio and graphics stuff. You just load an API using the require() stuff... it is not that only then the graphics is set up.

I think it is nice to have modules. You could then easily extend api's or override them as a user. So instead of using 'graphics' y ou could do 'let graphics = require('./myGraphics')' which loads an API that has the same API but does stuff differently. It allows for modulism.

I would like to hear what else you propose. If you throw it all in global space, you can't override them anymore: not using modules anyways. Always only within the same module...
Engine Development / Re: minisphere 3.1.1
Just don't release so often then. Also, if you give someone a game, pack it with the version of minisphere you tested it with.
If you send someone a game with my engine, the .app contains both the game and the engine so you can just start it. And it is always the right version, until the developers gives the game an update with new version of the engine and distributes that.
Engine Development / Re: minisphere 3.1.1
You could just document when you add or deprecate a function/value/class/whatever.

I suggest you use SemVer: breaking changes (removing stuff) needs a major version number update, new stuff needs a minor version update (old code still works, but code written for 5.4 might not work on 5.3). And when you fix stuff, use patch. 5.4 code should work on 5.4.10 and other way around.
Alright, called it spherepm. I decided to keep it simple for now and just have a JSON file in a repo as catalog. Then to publish you would need to send a pull request. It is the only way I can think of without the need to build some server software and without any hosting requirements.
So the code is now on GitHub:

I wanted to call the package manager 'Sphere Package Manager' but now there is also the 'Swift Package Manager' that will go by SPM :(
We could call it Pegasus Package Manager (ppm) or Sphere Package Manager (spherepm). Suggestions?

I am going to write it in Node.js for now, so it is portable and it is easy to create for me.
Engine Development / Re: Sphere 2.0 API: SphereFS
Nooo why are you going with ~/ an #/ now :(
Good think I had Linear Algebra :)
Engine Development / Delphinus: my engine try 2.0
Hi All!

So even though I said I would not write another engine, I decided to make it myself 'easy' and do it with SDL and SM.

The name
Pegasus is an awesome name (wonder who thought of it  ;D) and constellations are awesome. My latest try was Andromeda, a constellation next to Pegasus. Delphinus is also next to Pegasus. One day I will be running out of names...

The plan
Full featured Pegasus implementation.
Fully working on Mac OSX (where I develop on)
Possibility to easily port it to other OSes (because I use SDL).
When it does work a bit I could try to make it work on iOS, but it could never be in the App Store (because of Spider Monkey).
Also, at least on OSX, you package your game as a .app. My engine runs in a .app (and only works there because of dynamic file loading reasons). You put your game inside the .app package folder, change the app icon and name and you are done. Double-click to load the game. ZIP/DMG it and give it to someone else. No need to install anything. A simple, clean game. (I really like this)

I might make a simple tool called 'spm': Sphere Package Manager, for installing and updating -etc- packages for your game. Using a directory in a GitHub repository and linking from that repo to other repos. So no hosting needed (is the plan).

The tools
I use SDL2 for platform independence and for the ability to go all blocking, which is incredibly hard and problematic to do on OSX/iOS.
As my JavaScript engine I use SpiderMonkey (currently the latest released version, 45). This engine supports a lot of ES6 as well which is very nice.
OpenGL, even though I don't know shit about shaders. Will see how this works out.

Current state
I have a basic JS engine setup. There is no graphics yet, although SDL is set up and working. Currently concentrating on making the JS usable.
I have finished a fully-fledged CommonJS module setup, including loading 'packages'. It works really nicely with separated globals per module, module caching and nice module resolving.
SphereFS: everything is sandboxed, including the require()-able modules.

So that is that. No ETA's. Just coding some. When I have/make the time.
Currently hosting the code on my companies Stash, I will move it to GitHub later. Code is now on github:
Maybe this is why i also had troubles timing stuff like -walk to player animated- (as in pokemon) in my game...
TEST! :P Well that works.
My user is not Verified and I can post just fine... maybe something in the configuration needs to be made more strict?

It might also be a good idea to do patches on the forum? 2.0.11 is out, we use 2.0.6.
Engine Development / Re: Sphere 2.0 API: SphereFS
I don't like it when apps create folders in my user directories... most of the time i just delete them.