Vision for Demo 2

6 views
Skip to first unread message

Adam

unread,
Apr 2, 2009, 12:39:04 AM4/2/09
to xser...@googlegroups.com
Yup, it's that time already!

I have a vision for what Demo 2 should look like, but I want to run
this by everybody to see if we're on the same track. Here's the
improvements that I envision for Demo 2:

- All weapons working and associated with correct ships
- All ships working and associated with correct races
- Color tinter working for new graphics
- Planet capability and functionality
- Sidebar functionality
- Smooth zooms in and out
- Possibly AI?

If there's anything that any of you think should be an essential part
of the second demo, speak now or forever hold your peace!

Adam

Andrew Moscoe

unread,
Apr 2, 2009, 9:19:28 PM4/2/09
to Xsera Development
I'll try to have the blowfish stuff finished by then and hvae RSA
started.

I'd suggest keeping AI out of it for now, or at least keep it simple
(such as flying around in circles via fly-stop-turn90-repeat). A
functional AI can wait until some other stuff is implemented.
If you can explain how to associate ships with races and weapons with
ships (I'm assuming its in the XML files or somesuch, not in the lua),
I can help with that.

Adam

unread,
Apr 2, 2009, 9:38:02 PM4/2/09
to xser...@googlegroups.com

On Apr 2, 2009, at 6:19 PM, Andrew Moscoe wrote:

>
> I'll try to have the blowfish stuff finished by then and hvae RSA
> started.
>
Ok, well do you think we should add multiplayer (maybe something as
simple as 2 player over LAN) as a goal for demo 2, or should that wait
for later?

> I'd suggest keeping AI out of it for now, or at least keep it simple
> (such as flying around in circles via fly-stop-turn90-repeat). A
> functional AI can wait until some other stuff is implemented.
> If you can explain how to associate ships with races and weapons with
> ships (I'm assuming its in the XML files or somesuch, not in the lua),
> I can help with that.

AI won't be fully functional (that would take me too long), but I'm
thinking like a basic system of how the enemy chooses to build, and
when they send units to attack.

Also, ship association should be something that Sfiera's extraction
should be able to automatically handle. If not, I'll let you know.

Thanks,

Adam

Andrew Moscoe

unread,
Apr 2, 2009, 9:54:13 PM4/2/09
to Xsera Development
Whatever you want to build for the AI is find with me. Don't wait for
multiplayer for Demo 2. I'm still haveing trouble finishing the
encryption stuff, let alone even touching lua multiplayer. As soon as
AI ships are fully implemented (even with a "dead" AI that does
absolutely nothing), I can use that as a base to start building the
multiplayer stuff. A network player ent is just an AI ship that looks
to the network for instructions, not the AI.


Thanks,
Andrew

adam_0

unread,
Apr 4, 2009, 5:16:58 PM4/4/09
to Xsera Development
Updated list:

- All weapons working and associated with correct ships (waiting for
Sfiera on this)
- All ships working and associated with correct races (waiting for
Sfiera on this)
- Color tinter working for new graphics
- Planet capability and functionality (Adam)
- Need to figure out how to load planets (?)
- Sidebar functionality (right bar almost fully implemented, left
partially)
- Need text coloring (Alistair)
- Need text left-justify (Alistair / Adam)
- Smooth zooms in and out (Alistair & Adam)
- Basic AI (planetary usage, ship management)

Adam

Andrew Moscoe

unread,
Apr 9, 2009, 11:26:08 AM4/9/09
to Xsera Development
I have this thursday, friday, saturday, sunday, and monday off school
with minimal homework, and a glut of free time. Other than RSA
encryption, what should I work on next?

@adam: I need to meet with you on IRC sometime to get a quick rundown
of what all the lua stuff does so I can start figuring out how to
implement multiplayer.

Adam

unread,
Apr 9, 2009, 9:23:50 PM4/9/09
to xser...@googlegroups.com
On Apr 9, 2009, at 8:26 AM, Andrew Moscoe wrote:

> I have this thursday, friday, saturday, sunday, and monday off school
> with minimal homework, and a glut of free time. Other than RSA
> encryption, what should I work on next?
>
> @adam: I need to meet with you on IRC sometime to get a quick rundown
> of what all the lua stuff does so I can start figuring out how to
> implement multiplayer.

Alright, I'll try to be on as much as possible in the next few days,
but the time could vary from (all times PDT) 3:45 to 6:30 PM. I might
also be on from roughly 7:30 to 8:30 AM tomorrow morning, but that's
not for sure.

In the meanwhile, if you need to learn Lua (I don't know if you know
it or not), check out this site:
http://lua-users.org/wiki/TutorialDirectory

I learned Lua in two days (having learned C++ prior to this), so I
don't think it should be much trouble do you. Pay special attention to
tables, they're the basic data structure and are essential to Xsera.

Also, regarding the video - I'd like to have it posted to YouTube, and
I already have an account set up. If you're going to post it on
YouTube, that's great, I just thought that posting it on YouTube would
be the way to go.

Andrew Moscoe

unread,
Apr 15, 2009, 4:59:01 PM4/15/09
to Xsera Development
I have a youtube account too, but I can't make it until I get
Alastair's voice track.

Adam

unread,
Apr 15, 2009, 5:23:42 PM4/15/09
to xser...@googlegroups.com
Ok, sounds great. Just let me know when you get it figured out. ;)

Adam

Andrew Moscoe

unread,
Apr 18, 2009, 1:39:58 PM4/18/09
to Xsera Development
I've realized my sister has a cheap Logitech USB mic that she got with
a karaoke wii game, and it'll work with my comp. I'll record the audio
to that, then do the video, and if you guys approve of it then we can
put it up.

-LANS

adam_0

unread,
May 20, 2009, 10:06:42 PM5/20/09
to Xsera Development
For a more realistic second demo, here's the goals:

- All ships working and associated with correct races (waiting for
Sfiera on this)
- Planet capability and functionality (Adam)
- Sidebar functionality (right bar fully implemented, left mostly)
- Need text coloring (Alistair)
- Need text left-justify (Alistair / Adam)
- Smooth zooms in and out (Alistair & Adam)

I'm thinking this actually shouldn't take that long. I was going to
have all planets and some AI working, but I think that's looking too
far in the future, and I'd like to have demos released on a shorter
basis than it's taken to get the first one out. The sidebar is pretty
close to being done, thankfully.

Over and out!

Adam

Chris Pickel

unread,
May 21, 2009, 12:33:46 AM5/21/09
to xser...@googlegroups.com
On Wed, May 20, 2009 at 22:06, adam_0 <adam....@gmail.com> wrote:
> For a more realistic second demo, here's the goals:
>
> - All ships working and associated with correct races (waiting for
> Sfiera on this)

I'm not sure what you're waiting on. Do you need the action data too?
I can provide the "raw" data, about 80% documented, which will be
fine as long as you're not dealing with corner cases.

I would suggest a revision of this to "All 'Rock and a Rock' ships"*.
These are the ones which are by and large the most interesting, and
they don't expose those corner cases as would e.g. the Ishiman Tractor
Tug. There are still some fancy things, like transports being keyed
to planets and assault transports to stations.

* The full manifest for this would be all pairings of the following
ships and races. Numbers are from memory, may not be correct.

100 Fighter
200 Cruiser
300 Gunship
450 Heavy Destroyer
500 Carrier
800 Transport
860 Assault Transport

100 Ishiman
200 Cantharan
300 Gaitori
600 Salrilian
700 Audemedon
900 Human

Adam

unread,
May 21, 2009, 9:05:40 AM5/21/09
to xser...@googlegroups.com
I've gone through the data, and what's there looks very nice.

I'm wondering about some of the symbols that are still in the text
(for eg, from Text/5700...)

"To proceed, you need to learn to use the ship’s computer,"

I'm pretty sure that ",Äô" is a single quotation mark, just wanting to
make sure.

Also, I'm not exactly sure what you mean by "All 'Rock and a Rock'
ships". Are you suggesting that we associate classes of ships together
using numbers, as far as AI and the like go?

As far as the data, I believe we need the action data as well,
although I don't even know what that would look like in .xml.

Thank you for your work on Xsera,

Adam

Chris Pickel

unread,
May 21, 2009, 10:19:23 AM5/21/09
to xser...@googlegroups.com
On Thu, May 21, 2009 at 09:05, Adam <adam....@gmail.com> wrote:
> I've gone through the data, and what's there looks very nice.
>
> I'm wondering about some of the symbols that are still in the text
> (for eg, from Text/5700...)
>
>        "To proceed, you need to learn to use the ship‚Äôs computer,"
>
> I'm pretty sure that ",Äô" is a single quotation mark, just wanting to
> make sure.

I've saved all derived text in UTF-8. That's what you would see if
you were interpreting it as MacRoman.

If you're viewing the file in your browser [1] you can ensure it's
displaying UTF-8 by choosing "View -> Encoding -> UTF-8", or better
yet, set it as the default in "Preferences -> Appearance" (I'm
assuming Safari here), since these days people should be saving their
files in UTF-8 anyway.

If you're viewing it in TextEdit, the "Open" dialog has a drop-down
box for plain text encoding, for which you should select UTF-8.

[1] http://git.sfiera.net/ares-data/tree/derived/Text/5700%20Newtorial%201.1.1%20Message%20Menu.txt

> Also, I'm not exactly sure what you mean by "All 'Rock and a Rock'
> ships". Are you suggesting that we associate classes of ships together
> using numbers, as far as AI and the like go?

I'm just suggesting that Demo 2 include only ships that are present in
that netmap. That's enough to implement many levels right off the
bat, including "Space Race, The Musical!" and of course "Rock and a
Rock" itself. Either of those would make a pretty cool demo 3.

> As far as the data, I believe we need the action data as well,
> although I don't even know what that would look like in .xml.

Alright, I'll try to put that up tonight. I got the raw data
converted to XML a while ago, but I've not yet pushed it because I
hoped to clean up the corner cases.

Chris Pickel

unread,
May 21, 2009, 8:37:44 PM5/21/09
to xser...@googlegroups.com
On Thu, May 21, 2009 at 10:19, Chris Pickel <sfi...@gmail.com> wrote:
> Alright, I'll try to put that up tonight.  I got the raw data
> converted to XML a while ago, but I've not yet pushed it because I
> hoped to clean up the corner cases.

http://git.sfiera.net/ares-data/tree/derived/Actions

As I alluded to, the data is not 100% fit for consumption yet, but a
large subset is. Once the data is complete, I should write up real
documentation, but here's an overview.

Say we're interested in the Ishiman Heavy Cruiser [1]. The HVC's
"special" weapon is Object 74, also known as "C Missiles (5)" [2].
This is a device, i.e., an object without physical presence.

Devices have one action defined on them, triggered by "activate";
"activate" happens when the device's owner fires the weapon [3], and
default to having a subject equal to their owner and a direct object
equal to the target (like grammar--think: "adam_0 shoots Sfiera").
This weapon's activate action sequence starts at Action 110, and
there's only one action.

Action 110 [4] is a <create-object-action/>. "Create object" actions
create objects at positions relative to their direct object, with a
few other options. It's important to note that this one is reflexive,
i.e., uses its subject in place of its direct object (think: "adam_0
shoots himself"). So the missile is created at the location of its
owner, not at the location of its target. It also uses direction
relative to its direct object (so you can aim it) and velocity
relative to its direct object (so you can hyperbomb with it [5]).

Also, the object that it creates is Object 72, or "C Missile" [6]. C
Missile defines three actions. We'll look at each, in the order in
which we might expect them to happen.

First is the "create" action, which fires upon creation of the object.
This specifies Action 111 [7], a <play-sound-action/>. "Play sound"
actions play a sound, which if not "absolute", are played at the
location of their direct object. This action is also reflexive,
meaning it'll be relative to the location of the subject, though I'm
pretty sure "create" actions are always reflexive, even if the flag
isn't specified.

Next is the "collide" action, which triggers upon collisions, with
this object, the collider, as the subject, and the collidee as the
direct object. Because the action has a count of 2, the missile's
"collide" action specifies Actions 29 [8] and 30 [9] in sequence.

First up is another <create-object-action/> which makes an explosion
at the missile's location, and second is a <die-action/>, which is
reflexive. The three types of "Die" action are 0 (none), 1 (expire),
and 2 (destroy). All three cause the removal of the direct object,
and the latter two may trigger additional actions.

(Note: damage is caused upon collisions based on the missile's
"damage" attribute, not by an action. There's a sound that plays on a
hit too, but it's part of the explosion's "create" action, not part of
the missile's "collide" action.)

Finally, if the missile is shot down, we'll trigger the "destroy"
action. The two actions specified create an explosion, then "die
expire" the missile. The "die expire" here is not strictly necessary,
as triggering "destroy" implies that the object will be removed, but
was probably specified so that some common action could potentially be
taken for either of the two ways for missiles to be destroyed (getting
shot down and hitting a target).

By the way, the HVC has its own destroy action, which also creates an
explosion. This one isn't velocity-relative, however, so if a heavy
cruiser bites it while in hyperspace, the explosion will be fixed in
place, and won't keep traveling along its trajectory.

I think this email is long enough, so I'll leave you to chew on it
before I start bringing up more advanced topics like the periodic
actions or (shudder) "alter base type". Many other action types you
can probably guess on your own, though, like <alter-cloak-action/> and
<declare-winner-action/>.

[1] http://git.sfiera.net/ares-data/tree/derived/Objects/061%20Heavy%20Cruiser.xml
[2] http://git.sfiera.net/ares-data/tree/derived/Objects/074%20C%20Missiles(5).xml
[3] There's another, rarer reason for activation which we'll ignore for now.
[4] http://git.sfiera.net/ares-data/tree/derived/Actions/110.xml
[5] Lousy f***ing hyperbombers.
[6] http://git.sfiera.net/ares-data/tree/derived/Objects/072%20C%20Missile.xml
[7] http://git.sfiera.net/ares-data/tree/derived/Actions/111.xml
[8] http://git.sfiera.net/ares-data/tree/derived/Actions/029.xml
[9] http://git.sfiera.net/ares-data/tree/derived/Actions/030.xml

Chris Pickel

unread,
May 21, 2009, 10:46:42 PM5/21/09
to xser...@googlegroups.com
Maybe you haven't digested this yet, but there are two things I want to add:

At present, the most complete source for information about the Ares
data types is the Hera reference manual. Have I mentioned it before?
It's not stellar, but it does have a lot of information. It comes
with Ares 1.2.0 and later, but I've put it online [1] in case that's
too inconvenient.

The other thing is that an examination of the source code suggests
that my interpretation of the "Die" action was slightly off. It would
actually appear that type 1 (expire) and 2 (destroy) both affect the
*subject* rather than the direct object. The Hera manual makes a
claim to the contrary, but I can't figure out a way that the source
could be lying about it.

I am really unhappy about this right now.

[1] http://hera.sfiera.net/

adam_0

unread,
May 22, 2009, 12:11:51 AM5/22/09
to Xsera Development
Wow, that's a lot of stuff. I've got one more final tomorrow, and then
I'm done for-evar with high school. Heck yes.

Anyways, the reason that I mention that is that I'm not going to be
able to look at all of this action stuff right now, but I'm going to
give it a full pouring-over as soon as my brain regains feeling.

I took a quick look at the "expire" and "destroy" problem, and I'm
wondering if there's a way you could somehow figure this out from a
Hera plug. If not, is there a way we could test it in a Hera plug,
i.e., have somebody with an OS 9 machine and a particular plug run
those two actions and see what happens?

Thanks for the awesome work.

Adam

Chris Pickel

unread,
May 22, 2009, 12:23:36 AM5/22/09
to xser...@googlegroups.com
On Fri, May 22, 2009 at 00:11, adam_0 <adam....@gmail.com> wrote:
> I took a quick look at the "expire" and "destroy" problem, and I'm
> wondering if there's a way you could somehow figure this out from a
> Hera plug. If not, is there a way we could test it in a Hera plug,
> i.e., have somebody with an OS 9 machine and a particular plug run
> those two actions and see what happens?

Here's an example of why it needs to be different for those two:

The Energy Blob [1] has a collide action which includes a
<die-action/> [2]. That die action is a non-reflexive "die expire",
which, if it applied to the direct object, would mean that picking up
energy blobs would cause your ship to disappear.

Anyway, like I said, the source supports this interpretation:

case kDie:
// WriteDebugLine((char *)"\pDIE");
// WriteDebugLong( anObject->id);

// if ( anObject->attributes & kIsBeam)
// anObject->frame.beam.killMe = TRUE;
switch ( action->argument.killObject.dieType)
{
case kDieExpire:
if ( sObject != nil)
{
// if the object is occupied by a
human, eject him since he can't die
if (( sObject->attributes &
(kIsPlayerShip | kRemoteOrHuman)) &&

(!(sObject->baseType->destroyActionNum & kDestroyActionDontDieFlag)))
{
CreateFloatingBodyOfPlayer( sObject);
}

if ( sObject->baseType->expireAction >= 0)
{
// ExecuteObjectActions(
// sObject->baseType->expireAction,
// sObject->baseType->expireActionNum
// & kDestroyActionNotMask,
// sObject, dObject, offset, allowDelay);
}
sObject->active = kObjectToBeFreed;
}
break;

case kDieDestroy:
if ( sObject != nil)
{
// if the object is occupied by a
human, eject him since he can't die
if (( sObject->attributes &
(kIsPlayerShip | kRemoteOrHuman)) &&

(!(sObject->baseType->destroyActionNum & kDestroyActionDontDieFlag)))
{
CreateFloatingBodyOfPlayer( sObject);
}

DestroyObject( sObject);
}
break;

default:
// if the object is occupied by a human,
eject him since he can't die
if (( anObject->attributes &
(kIsPlayerShip | kRemoteOrHuman)) &&

(!(anObject->baseType->destroyActionNum & kDestroyActionDontDieFlag)))
{
CreateFloatingBodyOfPlayer( anObject);
}
anObject->active = kObjectToBeFreed;
break;
}
break;

[1] http://git.sfiera.net/ares-data/tree/derived/Objects/028%20Energy.xml
[2] http://git.sfiera.net/ares-data/tree/derived/Actions/051.xml

adam_0

unread,
May 25, 2009, 2:48:53 PM5/25/09
to Xsera Development
Updated goals:

- All ships working and associated with correct races (working with
Sfiera on this)
- Planet capability and functionality (Adam)
- Mouse functionality? [1] (Adam & Alistair)
- Sidebar functionality (right bar fully implemented, left mostly)
- Need coloring in general [2] (Adam / Alistair)
- Need text left-justify and length measurement (Alistair / Adam
[3])
- Smooth zooms in and out (Alistair & Adam [4])

Achieved side-goals:
- In 1/16 camera mode, objects are displayed as symbols rather than
the objects themselves (although this is hard-coded right now. It will
be

[1] I realized that if the planets are going to work, I either have to
implement the ability for the ship to point at an object and select
it, or click on it with the mouse to select it. I feel that the latter
option is more easily attainable, so that will be our first method of
selection, hopefully. I put a question mark after it because we could
just permanently put the planet in the Control / Target position to
work around this, so it's not completely necessary.
[2] The coloring needs to work so that it's one argument that's a
table = { r = 0, g =0, b = 0, a = 0 } instead of four arguments. I'm
going to post a question regarding this on gamedev.net, but if we're
going to discard LuaBind altogether, I don't see the point in doing
this.
[3] I may be able to do this, but I have yet to look at the code
controlling this.
[4] I think we need to work on this as a joint project, because I
think I could do it if given the correct guidance. Also, we've talked
about this in the past.

As an aside, I just spent a lot of time talking to Sfiera about the
data that he's extracted. I'm now beginning to see how everything's
going to fit together.

Anyways, that's the game plan for the second demo. Stuff's coming
together nicely.

Adam

adam_0

unread,
Jun 3, 2009, 9:00:02 PM6/3/09
to Xsera Development
Updated list:

- All ships working and associated with correct races (working with
Sfiera on this)
- Planet capability and functionality (Adam)
- Mouse functionality? (Adam & Alistair)
- Smooth zooms in and out (Alistair & Adam)

The panels are mostly there, good enough for now. Now that I think
about it, I'm going to add a message that pops up an error for about
10 seconds when selecting a part that has no code, that should be a
little challenge for me.

I'd like to see this put together in the next month, but I know that
Alistair has exams for the next week and a half, so we'll see how it
goes.

Adam

adam_0

unread,
Jun 8, 2009, 2:36:33 AM6/8/09
to Xsera Development
Just now I've completed something that I wasn't even thinking of
doing: a console. It's now implemented in mode and module formats, and
will display any problems you run into. It also accepts Lua commands
(pending Alistair making basic symbols, etc. work). I also learned
that Alistair has exams longer than I thought, so I'm unsure as to my
month goal, but I'll keep trying. If I can work at this rate, maybe it
can be done. We'll see.

In a few words: awesome progress being made.

Adam

adam_0

unread,
Jul 18, 2009, 9:03:53 PM7/18/09
to Xsera Development
Freshly Updated List:
- Smooth zooming in and out (Alistair & Adam)
- Mouse functionality (Alistair & Adam)
- Weapons working correctly again (Adam)
- Get TinyXML nesting to work (Alistair)
- Fix memory leak (Alistair)

Abandoned Objectives:
- All ships working and associated with correct races - this is just
too difficult to try and get done any time soon

As you can see, most of these items are fixes and not new feature
requests. As soon as Alistair can work with me on Xsera, I think we
can get this second demo done.

Adam

adam_0

unread,
Jul 30, 2009, 3:46:12 PM7/30/09
to Xsera Development
Just a quick update. I've gotten smooth zooming and weapons working,
all we really need to finish this demo is to fix that memory leak and
we can be on our way!

Adam
Reply all
Reply to author
Forward
0 new messages