Spherical forums

Sphere Development => Engine Development => Topic started by: Rahkiin on May 07, 2016, 05:11:45 pm

Title: Delphinus: my engine try 2.0
Post by: Rahkiin on May 07, 2016, 05:11:45 pm
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: https://github.com/joskuijpers/delphinus (https://github.com/joskuijpers/delphinus)
Title: Re: Delphinus: my engine try 2.0
Post by: Fat Cerberus on May 07, 2016, 06:22:48 pm
Quote
I don't know shit about shaders


Don't worry too much, I didn't either when I first started implementing Galileo but figured everything out in a few nights.  It's a lot simpler than it seems at first, and you can do so much with them.  The hardest part is mastering how to work with matrices and vectors, since you'll be doing that a lot if you want to write a useful shader. :)
Title: Re: Delphinus: my engine try 2.0
Post by: DaVince on May 07, 2016, 06:28:23 pm
Sounds like a neat project, especially for the OSX people around here (not me :P). Good luck!
Title: Re: Delphinus: my engine try 2.0
Post by: Rahkiin on May 07, 2016, 06:36:02 pm
Good think I had Linear Algebra :)
Title: Re: Delphinus: my engine try 2.0
Post by: Rahkiin on May 08, 2016, 07:57:36 am
So the code is now on GitHub: https://github.com/joskuijpers/delphinus

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.
Title: Re: Delphinus: my engine try 2.0
Post by: N E O on May 08, 2016, 03:11:59 pm
spherepm or sphpm is fine I guess.
Title: Re: Delphinus: my engine try 2.0
Post by: Fat Cerberus on May 08, 2016, 03:42:21 pm
A while back I decided I wanted to write a package server in Node.js called Shenron, to allow anyone to run a Sphere package repository.  In any case I definitely think a package manager would be a neat addition to the Sphere toolchain, so I'm all for it.
Title: Re: Delphinus: my engine try 2.0
Post by: Rahkiin on May 08, 2016, 04:12:26 pm
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.