AmigaDE Development By John Harris
Hello Club Amiga members! I've been given an
opportunity to introduce myself and what I've been working on.
My name is John Harris, with a company that is struggling to
come up with a name for itself. Funny how when the available
choices are almost anything, I find decisions so much harder
to make. In any case, I've been programming games for almost
25 years, and had the pleasure of working with all of Jay
Miner's designs from the Atari 2600, through the Atari 8-bit
computers and the classic Amiga. My best-known work was Atari
Frogger, and I still come across people that say, "Hey, I used
to play that!"
I enjoy working with unique technology, and the AmigaDE is
what has brought me back into the Amiga circles. I've had a
wonderful time over the past two years, despite still waiting
for the success of the platform. The community is terrific,
the technology cool, and the friendships being made will last
a lifetime. After seeing this industry evolve into a world
that can't help but be ridiculed in Dilbert comic strips, it
is a wonderful opportunity to be back on my own with no
concerns other than to try and make cool stuff.
I've written several titles for the AmigaDE so far, as well
as utilities and starter code libraries to help others who
wish to join our efforts to make this platform successful.
Solitaire was my first commercial title, which is a collection
of 10 different variations. It recently got revisited for a
face-lift as well as being upgraded to run on cell phones with
a keypad interface. This is still the game I am the most proud
of, with a great deal of work having gone into the user
interface design and its many features to make it a joy to
play. Simply tap a card, and it moves to the most likely
destination. If that wasn't where you wanted to put it, just
tap it again to cycle through the remaining possibilities. If
you prefer dragging cards, this works too, and doesn't require
accurate positioning on the destination. Drag a card in the
general direction of where you want it to go, and the program
figures out the closest spot in that direction. Solitaire also
supports multiple layer undo, optional auto-play cards to
foundations, statistics tracking, saving your progress on all
the games, and the easiest to read cards I've seen in a PDA
solitaire game. Below are the first published screen shots of
the new look.
|
|
Solitaire makes a great demo of the AmigaDE
platform-independent technology, since you can play a game
part way through, and then pull out the game card and insert
it into another device with a different CPU, OS, and even
screen resolution, and the game comes up right where it left
off!
The second program
was Gobbler, a variation on the classic '80s Snake game that
Nokia has made so popular recently. With 10 different worlds
featuring bridges, tunnels, and other obstacles, it expands on
the classic game play with additional elements of strategy and
planning ahead. It also adds cartoon-style animations to give
the simple game a little more character. Gobbler was the
second evolutionary stage for me in AmigaDE programming, with
the ability to dynamically adapt to different screen
resolutions (utilizing Amiga's Ami2D scaling library). As the
screen shots show, this can involve some significant
modifications to the screen layout to support odd shapes and
sizes, in addition to just scaling the graphics up and
down.
Most recently completed, is a version of the classic
Word Search puzzles. Again the main focus was on user
interface design, and this version is really nice to play on
PDAs. A quick flick of the pen from the starting or ending
letter in the general direction of the word is all that it
takes to mark them. Cell phone marking with either the dpad or
number keys is also streamlined as well as it can be. Word
Search marked my entry into programming in VP, the Virtual
Processor Assembly language that is at the heart of the
AmigaDE technology. (Both Solitaire and Gobbler were written
in C). Now that I've had a taste of VP, I won't be going back!
I've heard it described as "a better C than C", and other
labels that denote fondness. Being essentially an Assembly
language programmer at heart, my own description of VP usually
goes like, "Most of the advantages of Assembly with almost
none of the weaknesses." I have found that I can express my
thoughts easier and with less work-arounds than what I find
when programming in C. And I don't have to worry so much about
how the compiler is going to translate my code.
So, on to the product that those of you with limited
interest in the AmigaDE have probably still heard about. I'm
the author of the now sort of infamous Calculator program.
This has been an interesting project, with the original goal
being to see how much I can cram into a ridiculously short
amount of time to meet a marketing deadline, and ultimately
(once that deadline was relaxed) expanding into how far we can
push the boundaries of visual presentation and usability for
such a product. The calculator has a traditional front panel
display, but with jewel-toned keys and other artistic touches.
Operation here is pretty standard, except for an enhanced
backspace key that functions more like "undo". In addition to
correcting number entry, you can also back up to correct
mistakes in operators. Also notable is that the top two rows
of function keys are programmable and expandable. Change
modes, and a different key panel slides into place with new
functionality.
The real advancements happen on additional screens for
equation entry and graphing thereof. Equations are composed
and edited on this screen, which supports variables,
constants, mathematical functions, programmable functions, and
calling other stored equations. The equation editor features
auto-balance parentheses, which really help out complex
expression entry. For each open parenthesis, you'll see a
ghosted close parenthesis on the right side. This functions
both as a reminder for how many levels deep you are, as well
as an entry aide since all ghosted parentheses are replaced
with real ones when the equation is saved. Once your
equation(s) are entered, you can graph up to six of them in
color-coded lines in the graphing module.
|
|
The graphing module allows you to view your equations in
many ways, including zooming, panning, square-aspect or
scale-to-fit, x/y point display, custom axis settings, and
more. The touch of a button can display representations for
the integral or differential of the equation. And for one step
further, it can also display animations to show how the graph
varies with changing variables.
Contrary to traditional graphing calculators, which can
often display nothing but a blank screen when the graph values
go out of range, this program will always display "something".
The scale-to-fit mode will always show you the big picture,
and even in the normal aspect mode the program's algorithms
initially position the display to show the most significant
portion of the image. Pan around with the stylus or scroll
buttons, and the display always adapts to show you the
relevant details. It turned out really cool. :)
Although I briefly considered porting this design to OS4,
it looks to be too much work right now to do so, and Amiga
users will sadly have to wait until the integration of the
AmigaDE and AmigaOS. At that point, the calculator and all the
other AmigaDE programs will run on AmigaOS machines with no
additional efforts, and so it just doesn't make sense to
invest the programming time to make it happen earlier when it
will eventually happen "for free". I know patience is one of
those volatile words that some Amiga supporters seem to have a
near-infinite supply of, while many others are near or past
the breaking point. I can only hope that everyone just hangs
in there a little longer, with that light at the end of the
tunnel seemingly visible from where we are now.
I hope for some real excitement, announcements, surprises,
OS4!, and much more to happen at AmiWest. I'll be attending,
and bringing all my products to show those of you who haven't
yet seen them, and I can answer any questions (at least the
ones I'm allowed to talk about!) about programming for the
AmigaDE. If there's interest, formal and/or informal
programming sessions can also be arranged. Hope to see you
there. |