I'll see what I can do, but I'm in the progress of going back to school and the stuff we're doing at the moment is a programming course. Commuting and people and stuff are kinda exhausting and I don't really feel like relaxing by doing the same thing I do to get tired. But we'll see~If you can spare time during the week, then don't forget it is a full-week jam, instead of 48h / 72h
Sorry if this question is stupid, I've never actually used buffers before. By hard coding the reference do you mean that I don't have to use 'var' when creating my buffer with buffer_create? And you say this also applies to data structures?Correct
Buffer are also zero-indexed if I'm not mistaken, so you can still hard-code the reference to the buffer if you want. Just like you'd do with the data structures
No, what I mean it's that when you create a data structure or a buffer, GM assigns them a sequential number starting at zero per type. This means that if you only create a single list, a single buffet and a single grid, then all of them can be referenced by 0, for exampleSorry if this question is stupid, I've never actually used buffers before. By hard coding the reference do you mean that I don't have to use 'var' when creating my buffer with buffer_create? And you say this also applies to data structures?
Nobody really knows. But there's a rumor it started about 2 hours ago. Check rosario's first post.When will the Jam start?
Since we'll be sending you the GML script file only, then the room configuration isn't specified by us.After the validation period ends, an executable will be made available per script with just one room with one instance in it and the script in the instance's Draw Event (no kind of configuration will be performed, e.g. changing room size);
Really? Wow I didn't know that. That's not very obvious behavior so I don't feel that bad not knowing that. I just assumed that they would always need a reference otherwise it would give an error. Thanks for the tip!No, what I mean it's that when you create a data structure or a buffer, GM assigns them a sequential number starting at zero per type. This means that if you only create a single list, a single buffet and a single grid, then all of them can be referenced by 0, for example
I think he said somewhere that the room settings will be left as the default.Do you have plans for specific room settings -- size, room_speed, whether background color is drawn, whether windows buffer is cleared, etc.? We can account for variation in room settings (like size and background color), so our script will run the same in different room settings. But large variations in room_ speed are harder to correct for.
So if you have plans to distribute the .exe files with specific room settings, that would be good to know. It would reduce the uncertainty.
Nobody really knows. But there's a rumor it started about 2 hours ago. Check rosario's first post.
@rui.rosario: I'm wondering what you mean by this rule:
Since we'll be sending you the GML script file only, then the room configuration isn't specified by us.
Do you have plans for specific room settings -- size, room_speed, whether background color is drawn, whether windows buffer is cleared, etc.? We can account for variation in room settings (like size and background color), so our script will run the same in different room settings. But large variations in room_ speed are harder to correct for.
So if you have plans to distribute the .exe files with specific room settings, that would be good to know. It would reduce the uncertainty.
The only thing that changes from the above statement is that now I have the Pro version of GM:S installedFree version of GM:S -> New Project -> Import OSG Script -> New Object -> Stick the Script in the Object's Draw Event -> New Room -> Stick the object in the Room
This is the template I'll use
Good way of quickly checking it @Mike!
I wouldn't lay out the best methods in the Pushy scriptOk so my little game I have made so far has jumped from being 100-200 FPS using a method similar to Pushy's buffer saving to 1500+ FPS using just data structures. That is definitely the way to go.
It's going nicely then!Doing some groundwork... I now have a custom sprite/texture page system. It *almost* supports animations, too, but there's some more work to do before that works properly.
.
There are 1001 sprites there, so I guess performance is pretty acceptable, even.
Damn that @Mike and his skill xD...in the meantime I've been struggling with my computer crashing randomly, more and more frequently (in a bluescreen manner, specifically). After various tests and hardware machinations I ended up removing one RAM module (after earlier trying out removing the *other* RAM module, because you can never remove the faulty element upon the first try) and since then, the symptoms are gone and the computer works... for now. That's so much fun, especially for the jamming time...
(good thing it's one week long instead of 3 days this time round; that way wasting a few hours narrowing down the problem isn't that severe...)
Also, in case you people missed it, @Mike seems to be progressing nicely. Guess with all that 3D stuff and other things people are pulling off with their one script, others will need to make their game really entertaining to keep up. ^^'
Yeah, 8GB may not be enough, I would advise you do download it right nowYeah, it seems that removing that module did the job (apparently, hopefully it was the source of all these faults and now my PC is good to go), so now I'll just keep going on whatever I've got left. 8GB is still sufficient for basic operations, and I guess once I get more time and need more RAM, I can always download some. ^^
Are you talking about the Pushy script? What localized arrays have you found (might have missed them)?Your script seems to have localized arrays. If localized arrays are allowed, why are not localized variables?
Thee are a lot. Blocky[2] is the first.Are you talking about the Pushy script? What localized arrays have you found (might have missed them)?
If you notice (I suppose you meant Blocks instead of Blocky, since I couldn't find any Blocky), the Blocks variable is declared in line 28:Thee are a lot. Blocky[2] is the first.
var Room, Player, MoveableBlock, Blocks;
Yes, as stated in the original post (I believe).And doesn't this script go in an object's draw event?
Same thing i was thinking about, i haven't even started yet lolAfter seeing mikes awesome vid... is there any point in me even atempting anything? sigh...
Try writing the u32 reversed, to see if then the alpha gets corrected (I think the bytes may be getting read in one endianness and written in another maybe, making the alpha channel become another channel?)Anyone knows how to get buffer_set_surface to work without using buffer_get_surface (as I want to make surface from buffer made from scratch)? Whenever I use buffer_get_surface on source surface, then buffer_set_surface on destination surface, the destination seems to be updated correctly (unless the buffer is undersized, in which case the destination is not updated at all; the function fails silently?). However, when I try filling the buffer with the first u32 number read from source surface, buffer_set_surface makes destination surface all transparent for whatever reason. >.<
(the manual example of buffer_set_surface isn't particularly helpful, either, as it's a single buffer_set_surface call without any context whatsoever)
It's all smoke and mirrors! Bluff! It's the gameplay that counts and he doesn't know anything about that 'cause he's old... Us youn'uns can beat him!After seeing mikes awesome vid... is there any point in me even atempting anything? sigh...
Thanks, but I already tried lots of different stuff, and even when I write $FFFFFFFF and the buffer tells me that at position 0 there is that 4294967295 number (which is decimal for FFFFFFFF), it still makes the destination surface transparent. Unless it's the one from buffer_get_surface, in which case things are miraculously working right, and they report 4294967295 at 0th position, too.Try writing the u32 reversed, to see if then the alpha gets corrected (I think the bytes may be getting read in one endianness and written in another maybe, making the alpha channel become another channel?)
I remember I had a project in which I used those functions without any problem (and inclusive changing the buffer contents). Can it be a bug or some internal change in buffer's structure?Thanks, but I already tried lots of different stuff, and even when I write $FFFFFFFF and the buffer tells me that at position 0 there is that 4294967295 number (which is decimal for FFFFFFFF), it still makes the destination surface transparent. Unless it's the one from buffer_get_surface, in which case things are miraculously working right, and they report 4294967295 at 0th position, too.
More specifically, I got two buffers. They both have identical contents (i.e. are filled with 4-byte u32 chunks of FFFFFFFF) and they have the same size. Yet, one is apparently more fit to work as a source buffer than the other.
To make things even more confusing, when I do buffer_get_surface on a buffer, then write data to it, it still acts like it's composed of the old data. It's kind of like the buffers have some sort of special pocket memory accessed by buffer_get/set_surface functions only, and changing the actual buffer contents through regular buffer functions has no effects at all. What sort of black magic is that? >.<
I'm almost as confused as I were when I tried doing ds_list_sort on lists with strings and numbers on HTML5 export. Gazing upon these sorting results was like staring right at the essence of the Elder Ones (you know, those from Ctulhu mythos); that might explain how I got insane enough to become a moderator, now that I think about it.
If you can dig out that project and extract a sort of "hello world" code that e.g. generates a buffer with all white pixels, then copies these to a surface, I'd be really grateful. I'm completely stumped here, and the fact that manual example shows no context whatsoever doesn't help, either. >.<I remember I had a project in which I used those functions without any problem (and inclusive changing the buffer contents). Can it be a bug or some internal change in buffer's structure?
If the script generates the sprites, then you just need the script.@rui.rosario sorry for being dumb or something, i'm not going to read though what you guys said, but if we use sprites aren't we supposed to send them to you with the script? i know they should be created from the code but the code needs to find these somewhere too
i drew some sprites, how can it generate these than :/If the script generates the sprites, then you just need the script.
I'm assuming you are not allowed external resources.
@rui.rosario sorry for being dumb or something, i'm not going to read though what you guys said, but if we use sprites aren't we supposed to send them to you with the script? i know they should be created from the code but the code needs to find these somewhere too
Yes, you are NOT allowed external resources. So you can use Sprites if they are somehow generated through the codeIf the script generates the sprites, then you just need the script.
I'm assuming you are not allowed external resources.
ohhh well that's the real deal than, i was going to make the game look good but nvm than, let the work beginYes, you are NOT allowed external resources. So you can use Sprites if they are somehow generated through the code
I tried converting them to base 64 and loading them In the script. But eh. I think I'll go with a 3d game. Much easier...ohhh well that's the real deal than, i was going to make the game look good but nvm than, let the work begin
that would've been a pain in the a*s, mike's doing good there tooI tried converting them to base 64 and loading them In the script. But eh. I think I'll go with a 3d game. Much easier...
I'm really wondering how he got those resources into the game.that would've been a pain in the a*s, mike's doing good there too
Use buffer_base64_decode to get yourself a new buffer with resource bytes written into it. Then use buffer_save to save it to a file. Then load the file with according functionality (sprite_add\background_add\etc.).I tried converting them to base 64 and loading them In the script. But eh. I think I'll go with a 3d game. Much easier...
if i saved a surface into the buffer using buffer_get_surface how can i load that? my god it's the first time i use buffers and i already hate themUse buffer_base64_decode to get yourself a new buffer with resource bytes written into it. Then use buffer_save to save it to a file. Then load the file with according functionality (sprite_add\background_add\etc.).
Buffer_get/set_surface never worked correctly for me.if i saved a surface into the buffer using buffer_get_surface how can i load that? my god it's the first time i use buffers and i already hate them
You would use buffer_set_surface to plop the raw image data (RGBA) onto a surface from a buffer, but I wouldn't suggest this if you haven't worked with this prior. Encoding an entire file via one of the numerous external tools (or even using buffer_base64_encode on bytes loaded via buffer_load) is both easier and has smaller output (because PNG is compressed).if i saved a surface into the buffer using buffer_get_surface how can i load that? my god it's the first time i use buffers and i already hate them
You would use buffer_set_surface to plop the raw image data (RGBA) onto a surface from a buffer, but I wouldn't suggest this if you haven't worked with this prior. Encoding an entire file via one of the numerous external tools (or even using buffer_base64_encode on bytes loaded via buffer_load) is both easier and has smaller output (because PNG is compressed).
i just went woth surface_save, saved me alot of headache with the buffer thingy, thanks for the tips anywayBuffer_get/set_surface never worked correctly for me.
I considered saving as a png, I may end up doing that...