One sheet of Puff Pastry.
A few scoops of Peanut Butter.
A few cubes of Dark Chocolate.
Combine inside a sandwich press.
10 minutes.
Delicious.
Sunday, August 30, 2009
Thursday, August 27, 2009
Dell Laptop Dead. Sad Face. Happy Face.
I work with OSX, Linux and Windows. Most of my Python development happens on Linux, and I just use Windows to run VM instances of Linux. :-)
Unfortunately, my favorite machine, a Dell XPS M1330 died yesterday due to a common fault with the video chipset, which causes the graphics chip to get really hot and unsolder itself. This manifests itself by causing glitchy screens, then eventually the screen won't work at all, it just fills up with random vertical lines and slowly turns white.
Much of my Python game dev happens on this machines, so I was pretty sad. But... After some research, I discovered that Dell had extended the warranty of my particular model especially to cover the fault! Awesome. After ten minutes on the phone, a Dell technician is coming to my office tomorrow to replace the faulty parts. I'm very happy now. It would be nice if Apple respected their customers in the same way.
Unfortunately, my favorite machine, a Dell XPS M1330 died yesterday due to a common fault with the video chipset, which causes the graphics chip to get really hot and unsolder itself. This manifests itself by causing glitchy screens, then eventually the screen won't work at all, it just fills up with random vertical lines and slowly turns white.
Much of my Python game dev happens on this machines, so I was pretty sad. But... After some research, I discovered that Dell had extended the warranty of my particular model especially to cover the fault! Awesome. After ten minutes on the phone, a Dell technician is coming to my office tomorrow to replace the faulty parts. I'm very happy now. It would be nice if Apple respected their customers in the same way.
Wednesday, August 26, 2009
SPW does stupid easy GUI screens.
I would like an easy way to write GUI screens for my games... one function to draw the GUI, handle GUI state, and respond to GUI events. No widget graphs, no parent child relationships, no callbacks. It can be done. The code below uses a new GUI module in the SPW library. Many more widgets are required, as at the moment there are only input boxes, buttons, toggles and menu widgets.
import pygame
from spw.gui import GUI, Context
class Window(object):
def draw_gui(self):
GUI.canvas.quad((0,0,320,240))
text = GUI.input("textbox", (70,10,100,30))
if GUI.toggle("show", (290,10,10,10)):
if GUI.button("quit", "Quit", (190,30,100,100)):
print text
raise SystemExit
options = "new", "open", "save"
action = GUI.menu("file", "FILE", (10,10,50,30), options)
if action is not None: print action
pygame.init()
GUI.init()
context = Context(pygame.display.set_mode((320,240)))
window = Window()
while True:
e = pygame.event.wait()
if e.type == pygame.QUIT: break
with context as canvas:
GUI.draw(window, canvas, e)
Saturday, August 22, 2009
Simple Pygame Wrapper
I do a lot of prototyping. Simulations, user interfaces, algorithms etc. Often I'll use pygame to visualise the results, as it is a nice simple library.
Sometimes though, it's just a bit too low level. So I created SPW, which add a very light interface over the pygame drawing and blitting functions. This interface provides a canvas which handles scaling and translations, enabling you to easily scroll across a drawing, or zoom in and out. It also looks after dirty rectangle updates. This is what it looks like:
The context manager tracks the dirty rectangles, and does a screen.update when it exits. I've put it on google code, and it can also be installed using easy_install.
Sometimes though, it's just a bit too low level. So I created SPW, which add a very light interface over the pygame drawing and blitting functions. This interface provides a canvas which handles scaling and translations, enabling you to easily scroll across a drawing, or zoom in and out. It also looks after dirty rectangle updates. This is what it looks like:
from spw import gui
with gui.Context() as canvas:
canvas.translate((400,300))
canvas.circle((0,0),50)
canvas.translate((0,150))
canvas.scale(0.5)
canvas.circle((0,0), 50)
The context manager tracks the dirty rectangles, and does a screen.update when it exits. I've put it on google code, and it can also be installed using easy_install.
Friday, August 14, 2009
Terrain building is fun...
Friday, August 07, 2009
Star Hammer Preview
Fellow Perth Game Dev Paul Turbett has released a trailer video featuring an early build of Operation Star Hammer.
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...
-
This hard-to-see screenshot is a Generic Node Graph Editing framework I'm building. I'm hoping it can be used for any kind of node...
-
So, you've created a car prefab using WheelCollider components, and now you can apply a motorTorque to make the whole thing move along. ...
-
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...
-
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...
-
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...
-
After my last post, I decided to benchmark the scaling properties of Stackless, Kamaelia, Fibra using the same hackysack algorithm. Left axi...
-
I'm now using bzr instead of svn. I'm pushing my repositories to: http://exactlysimilar.org/bzr/ I'm also auto publishing docume...
-
Possibly slightly more correct lighting. The rim light is now only applied in the direction of the sun, rather than being purely based on vi...
-
I've just read a newspaper article (courtesy of Kranzky ) from WA Business News documenting the malfeasance, gross negligence and misc...