Jump to content


Member Since 21 Jan 2004
Offline Last Active Private

#4524667 Why Does Gm Create A Particle Folder?

Posted by Tarik on 13 March 2014 - 04:36 PM

By the way, you can change all particles to 1 pixel images if you want. Saves a tiiiiiiny bit on loading times which can be useful for mobile devices. I never use particles anyway.

  • 1

#4517815 Bitcoins, Litecoins, Who Here Knows About Them?

Posted by Tarik on 03 March 2014 - 12:31 PM

How are they defining "spent"? Exchanged back into money, or actually used to buy products?


Good question, I wondered this myself. On the one hand, because all bitcoin transactions are public (except the off-the chain ones, of course), you can do lots of number crunching and analytics. On the other hand, because they're pseudonymous, it's still hard to track who is spending them and on what and through what client.


Because of this, I'm usually pretty skeptical of bitcoin analytics. However, this study seems to have been pretty solid, read about it here: http://www.coindesk....ents-anonymity/


So, they do a few core things. Firstly, they identify addresses. For example, you can deposit money at one of 10 large exchanges and wallet services, then withdraw it. So say you deposit some bitcoin at Coinbase, then withdraw. When coinbase sends you the bitcoin, it will show the senders' address, which can then be identified as being owned by that exchange.  You now know a Coinbase address. You do this quite a few times until you have a solid pool of verified addresses. When you have say 10 bitcoins in your wallet and send 5 bitcoins, you're not really sending 5 bitcoins. You actually send part of the inputs that make up the 10 bitcoin in your wallet. So say you got 10 bitcoin because you sold 1000 hamburgers at 0.01 bitcoin (~$5) each, if you want to send 5 bitcoin, you're actually sending the inputs of 500 0.01 bitcoin payments. So you can actually pretty quickly identify a large number of addresses with single transactions.


Next up is change. When you send 5 bitcoin, you might need to send the inputs of 6 bitcoins (say three inputs of 2 bitcoin is the smallest you have). What you do is actually make a transaction with two outputs, one for 5 bitcoin to the receiver, and one of 1 bitcoin back to you, that's your change. These change addresses also verifiably belong to the sender by definition of the protocol.


So it's actually possible to identify and associate a large number of addresses. We can then analyze them. How much volume is going from miners to wallets, to exchanges, to satoshi dice etc.


In any case, regardless of whether coins are just moving around, the velocity of money is important and all metrics (like the above graph, transaction volume etc) clearly point to a pretty rapid growth.


Interestingly, some of the transactions people would most love to see might end up happening off the chain. I believe Coinbase does quite a bit of off-chain work as a payment processor when Coinbase users pay Coinbase merchants. They probably internally move things around and then balance the books on the blockchain a few times a day. This means their transaction volume/fees might actually very much understate their actual impact.

  • 1

#4503865 Sending Tweet Or Facebook Message Within App

Posted by Tarik on 13 February 2014 - 12:05 AM

Sure thing! This article is pretty comprehensive, I used it myself:




It's not really a GM thing, just proper link building and then using the url open function. You might run into some encoding issues with certain characters, can't remember exactly but I vaguely recall having some problems.


Might need to cross check some of the parameter names with FB's actual dialog API as it is now as the article is nearing a year of age. Some things I never got to work, particularly the FB message itself, arguably the most important part. But in a way it's also nice as you can set the post's title, a link, an image and a subtext, and then leave any comments to the user him or herself. As a user I prefer that over being forced to post a message I can't edit.

  • 2

#4503078 Bill Nye Debates Ken Ham

Posted by Tarik on 11 February 2014 - 11:18 PM

I saw a lot of friends talking about this so I turned it on as a radio show while programming, sometimes checking out the video to see some of the slides.


Anyway, came out really bored and wasn't educated. The discussion is so silly that Nye pretty much had to stoop down to some dumb level of reasoning that simple enough, but not radical enough to religious' worldviews, so as to not lose their attention and willingness to consider the thought. This made the discussion beyong silly as Ham was throwing nonsense out there for an hour and Nye clearly chose a debating style that would appeal to young earth creationists and thereby didn't really get deeply technical or scientific about anything.


In short, seeing someone (Nye) try to convince a group of people of the existance and validity of fossils to support the notion that this planet is a lot older than the pyramids and that surely the great flood didn't happen is a bit like seeing someone try to explain that the earth is in fact, round. No actually it's more like seeing adults debate whether Zeus, Dionysos or some other mythical creature actually existed because a book was written about it.


It's just really laughable. Sure you can debate the notion of deism, critique our current best scientific hypothesis for our origins, but Noah carrying all species on a huge boat to survive a great flood by a merciful God... REALLY?


edit - I think the one interesting bit of information was that Ham, in all his honesty, explicitly said that nothing can convince him that his beliefs in God are incorrect. Nothing could change his mind. And he did not really provide any evidence other than the Bible. I can't understand why a grown man would dedicate his life to examining his beliefs and then claim that a single book, of which the accuracy, different versions, translations, timeframe, subjectivity etc are demonstrably shaky at best is the singly source for those beliefs. But I respect him for stating his position so clearly.

  • 1

#4502690 Implementing Shop_Leave_Rating

Posted by Tarik on 11 February 2014 - 02:50 PM

I don't think there's any way to track whether a user has actually left a rating, or cancelled mid-way, once they're outside the app.


A few interesting things to consider.


Ask users 'Do you like/love xyz game?'. If they say yes, direct them to review the app. If they say no, let them know they can leave feedback with a button to your contact/feedback page (either on your website or within your app). This is the way all the popular games filter the users that would give the game 4-5 stars and direct them to review the game, the rest will never be encouraged to review. I actually don't like that this creates fakeish app store ratings of money-grabbing games, but it's inherently a great way to collect feedback from disappointed users.


It's important to think about timing. When you ask a player to leave a rating depends on your game. A game like Clash of Clans is all about building up your village for weeks on end. In these games it's better to ask users in 10 or 15 days, because these will be the users most positive about the game. For other games, particularly small puzzle games you can complete or play-and-throw-away within a week, it's important to capture any reviews early on. 


Using the 'do you love the game' -> if yes -> direct to review opportunity I tend to ask users just once after a few plays or a few days. (again depending on the type of game). I then ask them again in 15 days, and then again every 60 days. It's very hard to annoy a user who gets asked multiple times only in a span of months.


I also always mix this message with something else. e.g. I'm glad you're enjoying our game, please consider reviewing or telling your friends. This means that even if they already rated it two weeks ago, they know I'm also asking them to tell their friends about the game, instead of me asking them to rate a game they already rated.


Another thing I do is that when the user says they don't want to rate the game for the second time (so they've already said no twice), pop up a small button that says 'never ask me again'. If they press it, never ask them again. Do the same with another button next to it 'remind me later'. It's important to not make this button a 'press-to-proceed' type of question. The player should be able to ignore it and continue playing, and it should disappear again after a few seconds. If they ignore it they'll get asked again in say 5 days, if they say remind me later I'd ask them on their next play or anywhere the next day.


If you do all those things, you generally minimize annoyance and it's okay not to be able to know if you've already asked for a rating.

  • 2

#4500240 Macbook

Posted by Tarik on 08 February 2014 - 06:14 PM

Get a mac mini.


Other than that, is it realistic? You can't say without specifying what Macbook you need. A 2006 Macbook will sell for under $300 sure. A 2013 Macbook? Not a chance. 


You could probably get a 2010 Macbook for around 400-450 if you're lucky. Remember that it's likely that the battery won't last more than 2 hours and chances are your hard drive will fail within the year. I really suggest buying Apple products new, they hold value well to resell later. Remember that buying a $300 macbook won't really be worth anything in two years and will probably cost you in repairs. Buying a new Macbook will let you sell it for 60-70% of the original value in two years and has a warranty on it for at least a year.


But again, either buy a mac mini or buy a better PC for all round use + VM. Putting a VM on its own HD or preferably SSD will really make a huge difference. It's not that hard to run a low-resolution VM anymore on any decent PC these days.

  • 1

#4488582 Licensing

Posted by Tarik on 23 January 2014 - 03:01 PM

I've had this happen 3 times recently too. I've been a registered user for a decade and Studio: Master was fine for many months too, until very recently. Not sure what happened.

  • 3

#4486440 Huge Performance Boost In Newest Gm 1.2.1261

Posted by Tarik on 20 January 2014 - 08:48 PM

Haven't tried yet, but curious to see other peoples' experiences.


Generally short circuit evaluation of GML isn't the type of thing that would double performance across the board unless your fps was heavily impacted by very high-volume scripts, such as a recursive pathfinding algorithm for tens of units. But even then, you could manually do short circuit evaluation. I wouldn't expect a huge performance boost from this feature alone.


Perhaps you could run some tests if you have time (I don't unfortunately) between the old and the new versions on a few things from rendering to basic math, arrays and such.

  • 1

#4472536 Texture Paging

Posted by Tarik on 04 January 2014 - 02:25 AM

At the present moment there is no known solution to use less than 1 texture page per external sprite and chances are there won't be one. Sprite_replace doesn't change anything, you can only replace 1 internal sprite with 1 external sprite after all.


In simple non-technical terms, to draw a sprite, the page on which it's located must first be loaded. This requires a 'texture swap'. If you draw the same sprite after this, the page is still loaded, thus no texture swap is necessary. This means that if 20 sprites share one page, drawing them in some arbitrary order does not require any texture swaps. With external sprites however, as you know, each sprite is on its own page. Thus any external sprite that is drawn that wasn't the immediate previous sprite that was drawn is thus on another page which requires a texture swap to load.


These texture swaps can slow down the game. So far for most users this has been a general concept to keep in mind. No GM user or staff member has ever released any data as to how large the slow down actually is, it's very context dependent I guess. Fewer texture swaps are better, that's all we really know.  Generally you can get away with quite a few texture swaps, especially on desktop computers nowadays. So I wouldn't immediatelly encourage you to scrap modding altogether. But truth be told, I used to build moddable space engines and did everything external (graphics, sounds, all items, missions, storyline etc) but the added value is pretty small and it's a lot of effort. I would recommend building a non-moddable game regardless of texture pages, if it's popular and people demand modding, build a V2 with modding. Chances are you moved on to new projects by then, a modding community never took off in any meaningful way and the journey was much more fun and interesting than the end product anyway.


In any case, 99/100 questions on performance come down to just testing it yourself. It's extremely easy to export 100 png images to a folder, load them with a for loop, then draw them in various orders with a for loop and compare it to internal sprites with custom texture page configurations. You'll soon find out what the rough impact will be on your performance. Good luck!

  • 2

#4470189 Adjusting "Standard" Game To Html5

Posted by Tarik on 01 January 2014 - 02:28 PM

Not much to be honest, most Windows development was pretty easy for me to port to HTML5, which is absolutely stunning in my opinion. Kudos to YYG.


A few things to always remember:

- Windows can be pretty lenient some times in terms of uninitialized variables and such. So something running on Windows that's actually wrong may 'work', sort of, while on HTML5 it prompts errors. For me the errors are preferable, sometimes Windows silently continues when some things are actually wrong and 9/10 times it'll bite you in the ass. So much in fact that my win-only programmes are ran as HTML5 every now and then to catch any mistakes. This doesn't mean though that I ever have to substantially change my for-windows code in order to port it for HTML5, it just means I sometimes have to change my for-windos code because until I ran it for HTML5 I never knew there were problems with it.


The second thing is simple. Do a manual search for "NOTE: These functions do not work with the HTML5 module" and you'll run into two things. On the one hand, functions that don't work with HTML5. There are actually pretty limited. On the other hand, things that only work with WebGL (e.g. primitives). So for mobile-HTML5 there are actually a few limits you really have to think about before you build the game.


In terms of performance, Javascript has seen some insane improvements very recently. Look at Google's V8 for example. It's super fast and rivals the speed of windows builds actually, sometimes surpassing it. Of course, running it on mobile devices is a different ballgame, but that's for a bit part due to hardware being limited and/or due to the OS not wanting a level playing field (e.g. intentionally blocking WebGL).


So all in all, HTML5 for desktop is lightning fast and doesn't require much rewriting because with WebGL most things will just work. HTML5 for mobile definitely has lots of performance-restrictions but most functionality should work except WebGL-required stuff. And as for bugs/glitches, those are rarely the fault of HTML5-alone, usualy it's an indication that you had silent issues on your windows builds, too.

  • 1

#4465174 Http_Post And Http_Get_String Difference

Posted by Tarik on 25 December 2013 - 03:11 PM

Hey man :)


It's entirely unrelated to GM, really. They're the GET and POST methods in the HTTP(rotocol) see here: http://en.wikipedia....ansfer_Protocol


It's a bit of a meaningless question to ask which one you should use without knowing what you're trying to do and how the server is configured. What are you trying to achieve and what code have you tried so far (both client and server-side)? Then we can help you better.


Merry christmas :)

  • 1

#4462175 Why Isn'T This Working?

Posted by Tarik on 21 December 2013 - 11:18 AM


What doesn't work? Make sure to run the game in debug mode (F6 in GM:S) then press F12 in your browser and see what errors the browser prompts if any.

It doesn't load is the problem. I just get a blank screen.


Doesn't give me anything with debug either. That's why I'm asking you all.



That's not true. If you'd done what I suggested step by step, you'd have seen what grimdayz posted. An error on line 986. You look at the javascript GM outputs and on line 986 you see there's a problem with the color constants. There, problem found.


If you then look up constants in the manual you see they're not scripts, they're not changeable. Yes, you can use 'make_color_rgb(10,10,10)' as a constant, but you can't pass arguments to it. It might work in some cases, but most of the time it'll fail, because constants are simply not scripts. If you want to pass arguments and return a value, use a script. It's that simple, fortunately :) Even more fortunate is that make_color_rgb is such a script in essence already, you only need to write it down and pass an r, g and b value and you're free to develop your game error-free.


The ironic part is that the 'trick' with passing variables to a constant actually does work because GM replaces every reference to the constant in GML to the literal value of the constant, instead of a reference to the constant. The part that gives an error is the reference to the constant, which is a javascript function which seemingly erases every non string or number. But curiously, this constant function is never actually called anywhere, as the constants are all already replaced by the literal value. So the only part that's not being used is causing an error. Still, best to stay away from tricks like these, they're not supported and tricks can always disappear with an update from GM at any moment.

  • 2

#4460186 Gamemaker: Studio Early Access Builds!

Posted by Tarik on 18 December 2013 - 05:38 PM

Tech blog 38 is pretty massive. Native extensions, inapp and push notifications are things that put native apps built with Studio in an amazing place. Absolutely huge.


The debugger looks pretty awesome too but for me personally it's a bit like revamping the sprite editor, after a decade of doing without, I've gotten very used to it haha. I like the sprite editor enough. (although psd import would be sweet.)


Hope to see HTML5 networking and more attention for HTML5 (mobile) audio happen at some point, although in all honesty, javascript extensions does allow anyone to build these things themselves.

  • 1

#4457761 [Urgent] Camera In Html5

Posted by Tarik on 15 December 2013 - 02:52 PM

Actually that javascript API worked fine with me on my iPhone although it's not supported, it did work. Remember that Safari has been one of the leading adopters of mobile browser standards. Apart from a few things they do deliberately to reduce competition with their appstore, they're generally ahead of any othermajor mobile browser.

  • 1

#4444789 Space Ranger Ask Release - Get It For Free!

Posted by Tarik on 29 November 2013 - 08:04 PM

Great effort guys, would be happy to play it and send some feedback your way!

  • 1