| The
TWIGZ Progress Page |
| This
is where you come to find out what's new with the TWIGZ
Engine |
| |
|
| |
| |
|
| 7.29.2002
- The first screen of the TWIGZ Engine |

The very first screenshot
|
| |
|
8.13.2002
- The biggest bug as of yet has finally been destroyed.
It took 2 grueling days to finally figure out the problem.
Turns out our map editing program saved graphics incorrectly
causing errors when they were loaded in the actual game.
The bug is DESTROYED and the
game development has resumed full speed, expect more recent
screens in the next few days. Keep checking this page for
updates.
BUG 1 - The "If this happens
one more time I will take my computer outside and bash it
with a rock" Bug
STATUS: Fixed
|

Bug 1 has finally been destroyed this is a screen of what
the interface will look like. The map and the objects
are tests, so don't expect the graphics to be sketchy
and out of place like in the screen. The
ENGINE IS WORKING!! |
| |
|
| 8.14.2002
- Next on the "to-do" list
is to get the inventory and verbs working. Verbs such as
"Walk to", "Pick up", "Open",
etc. Expect screens of the progress soon. |
|
| |
|
| 8.17.2002
- The verb graphics have been replaced with semi-permanent
ones and the verbs themselves are almost completely working.
As of right now the main concern is determining every type
of object that can be on a map screen, these include animated
objects, replaceable objects, objects that can be picked
up, etc. Once this is sorted out the verb engine, in its
entirety, will be complete. Keep checking in for more news
about the progress of our TWIGZ Engine. |

Here's a shot of what the screen looks like as of now.
Those verbs at the bottom look much better than in the
picture above, don't you agree? |
| |
|
| 8.21.2002
- Woooo Hoooo!! Not only does the TWIGZ Engine detect map
objects 100% perfectly, but now they can be examined. The
dialogue that the main character will say when examining
the objects has been stored in a separate file and that
will be accessed during game play. Soon there will be separate
files for each verb and how the main character interacts
with the object the verb is used with. I don't know about
you but we're excited. The Engine is coming along nicely.
Note: In the picture to the right
the text at the top is what the main character will say
when examining that map object. Of course it will be displayed
with a much nicer font and above the character when he is
on the screen. Also the map graphic you see is a crude drawing
used during programming, the final graphics will be MUCH
better we assure you. Remember Step 1 is the Engine, Step
2 is the graphics! |

Check out this new screen! |
| |
|
| 8.28.2002
- Sorry for the delay folks, we've been working so hard
on getting the Great Escape Level
Editing Competition up and running that we strayed from
the TWIGZ Engine, but we're back BABY!! The verbs are all
working nicely and currently we're working on objects that
can be picked up, once they are picked up the game has to
know that they aren't there anymore, even if you leave and
come back! We've decided the best way to do this is with
external temporary files that tell the game what has been
picked up and what hasn't, then if the game is exited without
being saved this file is simply killed off. If it is saved
it just gets copied to a save game file. More on this soon! |
|
| |
|
| 8.30.2002
- Check this out, great advances in the verb aspect of the
TWIGZ Engine. Now Map Items can be examined, and there is
appropriate dialogue for each item on a map. Also some Items
can be picked up and once they are, they are placed in the
inventory, removed from the map and the fact that it has
been picked up will be saved in a temporary file! This way
if one was to leave the map and return it would not be there
again, unless the game has been re-loaded without saving.
Keep an eye out for more updates and new screens! |
|
| |
|
| 9.02.2002
- The TWIGZ Engine is now incorporating pixel by pixel scrolling
for larger map areas, keep an eye out for an animated gif
to see what it looks like, also we have been improving verb
activity tremendously. |
|
| |
|
9.5.2002
- Well, we have been working hard, very hard, on the verbs
open, close, push, pull, and use. Why, you ask, I'll tell
you why. You see the verbs themselves are actually quite
simple but there remains one problem, these verbs can be
used to change the appearance of many objects on a map.
That doesn't seem like such a big deal, until we get into
the idea that the engine must know about these changes and
must be able to recognize the differences. Then these changes
have to stay in effect, even if the character leaves that
map, because when he returns, all must look the way it did
when he left. Then, only if the game is saved, are these
effects permanent. (EXAMPLE: A
a
cover on a well can be removed then the object name "Well
Cover" must become "Well Opening" and then
the Engine must know that that can now be entered, etc.)
We worked on this for hours and hours and got very far but
by the end we felt that the coding we used was too sloppy
and the effects weren't significant enough to keep the changes.
Many things still need to be worked out. We will continue
to work on this bug until it is all fixed.
BUG 2 - The Open Bug
STATUS: Pending |

This animated gif shows that the scrolling does indeed
work, however, only on 320 x 200 sized map will scroll
as of yet. Click on the image to see an ACTUAL sized animated
gif. |
| |
|
| 9.8.2002
- The Open Bug is still in effect but that will be fixed
shortly. However, the inventory is completely working. All
items can be picked up and are added to the inventory in
the right order and once the first eight inventory slots
are filled, the inventory becomes scrollable and you can
cycle through your inventory. Please
feel free to Contact Us and let
us know what you think about TWIGZ's Progress and some ideas
you would like to see in the game. |
|
| |
|
9.10.2002
- The Open Bug has been DESTROYED
and now items can be interacted with, changed by the engine
and recognized as completely new objects. The engine is
coming along incredibly. Keep an eye out for more screens.
BUG 2 - The Open Bug
STATUS: Fixed
|
|
| |
|
| 9.11.2002
- A Hero is Born! Take a look at the first, very early,
pixelation of your hero and mine. Also we have worked on
the inventory and almost all aspects of it are working 100%,
after that we move onward to our last and final verbs, GIVE
and USE. GIVE
promises to be simple with a small amount of hang-ups, however,
USE will be a GREAT
challenge and we shall keep you posted. Contact
Us and let us know what you think of our character.
|
|
| |
|
| 9.12.2002
- Great news for all you TWIGZ Fans! The Engine is coming
along incredibly, with the recent addition of VARIABLES!
Sounds simple, I know, but with these externally stored
"BinVars" our engine now knows how to react before,
after, and during an objects status change. For example,
there is a door, it needs a key. If you try to open it without
the key the character may say "I need a key" but
if you did have that key the character would go ahead and
open that door! Pretty sweet, huh! But it gets better! Now
lets say you had to steal that key from a guard by knocking
him out [Hint Hint ;o)] If
you examine him before you knock him out the character may
say "He has the keys" but after he is knocked
out the character will say "He's unconscious, and keyless"
Very exciting stuff! Also check out the new pixelations
of our hero and let us know how you feel about all of them,
what you like, dislike, etc. We'll keep you posted! |
|
| |
|
| 9.16.2002
- With the addition of Yuri Fain,
our new artist for all the TWIGZ Production Sketches and
Character Designs, the graphical aspect of the TWIGZ Engine
is in high gear. Check out the TWIGZ
Production Page for more sketches and updated graphics.
Here's a quick look at the newest of characters you will
meet. |
......
The Meditating Man: his wisdom
is unmatched, except by his odor. |
| |
|
| 9.21.2002
- A small but very important addition to the TWIGZ Engine,
the verbs push, pull, open, close, and use all change the
status of BinVars (global variables) thus causing our engine
to "know" what's going on inside the game |
|
| |
|
| 9.29.2002
- It's been a little while since our last post, but that
is with GREAT reason. We have
been hard at work programming T*LiB
(a graphical library written completely in Assembly) in
order to prepare the TWIGZ Engine for all the graphical
capabilities it needs. These include: Scrollable maps up
to 960x144 pixels, sprite manipulation
(transparency and clipping), mouse routines, and XMS capabilities!
These aspects of the engine MUST
be designed now so that we can better program the TWIGZ
Engine. It would be rather difficult to program a scrollable
map with various items spread throughout it, without actually
being able to see it in action. So check out the T*LiB
Progress Page to read more about our advances. Work
on the TWIGZ Engine will resume Monday September 30, 2002.
Thank you very much for all your patience and interest.
Please let us know
what you think, give us some suggestions and criticism. |
|
| |
|
| 10.1.2002
- We have begun introducing the T*LiB
into the TWIGZ Engine. The current aspect of the TWIGZ Engine
in development is the DIALOGUE ENGINE!
We decided we wanted to change the dialogue aspect of TWIGZ
into a multi-path system where
you can discuss MANY things and eventually venture back
to the main topic of discussion. This allows for much more
interesting dialogue! Now with the introduction of the T*LiB's
new text routine, each character will have different colored
dialogue to represent who is talking. Keep an eye out for
more details on the DIALOGUE ENGINE.
If you have any suggestions or comments, PLEASE lest us
know! |

Here is a screenshot of the T*LiB's
new text routine in action.
Click the image to view it at full size. |
| |
|
10.4.2002
- Are you ready for exciting?! We here at Shattered Realm
came to a realization yesterday: The TWIGZ Engine has some
sloppy code! We we're a bit sad at this when it first came
to our attention, but now we are content! We analyzed the
code and realized there was only one sloppy aspect of the
code, the BinVars!!! Probably
the most important aspect of the TWIGZ Engine (comparable
to fuel in a car, you can't use the car unless you've got
some gas), but at the same time this was easily fixable!
We realized something that had been hanging right in front
of us since the start of T*LiB,
we have XMS! All we need to
do now is numerically list the variables and their statuses
in XMS! It is that simple.
Now, you may say "What is a BinVar?"
and we may respond by saying this: "They
are variables, such as DoorOpened, which can have one of
two values (0 or -1). If the BinVar's status is 0 then that
action has not happened yet, if it is -1 it HAS happened.
Now, instead of using names, we use numbers, and store the
numbers (representing variables) in XMS
chronologically. Then we can easily read their status!"
"... ummm ... that's great but
how does that help anything?"
"Well, you see when you
are in room 1 and you open a window, pick up a spoon, and
close a cabinet this information will be stored in XMS.
Then when you exit room 1 and re-enter all this information
can be received from XMS and
all the changes you have made will show on the screen!!
Also, XMS can be copied to
a file as a save game, meaning when you save your game all
the BinVar statuses are saved as well!"
Pretty exciting, I know! Anyway keep checking us out for
more updates. Keep an eye out for info on our upcoming scripting
aspect of the TWIGZ Engine. |
|
| |
|
| 10.7.2002
- Working with the BinVars has been a great learning experience
for us!
Here's what we have so far:
1. The engine now creates save game files (saving the
status of all objects on all maps throughout the game)
2. The engine has been designed so that once development
is done for one level, all remaining levels can be programmed
about 99.99999% FASTER then the first. We are designing
this engine with a future in mind, this way it will easily
be able to do all standard routines that the game may
ask for. Then anything special can be programmed separately.
3. Tomorrow we attempt to conquer the USE verb! This is
the one verb that has many, many different ways it can
be used, thus creating a great challenge for us. Don't
worry, however, we feel confident in our abilities to
take it on!
What's Left:
- Dialogue Engine will be redone!
- Scrolling must be implemented into the engine (the routine
itself is complete)
- The sprite layer must be handled properly
- Walking algorithm must be programmed
- GIVE verb must be programmed
- Scripting for animations must be coded (this is our
next great challenge)
- Animation director must be programmed (for reading scripted
animations)
- Scaling and Masking routines for T*LiB
are needed
- Graphic Overhaul (this is where all the graphics are
created, this is at the very end of production)
- Final Touches, Music addition
ESTIMATED TIME OF COMPLETION:
November 11, 2002 (Release
of first fully functional demo,
unpolished graphics)
Final Release Date - Pending
Keep checking in with us for more updates. Please
let us know if you have any ideas or suggestions for our
project! |
|
| |
|
10.11.2002
- The USE Verb is still being tweaked, and will continue
to be so for about another week. However, more GREAT advances
in the world of TWIGZ! First off is the implementation of
T*LiB, which is 100% effective
as of yet.
The Engine's New Features Include:
- Triple Buffered Graphic Handling
- Fully Manipulative Sprite Layer
- Separate Animation Timers
- Scripted Animations
- Dialogue Layer
- Custom Mouse Cursors
Scripted Animations - Our new
pride and joy! With these, the engine performs animations
according to a series of instructions, like that of a script
for a play. (Example: Where
to enter, exit, what to do, where to face, what to change,
etc.) Also, the engine has Separate layers for dialogue
and custom mouse cursors!
|
|
| |
|
| 10.14.2002
- The USE
verb now invokes the TWIGZ Scripting
Engine and allows for specific directed animations
and variable changes. We are currently developing a timer
(in milliseconds) in order to correctly time the animations
in TWIGZ. Keep an eye out for more information. |
|
| |
|
10.21.2002
- The inventory's programming
is now COMPLETE! All items
can be picked up and will appear in the bottom left area
of the screen (the inventory). There is a maximum amount
of items that you can have (30 items) but keep in mind items
can be used with other items to create totally different
items. Keep an eye out for
a screen of the inventory in action.
Also, the TWIGZ Scripting Engine is ever-growing with new
commands that will allow the TWIGZ Engine to decipher exact
animation cues, including the $AddInv
command which adds an item to the inventory.
Note: The
lack of new screenshots is due to the fact that we are developing
the engine and all of its aspects on a crude rendering of
the first map in the game. All aspects of the engine will
be identical for every map, however some will include some
special aspects (which will be programmed upon completion
of the engine's main aspects). Once programming for all
main commands is complete, the graphics will follow quickly
and shortly after. We appreciate
your interest and patience :o) |
|
| |
|
| 10.24.2002
- The inventory is seriously 100%
complete (we thought it was before, but we had
to add a few things), here's what the inventory can do:
- Items are
shown there (max of 30)
- Items can be used with other items in the inventory
- Items can be used with other items on the map
- Items can be given to other characters in the game
- Items can be gathered through the scripting engine
- Items, when combined, create a new item and eliminate
original two
- Inventory is scrollable
- Items can be used to invoke the scripting engine
Also, programming is running very
smoothly with these few exceptions (minor problems
that need to be addressed)
- The graphic
buffers used in QBasic were too large so we are converting
to an XMS Buffer (thus, we've developed our MoveInXMS
Routine)
- Scrolling routine needs to be rewritten in Assembly
(we've been experiencing a few problems with that)
- A PutInXMS Routine must
be developed (with transparency) to compensate for the
loss of our QBasic Buffer (programming on that is about
50% complete)
The game is fully playable as of right now and the first
map can be completed (without the graphical animations),
however we still must do the following:
- Re - code
the dialogue engine
- Create a text centering / coloring routine for multiple
character dialogue
- Code the scaling algorithm
- Code the walking / path-finding algorithm
- Fix the above problems
- Polish up the Scripting Engine
- Finalize Graphics and music
The Demo Release Date may be pushed
back a bit, we will keep you posted and remember
don't forget to vote, your input counts! |
|
| |
|
| 10.26.2002
- The results are in for our first poll: "What
do you value most in adventure games?" and
here are the results:
Hilarious Dialogue - 13%
Entertaining Storyline - 13%
New and Original Characters - 0%
High Quality Music - 0%
Easy and Comprehensive Controls -
13%
Great Graphics with Smooth Animations - 38%
All of These Should Be Stressed Equally -
25%
I'm Not a Big Fan of Adventure Games -
0%
This means that our scrolling engine (currently in development)
will be created to ensure smooth, 100%
flicker-free animations. Also all animations will
be drawn with great care to ensure optimum results.
The dialogue and storyline are in development and will
be as hilarious and entertaining
as humanly possible.
As expected
we will strive to maintain a balance between all of these!
|
|
| |
|
10.28.2002
- Seeing how important smooth animations and great graphics
are to the majority of people (see above) we have incorporated
EMS support along with our
previous XMS memory. This allows
EMS to act as our off-screen
buffer allowing for more memory within QBasic. Also we have
added a Transparent PCopy routine
that will allow for parallax (multi-layerd)
Scrolling!
We told you your input was important
;o) |
|
| |
|
11.03.2002
- The TWIGZ Engine now fully relies on EMS
and XMS. Due to the memory
restrictions of QBasic it has been decided (and put into
effect) that all graphical data (e.g. fonts, maps, characters,
etc.) will be stored in XMS
memory. They can then be retrieved by the engine and placed
in the EMS buffer. All graphics
to make up one FULL SCREEN
will be drawn on the EMS Buffer
then copied to the screen segment - thus creating smooth,
flicker less animation!
With the addition of T*LiB's new
Scrolling Routine, TWIGZ can
now scroll (horizontally) up to three
maps (three screens) without flicker and without
the use of a buffer. It is quite fast ;o)
We have also incorporated a Text Wrapping
routine that wraps dialogue shown on screen. It places the
text dialogue above the character who is speaking, centers
it, and if the dialogue is too long to fit above the character
in 3 lines it cuts off at the next word, pauses, erases
the old text, and continues where it left off with the new
text. It checks for screen borders and character position.
We have decided, however, that this is NOT
the best way to wrap dialogue. Since the text wrapping routine
is mathematical ... it leaves little thought about the drama
of certain dialogue. (For example:
If a character were to say something
surprising, they may lead up to the climax of their statement,
pause, and then finish it. With a mathematical text wrap
routine, it does not account drama when wrapping and cutting
dialogue) so we will re-write this routine and place
a "/" in the dialogue files of each character
in the positions where dramatic pauses are necessary, this
way WE can determine EXACTLY how the dialogue will be presented
(after all, there may not be voices (recorded wav files)
in this game ... so the dialogue is
VERY important!) |

A SCREENSHOT!!! It's nothing special but it gives you
an idea of how we're progressing ... the character's colors
are off because he does not have his own palette yet,
the red mouse cursor is a moving
sprite not the mouse (the blue mouse IS the mouse),
also the character is moving!
The items in the inventory on the bottom right are a stick
(left) and a rock (right)
these do not have their own palette yet, either.
Note: all graphics are crude and
disgusting because graphics come after the engine (we
believe) |
| |
|
| 11.07.2002
- Here's a list of what you can
expect to see within the next week or so:
- TWIGZ Map
Files with individual palettes (and an included constant
palette for characters)
- PutEMS routine
for T*LiB that will allow us to use EMS as a large array
so that we can PUT any area of EMS with transparency (this
would have been done in XMS but the XMS Memory Manager
only allows 2 pixels to be read at a time)
- Costumes
(that's what LucasArts calls 'em anyway) A costume
is basically a sprite, for instance our main character.
His costume consists of all movable parts of his body
(head, arms, legs, torso). Each sprite in TWIGZ will have
its own costume that will be stored in XMS and read using
an offset table. The scripting engine will determine which
part of a costume is shown, and when it is shown!
- With the
above comes the constant updating of our scripting engine
What
to expect a bit further down the line (two to three weeks
from now):
- Walking algorithm
using box matrix calculations (we're a bit afraid of this
one ;o)
- Scaling algorithm
for sprites (T*LiB)
- Final coding
of the dialogue engine (along with the use of the "Talk
To" verb)
- The "Give"
Verb (will be quite simple, just need to have other characters
on screen before this can work)
- Parallax
Scrolling
- Z-Buffer
Calculations to determine if the character is behind or
in front of certain objects (we're a bit afraid of this
too) |
|
| |
|
| 11.12.2002
- The Dialogue Engine is
near completion, along with the Text
Wrapping Routine for showing the dialogue on screen.
The Text Wrapping Routine:
- Wraps text according to dramatic
cues and commands programmed into each script.
- The routine checks for off screen
coordinates and makes sure that all text fits on the screen.
- The text routine calculates the
length (in pixels) of each line of text and centers it
above the character who is speaking the text (in his/her
text color)
The Dialogue Engine:
- Calls upon the Text Wrapping Routine
- Can call scripts while text is
being shown
- Will incorporate the use of costumes
- Will
include a command that has the speaking characters mouth
moving along with the text
The Mouse Problem
is currently being fixed (the mouse is placed on top of
all other sprites in the buffer before PCopy is executed)
Expect our work on COSTUMES to begin
tomorrow, this is possibly the most important aspect
of the TWIGZ Engine, more on that soon.
BUG 3 - The XMS Bug (Arrrrrrrrggggggggg!)
STATUS: Pending
The XMS Bug occurs the first time
TWIGZ is run after a boot up. What happens is that the
information the engine stores in XMS when running, is
not stored properly (this can be solved by exiting and
re-loading the engine). We think that if we Allocated
XMS then CLEARED it all, before we put any data into it,
this would be fixed. We will work on that tomorrow too!
|
|
| |
|
| 11.21.2002
- We have developed a new custom file: Costume (*.cos)
files. These files include all sprites related to a specific
character on a specific map. For instance if TWIGZ is
in a room and in that room he gets surprised, the costume
of TWIGZ for that room will include all the sprites that
make up the surprised animation (along with other animations
for that character in that room).
The Costume Format: [*.cos]
- A costume file is saved as follows:
1. Total Number of Sprites
2. Sprite Offset Table
3. Sprites
When a costume file is read, all information is loaded
into XMS where it deciphers
all the above information. The total number of sprites
is used in a FOR NEXT loop to store all the sprite offsets
in the variable [SpriteOffsets(TotalNumberOfSprites)]
Then when a desired sprite is to be read from XMS,
the Engine finds the offset from the above variable and
reads from the XMS memory
at that position. It reads until it reaches the offset
of the next sprite offset.
These costumes
are loaded into XMS
before
the map is loaded
and shown on the screen!
The Engine knows which sprite to load based on calls by
the TWIGZ Scripting Engine.
These commands are still in the works, so expect more
on this soon! |
|
| |
|
| 11.25.2002
- WOAH! First off the TWIGZ
Engine now scrolls maps up to 960
x 144 pixels and knows exactly where all objects
are on the map as it scrolls :o) Then engine is able to
recognize these "HOT"
objects due to the use of global map
positions and a simple scroll
variable. The whole map now has its own palette independent
of the sprites. Also the engine has the power to animate
OVER 30 sprites and the mouse
sprite layer WHILE scrolling the background without
any flicker or flaws! The engine is running beautifully
and we are growing ever so close to a completed engine.
Check out the screenshots to
the right and please Write
Us an E-Mail with any questions, comments, suggestions,
etc. Thank you! |

This is the first crude rendering of the 960 x 144 pixel
map we had the TWIGZ Engine scroll! It worked 100% perfect
and the engine recognized all the "HOT"
objects on the map when the mouse rolled over them.
This is a screen of the engine scrolling the above map.
As the mouse rolled over the tongue of the giant smiley
face the engine recognized it as an object! This is a
huge step in the development of TWIGZ.

This is a screen from our graphics test! The TWIGZ
Engine was scrolling the background from above along with
animating 31 sprites at various speeds. The black pointer
at the top middle of the screen is an animated sprite
too. The mouse pointer color was changed to yellow for
better visibility. Note:
the sprites' palette has not been
updated yet so the odd coloring is only temporary. |
| |
|
| 11.28.2002
- With the addition of the FIXED Sprite
Clipping Routine you can now check out a SCREENSHOT
of the TWIGZ Engine and see how it all looks. |

Alright, CHECK THIS OUT!
First off note the sprite clipping with transparency!
This is shown by the sprite that says "Im A Box."
Also note that this sprite was loaded from a Costume
[*.cos] and is stored in XMS!
Then note the dialogue and transparent text when the engine
"Looks" a the wall. You can then see the sprite
layer is moving without flicker! The clipped sprite is
moving where the mouse moves! All these graphics are moving
while the background is scrolling. All this at 72
FPS! |
| |
|
12.01.2002
- The XMS Bug (BUG 3) from
11.12.2002 has been DESTROYED!
It turns out, as do most bugs, that it was caused by a very
stupid error. Instead of initializing all BinVars (0 to
5000) to FALSE (Value of 0),
we initialized BinVars 1 to 5000 to FALSE
leaving BinVar 0 set to whatever value was at that offset
in XMS. Then when the engine
loaded the "HOT"
objects into memory it would skip
all that required BinVar 0 to be set to
FALSE.
Also note that work on the Path-Finding
Algorithm has begun. We are using a technique that
sets walkable areas on a map into different convex polygons
and then calculates the shortest distance
between these polygons through matrix
multiplication. It is still very early in the works.
More will be released shortly.
As of now there are NO KNOWN BUGS
IN TWIGZ!
Expected Playable Beta Demo Release
Date: January 15 2003
Note: This
date is subject to change due to complications but we will
try our hardest to reach this deadline!
BUG 3 - The XMS Bug (Arrrrrrrrggggggggg!)
STATUS: Fixed
|
|
| |
|
| 12.05.2002
- Well the Path-Finding Algorithm
is giving us some troubles, but that's what programming
is all about. For an idea of where we're getting the basis
for our algorithm check out Path
Finding In Complex Maps And The Black Art Of Linear Algebra
It's a great resource! The explanation given in this tutorial
is a bit confusing and is slowing our progress a bit.
Don't worry, we'll sort it out soon enough. Keep
checking back and feel free to E-Mail
us with any suggestions, Questions, and Comments! |
|
| |
|
| 12.16.2002
- It was quite simple once looked at for a while. In order
to check if the character crosses his walkable barrier we've
used the slope of a line formula y
= mx + b along with x
= (b1-b2) / (m2-m1) and y
= (c1 - ((c2 * m1) / m2)) / (1 - (m1 / m2)) to
determine a point where 2 lines will intersect (provided
they are not parallel) therefore we are able to determine
where the character will intersect
with the walkable border of the map which is laid
out in terms of connected convex polygons. The routine is
still being worked on but it DOES
work. Keep an eye out for more updates! |
|
| |
|
12.18.2002
- Things are going great, we're moving along quite nicely.
Here's what's new: We have a collision
detection algorithm that works from all angles with
a maximal error of 1
pixel! (This could be fixed but would require too
many calculations for such a minor error) Also we are beginning
to implement it into the engine. The
pictures at the right show it in action, although
it is hard to see exactly what is happening. We have laid
out the first level's walking boxes
and are testing our collision algorithm with it and all
is going well. Of course there are many things that need
to be worked out.
We have also started rewriting the dialogue engine to allow
for multiple-branching dialogue. |

This shows the character attempting to walk to the stick
at the bottom of the screen but he is unable to due to
a collision detected in the
walking box laid out around him! Boxes like these will
be laid out (invisibly) throughout the level and connected
through a series of matrix calculations
to determine a shortest walkable route.
Note: the white point inside
the white box is the point of intersection.
This just shows a green line set as a collision border
and multiple lines shooting toward it. If a collision
is detected then the lines will stop.
Note: the error is 1 pixel
:o( but that is perfectly
fine for its implementation in TWIGZ! |
| |
|
| 12.22.2002
- The collision detection has been implemented into the
first map and works fairly well. The first problem we encountered
was the inability to detect
collisions with slope less, or horizontal
and vertical,
lines.
We did, after some tweaking, solve
that problem. The detection, however, fails
to detect all points of collision all the time when used
with over 30 walkable polygons.
We are working very hard on it and are sure it will work
out. Give us some time and
well give you flawless collision detection. Thanks for your
patience. |
|
| |
|
| 12.31.2002
- The Collision Detection Routine was modified and now
works 100% Perfect. It can
determine the intersection of any two lines regardless
of their slope. The problem with the 30 walkable polygons
(from above) was fixed as well, and proved to be a simple
matter of miscalculation.
The next new
implementation, our pride and joy, is the new Shortest-Path
Finding Algorithm. This algorithm can take a map,
divided into connected convex polygons, and find
the shortest path from any point on the map to
any other point. It can then tell the character exactly
how many polygons it must walk through and which ones
to pass at which time. This was a
key element in the engine that we were struggling
with. It now, however, works perfectly!
We're right on track for our January
15, 2003 beta demo release.
For an idea of where we're getting the basis for our algorithm
check out Path
Finding In Complex Maps And The Black Art Of Linear Algebra
It's a great resource! |
|
| |
|
1.4.2003
- The integration of the Collision
Detection Routine and the Shortest-Path
Finding Algorithm is causing a few problems. The
integration works well
the problem is this: The engine must know whether the mouse
is clicked within a walkable polygon and if so which polygon
it is. Sure that sounds easy but since the polygons are
of an infinite amount of different
shapes, this type of detection seems impossible.
Next, if the mouse is clicked outside a walkable polygon
then the engine must decipher where
the player intended for the character to go and then
get him there.
This is a new challenge for us and one which we
will work hard at conquering. Give us a few days
... we won't let you down. Thank you
all for your patience and interest! |
|
| |
|
1.9.2003
- We have determined that the Collision
Detection Routine must only detect collisions for
the characters current walkable polygon,
thus saving us a great amount on computing time. Also we
have integrated this routine along with the Shortest-Path
Finding Algorithm to create
flawless walking within these polygons. The remaining
problems exist when a player
clicks outside of one of these polygons. The computer must
determine which polygon is closest and most reasonable for
the character to walk to. We will continue to work on this
and will keep you posted.
The dialogue engine is near 100%
complete and new features will be added as necessary. We
have just begun to implement it into the engine and expect
no problems to arise. Keep an eye out for more updates. |
|
| |
|
1.13.2003
- Check out the new SCREENSHOTS! The new additions are as
follows:
Picture 1 (Top): Lowercase
letters for prompt box, new mouse cursor which lights up
when rolled over a hot object, and a demonstration of the
text which will be spoken by the main character.
Picture 2: The early stages
of our dialogue engine, this engine includes multiple branching
streams of dialogue. The words "Pick Up" should
not be there and will be eliminated by final release. Also
shows the Mouse in its "COOL"
form.
Picture 3: Another demonstration
of lowercase letters along with the mouse in its "HOT"
form. |

Notice the Monkey Island Reference
Early dialogue engine
Mouse in its "Hot" form |
| |
|
| 1.20.2003
- The dialogue engine has been giving us a few problems
... all that we have answers for and will be programmed
in the next few days. The
next integration will be moving mouths and gestures to
go along with the dialogue. Below
is a list of the additions needed before completion.
1.
Completion of Dialogue engine including animated costumes
representing mouths moving and hand and facial gestures
2. Animation Timers (needed to insure
that all computers run TWIGZ at the same speed)
3. Implementation of a scaling algorithm
for characters as they move in and out of the distance
4. Completion of the walking algorithm
THAT'S IT!! That is all that is left for the TWIGZ Engine!
Keep an eye out for more details! |
|
| |
|
1.28.2003
- We have recently completed the dialogue engine (with the
exclusion of the movable mouth costumes) and it is up and
running 100%. What it does
is reads a set of questions from a dialogue file and displays
them. When the mouse rolls over a question it will brighten,
showing which question is currently selected. After a question
is asked, the other character engaged in the conversation
will respond and a new set of questions will appear. Some
question will lead to other new questions and branch off
to a totally new topic of discussion. We call this Multiple-Branching
Dialogue.
We have also solved a major problem
with loading saved games. Each time a saved game was loaded
there was a very noticeable glitch in graphics. Well, after
about an hour of debugging we found our mistake. Heh heh
... funny story, turns out that before you can have an engine
show a font on the screen ... it must be loaded into memory.
Who woulda thought?! So instead of calling the LoadGame
sub before the LoadFont sub ... we switched em'. PROBLEM
SOLVED!! (Yeah, that's right ... we're real stupid!) |

Here is a shot of our dialogue engine running! As the
mouse rolls over a question, it becomes highlighted.
This shows our inventory on display, it is now stored
in XMS so that it is updated without flicker!
|
| |
|
| 2.4.2003
- We have been working on a sprite scaling routine that
will scale sprites on-the-fly for
when a character moves in and out of the distance in TWIGZ.
We have programmed this routine in QBasic and it works nicely,
however, it is not very speed efficient.
We have tried to convert it to Assembly
but with many problems. We have looked into using fixed
point math and have even tried to work around floating
point division with straight integer division but we have
run into many problems. I'm sure we will have this worked
out in a few more days. Just trust in us, we will not let
you down. |
|
| |
|
2.25.2003
- Some new advances in the engine! We are changing the collision
detection routine from a line intersecting detection to
a Point-in-Poly test. This
test will determine whether a point lays inside a walkable
convex polygon with greater speed and ease. More
will follow as it advances. Also we have edited our scaling
routine and have begun to code it in assembly.
Also, we have begun working with timers
and animations and have found the perfect PERCISION
timer for timing all game animations. Also Costumes with
built in offset tables are being played with .. we are so
close to finished! |
|
| |
|
| 3.3.2003
- Well it has been a while but ... we weren't sleeping!
We've got some HUGE news! Check out the latest advancements!
The
Costumes Work:
- We designed a mouse driven costume
designer that allows us to load a sprite sheet and divide
all the sprites into different costume parts. They are
then saved in a ".cos " file format with an
offset table that lists each costume part numerically
and its offset and length in the costume file.
- This file is loaded by the TWIGZ Engine (the offset
table is stored in XMS and so are the costume aspects)
- This allows for blazingly fast animations and space
saving techniques. Now we can have one body and multiple
heads can be placed on it for all different types of animations.
All body parts can be changed on the fly!
- These costume parts are called upon by game scripts
when needed. For example: If TWIGZ interacts with a door
then the Open Door animations will be loaded by a script.
The script engine needs a bit of
work
The New Point-in-Poly Collision
Detection Routine:
- This technology allows for FAST collision detection
and clickable area detection. Now the TWIGZ Engine can
easily detect which walking box has been selected and
then decipher how to get the character there.
- If the characters detection point leaves a polygon then
he has collided with its edge and cannot go any further
- We still have to add a routine
for estimating the polygon closest to a point clicked
if that point is not inside a polygon
- We still have to add a routine for changing destinations
on-the-fly
New Walking Box Format Works:
- A new mouse-driven walking box designer was created
to designate the walkable areas of a map. These boxes'
vertices are saved in a ".box" format along
with their Connectivity Matrix and their Connecting Midpoint
Matrix for use with the walking routine
New Walking Routine Works:
- Walking routine can get a character anywhere a person
clicks by walking through the walkable areas of a map
- Uses global variables so that the map can scroll at
any speed and the character will be walking on or off
screen
- The TWIGZ Engine KNOWS where to go using a Path-Finding
System that deals with a (NumberOfPolys) x (NumberOfPolys)
Matrix containing the next walking box any given box is
connected to
- The Engine then gets to that destination by walking
through the MIDPOINT of the connecting edge of these boxes
With all of this we are EXTREMELY close to a DEMO
RELEASE! After we add the above listed things and
implement our scaling routine we will be all set. THANK
YOU SO MUCH FOR BEARING WITH US! Keep an eye out
for some new SCREENSHOTS!
|
|
| |
|
4.20.2003
- We've got a whole lotta new stuff for you today! First
off is the completion of our Path-Finding/Walking
Algorithm/Routine. The routine is a combination of
all of our previous attempts. First of the engine checks
to see if the clicked point is inside one of the walkable
polygons. If it is the engine performs a calculation in
the Walking Box's Connectivity Matrix to determine which
polygons must be walked through. Once this is done the character
walks from polygon to polygon by crossing through the midpoint
of the connecting side of each two polygons (I hope that
makes sense).
If the clicked point is outside a polygon then a vertical
line is dropped down from the test point and the intersections
between that line and any polygon edges is stored in an
array. Next the distance formula is applied to determine
the distance between the test point and each of these intersecting
points. The point of intersection that is the shortest distance
away is the point in which the player will walk to. SIMPLE!
Next came the completion of our on-the-fly
Masking Routine. The idea behind this was simple
and eventually all worked out. The current map is stored
in XMS and a mask layer for that map is stored in XMS as
well. What our routine does is compares where the character
will be placed to the mask layer and determines if there
is anything obstructing our view of the character. If there
is the routine simply does not draw that pixel. If there
is nothing in the way then it will draw that pixel.
Each mask on the mask layer is set to a Z-Index number (1,2,3
... etc.) the character has his Z-Index number which tells
the engine where he appears on the virtual Z axis. If the
character's Z-Index Number is less than or equal to the
mask's Z-Index number then the character can walk "behind"
it!
|

This is our first sprite sheet for our upcoming demo (graphics
will improve and more will be added!)
.........................................

The first head animation! |
| |
|
6.5.2003
- Not too much has changed since the last update but we
have found one bug ... this bug has been deemed the "ah
crap ... not again" bug.
Here's the problem: When the engine is run in the QBasic
environment it works flawlessly ... once it is compiled
and the executable is run it freezes at in the loading stages.
It has been determined through some tedious debugging that
the problem comes only when the TwigzMask routine is run
(our on-the-fly masking routine) however we cannot figure
out why it works flawlessly in QBasic and not stand-alone.
Perplexing, isn't it? Anyway we will continue to work at
it ... until then stick with us ... please.
BUG 4 -
"ah crap ... not again" (Problem with on-the-fly
masking routine ONLY in executable)
STATUS: Pending |
|
| |
|
6.12.2004
- Well, it has been a long time but it is finally done.
The first release of TWIGZ to the general public is out!
TWIGZ Version 0.99 can be
downloaded here. I have one request
for all people who download TWIGZ, please send me feedback
on any bugs, questions, comments, etc. All that information
is extremely valuable and I would appreciate it greatly.
Once feedback has been collected, I will make all necessary
corrections and release the final TWIGZ Version 1.0 along
with the TWIGZ
SDK (so you kids at home can make your own adventure
games!).
BUG
4 - "ah crap ... not
again" (Problem with on-the-fly masking routine
ONLY in executable)
STATUS: FIXED
(missing VARPTR() command) |
|