Darkstar2
|
|
Reply #15 Posted on: October 09, 2014, 08:48:54 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
Rubbish! Thats not the answer I wanted... Is there a suggested alternative? I am using them as a less memory intensive alternative to ds_grids.
Since Enigma is unpaid volunteer work, I am assuming asking for an estimated date of completion for buffers is "It'll be done when it's done." It will probably be another 10 years before I finish my game anyway, so I guess I can just keep messing around with GMS and check back here every now and again.
Thanks for all the help everyone. I'm sure I'll be coming back.
That's spot on mate, at least The thing is that ENIGMA is not and never claimed to be 100% compatible with GM, however you can make full games with ENIGMA and find new ways to perform what you can in GMS, though if you are looking for 100% compatibility in porting your game, then I reckon you probably might be disappointed, ideally ENIGMA one day would be its own unique product, many of us hope so. Don't hold your breath on the 10 years though, things get fixed / implemented here at a surprising rate pending developers availability, so you might be surprised, I know I was surprised Cheers
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #16 Posted on: October 09, 2014, 08:55:06 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Additionally extensions do work in ENIGMA, just not the resource extensions, I mean the dll ones, and I would actually recommend the Faucet Networking buffers over the ones Studio has built in.
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
|
Goombert
|
|
Reply #18 Posted on: October 09, 2014, 09:31:57 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
lol, is that Bing Crosby?
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
time-killer-games
|
|
Reply #19 Posted on: October 09, 2014, 09:35:04 pm |
|
|
"Guest"
|
like no der
edit
so you weren't giving "bill cosby" a funky name. "bing crosby" is a real person too. I learn something new every day (on google)
|
|
« Last Edit: October 09, 2014, 09:39:44 pm by time-killer-games »
|
Logged
|
|
|
|
Goombert
|
|
Reply #20 Posted on: October 10, 2014, 02:42:13 am |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Bing Crosby used to whip his children with a belt.
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
RujiK
|
|
Reply #21 Posted on: October 10, 2014, 08:32:48 pm |
|
|
Joined: Oct 2014
Posts: 7
|
Actually, [buffers] probably have more overhead than data structures which are raw collections, ours from the standard template library and likely theirs as well. Buffers were designed for networking, this means they have the added overhead of checking and reordering endianess. Data structures are likely much much much faster at sorting data as well.
Like you said, data structures are faster than buffers but I haven't used them due to the memory issues. I'm not even using them for networking yet so I agree it is a bit of a waste. BUT, here is the problem: A 16 bit 4096x4096 wrapped buffer takes 32 megs of memory but a grid would take 160 megs. I would gladly switch to any other form of data storage if one exists with a low memory cost. Originally, I was using grids but switched over as my map size increased. If there was a ds_grid_set_bits command or something I would switch over in a heartbeat. @Darkstar2 I have no problem with GMS compatibility != 100%. I'm just stuck trying to "find new ways to perform what you can in GMS" as you said. Learning C++ would probably be a considerable benefit here though. I haven't given up yet though! @time-killer-games It seems china has blocked whatever image host that is. It'll have to wait another week for me to see. So in conclusion, any suggestions for 16 bit number storage on a large scale? Thanks again.
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #22 Posted on: October 10, 2014, 09:10:34 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
BUT, here is the problem:
A 16 bit 4096x4096 wrapped buffer takes 32 megs of memory but a grid would take 160 megs. I would gladly switch to any other form of data storage if one exists with a low memory cost. Originally, I was using grids but switched over as my map size increased. If there was a ds_grid_set_bits command or something I would switch over in a heartbeat. Ahhh you see here you are probably correct. Why would this be the case? Because the buffers store the data with actual data types, a data structure stores the contents in var/variant meaning it overloads all reals as doubles. I have no problem with GMS compatibility != 100%. I'm just stuck trying to "find new ways to perform what you can in GMS" as you said. Learning C++ would probably be a considerable benefit here though. I haven't given up yet though! Well there is a much better way that's even more optimal than using buffers and quicker to iterate, read, and write. It's called using arrays of type unsigned for each pixel, which ENIGMA does currently support. We do currently support real int, boolean, and standard C++ data types. But currently we need to fix var to overload array so that we can return them from functions, at which point I am going to add the function surface_get_pixels to ENIGMA. I also plan on functions like d3d_model_vertices(var vertices[]), draw_getpixels(), and other related functions. Sorlok says he can fix it after he finishes new placement with var. http://enigma-dev.org/forums/index.php?topic=2294.msg23126#newSo in conclusion, any suggestions for 16 bit number storage on a large scale? Yes using an array with the actual data type.
|
|
« Last Edit: October 10, 2014, 09:13:54 pm by Robert B Colton »
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
|
Goombert
|
|
Reply #24 Posted on: October 10, 2014, 09:56:02 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Well first of all you can't compare unsigned (i) to signed (-1).
I just tested the following and it worked.
int i = 4096*4096; while i > -1 { arr = irandom(65535); show_message(string(i)); i -= 1; } Unsigned works as well it's just that an unsigned number is always larger than 0. So we just need to add array length support and then we can offer alternative and much better more efficient functions than what Studio has anyway.
I tried the following as well.
int i = 4096*4096; unsigned start_time = get_timer(); while i > -1 { arr = irandom(65535); i -= 1; }
show_message(string(get_timer() - start_time));
And it executed in 312546 microseconds.
I tried the following variation in Studio which executed in 5605667 microseconds for me.
i = 4096*4096; start_time = get_timer(); while i > -1 { arr = irandom(65535); i -= 1; }
show_message(string(get_timer() - start_time));
|
|
« Last Edit: October 10, 2014, 10:03:53 pm by Robert B Colton »
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
|
RujiK
|
|
Reply #26 Posted on: October 12, 2014, 08:27:23 am |
|
|
Joined: Oct 2014
Posts: 7
|
No wonder I couldn't get it to work... I tried filling an array with unsigned variables but every slot still took 10 or 12 bytes or whatever. Then I tried to somehow declare the array itself as unsigned or an int but this just gave errors. Oh well, I will just have to sit and wait for the update.
|
|
|
Logged
|
|
|
|
|