This one flew under the radar... at least for me.
While working on the audio in our game... I noticed that audio sources increased in pitch as I moved toward them... yes, it's the doppler effect in action.
What an awesome engine. :-)
Monday, November 23, 2009
Wednesday, November 18, 2009
A Geek Lounge?
After chatting briefly with chrism (who is now back in Perth, w00T!) we lamented the lack of a good place for Geeks to meet up in Perth, and hack on game code, art, music whatever. Perhaps something like the Linux Caffe in Toronto.
Who owns a cafe that we can hijack? :-)
Any other ideas?
Who owns a cafe that we can hijack? :-)
Any other ideas?
Monday, November 16, 2009
Go vs Stackless
Andrew Dalke compares Go and Stackless Python and gets some very interesting results.
I'd like to see answers to some of the questions he raises.
Why indeed? Please answer us Google Engineers!
Update:
Just for fun, I ran the benchmarks myself, and added a benchmark for Fibra, because I wrote it, and I know that it is pretty slow. :-)
Go...
Stackless...
Fibra...
This is the Fibra benchmark code. It's almost the same as the Stackless example, except for the ugly "yield" statements.
The results are: Stackless fast, Go slow, Fibra... forget it.
I'd like to see answers to some of the questions he raises.
Why does Pike emphasize the performance of Go's goroutine creation and channel communication when it seems to be slower than Stackless and definitely is not an order of magnitude faster?
Why indeed? Please answer us Google Engineers!
Update:
Just for fun, I ran the benchmarks myself, and added a benchmark for Fibra, because I wrote it, and I know that it is pretty slow. :-)
Go...
wdgt:tmp simon$ time ./6.out
100000
real 0m1.147s
user 0m0.646s
sys 0m0.491s
Stackless...
wdgt:tmp simon$ time python sgo.py
100000
real 0m0.532s
user 0m0.448s
sys 0m0.080s
Fibra...
wdgt:tmp simon$ time python fgo.py
100000
real 0m4.054s
user 0m3.883s
sys 0m0.153s
This is the Fibra benchmark code. It's almost the same as the Stackless example, except for the ugly "yield" statements.
import fibra
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-n", type="int", dest="num_tasklets", help="how many", default=100000)
def f(left, right):
x = yield right.pop()
yield left.push(x+1)
def main():
options, args = parser.parse_args()
leftmost = fibra.Tube()
left, right = None, leftmost
for i in xrange(options.num_tasklets):
left, right = right, fibra.Tube()
schedule.install(f(left, right))
yield right.push(0)
x = yield leftmost.pop()
print x
schedule = fibra.schedule()
schedule.install(main())
schedule.run()
The results are: Stackless fast, Go slow, Fibra... forget it.
Thursday, November 12, 2009
Python 3, is it doomed?
Why would I ask that question?
Python 3 has been available for some time now, yet uptake is slow. There aren't a whole lot of packages in the package index shop for Python 3. It seems there just isn't a demand for Python 3 libraries.
Google have released a new language, even though they hired the BDFL, and started the Unladen Swallow project (which coincidentally, does not target Python 3). Why?
Finally, despite my best efforts to move a project across to Python 3 from Python 2.6, I've been sabotaged by undocumented differences in the behaviour of the select module. I've decided to move back to 2.6 for the time being, rather than change code which has worked for a long time. Who knows what else might come out of the woodwork to raise strange exceptions in the middle of the night?
I think Python 3 suffers from attempting to be compatible with Python 2. It should have been a clean break with major repairs and reconstruction, as the original Python 3000 was intended to be. Hang the expense, let's make this language _right_, and Python 2 be damned.
Is it too late to remedy this situation?
Python 3 has been available for some time now, yet uptake is slow. There aren't a whole lot of packages in the package index shop for Python 3. It seems there just isn't a demand for Python 3 libraries.
Google have released a new language, even though they hired the BDFL, and started the Unladen Swallow project (which coincidentally, does not target Python 3). Why?
Finally, despite my best efforts to move a project across to Python 3 from Python 2.6, I've been sabotaged by undocumented differences in the behaviour of the select module. I've decided to move back to 2.6 for the time being, rather than change code which has worked for a long time. Who knows what else might come out of the woodwork to raise strange exceptions in the middle of the night?
I think Python 3 suffers from attempting to be compatible with Python 2. It should have been a clean break with major repairs and reconstruction, as the original Python 3000 was intended to be. Hang the expense, let's make this language _right_, and Python 2 be damned.
Is it too late to remedy this situation?
Wednesday, November 11, 2009
GameRanger - Perth Game Company
I just found out about (via a random google search) GameRanger, a company based in Perth that builds software which seems similar to GameSpy. It appears that they are willing to work with developers too. Cool.
Unity3D 2.6 - now with builtin profiler.
I am very impressed with the new profiler that comes with Unity3D. It is very simple to use and is so easy to understand, that even I can use it!
In 20 literal minutes, I've been able to optimise my current project from 14 fps to 60 fps. Excellent! Here is a general performance tip I've come to appreciate:
- Don't use dynamic scaling of meshes to produce animation. It triggers a mesh rebuild and sucks your CPU cycles. If you really must change the scale property of a mesh, don't do it every frame!
In 20 literal minutes, I've been able to optimise my current project from 14 fps to 60 fps. Excellent! Here is a general performance tip I've come to appreciate:
- Don't use dynamic scaling of meshes to produce animation. It triggers a mesh rebuild and sucks your CPU cycles. If you really must change the scale property of a mesh, don't do it every frame!
Sunday, November 08, 2009
A Huge GameJam Poster!
I'm upgrading GameJam.org to be more aesthetically pleasing to the eye... and to be more usable too!
While looking at the hundreds of screenshots and avatar images, I had a Great Idea. Make a big mosaic poster!
I've uploaded a HUGE image (58 MB) for anyone interested.
The GameJam.org changes include a reduction of features, to a core set of tools. All the extra fluff is being removed. The login system is also changing to OpenID. More on this soon.
Friday, November 06, 2009
Unity becomes free, Unreal follows lead.
Hot on the heels of the UT announcement of a free version of Unity 3D,
Unreal just released a free set of game tools.
I can't help but think that this is a knee jerk reaction, and really shows that Unreal is feeling very threatened by Unity 3D.
Unreal just released a free set of game tools.
I can't help but think that this is a knee jerk reaction, and really shows that Unreal is feeling very threatened by Unity 3D.
Wednesday, November 04, 2009
Forward thinking from Radiohead.
Radiohead is Braindead
Let's throttle the internet to stop file sharing. Great Idea. While we're at it, lets stop road accidents by limiting highways to one lane at 20kph. Excellent thinking.
Let's throttle the internet to stop file sharing. Great Idea. While we're at it, lets stop road accidents by limiting highways to one lane at 20kph. Excellent thinking.
Subscribe to:
Posts (Atom)
Popular Posts
-
These are the robots I've been working on for the last 12 months. They each weigh about 11 tonnes and have a 17 meter reach. The control...
-
So, you've created a car prefab using WheelCollider components, and now you can apply a motorTorque to make the whole thing move along. ...
-
Often, when building a game, you need to test if objects are colliding. The objects could be spaceships, rocks, mouse pointers, laser beams....
-
Summary: NodeJS wins. Test Program ab -n 10000 -c 5 http://localhost/ Gevent Code from gevent import wsgi class WebServer(object): def a...
-
Why would I ask that question? Python 3 has been available for some time now, yet uptake is slow. There aren't a whole lot of packages i...
-
MiddleMan: A Pub/Sub and Request/Response server in Go. This is my first Go project. It is a rewrite of an existing Python server, based o...
-
I've just finished refactoring an awful C# class. I had been delaying the job for a while because I didn't want to do it. Then, whil...
-
Dear Lazyweb. Imagine a nice RESTful interface for working with Tags. The URL: /tags/ will return a list of all the tags. The URL: /tags/fo...
-
It is about 8 degrees C this morning. So cold, especially when last week we had high twenties. To help solve the problem, a friend suggeste...
-
We're almost done with our Giant Robot Project. Realising we had only a few hours before the robots would be deconstructed and sent awa...