MonkeyMax as official target?

Monkey Forums/Monkey Programming/MonkeyMax as official target?

Skn3(Posted 2013) [#1]
This is kind of a response to this:
http://monkeycoder.co.nz/Community/posts.php?topic=4790

Is there any reason why monkey max.. or blitzmax hasn't been officially adopted as a target platform? Blitzmax is fully capable of handling everything monkey could throw at it. Surely it would be a massive plus to adopt it as one of the official targets and keep it uptodate with offical releases?

Many people seem to have major reservations with monkey for releasing games on desktop. If blitzmax became an official target it would not only rectify this, but potentially also open up a new revenue stream for monkey-only-customers to purchase a license for blitzmax too?

I can't see a DirectX8/9/10/ (< win8) target being created anytime soon so it could be the perfect solution?


Neuro(Posted 2013) [#2]
I agree with this. MonkeyMax did work wonders back when i was using it(aside from some sound/music quirks), so i see no reason why a BlitzMax can't be an official target.


GW_(Posted 2013) [#3]
What's the state of MonkeyMax? is it feature complete?


AdamRedwoods(Posted 2013) [#4]
i'd rather see the time and energy being spent on a better monkey desktop.


Skn3(Posted 2013) [#5]
How would that be supported though.. As a low end directx target?

Last time I had a play monkeymax was capable of compiling a full featured game at decent speeds so it was pretty much feature complete. Of course things have progressed a bit with 67+ but I'm sure it wouldn't be as much work as a whole new target from scratch?


Paul - Taiphoz(Posted 2013) [#6]
I would love to see a converter that went from Max to monkey, yeah yeah I know there are tons of things monkey does that max does not but im sure a converter that just focused on the things that could be ported over would go down well.

It at least would reduce the work load on porting stuff from one to the other.

ON SUBJECT :: Yeah I think having a MaxTarget makes a lot of sense not only is it self supporting in terms of one of marks languages supporting the other, but it would as others have said give us that lower grade DX target which we dont get in the form of Win8, gives us some backward compatibility.


AdamRedwoods(Posted 2013) [#7]
although i'm all for a maxmonkey target, i would not want to see it as the official solution. if you want new users to adopt monkey, then do not make them buy another product.


Skn3(Posted 2013) [#8]
The official solution is GLFW and that is the core of the issue due to GL on older hardware. A DX9 target would be ideal but the chances of that happening officially are? There is a nearly complete solution that is monkeymax. It would solve the problem if only it were kept uptodate with the current builds of monkey.

I would disagree, there is no harm in charging to compile to some different targets? Most software companies have some level of price banding

E.g. starter, indie, pro... bronze, silver, gold.

If it was a massive issue then perhaps a bundle price could be offered for both products together?


caffeinekid(Posted 2013) [#9]
I'd love to see this as an official part of Monkey as I'm sure lots of other Blitz Max owners would :)


Paul - Taiphoz(Posted 2013) [#10]
I am all for Max being an official target, in fact I will expand on that by saying that I am all for as many new targets as possible , lets face it the more options us as developers have when it comes to pimping out our work to different platforms the better it is for us.

So why not Max. does that mean GLFW is redundant ? im not so sure about that.

Also has anyone thought about asking mark if he would add these new targets to the official download but having them clearly marked as community driven and not official ?

That way mark could add them, everyone gets them, mark does not need to do any extra work on them as the community teams making them would maintain them, and everyone wins.

All that would require is mark to add a little info in a readme or a popup when selecting one of those targets that says something like "Hay this target is community made and not official, for support see http "

I think people are getting hung up on what it means to be official I think really what were all talking about here is just having the target part of the main download so the it gets out there to as many people as possible.

The only real issue I could see with this would be the update pipeline.


Soap(Posted 2013) [#11]
This has turned into a rant. :P

I would support it as an official target. BlitzMax builds are time tested and solid. You can trust them for release. Official is good because it means it is commercially supported and so more likely to be updated and improved to the most ideal setup. You want things to JUST WORK with every update. Mark does a great job with Monkey but I still wish he would hire more guys to work full time with him creating and updating targets and making them the best possible. Android active wallpaper target plz?

GLFW isn't redundant. It is a good build target for certain audiences. The great thing about the BM target is supporting older hardware. BlitzMax builds work on older hardware which many audiences still have. It would make sense to support as many commercially viable targets as possible because those are the targets which people with money will want to have supported.

If I didn't care about things being commercially supported I'd still be using Haxe. I use Monkey because I don't want to worry about all of that stuff. I want to make games, build them, and sell them. If I cared about money too I'd use Haxe also. It's free, and does everything Monkey is capable of, and more often than not coders prefer its syntax, and yet because it is not commercially supported it does not get anywhere near the level of support Mark gives Monkey.

> if you want new users to adopt monkey, then do not make them buy another product.

There are much more pressing issues with the ability of Monkey to sell (I've listed many before). Needing to buy BM to make BM builds is a low of an issue as needing to buy Android or iOS hardware to test those targets. For commercial devs, it is 100% a non-issue.

Stop trying to appeal to hobby coders who don't use Monkey to make money and who pinch their pennies as far as they can go.

Focus more on commercial developers who are more than happy to take our money for things which we want to support.

Look at the difference between Monkey and other tools. Monkey is the cheapest thing out there. If price mattered it would be selling the most, right? But instead the Monkey community still has yet to break 1,000 users. Meanwhile Unity, Game Maker, Clickteam, Impact, all of those have way more users. It's marketing. Monkey is the best option for making 2D games but still people choose those other higher priced options. Hobby and commercial devs both. Why? Marketing. I wish I could help and I've suggested things but for most of my time I have to focus on my own business. I'll keep buying Monkey licenses to support Mark and wish for the b est. Can any other commercial dev beat my high score? ;)


Skn3(Posted 2013) [#12]
GLFW is definitely not redundant,.. its just not as the best option for windows builds (< windows8). I am having no issues with GLFW at the moment I just fear when it comes to do a real build of my game...

I guess I am blindly going into it knowing the conditions monkey has for windows builds and I should use blitzmax instead... its just... monkey is so much nicer to program in!

I'm not so sure about having unsupported public targets as part of the core package, but it would be good to at least have some form of official database of targets and modules. Something a bit like the maximus project, or even just have some kind of "store" webpage embedded into "ted"? User submitted content, user comments, download stats, popular modules, update log, etc


Shinkiro1(Posted 2013) [#13]
The problem with adding other 'official' targets is that Mark has to support them after that,
which in case means other targets will not get as much attention. Just something to keep in mind.

That doesn't mean I wouldn't like to see it becoming official, I just think the other ones are more important. And I agree with Soap, monkey is priced ridiculously low.


therevills(Posted 2013) [#14]
The problem with adding other 'official' targets is that Mark has to support them after that

And the problem with MonkeyMax as non-official is that we need to keep it up to date...

I'm happy to open the SVN repo up for anyone wanting to improve/update MonkeyMax.

Or I could convert it to Hg so people can clone it...


Tibit(Posted 2013) [#15]
I feel like it should be included with Monkey and semi-supported by Mark as long as it "works". It might be that if max was officially supported it might limit future language features or something?

It would not surprise me if Mark does have the max target installed on his setup and that he does test it every major build anyway, I would just guess that he don't want to make it a burden, because is it not possible that if it was an official target that more bugs would be found that had to be fixed?

However myself my plan before was to use the bmax target for any desktop win/mac/linus release. However I'm starting to be less sure about the benefits of that compared to the desktop options of xna, glfw & win8.

Is there a lot of computers in the casual market that need dx less than 11 and that don't support opengl? I remember this to be the case back in the beginning of the Max days, but is that still so?

For me a simple note in the patch log saying "Max Target Runs" would do. And support on that target is up to the community.


Samah(Posted 2013) [#16]
@therevills: Or I could convert it to Hg so people can clone it...

This. People should be cloning and submitting pull requests. It's too easy to wreck a Subversion repository with bad commits (deleting or adding files when you shouldn't, e.g. Mojo)

Yet another example of why public domain/open source projects should have an official repository.


AdamRedwoods(Posted 2013) [#17]
one of my opposition points against a bmax target is that glfw is going to go 64-bit. i don't think bmax will go 64-bit (win/linux).

another thought i had is to take the BlitzMax directx code and port it over to monkey/mojo.


Soap(Posted 2013) [#18]
That would be cool. It's not that I feel anything special for BlitzMax. It's that it offers very solid support on older hardware, and has a long history of large games released.

Many people still hang on to super old computers (and still buy stuff) but refuse to upgrade their 10+ year old system. For many people, the hardware they have is really all they need and if your game or whatever doesn't work on it they just pass it by for something else.

Thank you to therevills and friends for supporting the community so much. And thank you to everyone in the community who keeps it going.


EdzUp(Posted 2013) [#19]
One nice thing that would be cool and VERY useful is a program that translates BlitzMax code to monkey code :)


Paul - Taiphoz(Posted 2013) [#20]
Yeah I am thinking about take a stab at it, I have a few projects that I would like to port over to monkey, most of them dont use any extra modules or fancy systems so should port via a converter fairly easily.

with some final tweaking of course.


Skn3(Posted 2013) [#21]
Well some good news and some bad news.

The bad news is: its not finished yet.

The good news is:


Compiled and running from monkeymax v69. The new target system is pretty clean behind the scenes! I am really liking it!


Shinkiro1(Posted 2013) [#22]
Cool.
Using this new target system do we still need to hack trans?


Skn3(Posted 2013) [#23]
Yeah running on the new target system. Just trying now to figure out why input isn't being recognised.

Unfortunately you have to hack trans although the amount of hacks (internally) is greatly reduced. Official Trans now has a builder API which is about 90%-ish modularised but there are still a few minor references that are hard coded and have to be hacked in.

The other issue is with native .bmx files and import declarations for existing modules. It is easy enough to provide all the files in folder as before, but it would be good for a more elegant solution to this in the future.


Paul - Taiphoz(Posted 2013) [#24]
Yeah I really wana try this but have no inclination to mess with trans, I really did hope that the changes mark was planning would allow for targets to be added without the need to mess with it. oh well.


Skn3(Posted 2013) [#25]
Just to point out that the changes to trans are essentially:
-Import a new module
-Add small reference to that module to trans
-The imported module does all the work in accordance to the trans API

The other aspect of the monkeymax is .bmx versions of the native files for certain modules. So for example monkey has modules/mojo/native/mojo.glfw.cpp . Monkeymax adds a mojo.bmax.bmx file. Nothing else is overwritten.

Installation is:
- Extract monkeymax over top of a monkey installation.
- Run a batch file
- Setup your config file as per normal with added BMAX_PATH

It uses native monkey trans src code (see src/transcc) and makes no changes to standard runtime of non blitzmax code. It is 100% safe to use for all targets.


therevills(Posted 2013) [#26]
I did start looking at this yesterday myself, but it sounds like Skn3 is ahead of me :)

@Skn3 - Samah converted the SVN GoogleCode over to Hg yesterday, so do you want to clone the project and push to it or do you want access to the repo so you can pushed directly to it?


Skn3(Posted 2013) [#27]
That would be good if you don't mind? Would be good of you could have a look over what I have done too make sure things are in order :))


therevills(Posted 2013) [#28]
Cool. I've added you to the project on Google code using the email in your Monkey profile (jon@...).

If you want you could send me the files to my email address (therevillsgames@...), but I'm happy for you to push to the repo (of course don't push mojo files apart from MonkeyMax's ;)). You could stick it on a new branch too and we could merge to the mainline later.


Skn3(Posted 2013) [#29]
Awesome. I created a new branch called "v69" and its up there. Currently there is no joystick support, just having a look at that now. Everything else seems to work though!


Skn3(Posted 2013) [#30]
And joystick now working:
https://code.google.com/p/monkey-max/source/browse/?name=v69


therevills(Posted 2013) [#31]
Wow! You have been busy, great job!

I've just pushed a couple of small changes, your LoadString didn't work so I put it back to the original code and I've removed the Diddy module code (and added it to the Diddy project).

And I've never seen the period syntax before in BlitzMax! When and How?!
_startms = .MilliSecs()

We should continue this thread in the MonkeyMax thread over in the User Targets forum.


Skn3(Posted 2013) [#32]
Good idea. Well back to the thread topic.

After working with MonkeyMax, It does seem like it would be quite rudimentary to keep uptodate with monkey but there are a few monkey headaches...

one of which is here: http://monkeycoder.co.nz/Community/posts.php?topic=4808

... which make it difficult to maintain a user-made-target in conjunction with monkey updates.

The best solution would be for monkeymax to be official, but close to that would be to make the target system more friendly when applying customisations to core modules.