Skip to main content

News

Recent Posts

1
Engine Development / Re: miniSphere 5.0.1
Last post by Eggbertx -
That was the idea. Also, I may or may not have brought this up before, but most games developed for desktop miniSphere won't be compatible with mobile miniSphere and vice versa without some heavy modification.
2
Engine Development / Re: miniSphere 5.0.1
Last post by DaVince -
Looks pretty good to me, and generic enough to Just Work on both platforms.
3
Engine Development / Re: miniSphere 5.0.1
Last post by Eggbertx -
I've been busy with IRL things so I haven't gotten a chance to work on it yet, but I was thinking about how I'm going to implement a mobile specific API, and I wanted to get your opinion on it before I start. Hopefully it will be compatible with both Android and iOS, but I don't have a macOS computer and don't feel like jumping through hoops.

Code: [Select]
`MobileDevice` Object
----------------------

MobileDevice.Default [read-only]

 Gets the device running miniSphere. This will likely only exist on mobile builds

MobileDevice.Platform [read-only]

 Can be 'android' or 'ios'

MobileDevice#activateTiltSensor()

 Activates the device's tilt sensor. If it is not activated, calling
 MobileDevice#getTilt() will return null

MobileDevice#deactivateTiltSensor()

 Deactivates the device's tilt sensor

MobileDevice#getTilt()

 Returns an object with x, y, and z float values representing the device's angle

MobileDevice#activateAccelerometer()

 Activates the device's accelerometer. If it is not activated, calling
 MobileDevice#getAcceleration() will return null

MobileDevice#deactivateAccelerometer()

 Deactivates the device's accelerometer

MobileDevice#getAcceleration()

 Returns an object with x, y, and z float values representing the device's
 current acceleration

MobileDevice#deactivateAllSensors()

 Deactivates all currently activated sensors

MobileDevice#getTouchCoordinates()

 Returns an array of objects with x and y coordinates for the current number
 of touches. If the screen isn't being touched, it will return a 0-length array.

Thoughts?
4
Sphere General / Re: Proper way of using Sphere?
Last post by Fat Cerberus -
Yes, miniSphere supports .mod (and .it, .xm etc.) through allegro.  It doesn't support mp3 however, or MIDI.
5
Sphere General / Re: Proper way of using Sphere?
Last post by Beaker -
Looping music, in particular mp3, has it's issues because of how the format is designed.  The fundamental problem occurs because of this:



You can read further into that if you want here, and while there are ways around it for mp3, it's flaky.  Some engines like Unity can get around it by accounting for the delay and padding programmatically/doing processing on the music file (this is more like what Rhuan was saying with changing the position).

To get looping working for music, the best way is to render it into .ogg format and then test how it loops in a good audio editor (eg: Audacity [it's free]).  If the music should be looping well, but there's a seam or click at the looping point, then you have to go down to the sample level of the audio file and make sure it starts and ends at the 0 volume point.  With monotracks you can do that by cutting off a few point samples, but with stereo tracks the easiest way is to fade out the music over the last few sample points and fade in the first few.


In the above, it can't cut be off correctly in stereo, so instead fade it out over the last 6 samples.  The 6 samples here will only last 1/10 of a millisecond, so it won't be noticeable to the listener and should get rid of the click sound.

From there, in sphere, you should be able to play it with repeat as true and it should loop just like in audacity.


If however, you're talking about more precise looping like, pay this part and then start looping this part, then you'll either have to do it in code by playing the first part and then fading in the loop when it should start (as two separate files would probably be easiest here), or maybe using a tracker format like .mod (more limited in terms of what it can do, but does have more complicated looping options).  I'm not sure if .mod is supported in miniSphere though.
6
Sphere General / Re: Proper way of using Sphere?
Last post by Rhuan -
Didn't want to make another thread to ask this, but does Sphere support looping audio by reading metadata? I've always wondered how do deal with the problem of looping music.
As far as I know there is no built in feature for reading metadata.

BUT you can achieve the same effect as long as you use a seekable sound format (such as Ogg).

Sphere v2 soune objects have a writeable position property. Or if using the v1 api there's the setPosition Method and the getPosition method.

You would need to seperately store values for loop points somewhere then have an update script/function that checks the position of the current sound and if it has reached the loop point sets the position to wherever its meant to loop from.

This would be quite a simple system to make in Javascript - let me know if you'd like more detailed guidance.
7
Sphere General / Re: Proper way of using Sphere?
Last post by Datomas -
Didn't want to make another thread to ask this, but does Sphere support looping audio by reading metadata? I've always wondered how do deal with the problem of looping music.
8
Projects / Re: Project ZeC (My Zelda-esque Clone)
Last post by Miscreant -
things are still rather hectic & stressful but for the next few days I have access to a laptop with minisphere on it so I can do a little more creation on ZeC.
9
Engine Development / Re: miniSphere 5.0.1
Last post by Fat Cerberus -
a) get the file path wrong (import expects relative paths)

Not entirely accurate - you can use a full path so long as it has a SphereFS prefix, e.g. @/bin/awesome.mjs.
10
Engine Development / Re: miniSphere 5.0.1
Last post by scojin -
Okay, thanks for the help.
Issues were file extensions(.js to .mjs) and getting rid of the tutorial changes.
I'll start a new thread if I have anymore questions.