Wednesday, October 27, 2010

Linux release of (full) The Polynomial : Space of the music.

You can buy it here . Let me know if you have any problems. And sorry for the delay.

Wednesday, October 20, 2010

Review copies of The Polynomial.

If you want a review copy of The Polynomial, please mail me from the official mail address of the website or magazine that you are publishing on, or provide one, to send the key to. Understandably, I cannot send key to who says he represents Big Important Gaming Magazine. More than one person requesting for same 'zine in this way is funny too.


Monday, October 18, 2010

ATI's triple buffering

I investigated the triple buffering issue. The conclusions are:
  1. ATI itself recommends to turn off triple buffering if you experience any issues. I'm quoting directly: "However using Triple Buffering may cause problems for graphics cards with lower Video RAM, so disable this option if you’re experiencing problems such as mouse or input lag".
  2. When a big-name game gets those issues, ATI adds a "profile" to the driver to silently disable Triple Buffering for that game. Games use a wide variety of rendering techniques, and ATI's Triple Buffering implementation is known to be incompatible with many games; for those that are popular, it is silently disabled by the driver.
  3. It is not possible for the game itself to disable Triple Buffering (the driver does not provide a way to).
  4. While searching for any technical documentation it became apparent that ATI is far more interested in publishing marketing articles about benefits of TB than technical documentation. (fairly inaccurate articles, I must add, but this is normal for marketing)
  5. As a technical feature, TB is very unimportant, it's effect on the final images is minimal (when compared to plain vsync on). But as marketing buzzword, it is well utilized.
  6. TB's real purpose is to make framerates higher than display framerate appear to be useful somehow, as to provide perceived incentive to buy hardware which is over-specced for the games that their customer plays (i.e. to make gamers want their games at hundreds fps despite the fact that most games update internally at 30 fps constant, a few at 60fps constant, and that most displays update at 60 fps or so)
  7. TB introduce time jitter, which is far worse for gameplay than tiny lag which it SOMETIMES eliminates - but even that jitter is not quite noticeable.
  8. TB is bad for your laptop's battery, and ultimately for planet Earth (wastes electricity for no benefit whatsoever). I'm calling Greenpeace. TB will also result in higher temperatures and shorter lifespan of your hardware.

Just turn off TB, ok? If you got other non standard "optimizations" of the same kind, turn them off too. That will improve many other indie games, not just The Polynomial. For the big name titles, ATI itself turns off those features through game profile in the event of any problems. The Polynomial, however, is a indie game, and as such, has no 'profile' for it in the driver yet; you have to turn off incompatible features manually.

Sunday, October 17, 2010

ATI crash solution: "triple buffering" issue.

If you have recent ATI card and have trouble launching The Polynomial, check your driver options. Disable the "triple buffering" setting. It is not compatible with standard. I'll try to see if I can workaround in game, but of course the correct solution is for graphics card manufacturers to stick to the OpenGL standard.

Mac install issue: a workaround.
Originally Posted by Pob235
I have exactly the same issue. Fortunately I have a workaround that should work for now until the problem is solved, running the game manually, externally from Steam.

Using Finder, browse to your home directory. Next find the 'Library' folder and open it, then follow this route to find the game, opening each folder in succession.

'Application Support', 'Steam', 'SteamApps', 'common' and 'thepolynomial'.

Here you will find the application package 'Polynomial_osx'. Double click it to run the game!

Of course, time spent playing this way will probably not be logged by Steam so please do see it as a very temporary solution!

Thanks for finding and posting the workaround! Much appreciated.

Ahh, and by the way, I believe it would log time correctly if Steam itself is running. When developing, I usually launch my game from outside Steam, and the time is logged nonetheless, just as long as Steam client is running - i'm not entiely sure if that applies to Mac though as I were not paying attention, but either windows or mac does log time. Same goes for the Leaderboards.

Best Regards,


GeForce 7 series - proper fix for testing.

Ok fellas I have a proper fix I need tested with GeForce 7 series cards.
Download this file:
and replace original 003_Waves.lua with it (in the data folder, typically c:/Program Files/Steam/steamapps/common/thepolynomial/data).

When you choose Waves visualizer (press next when on the Laser Show 2), it should lag badly for few seconds, then switch back to Laser Show 2 . (It appears to be impossible to run Waves on Geforce 7 at any speed. Waves moves all the points around to the music)

Geforce 7 series freeze on start workaround.

Hello everyone who's using GeForce 7 series graphics card,

I think the fix for your freeze on start problem will be available on monday.

Meanwhile you can work-around this problem. In the place whereever you have The Polynomial data files installed (c:/Program Files/Steam/steamapps/common/thepolynomial in a typical install), go to data/music_visualizer sub folder, and change file extension or delete 003_Waves.lua to disable this visualizer. The waves visualizer, for some reason, works extremely slowly on geforce 7 series hardware.

Alternatively you can go to home folder / Application Data/Polynomial , and create config.100.txt containing
Do not select the Waves visualizer, and do not fly through rainbow coloured mesh wormhole.

Sorry for the inconvenience, and thank you for buying The Polynomial,


Saturday, October 16, 2010

The Polynomial released on Steam. Out of beta at last.

Wheeeeee! At last, I am done with version 1 . Released on Steam. (I'm making a note here:
Thanks to all the people whom helped to test it!
Some days later, I'll send off Steam keys to all of you whom bought the beta version - and I will give some extras on future updates as well. It's been a frantic few months leading to this release.

Sunday, October 3, 2010

Fix for upside down laptop camera in Skype under Linux

If you're unlucky to have a laptop with built in upside-down camera, and you're tired of looking like a bat:

You need to install 32-bit libv4l1compat (or something similar) and launch Skype like this:
LIBV4LCONTROL_FLAGS=1 LD_PRELOAD=/usr/lib/libv4l/ skype

If it does not work, you can try using 2 and 3 instead. Note: if when you run it complains about being unable to preload , make sure you have it. You may have it in a different place, e.g. under lib32.

In the gnome main menu, or application launcher, or the like, you should use
bash -c "LIBV4LCONTROL_FLAGS=1 LD_PRELOAD=/usr/lib/libv4l/ skype"

as the command.

Earlier fix: My girlfriend was flipping her display upside down with the video driver settings, to see me upside up. She's this awesome.
It took me a while to fish out this single command line from the sea of fixes that do not work for me, or shitty fixes such as hacking the driver to do image manipulation in the kernel LOL*.

My hardware: ASUS K61IC laptop.
The webcam USB device is listed as
Bus 001 Device 002: ID 064e:a116 Suyin Corp.
and it is reported elsewhere as
USB2.0 UVC 1.3M WebCam

The fix may work for other cams as well.

Other VERY useful webcam tool: v4l2ucp . It allows you to adjust the actual camera parameters such as gain. Those control the camera chip - they may actually be controlling the sensor settings itself - something that you cannot replicate in software afterwards.

I just cannot end a post without a little rant how something suck.
*Doing such stuff in a driver is a big no-no for monolithic kernel where drivers are run as part of kernel and any screw-up in the driver code brings entire system down. I'm with Tanenbaum. With a well designed microkernel, you do not care what the driver does, you can safely use complicated algorithms within the driver (such as decoding compressed images sent by camera) - and the kernel developers don't have to reject your code on the grounds of potential stability compromise. It's kind of bad that Linux has all the spotlight, and all the development - it is by far not the best open source kernel design around.