Finger info for phaethon@icculus.org...



Raw source and immediate archive at http://www.icculus.org/~phaethon/plan/

Entries are currently sorted in: Newest First

Syntax (time and date in UTC, my local timezone is PST/PDT):
[YEAR].[MONTH].[DAY] <space> ~[APPROX. HOUR] <space> <space> [SUMMARY]
<empty line>
[CONTENT]
<empty line>
<empty line>



2002.09.17 ~19 Q3 mod commentary

http://www.linux.ucla.edu/~phaethon/q3mc/outline1.html

A few weeks ago, I decided to write out a "execution trace" description of
a Q3 mod, using baseq3 (the default Q3A game) as the example.

Next I plan on describing the "unchangeable" structs in q_shared.h, then
going on describing the gentity_t and gclient_t structs, then maybe bg_*
structs, maybe pmove, perhaps some cgame structs.

Other potential forks in efforts include commenting on functions themselves
or doing an outline, of this style, for cgame and/or ui.


2002.09.16 ~05 Road trip to Mexico

Family trip to Mexico (Baja California) over Labor Day weekend. Note for
future: if planning a trip for Labor Day weekend to anywhere, make
reservations at least a week in advance. More is better. Even then, the
hotels in Mexico aren't that great. First hint of a bad night: the
beddings reek of the insect repellent in which it's been doused. Just
about the only thing in favor of a road trip passing through Tijuana,
Rosarito, and Ensenada is cheap food. Dual-currency economy (peso &
dollar) is kinda nice too... saves a trip to the currency exchange.


2002.08.26 ~06 Amber(?) Alert System on MSN

There seems to be a recent spate of child kidnappings. Or at least a
recent surge in high-profile kidnappings reported by the news radio station
I listen to on commutes. One such case involved a girl named Amber,
resulting in a child-abduction system dubbed Amber (or is it AMBER?). The
basic idea is to that when an abducted child is feared to be in great
danger *and* there is some publicly identifiable property/attribute of the
abductor and abductee, law enforcement gets the word out to the public
(via TV stations, radio stations, freeway signs(!), electronic marquees,
etc.). Basically applying the Open Source/Free Software principle of
having many many eyes identify and solve problems.

I saw the system in effect one morning commute, on a freeway sign
(dot-matrix LEDs, usually used to indicate serious traffic jams). While
hearing it on the car radio. The vehicle description (some kind of white
SUV, iirc), license number, and last known location at the time of
kidnapping that morning were the identifying marks. The kidnapped children
(two, I think) were recovered later the same day, before dusk (somewhere in
the high deserts?).

Anyway, cool idea.

Currently, I think the alert system is merely county-wide in Los Angeles.
Maybe it's extended state-wide, I'm not sure. There is momentum to propel
the system nation-wide. One company is drawing up plans take the alert
system to the net. Some kind of net. Just MSN, and I think in conjunction
with Microsoft. Alerts going out to MSN subscribers only. Or something.
Instant message and SMS messages. This is from where my concerns stem.

Now, given Microsoft's recent and not-so-recent track record on security
and virus propagation (IIS, MSOE, MSIE, etc.), in the first year of this
MSN presence I expect no less than two "very serious" security breaches,
almost-double-digit instances of "practical jokes" or "vengeance" alerts
(say some disgruntled black hats getting back at their neighbors), and a
handful of false alerts not attributable to oversensitive law enforcement
agencies.

This isn't a prediction. Just my own sadistic pessimistic expectations. I
really do hope such a system won't mess up nor be abused, but I don't hold
any high expectations wherever Microsoft sticks in its hands.


2002.08.11 ~04 Intermedial charged weaponry

Finally came up with a hack to get charged weaponry to work. It isn't as clean
as I would like, but it works for now. Large pieces of the source tree
suffered manglings as I worked towards charged weaponry. Some data structures
had to be rearranged, and I don't see as much potential flexibility as I would
like to see. In any case, charged railgun works. I should get around to
packaging this up now into another release.


2002.07.17 ~05 Charged railgun

Q2WF sniper rifle was a charge weapon, in that the weapon "charges up"
while the fire button is held, then releases its load upon release. The
damage delivered is proportional to the time spent "charging up".

I'm trying to find a clean way to integrate a means to allow such a charge
time to influence the effects of a weapon and its projectiles. Thus far,
there doesn't seem to be any particularly clean way. Large parts of the
infrastructure may need to be replaced to accomodate charging in a clean
manner.

The current problem is that, for both ballistic and hitscan projectiles,
the projectile has, within a single function, two distinct stages, an
initialization of properties, then an actual instantiation of the
projectile based on those properites. I initially attempted to squeeze a
"modify properties here" bit of code between the two stages, but I can't
see a way of accessing the appropriate re-modding code cleanly.

Ideas are currently to use a global (tres ugly), modifying all relevant
firing code to take a callback parameter (some overhaul), split the
initialization and instantiation into two distinct functions that have a
guaranteed sequence such that remodding code can just "pop up" normally in
between (lots of work, especially ensuring sequence). Ponderances.


2002.07.09 ~06 NaN Blender blue sky

http://www.blender3d.com/

On July 5th, Ton Roosendaal (head dude of some kind of Blender... or of
NaN... or something) announced having reached an agreement with NaN
shareholders to open up the sources to Blender. The majority stakeholder
apparently is a VC firm called NetVenture. From what little tidbits and
snippets I gathered since NaN tanked back in March, this VC firms seems the
type to be bass-ackwards enough to "not get" the GPL. I *seriously* doubt
Blender will be licensed under GPL.

Well, that's the first of the blue sky: Blender under GPL.

- File format

Apparently the native file format used by Blender is a real mess. Hearsay
has it that the file is "a glorified memory dump". Regardless, I'd like to
steer away from binary format.

Other folks pitching plans for Blender's future are rooting for XML.
Personally, I'd rather use S-Expressions. S-expression is simpler than
XML, it's less verbose, it already has a "natural form" for lists and
aggregates, and it looks prettier than XML. Oh, and it's a small step to
throwing in a full Lisp system :)

I should probably draw up a proof-of-concept s-expr export in the current
incarnations of Blender.

- Python & Armatures

Armature bones are currently inaccessible via Python (Blender's extensible
language). This means automated/procedural animation of armatures is
impossible, and must be all hand-animated. I feel this needs to be
resolved first.

- Blender210 module, model import

There's a minor bug in Blender210.Mesh.addFace() which bit me during my
development of a Blender MD3 import script.

The method has six arguments: four vertices (index number into list of
vertices defined earlier with addVertex()), boolean for smooth shading, and
index number into the list of materials.

Whether a quad or a tri is created is determined by the fourth argument.
If it's 0, the method forms a triangle, otherwise a quad. The problem is
that I often needed to make quads where the fourth argument is vertex 0.
This leads to an erroneous creation of a triangle when I really wanted a
quad. Although I could reverse the order of vertices, that would change
the face normal to an incorrect value. The workaround in my import script
creates a meaningless "throwaway" vertex 0 before the actual vertices, sets
up the polys, then deletes vertex 0 afterwards.

This bug needs to be worked out. I came up with three potential solutions:
 * Use "-1" to mean no vertex. This is ugly.
 * Use separate methods for quads and tris. This gets messy.
 * Based quad-vs-tri on number of arguments. 5 for tri, 6 for quad. This
  is potentially confusing.

- Completing the menus

The popup (SPC) menu could really use having all possible Blender actions
thrown into it, possibly also allowing reconfiguring of hotkeys GIMP-style.

- Intersect sucks

The closest thing that Blender has to a boolean operation is its
"Intersect". The results are often ugly and splintered, especially when
both objects are complex. I have no idea if I'm up to snuff to improve
this, but it's a wishlist item nonetheless.

- Ogg Vorbis

I throw Ogg Vorbis at everything.

- Blender Game Engine

Neat-o feature, but sort of distracts from Blender's modelling/animation
roots. On top of that, activating UV-texturing starts doing weird things
to shaded mode. This isn't reversible until Blender is restarted. Even
without this annoyance, I'd prefer the game stuff to be clearly separated
from Blender, either plugin-ish or moved into a separate project. The
current Blender python modules already split the gaming stuff from the
modelling stuff, anyway.


2002.07.04 ~09 Q3VM bit vectors

A few days ago I implemented a form of generic (compressed) bit vector.
It uses an array of int, and packs 31 bits per int (for reasons of
overflow and sign). Bits are accessed by bitshift, in sizes from 1
to 31 bits (values passed around via int).

The initial purpose for the bit vector was for my mod implementation of
multiple-pierce hitscan (viz. railgun). The original (unmodded) railgun
uses a three-element array of ints, to hold the entity number for each
object pierced (up to three). My rationale was that such limit is
arbitrary, and decided to expand it as much as possible. The most obvious
extension is to expand this array to 1024 elements of int (maximum number
of entities possible). That leads to 4*1024 = 4KB memory use, and most of
it unused since there aren't many weapons that will be infinitely piercing.
Just to keep track of a yes/no state.

This led to wishing for an array of bits. Thus the implementation. At 31
bits to the word, and 1024 bits, this resulted in 34 bytes to record
entities pierced. Major win.

A general bit vector of arbitrary length can also lay the foundation for
bignums, integers of arbitrary size.


Life: No Life found.

Project:
1. Project FI, Quake 3 mod (http://www.icculus.org/fi/)
 a. provide an extensible environment for a Q3 mod. The intended notion is that of "mutators" in Unreal Tournament.
 b. FI:WFC, a more faithful reproduction of Q2WF for Q3 than WFA.

2. QuakeScheme
 * Extensible language for Project FI.
 * Builds on TinySCHEME (http://tinyscheme.sourceforge.net/)
 * Deal with idiosyncrasies of Q3VM not handled by most other Scheme impls.

3. QS GUI/widget set
 a. Need to research advanced OO and GUI of Scheme derivatives and Common Lisp.
 b. Replication/extension of boxy widgets in Q3TA (Q3 PR 1.27+).
 c. Pie menus -- just to annoy theoddone33.

4. PalmOS stuff
 a. PiNGer (gfx viewer)
  * generalize interface to a "any-gfx" viewer (libpnm?)
 b. ZBoxZ (file manager)
  * beef up its appness: menus, dialogs, pen actions


When this .plan was written: 2002-09-17 15:23:56
.plan archives for this user are here (RSS here).
Powered by IcculusFinger v2.1.27
Stick it in the camel and go.