• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

Game Jam OSG Jam

Micah_DS

Member
Well, I'll be starting my game mid-jam, due to work, but definitely still on board. I'm very glad it goes for a week.
 

Yal

🐧 *penguin noises*
GMC Elder
If you can spare time during the week, then don't forget it is a full-week jam, instead of 48h / 72h :p
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. :p 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~
 

Coded Games

Member
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
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?
 
R

rui.rosario

Guest
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?
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
 
R

rui.rosario

Guest
Sorry guys! I changed timezones by a few hours (5h) and forgot to adjust my internal schedule :p

Technically the Jam start 2 and a half hours ago (World Clock)!

Happy scripting!
 

chance

predictably random
Forum Staff
Moderator
When will the Jam start?
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:

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);
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.
 

Coded Games

Member
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
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!

Seems like this Jam is going to be a really good learning experience.
 

Coded Games

Member
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.
I think he said somewhere that the room settings will be left as the default.
 
R

rui.rosario

Guest
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.
Free 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 :p


Good way of quickly checking it @Mike!
The only thing that changes from the above statement is that now I have the Pro version of GM:S installed :p

But yes, as @Coded Games stated, everything will be left at the default, so that users can account for a well defined base platform.
 

chance

predictably random
Forum Staff
Moderator
Got it, thanks. I guess that was from a later discussion. So it might be good to mention "GM default room settings" in that rule I asked about.

Anyway, the OSG Jam has begun. I'm off !!.... to bed. Maybe I'll get an idea while I'm sleeping.
 

Coded Games

Member
Ok 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.
 
R

rui.rosario

Guest
Ok 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.
I wouldn't lay out the best methods in the Pushy script :p
 
R

rui.rosario

Guest
Ok, it is really late here so I just started the random level generation algorithm but I'm going to leave it off for tomorrow.

How are you guys doing? Feel free to post your progress here! :D
 

Nallebeorn

Member
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.
 
R

rui.rosario

Guest
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.
It's going nicely then! :D
 

Alice

Darts addict
Forum Staff
Moderator
...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. ^^'
 
R

rui.rosario

Guest
...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. ^^'
Damn that @Mike and his skill xD

Well, too bad about the RAM module @Alice, but good thing you have it all functioning now :)
 

Alice

Darts addict
Forum Staff
Moderator
Yeah, 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. ^^
 
  • Like
Reactions: Yal
M

Misty

Guest
Your script seems to have localized arrays. If localized arrays are allowed, why are not localized variables?
 
R

rui.rosario

Guest
Yeah, 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. ^^
Yeah, 8GB may not be enough, I would advise you do download it right now :p

The only thing I got done so far is the random level generation (which is not that complicated). I just finished actually XDDD So now I'll clean up the code a bit (I don't like it has over 100 LOC, without comments). After that I'll start adding parameters to the generation (how long the player has been going on, general difficulty setting, etc)
 
Last edited by a moderator:
R

rui.rosario

Guest
Your script seems to have localized arrays. If localized arrays are allowed, why are not localized variables?
Are you talking about the Pushy script? What localized arrays have you found (might have missed them)?
 
R

rui.rosario

Guest
Thee are a lot. Blocky[2] is the first.
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:
Code:
var Room, Player, MoveableBlock, Blocks;
And doesn't this script go in an object's draw event?
Yes, as stated in the original post (I believe).
 
Last edited by a moderator:

Alice

Darts addict
Forum Staff
Moderator
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)
 
R

rui.rosario

Guest
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)
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?)
 

Alice

Darts addict
Forum Staff
Moderator
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?)
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.
 
R

rui.rosario

Guest
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.
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?
 

Alice

Darts addict
Forum Staff
Moderator
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 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. >.<
 

jazzzar

Member
@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
 

GMWolf

aka fel666
@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
If the script generates the sprites, then you just need the script.
I'm assuming you are not allowed external resources.
 
R

rui.rosario

Guest
@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
If the script generates the sprites, then you just need the script.
I'm assuming you are not allowed external resources.
Yes, you are NOT allowed external resources. So you can use Sprites if they are somehow generated through the code
 

GMWolf

aka fel666
ohhh well that's the real deal than, i was going to make the game look good but nvm than, let the work begin :)
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...
 

YellowAfterlife

ᴏɴʟɪɴᴇ ᴍᴜʟᴛɪᴘʟᴀʏᴇʀ
Forum Staff
Moderator
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...
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.).
 

jazzzar

Member
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.).
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
 

GMWolf

aka fel666
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
Buffer_get/set_surface never worked correctly for me.

I considered saving as a png, I may end up doing that...
 

YellowAfterlife

ᴏɴʟɪɴᴇ ᴍᴜʟᴛɪᴘʟᴀʏᴇʀ
Forum Staff
Moderator
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).
 

jazzzar

Member
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).
Buffer_get/set_surface never worked correctly for me.

I considered saving as a png, I may end up doing that...
i just went woth surface_save, saved me alot of headache with the buffer thingy, thanks for the tips anyway :)
 

YellowAfterlife

ᴏɴʟɪɴᴇ ᴍᴜʟᴛɪᴘʟᴀʏᴇʀ
Forum Staff
Moderator
Progress for today:
+ A font. You wouldn't want to see the code for this.
+ A cue. You'll be doing things with it in this game.
+ A model for what you'll be dealing with in this game. As shown below, is actually multi-part to permit individually animating various bits of it.
 
Top