|
NEWS 1999
(some
links may not work anymore)
Back Home
12/31/99:
Still working combat issues. I added some code to the AI that performs
morale checks and readies the best weapon/shield/armor. Of course, 'best'
depends on the circumstances, but at least I have a basic algorithm in
place.
12/16/99:
Whew! Path finding is finally working. I used a modified A* algorithm
that seems to work fairly well. I also put some very simple AI in the code
(find closest enemy, move towards it, beat it into submission). Now I need
to test icons bigger than 1x1, and then test with multiple enemy icons.
12/06/99:
Progress reports are slowing down as I work on the combat code. I am
redesigning combat processing to handle combatants that are on automatic.
Not coding the AI, just putting in the hooks to allow it to happen. Along
the way I have been adding things like allowing multiple targets. I was
cranking out the events fairly quickly because the code changes became
almost routine, but now the coding will slow down since it requires more
thought.
11/29/99:
In between the weekend's Thanksgiving activities, I polished off the
bitmapped font handling and added sound to combat. I have neglected the
combat code for some time while I finished event handling, and it needed
some reworking to make it compatible with recent changes in the way items
and monsters are stored. I will put up a screen shot of combat later
today. My real goal was to add path finding to combat so the combatants
could move towards each other, but as usual I got sidetracked with other
things.
11/23/99:
I updated the screen shots of the item/spell/monster editors, and the
global data editor.
11/22/99:
The item/spell/monster sound effects are now added to the editor. To
test things on the engine side I need combat, and as mentioned previously
the spells can not be cast yet. The combat code works but I have plans to
rearrange/improve it so I am waiting to get started on that until this
weekend (long holiday weekend). So I have finally started to convert the
editor/engine over to using bitmapped fonts rather than Windows fonts. I
was using the System font because it is fixed width, and using the Win32
TextOut() function. This made things easy when I wanted to change the
color of the text, or create highlighted text. Now I let the user specify
a font in the editor, and the engine renders it onto a bitmap with each
character having a fixed height but variable width. This means I have to
render multiple times for each needed color, white, red, yellow, green,
blue, and highlighted. Many thanks to the guys working on CDX
, which provided me with an example of how to do this. It will probably
take me a few days to get it all working, and then I'll start adding sound
to combat. In addition, I need to add some path finding and basic monster
AI.
11/17/99:
I put the item/monster/spell text files on the Downloads page. They
show the format used. The actual content is not necessarily accurate.
While working on import/export of text files I increased the limit on
items/spells/monsters to just over 16 million entries. I am still in the
process of allowing the editor to specify the sound effects made by
items/spells/monsters.
11/16/99:
Now the engine will play MIDI or WAV files when the game begins, and
for the Sound event. I only allow WAV files for sound effects such as when
the party takes a step. I started to allow selection of sound effects for
items/spells/monsters, such as the sound an item makes if it is used for
attack and hits or misses. Also, each spell makes a sound when cast and
monsters can make sounds when they attack. Anyway, I started to add this
capability into the editor/engine when I got sidetracked. When I first
began this project I wanted to learn something about Microsoft Access and
VBA coding so I put items/spells/monsters into an Access database. Later,
I converted those files to binary data files and used the database as a
master copy, with the editor able to export the database info into the
binary data files. However, maintaining the database along with the
structure changes in the binary files is a pain. So I just finished giving
the editor the ability to import/export the item/spell/monster files using
text files. The editor will still create a binary file for the engine to
use, but at least it will be less trouble to make changes to the content
in the files.
11/06/99:
I found some source code that reads and plays MIDI files and I am
trying to integrate it into UAF.
11/01/99:
I have my DirectSound wrapper integrated into the editor and engine
now. The editor allows the user to choose the intro and party death tunes,
as well as the party-stepping sound and the party-bumps-into-wall sound.
The engine plays these sounds as needed and loops the intro/death tunes.
For now, only WAV files are supported. Just like the artwork, all WAV
files are compressed by the editor into data files that the engine
extracts as needed depending on the engine state. Basically, there are
global sounds, adventuring sounds, combat sounds, and event sounds. The
globals are always loaded and the rest are loaded and released as the
engine state changes. I have also added the Sound event into the editor
and I am working on the engine to support this event right now. The editor
allows any number of sounds to be added to the event and each will be
played once in the order they were added to the event.
10/26/99:
The Utilities event is done. The editor allows any or all of the
created items/keys/quests to be used for a possession test by the party -
not just 6 of them. So far the enforced limit for events, quests, and
items is 2 billion, but a design with so many objects would be huge. Keys
are still limited to 8, since I don't have a convenient way of displaying
color-coded key-to-wallslot associations for more keys. I also changed the
Special Item/Key event to allow giving or taking any number of configured
items/keys to/from the party. I saved the Sounds event for last because I
do not have sound support in UAF. Today I will begin adding sound using
the DirectSound interface. Besides supporting the Sounds event, I need to
add interface sounds like when the party takes a step or a character
shoots an arrow, as well as intro music. I expect that adding sound will
take more than a few days to complete, especially since I am not familiar
with DirectSound.
10/24/99:
I finally finished the Quest event. While testing the addition of quest
states in the save game files I found a mistake in the way event states
are saved. In the process of fixing the problem I increased the maximum
number of events to 2 billion per level. That's the enforced limit anyway,
I predict a level with that many events will have a very large file size.
I plan to work on the Utilities event next.
10/20/99:
I have added quest data to the editor and engine, now I am working on
the actual quest event that modifies the quest data. Each quest can have
65535 stages and each quest can be named.
10/16/99:
Finished the Guided Tour event without nearly the difficulty I had
anticipated. I made a few tweaks to the event processing portion of the
engine and everything fell into place. Each tour step has text associated
with it that is displayed before the step is taken (just like FRUA). If
the step is a 'pause' then the player must hit return after the text is
displayed to continue the tour. As with all text in every event, if the
text is long enough to require displaying it in multiple pages, then the
player will have to hit return after each page of text is displayed. No
limit is imposed on event text length. Next up is the Quest code.
10/12/99:
Finished the Chain event. Mostly just editor changes for this one, no
new game menus or screen processing. Next I will tackle the Guided Tour
event. I can see the end of the tunnel! Only a few more events left to
code. After all are completed I will go back and re-test each and polish
things up. Also need to test more variations on chained events. Finally,
after I feel like event processing is completed, I can move on to
something different. I have been working on the events for quite awhile
now.
10/10/99:
Got back from vacation :( and finished the 'Human Change Class' stuff.
Retrofitted all functions which depend on the character class to also take
the dual class into account if the dual class is available. So now the
Training Hall event is finished. Also limited the accumulation of
experience points by a character to 1 point into the next level. Once a
character gains enough exp pts to achieve the next level all future pts
are ignored until the character trains. Next on the agenda is the Chain
event.
10/05/99:
Still thinking about multi-class humans. I went ahead and finished the
Small Town event. I altered the FRUA approach and it now allows each of
the menu options to chain to an event. So the Temple menu option can chain
to a Temple event, or whatever. If a menu option does not have a chained
event it is not displayed. It sort of works out to be Question Button
event with 6 pre-labeled buttons, all of which return to the previous
event after the chain is complete. I'm taking a small trip for the rest of
the week and will not be coding more of UAF until this weekend.
10/04/99:
The Training Hall event is nearly done. Still working on the 'Human
Change Class' stuff, but the other training hall options are coded. I was
using the Give Experience event to allow my test character to get enough
experience to train and I noticed that the event could give a character
enough experience to jump multiple levels. I am fairly certain that the
AD&D rules do not allow this but will check it out and restrict this
as needed.
9/30/99:
I finally finished the Temple event. The editor allows the adding of
any spell in the database to the spells that the player can purchase (not
just cleric spells). Also, I added a new field to the spell editor to
specify the base price that will be charged for casting the spell. The
base price is subject to the cost adjustments specified by the event.
While refining the way the events are edited I added the step and rest
events to the new event tree. I have not updated the screen shot yet. Next
goal is to complete the Training Hall event. The engine is already aware
of experience levels by class and knows to change the color of the
character name when sufficient points are gained for advancing to the next
level. Other options available in this event, such as load/save, have
already been implemented so I don't expect this event to take too long.
9/25/99:
I ditched the old system of event creation/editing, and changed to a
tree structure that displays all events for the current level in a
hierarchical format. I put up a screen shot of it too! It is a definite
improvement over the old method.
9/21/99:
One of the poor design decisions that I made long ago keeps biting me,
and is doing it again while working on the Temple spells. When I began UAF
I was not a C++ wizard so I tried to keep everything in plain C syntax. My
event structure contained a union of all possible event types along with
some common event data. Unfortunately, unions don't allow constructors in
the various event structures. This disallows using templatized containers,
or CStrings, or whatever pre-built class I might like to make use of in
the events. Yes, I could write my own container code without using those
provided, but I hate to re-invent the wheel. I already have the code for
characters that maintains spell books using linked lists and wanted to use
the same code to handle Temple events. So to cut this story short, I have
been changing the event structure to be a C++ class, with a base event
class and each specific type of event inheriting from the base. I should
be done with this stuff soon and will get back to finishing the Temple
event.
9/15/99:
I live on the east coast of Florida and that pesky hurricane Floyd kept
me busy with other things beside UAF. Thankfully it missed the our coast
and did no real damage in my area. While working the Temple event I
decided not to use the fixed list of available spells per spell level. I
want to allow the module creator to choose spells from the spell database.
Progress is being made, it is just taking longer than I thought it would.
9/11/99:
Finished Tavern events. Besides being able to name each drink, you can
also specify the drink points. The points remain with the party even after
leaving the tavern, and decline at a (configurable) rate of 10 points per
hour. Seemed like it might provide opportunities for an event trigger, or
perhaps affect combat in some way. I will be working on the Temple event
next.
9/9/99:
Whew! Finally had time to finish the vault event. While mucking around
with the code that builds and displays item/treasure lists on the game
screen I cleaned up several things. Since I work on UAF in spurts, some
code was written more than a year ago. Sometimes when I go back to use old
code for something else I start to redesign or clean it up. Next I will
work on the Tavern and Tavern Tales events.
8/30/99:
While revamping the item join/divide code I got sidetracked once again
and have spent two days reorganizing the source code into a more logical
folder hierarchy. Ok, now I'm really going to finish that vault event!
8/26/99:
The new name is UA Forever (UAF). Kind of silly but it works for now.
8/26/99:
Well, as usual, working on one thing leads me down other paths. The
Vault event menus provide the item join/divide options. I have this coded
for the character items, but it was not generic enough to work with the
Vault items so I am doing some redesign that allows me to use the same
code for both. The Vault itself is added to the editor and game engine,
just need to add in the new menu options. Also, I noticed today that the
name UA2000 is used by a commercial product already. So I will be changing
the name of my own efforts to something else later today.
8/22/99:
Finished all 3 question events. Needed to add some functionality to the
event processor to allow the question event to re-execute after a chained
event was terminated (per the 'Return to Question' option). Also added
code to terminate event processing if the party dies in middle of an event
chain. My plan is to work on the Vault event next.
8/19/99:
The Question List and Button events are so similar to the processing
for the Question Yes/No event that I am working on all 3 at the same time.
I have got the editor dialogs finished for each, now working on the game
engine.
8/15/99:
Finished the encounter and pass time events. Beginning work on the
question yes/no event.
8/07/99:
I am working on the encounter event, which means I also have to add
code that displays the correct sprite pic as the monster gets closer to
the player.
7/20/99:
Welcome! This project of mine has been under construction for the last
four years, off and on. It is a part time effort for me that I enjoy
working on in my (minimal) spare time. When MSN offered it's members free
home pages, I decided to make my efforts public and learn about web page
development along the way. Check out the Features and
Screenshots pages.
View More News:
2001
2000 1999
Back Home
|