Forum Replies Created
-
AuthorPosts
-
TLDR; Discord is just a choice out of many several used projects, as is IRC, which has seems to be working. Discord has several life-improvements over a lot of options but my personal biggest quarrel with IRC was lack of chat history. Mark Sibly is very very active with Monkey2 and wont be dropping off any time soon and I will be making more tutorial videos soon!
—-
IRC just didn’t have anyone actively on. There was about one person, a very friendly and helpful whenever he-can-be person(Hezkore), but because of IRC’s limitations it just didn’t make any sense for the vast difference in time-zones between users. IRC doesn’t show you past conversations, you need to idle in there just to see conversations which are normally short and end up dying . . .
That being said, Monkey2 is on Freenode at #Monkey2 – it is just rare to catch anyone on there (and was when it was a thing).
I don’t think Monkey2 needs to conform to any service just because some things stay with those technologies. Right now Discord is working (20 averaging online and many users connected), we have an active few on there like mentioned but the conversations are held in time and Discord has several powerful features. There are multiple channels under the server, there’s the ability to post images and videos and gifs in the showcase, anyone who’s been pinged while being offline will see it later, Discord can be used from the web, your desktop, your phone and just about anything else for that matter. The one thing discord obviously has as well is voice chat! It’s always there for anyone to use and if you want to call someone up for some help VIA a screen-share that’s also always completely possible.
Discord is completely free and very customizable, allowing people to have certain roles, allowing us to have a lot of user interaction that just isn’t found in other services – and it’s all completely free!
I’m not sure about languages that use Discord, but there are a number of large communities which I know use Discord. Some include Godot, HaxeFlixel, GameMaker, and recently Monkey2! So as far as that goes, it’s not uncommon nor really “unprofessional”. If we wanted something completely open but with less functionality and wider adoption I’d say Gitter is the next most common thing I’ve used and then not so open would be Slack – but Discord just feels much more friendly and integrated than everything else.
Honestly, when I first got into Monkey2 I was aware of the IRC and its integration into Monkey2 but it just didn’t feel lively to me. Whenever I used it I almost felt like I was the only one ever there! But at least with Discord, I’m not yelling into a void which eats up the messages for no one(or just the rare few who keep their’s open) to see later . . .
I do believe having the chat-client inside the IDE was a fun idea and an interesting concept, and I really wished it worked! Heck, even when I did have the chat open in IDE I kind of just forgot about it when I was programming and only ever looked and found someone had just logged on or off!
As far as the life of Monkey2, it’s going strong! Mark Sibly is active on Discord, GitHub, and on the Forums; it doesn’t sound like Monkey2 will be slowing down any time soon! There’s a lot of things being done, proposed, and fixed and he’s on top of it all. As far as getting more Tutorials and learning resources I will be making more soon! I have a lot of my own work on my hands at the moment though, some slightly limited time, and I am definitely looking forward to making some more!
I think the technology used for communications per project/language is just choice after all. Several projects use Slack, some use Gitter, some use IRC, and some use Discord!
Nope, no graphical errors with the Toy plane! But, as I’ve speculated before, the frame rate drops exponentially with increasing rendering sizes.
Doesn’t look like there’s any modules built from scratch for it! But you could certainly do it in Monkey2 without too much hassle!
All you got to do is do a combination of UDP to start and then TCP, or just UDP.
1. Create a UDP broadcast from the host that will tell everyone they’re a host over LAN.
2. Clients will listen for the broadcast.
3. Once you catch the hosts address you can connect to that address now over TCP.
4. Once room conditions are met just follow typical game protocols over TCP on LAN.You could get a decent feel for making multiplayer in Monkey2 through one of the Bananas! I’m currently in the process of making a multiplayer game that’s a Server-Client architecture using Go+Monkey2 and that’s been mostly painless!
Got 2-5 FPS on Chrome, Firefox, and Native. Native also seems to have some big problems with the rendering causing a whole bunch of tearing and extreme noise. Looks like it could be a fun demo/game if I could only play it!
Windows 10, i7, GTX960m
@abakobo I actually just deleted that video!
The video is now hosted on YouTube. The link is here: https://www.youtube.com/watch?v=5ozjhkc9r_0&feature=youtu.be
This is a very brief introduction to rendering an image in Monkey2 and I’m in high hopes more people would like some more tutorials! I have plans to proceed but I’m looking for some feedback to get me rolling
Hopefully, in the future, it’ll be a great starting place for beginners – or a nice reference for intermediate users – or maybe a good overview for advanced users!
I am also now experiencing the exact same problem. I have no idea what it is I may be doing wrong but here is my code
mx2cc version:
Mx2cc version 1.1.12Monkey1234567891011121314151617181920212223Local img:= <replace with ur own image object>Local pixmap:=New Pixmap( img.Width, img.Height )Local tex:=New Texture( pixmap, TextureFlags.None )dynImage=New Image( tex )Local pcan:=New Canvas( dynImage )Local results:=New StringStack' Try to effect the pixel mappcan.Clear( Color.Black )pcan.DrawImage( img, 0, 0 )pcan.Flush()For Local y:=0 Until img.HeightFor Local x:=0 Until img.Widthresults.Push( "," + pixmap.GetPixel(x,y).A )Nextresults.Push( "~n" )If y Mod 50=0 Print "working..." + yNextPrint results.Join("")' no data is registerd, just an array of 0'sIt might not work if I copied my code wrong, but this is pretty much it. I don’t think I saw your updated flag either @admin!
I’m not sure if there’s a built in way to do this, and timers might be constrained to some unseen minimum delay problem. Not sure if that’s the case.
A possibility would be to handle this yourself. If you know that a framerate is possible at a certain level, you could fix it there. This would be something like having some sort of “rest” loop which will attempt to imitate that work is being done to throttle the framerate.
psuedo logic:
while( timeTilNextDesiredTick > CurrentTime ){
‘wait here (this is very crude)
}There are more details about sequencing framerate here: http://gameprogrammingpatterns.com/game-loop.html#how-do-you-control-gameplay-speed
@yue I still think it is missing your modules. Have you rebuilt all modules?
scripts > rebuildall2go
Edit: sorry,
Well I am not certain anymore that is the case. I think other’s have had a problem with file access rights so that might be the cases here . . .
Not sure how much I can help, but if monkey2 has a way to utilize timeout functions that run on a separate thread – then I have one idea off the top of my head.
Since your main thread stops when being dragged, the code only needs to be executed in whatever function is most appropriate (I’d assume render in a window is).
Psuedo code:
1. make timer2. pass timer a function
3. when timer timeout it will execute function
4. in the render method, keep resetting the timeout to something reasonable
5. now whenever the main method is paused the timer will eventually run out and you can loop it!—
This is fairly unorthodox and there are more SDL2 like ways. Here’s a thread I found that kind of covers that topic: https://www.gamedev.net/forums/topic/527683-sdl-dragging-window-problem/Looking nice!
Thanks for the delightful insight, Mark! I’m actually not a C/C++ programmer, but I do find myself thinking Monkey2 is supposed to be very much in line with it. But if this is against the idiosyncrasy of the language than I’ll be the first to stop in my tracks and try to follow the correct practices.
What I’m really trying to do is just test the waters on what is appropriate to do given the capabilities of the language. . . Again I’m really only doing things which a more experienced M2 programmer would say “Just because you can don’t mean you should”. So thanks to your response I have a much clearer view of what track I should take to keep on improving my code.
No anger here! Hopefully, I haven’t done that myself to you :). The impression is definitely true I do have this idea, but it is not what I’m trying to accomplish. I just want to use Monkey2 to its fullest potential without going down the wrong track just because it “works” and seems “right”. So all in all, I think it’s really just me taking advantage of the similarities and abusing some of the features you’ve granted us for wrapping purposes. Luckily I haven’t used Monkey2’s C-like capabilities other than to make up for my own bad practices that would eventually bite me in the rear. I’ll take the advice and start working towards what the ideal MX2 code should be!
Starting to read a book right now about “game programming patterns” which I hope will help me structure things more appropriately later on.
Again, thanks, Mark!
@admin May I beg the question on what the idiomatic way is for handling memory in Monkey2? I find myself always wanting to do things a bit more like I would in a lower level language and using pointers for certain things and such . . .
Relevant to this case, I might want to create a pointer and point to a struct. Wouldn’t that be okay? I haven’t tried it though, so I don’t even know possible that would be.
It does seem to get slightly better performance! Hard to tell without an FPS counter though . . .
Differences:
Chrome: About the same speed when everything is on the screen at their initial size. When making the lighting fullscreen it responds better than previously, but the frame cap is still not desirable. It seems the 3d portion is the hardest on the system
FireFox: Seems to be about on par with Chrome, maybe slightly higher frame rate but also in this version it seems to stutter more – indicating FireFox’s javascript engine is not on par with chrome, but their WASM seems to be on point.
MS Edge: Still errors. And forgot to mention that for some reason before erroring it asks for “input” via a pop-up input box.
Could you possibly provide a windows EXE? Surely the native version will show me exactly what the expected experience should be like
-
AuthorPosts