Forum Replies Created
-
AuthorPosts
-
Possibly an ambient light?
EDIT: Looks like _scene.AmbientLight is what you’d need to zero-out.
Ah, interesting! Thanks, Mark!
Ohhhhh… I actually thought originally that MX2 needed brackets (hate this change!), but sort of hoped I’d been mistaken.
For some weird reason, I switched to Print to test it (rather than just, er, adding brackets), and that worked without them, so assumed that wasn’t it!
Thanks peterigz!
@nerobot — another item for the console would be the right-click (cut/copy/paste), same as for the editor.
If you don’t mind me being pedantic, one thing that bugs me about the GUI system is when you click on a window menu title (eg. File) and move the mouse over the next menu title, the next menu should become the one displayed.
For a clearer example, run Notepad, click the File menu, then move the mouse over the Edit menu title (I realise yours may not have the same titles!) — then try the same in Ted2Go.
OK, fairly low on the list, but it’s there in case you get bored…
Thank,s nerobot!
Ted2Go has read the command-line parameters for quite some time now though.
You can absolutely associate .monkey2 files with Ted2Go.Wow, you’re right! Definitely helps!
I am having trouble building at the moment, so need to investigate why… which leads to another feature request — word wrap for the output console! This is my current build error, and it goes off to the right for a really long way…
Monkey12345678910111213141516171819202122232425262728Mx2cc version 1.1.03***** Building app 'I:/SpiderOak/DevTools/Monkey2/monkey2/hello-world.monkey2' *****Parsing...Semanting...Translating...Compiling...Build error: System command 'g++ -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/" -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/monkey/native" -I"I:/SpiderOak/DevTools/Monkey2/monkey2/" -std=c++11 -m32 -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/freetype/freetype-2.6.3/include/" -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/openal/openal-soft/include/" -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/gles20/angle/include/" -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/sdl2/SDL/include/" -c -o "I:/SpiderOak/DevTools/Monkey2/monkey2/hello-world.buildv1.1.03/windows_debug/build/_1include_2_0r.cpp.o" "I:/SpiderOak/DevTools/Monkey2/monkey2/hello-world.buildv1.1.03/windows_debug/include/_r.cpp"' failed.g++ -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/" -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/monkey/native" -I"I:/SpiderOak/DevTools/Monkey2/monkey2/" -std=c++11 -m32 -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/freetype/freetype-2.6.3/include/" -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/openal/openal-soft/include/" -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/gles20/angle/include/" -I"I:/SpiderOak/DevTools/Monkey2/monkey2/modules/sdl2/SDL/include/" -c -o "I:/SpiderOak/DevTools/Monkey2/monkey2/hello-world.buildv1.1.03/windows_debug/build/_1include_2_0r.cpp.o" "I:/SpiderOak/DevTools/Monkey2/monkey2/hello-world.buildv1.1.03/windows_debug/include/_r.cpp"In file included from I:/SpiderOak/DevTools/Monkey2/monkey2/hello-world.buildv1.1.03/windows_debug/include/_r.cpp:43:0:I:/SpiderOak/DevTools/Monkey2/monkey2/hello-world.buildv1.1.03/windows_debug/include/hello_5world_hello_5world.h:14:75: fatal error: mojo/mojo.buildv1.1.03/windows_debug/include/mojo_app_2window.h: No such file or directory#include "mojo/mojo.buildv1.1.03/windows_debug/include/mojo_app_2window.h"^compilation terminated.***** Fatal mx2cc error *****Internal mx2cc build errorI try MX2 out occasionally, but two things that really put me off are:
- Ted/Ted2Go doesn’t read the command-line parameters passed to it, so you can’t associate .monkey2 files with it — this means double-clicking a .monkey2 file from the desktop doesn’t launch Ted2Go, even if you manually associate .monkey2 files with Ted2Go. I tried adding this myself some time ago, but for some reason could never get it to work. (I think I was failing to build the basic project, from memory.)
- No cut/copy/paste toolbar items, or right-click menu (which would typically include these items, plus Select all, Delete (same as Cut, without copying to clipboard).
While I’m not overly-keen on the complexity of simple game projects, and all the ‘boilerplate’ needed in MX2, I am definitely willing to suck it down for MojoX3D2!
For me, though, these items are pretty much essential for a smooth flow, so thought I would at least mention them — I realise it’s purely a voluntary project, so this is just “for information”. Ted2/Ted2Go is a really impressive piece of work, given it’s entirely built around a custom GUI, but, personally, I just can’t handle not having these basic features.
Control over basic editor settings, as in MaxIDE, would be nice in the long term — fonts, colours, whether or not files are re-opened on startup, etc — but I can live without these.
Intended constructively, not actually complaining!
I’ve stumbled across bgfx while trying to find a decent 3D engine, does seem quite capable and almost ideal for mx2.
I don’t think it’s worth playing the Latest Version Number game, though. “Blitz3D + shaders” will work for most people!
I’ve always thought it would be great to have a ‘ShaderFunction’ (or PixelShader/VertexShader/etc function types) that can be defined within the game’s Blitz/Monkey source, allowing only a very limited subset of the language that’s then translated to GLSL/whatever.
Crude example…
Monkey123456789101112131415PixelShader DOF (tex:Texture)Local pixel:Pixel ' ARGB data for current pixel the shader is working onpixel.Read (tex) ' Would also allow, eg. pixel.Read (tex, -1, -1) to read from upper-left neighbourLocal db:Pixel = DepthBuffer.Read () ' DepthBuffer = built-in texture referenceIf pixel.r And etc...pixel.r = whatever... etc...EndIfEnd… and of course mx2 would spit out the relevant .glsl and deal with all the setup as part of the build process.
I think making shaders much more accessible like this would get many more of us into shader programming!
Re. Libvlc, yes, audio is covered — as in the example I posted plays audio without anything else needed.
I’m only speaking from a libvlc perspective (since that’s all I’ve played with), but whatever you go with, consider supporting only something like Ogg Theora by default, as arpie suggests. Codecs are a legal minefield!
Supporting other formats can fall upon the individual developer, while everyone can recode as Ogg Theora one way or another… same should apply for ffmpeg, really.
It really depends whether you intend to support playing any random video (legal minefield, blah blah) or just allowing a way to play some form of self-produced video… in which case, figure out the ‘safe’ codecs and support only those.
Re. VLC — I don’t have a strong preference, but I should have said libVLC — which is the (cross-platform) library that VLC (the ‘app’) is based on! There’s an example in the comments on my link for rendering to pixmaps, by the way.
This is the actual loading/playing process (see comments) for libvlc in BlitzMax, after loading the DLL and assigning functions from it:
Monkey123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869' Create VLC instance...instance = libvlc_new (0, Null)If instance' Load media from filename...media = libvlc_media_new_path (instance, file.ToCString ())If media' Create VLC player...player = libvlc_media_player_new_from_media (media)If player' Blitz window...Local window:TGadget = CreateWindow ("Media player", 320, 200, 640, 480)If window' Inner client area of window...Local hwnd:Int = QueryGadget (window, QUERY_HWND_CLIENT)' Tell VLC to render into client area...libvlc_media_player_set_hwnd player, hwnd' Play!libvlc_media_player_play playerRepeatSelect WaitEvent ()Case EVENT_WINDOWCLOSEExitEnd SelectForever' Stop and release VLC player...If playerlibvlc_media_player_stop playerlibvlc_media_player_release playerEndIfEndIfEndIf' Release media...libvlc_media_release mediaEndIf' Release VLC instance...libvlc_release instanceEndIfDon’t know what your plans are, Mark, but VLC is pretty easy to use:
http://www.blitzbasic.com/codearcs/codearcs.php?code=3230
See notes about licensing (needs to be in dynamic library form for LGPL compliance, etc)… seems like you could provide a carefully-selected subset of non-GPL codecs with it to support a bunch of ‘default’ formats at least.
Ohhh… I’m importing Mojo, duh! I’ll go to bed…
I’ll maybe give that one a go, then… don’t like Github Desktop’s GUI anyway…
Just realised I’m slightly OT, apologies. Liking new Ted2 a lot more, though, become quite nice to work in, huge achievement for a self-rolled GUI system!
I’m not quite getting something about the Github update process!
I use Github Desktop, dragging and dropping the link from https://github.com/blitz-research/monkey2/ (which I assume should get the latest master) but I end up with a version showing last updated 2 months ago in the History tab, and no hellochipmunk. (Tried deleting it from Github Desktop and starting over, but it does the same.)
Hitting the Download link gets the latest version, but I assume it’s possible to get the latest in Github Desktop… somehow? It doesn’t seem to pull down the master branch that the link above shows… what am I missing?!
Sounds pretty straightforward on the MinGW side, at least…
http://stackoverflow.com/questions/708238/how-do-i-add-an-icon-to-a-mingw-gcc-compiled-executable
Not tried it!
-
AuthorPosts