Forum Replies Created
-
AuthorPosts
-
> Many leading software are using versioning scheme like 2017.1.
I’m OK with the current system – personally, I’d probably prefer just 1,2,3… etc, ie: there are no ‘small’ changes, and there are no ‘finished’ versions, it’s just an ongoing dev cycle and your ‘stable’ version might not even be the same as mine depending on which features you/we use.
The reason I used 1.1.06 instead of 1.1.6 is because when I reached 1.0.9 and went to 1.0.10 I found it messed up the tag ordering at github due to string sorting. So for better or worse I went to a 1.1.01 system.
IMO, the versioning system used isn’t *that* big a deal (sure many will disagree) although I now feel it’s a good idea to used a string sortable method purely for the sake of flexibility.
Ok, looks like PLY uses vertex colors and Vertex3f doesn’t have a color member yet – will add soon.
There’s a cool assimp viewer here (written by one of the authors I think) you can use to tell more or less what things a re supposed to look like, and whether there’s a problem with assimp or mojo3d:
http://assimp.sourceforge.net/main_viewer.html
I think I used this to build mx2cc_raspbian on windows:
http://gnutoolchains.com/raspberry/
If you install that, add it to PATH, rebuildmx2cc_raspbian.bat might magically work. Then you’ve just to get the exe from windows to pi.
I’ll have a go at getting it building again tomorrow. Currently at home downloading xcode as it was taking forever at work…and whadya know, after no small amount of blood sweat and tears I think I’ve just uploaded my first monkey2 ios app to itunes connect!
it has to be MX2_ANDROID_APP_PLATFORM=android-14
Thanks for that, was confused myself too!
Varptr str wont work as a string is itself a pointer so you end up to a pointer to a pointer. Not only that, strings are 16 bit encoded and prefixed with a length int.
This is the better approach:
Local mydata:=New DataBuffer( str.CStringLength )
str.ToCString( mydata.Data,mydata.Length )Or you can create a ‘SocketStream’ eg:
Local stream:=New SocketStream( socket )
stream.WriteCString( str )You can use a timer, check out the spacechimps banana which lets you toggle vsync/timer syncing.
Android NDK: 10 is unsupported. Using minimum supported version android-14.
Ok, a bit more information on this. It looks like the latest NDK only supports android 14 (Ice Cream Sandwich) or later so this will be the new minimum API supported by monkey2 as of now!
You can still build for old apis by using older NDKs, tweaking the manifest etc. Also, there’s a line in bin/env_windows.txt:
MX2_ANDROID_APP_PLATFORM=10 ‘soon to be 14!
That controls the API used by the NDK that you’ll also be able to change.
I never quite got SDL2 working properly on Pi, plus build times were atrocious!
I could get apps running, but the mouse wouldn’t be working or they’d crash on quit etc.
Good luck though, SDL2 does at least have Pi code in there.
The SDK you install is not related to the versions of android the output app can run on. In general, you should always use the very latest SDK as this may in fact even include fixes for older targets.
Note that the ‘minSdkVersion’ and ‘maxSdkVersion’ entries in the android manifest file are *really* badly named! They really should be called ‘minApiVersion’ or something.
By default, a monkey2 android app should run OK on API 10 (Gingerbread!) or later. At this point, the only thing ‘flash’ a monkey2 app needs is GLES2.0 and this was added years ago.
Yeah, release 0.1 had some major bugs in the assimp loader!
The version currently up in the development branch is much improved and has loaded everything I’ve thrown at it so far.
Also, not all assimp formats are enabled right now, but there’s a fair few, checkout assimp modules makefile.monkey2.
Prebuilt version 1.1.06 will be out soon.
I will get onto this soon, but I want to get a v1.1.06 release out first.
But please understand, I can’t spend a vast amount of time on mobile as the potential audience just isn’t that big – one user right now, half a dozen users ala monkey-x in the near future? And if that affects your decision to use monkey2 or not, excellent, I think it *should* – I definitely don’t want everyone to think everything’s just gonna fall out of the sky tomorrow.
I have tried to be a bit smarter this time around with mobile to minimize the work involved. Using SDL2 and OpenAL has made life a lot easier, and generating standard xcode/android studio projects should future proof things to a degree, even if it’s a little clunky (but not really in practice IMO). Adding IAP will make monkey2 pretty much feature equivalent with monkey-x I guess, so perhaps I’m over thinking this, but I did come away from monkey-x feeling like I’d spent a VAST amount of time on mobile for the sake of a very small number of users and I really wanted to try to avoid that this time around. No offence or anything to mobile users but you guys *are* high maintenance.
but I didn’t want to step on Mark’s toes and it would be better if it was an “official” module.
Please don’t worry about this in general as there’s always bound to be stuff I can’t get onto as soon as people would like me to and that shouldn’t hold you guys up. But note that things on android are a bit trickier in monkey2 as you’ve got both c++ and java to deal with so you need to use JNI for them to talk to each other. I have ideas for better solutions here…but again…how much is the time involved worth to me? Could it be better spent? And so on…
Use StringToULong for octals too, eg: Print StringToULong( “100”,8 ) prints 64.
Definitely a bug!
This is a horrendous C ‘feature’ that I forgot about that needs to be worked around.
Monkey2 does not (officially) support octal notation.
Youi need to use glGetUniformLocation to get the location of the texture from the shader, then glUniform1( n ) to set this uniform to the texture unit the texture is bound to.
Do not use Texture.Bind(), this is very much part of the mojo shader system and will change in future. I will also be making it ‘Internal’ soon (along with a bunch of other @hidden stuff) now that I have ‘Internal’.
Instead, use ValidateGLTexture() to retrieve the gl texture handle and glActiveTexture to select the unit you want to bind it to. So the whole process is something like:
Local unit:=0 ‘up to you < GL_MAX_TEXTURES or whatever it is…
Local location:=glGetUniformLocation( program,”SamplerNameInShader” )glUseProgram( program )
glUniform1i( location,unit )
glActiveTexture( GL_TEXTURE0+unit )
glBindTexture( GL_TEXTURE_2D,texture.ValidateGLTexture() ) -
AuthorPosts