Jump to content



Andrew Davie's Photo

Andrew Davie

Member Since 22 Jun 2001
OFFLINE Last Active May 25 2012 5:50 AM

Posts I've Made

In Topic: Atari 2600 Boulder Dash (R) Announced!

Wed May 23, 2012 12:29 AM

View PostRandom Terrain, on Tue May 22, 2012 10:28 PM, said:

I played the crap out of it on my Commodore 64, so I got a little tired of it.

You don't know what you're missing ... ;)

In Topic: Session 25: Advanced Timeslicing

Tue May 22, 2012 4:18 AM

The task queue will be specific to a game. But I can speak to the engine used for Boulder Dash, if you like.

First there are a number of "objects" or creatures. These include the player, boulders, diamonds, etc. They are all processed from an "object stack". Only the top entry on the stack is processed, and if there's not enough time for it, then the task manager simply aborts. So the object queue is processed in order, effecively LIFO. But there are other things in the game that need to happen, too. Stuff like drawing objects on the screen. So there's another task queue for drawing stuff. If the object queue doesn't have enough time to do sometihng, then the draw queue has a go at doing stuff (drawing stuff is generally quick and only requires small timeslices). Once the draw queue runs out of time, well there are other queues which kick in. Stuff like sorting the objects, for example. You can't do much of a sort in the vertical blank, but you can do a little bit. So a simple bubble sort is very easy to break down into very small independent sections; so that's what's done there.

What I'm basically saying is that depending on the game, some things will run every frame, some things will run in order, some may run out of order only when there's time available. It's up to you.

In my engine, objects are processed ASAP, and inbetween those, the character drawing takes the spare time, getting a look-in where it can. These are totally asynchronous events; neither depends on the other. Shorter tasks don't get run "more often" if you only put tasks on a queue when it's their turn to run. And again, putting everything on a queue makes sure that stuff that shouldn't run more often.... doesn't. Some stuff you want to run as often as possible... e.g., screen draw updates.

Cheers
A

In Topic: Atari 2600 Boulder Dash (R) Announced!

Wed May 16, 2012 4:40 PM

View PostThomas Jentzsch, on Wed May 16, 2012 12:39 PM, said:

View PostPropane13, on Wed May 16, 2012 12:37 PM, said:

This may be a dumb question, but would you be allowed to use some of the engine code for something else?
Or, is that the property of FSS?
The engine code is ours. IIRC Andrew had the idea to make it public available.

It has always been my desire to release the source to the engine, publicly. However, *everything* Boulder Dash related needs to be stripped out, first.
As Thomas noted, we have retained ownership of the engine and algorithms for the display system.
Cheers
A

In Topic: Atari 2600 Boulder Dash (R) Announced!

Tue May 15, 2012 8:58 AM

View Postrolenta, on Tue May 15, 2012 8:56 AM, said:

View PostAndrew Davie, on Tue May 15, 2012 8:31 AM, said:

It's my personal "best ever".

Nah..it can't be better than QB, which is one of my personal favorite 2600 games.

Oh, but it IS. There's simply no comparison!

In Topic: Atari 2600 Boulder Dash (R) Announced!

Tue May 15, 2012 8:31 AM

I play Boulder Dash just about every day. I find myself quite disconnected from the actual algorithms and code used to make it all work. Although I troll through the code time and time again, there are very few optimisations I can find. It's one of those rare programs you just look at and know that you really can't do any better. There are some design decisions I would change if I had the time again (a better bank-switching scheme), but given the choices made, it's better than I could possibly have hoped for at the start. I often look at the finished product and basically wonder how it was possible. Yeah, I did the underlying systems... but they're so abstract and removed from the experience of playing, it's hard to equate those systems with the final result. I'm very very proud of the work Thomas and I have done on this. It's my personal "best ever". So, I don't know how many copies are unsold. But what I do know... or at least hope, is that when the first copies start arriving in your hands... well, hopefully some of you will post reviews. And hopefully they will be as positive about the game as I am. At that point (after the first few reviews..) I really expect the remainder of the unsold copies to disappear pretty damn quick