Tutorial Quest Development

Thinking about improving the Artwork in Vega Strike, or making your own Mod? Submit your question and ideas in this forum.

Moderator: pyramid

pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Tutorial Quest Development

Post by pyramid »

If you check out the latest svn, and start from Atlantis in Crucible/Cephid_17 you will be greeted by Oswald from CSI, the Cephid Security Initiative who is offering you a participation in a small tutorial quest. To accept, you'll need to come to a complete stop and wait for further instructions.

I have written this small tutorial for two reasons:
* 1) I wanted to learn python scripting for VS, and
* 2) A tutorial has been requested by the players for a long time, and it seemed a nice isolated case to start with python.

It is actually still a minimalist version of what I am envisioning as a tutorial and basically offers:
* an explanation of the comm and basic hud elements
* a small navigation practice
* a short spec practice

Nothing spectacular, but a good starting point for collecting feedback, and further inputs and wishes.

You can break off the tutorial at any time, and if you save your game it will resume at the beginning of the last incomplete stage. Currently, once completed it is not repeatable, but will be in the future.

The face art in the comm animation is thanks to grumbel (please see his post on human face art). Some of his other contributions have already been implemented in other quests (hint: try the systems Sol/Regallis, Crucible/Elohim, Sol/Alpha_Centauri, Sol/Iris, in some cases around bases), others are in the queue.

The code for this mission (data/modules/quest_tutorial-py) is commented, and hopefully serves as an incentive to other contributors. Also the corresponding wiki pages have been re-organized and updated with little know-how. They are still work in progress. So please ask your questions.
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

WOW! This is wonderfu, Pyramid! You should move this post to a more popular forum, like features requests. It was high time!
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Post by pyramid »

Chuck, thanks for your feedback. Indeed, I'm wondering if those who were requesting the tutorial so much are now busy playing the new release. This forum seems to enjoy about as much popularity as future requests and since it's content that i want to discuss, it can as well stay here. By the forum description, this post would equally well fit into "Contributor Help & Internal How-Tos" ("Need help testing contributed art or code...")

On a side note, many times I just find the forum divisions confusing :oops:

EDIT: And thanks chuck for posting reference in the other two forums. Being a minimalist, I wouldn't have done that. 8)
Last edited by pyramid on Tue May 13, 2008 2:13 pm, edited 1 time in total.
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Post by ace123 »

I agree about forum divisions.

In my opinion we need to consolidate the forums-- Development, Artwork, Feature Requests, Help and Bug Reports

It's so unmanageable I can only navigate posts by means of the "Posts since last visit" button.
Deus Siddis
Elite
Elite
Posts: 1363
Joined: Sat Aug 04, 2007 3:42 pm

Post by Deus Siddis »

ace123 wrote:I agree about forum divisions.
In my opinion we need to consolidate the forums-- Development, Artwork, Feature Requests, Help and Bug Reports
It's so unmanageable I can only navigate posts by means of the "Posts since last visit" button.
I double agree. It is difficult to decide which of the 3 content forums a post concerning content should go into.
Phlogios
Confed Special Operative
Confed Special Operative
Posts: 298
Joined: Sun Jul 30, 2006 1:38 pm
Location: Sweden
Contact:

Post by Phlogios »

ace123 wrote:I agree about forum divisions.

In my opinion we need to consolidate the forums-- Development, Artwork, Feature Requests, Help and Bug Reports

It's so unmanageable I can only navigate posts by means of the "Posts since last visit" button.
Development, Content, Feature Requests, Help and Bug Reports.

We need discussions for the rest of the data set too.
"Enjoy the Choice" - A very wise man from Ottawa.
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

I'd say one should focus one's attention on the more general forum *categories*, first. Open the main forums page on a separate window, for reference, and let's talk: (right-click and Open in New Window)
http://vegastrike.sourceforge.net/forums/


IMO, a better system of categories would go like...
  • General Info / Announcements
  • User help, strategy, bug reporting
  • Feature requests and general feedback
  • Content development
  • The Future and Planning
  • Vegastrike Engine: Programming, Modding, etc.
  • Administration, website, off-topic spam and spam-control
...each category having multiple forums in it, of course; --perhaps including "other mods" forums, but maybe not.. see below...


General Info / Announcements is needed because there are too many subcategories of info and announcements. This very thread, for example, could have been posted to a "New game features" forum inside that first category. Announcing a restructuring of the forums could go there, as well... ;-)

Those 2 forums under "Game-play: Tactics, Tales, and Strategies" could be split to "User help, strategy, bug reporting", for the first; and "Feature requests and general feedback" for the second.

Feature requests need a general category because that forum is the busiest of all forums, and the requests are wide-ranging, from MMORPG's to atmospheric flight, to story-lines, to economics, damage, engine feature requests, release inquiries... So it could use dedicated forums for such feature request categories.

Content development, could have 3D Ship models, 3D Base models, other 3D models, 3D model texturing, 2D Base Backgrounds, Space Backgrounds, Talking Heads and characters, Plots and Stories, Speech, Music and many such forums; each of those forums having sticky threads for guidelines, as well as for to-do lists, progress tracking and whatnot.

And so on.


The way it is right now, first category is sort of ok; second not so justified; but the third major category is "Vega Strike" [sic]... What does that mean? The whole website IS about "Vegastrike"; or is it not?
"Canonical Vegastrike" could be split into stickies in the Contents forums.
"Mods for Vegastrike" [sic], see below...
"Guest-Hosted External Forums" doesn't seem to me to BE a "category"; --purpose inscrutable.
Translations could be a forum in the Content category.
And so on.


R.E. Mods: Having a Mods category where each mod gets a single forum may not be sufficient for an active mod; and too much for an inactive one. On the other hand, mods could be encouraged to get their own forums. On the other hand, I think Vegastrike the mod, and Vegastrike the engine, need to be better differentiated in the forum layout.
bgaskey
Elite Venturer
Elite Venturer
Posts: 718
Joined: Wed Mar 07, 2007 9:05 pm
Location: Rimward of Eden

Post by bgaskey »

Sorry to get back on topic, but I tried out the tutorial mission (finally) and it worked well (although maybe too much emphasis on the comm). I'm sure it will help many newcomers out.
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Post by loki1950 »

Of course it's comm intense that's the delivery system :wink:

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Post by pyramid »

The preliminary last version of the tutorial has been put into svn. You players have asked for it and here it is. Given the tremendous feedback, I will for now terminate further development of this tutorial quest. Hope you have fun with it as it is.
Hystrixx
Insys Pilot
Insys Pilot
Posts: 2
Joined: Thu May 29, 2008 4:15 am

Post by Hystrixx »

That's a great idea, I'm starting to learn to play and it would help a lot to have some king of live tutorial.
Is there a way to put play your tutorial using Vega Strike 0.5.0?
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Post by ace123 »

I do not believe the engine has changed.

However, the python modules folder has been reorganized a bit during the making of a tutorial--modules have gotten a bit disordered in the past few years.

Anyway I recommend you get the modules folder from Subversion ( it should be no more than a 5 MB download if you just checkout https://vegastrike.svn.sourceforge.net/ ... ta/modules )

Packaging it up might be a little difficult, and I can't even guarantee that it will work in 0.5.0

If you are interested in the latest and greatest features of VS it might just be easier to grab the whole thing from Subversion, but picking and choosing works too.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

The tutorial is great and all, but reading the messages is hard. They go by too fast (I got curious and tried it out ;) ).
Also, the messages only fly by and the instructor doesn't wait for you to carry out your order. Is it possible to make stops, to let the player play around? One way to do that is "do this and that. Send me a message by pressing the number 1 key when you're finished".

Another thing missing is speech. It's oh-so-important to have your instructor actually talk to you! (real newbies won't know the instructor is talking otherwise, they don't know messages appear where they do). In essence, speech grabs your attention.

Would anyone volunteer to do some voice recordings? I can postprocess almost anything you throw at me, so don't worry too much about sound quality (but do try to get a minimum of course). If anyone's interested, please send me a PM and we'll coordinate.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Post by pyramid »

Thanks for feedback. The tutorial usually waits for you to complete his request (turn towards, target, face, accelerate, decelerate, ...) where it is possible. In python there is no way to check if player has actually sent a communication, so at this particular point oswald cannot wait. otherwise i would wonder if this is not working. maybe you are not staying stopped and quiet as he asks you to in the beginning of the tutorial.

There are two parts to messages going by too fast 1) You might not have the standard vega.config where message lines are set to 10 and scroll time to 30s so they are impossible to read fast enough. 2) The tutor speaks too fast without pauses, which might be an effect of me testing the stuff too much over and over again, this can be fixed.

You can always interrupt the tutorial, fly away, do your shopping, come back for more (after restarting/reloading game only). try it.

Yeah, speech support would be great. Hopefully one of the native speakers could volunteer as Oswald's voice act. :)

@Hystrixx
If you don't want to checkout the full svn, you can just checkout the modules as ace123 has indicated. Then you'll just need to copy all files from subfolders /ai /quests /missions to the modules folder. then it should work.
El Bobbo
Hunter
Hunter
Posts: 89
Joined: Thu Jul 20, 2006 10:51 pm
Location: Columbus, Ohio

a couple of bugs with Oswald

Post by El Bobbo »

First off, having a tutorial is a great idea, and overall it works really well.

One important glitch - if you kill Oswald, you can no longer land on planets. Oswald is part of the neutral faction, so if you kill him, all neutrals (including planets) will be mad at you. Oswald probably should not be neutral...

Second - the first time I tried it, I came to a stop as Oswald requested, and then Oswald ran right into me. Not fast enough to cause any damage, but new players would likely be alarmed and confused by all the banging noises. Maybe adjust the distance of his approach to be a little farther?

Finally - if you are using a joystick with throttle, I don't think you can complete the tutorial. Oswald requires you to reverse thrust, and as far as I know this is not currently possible if you are using a throttle. I'm not sure how many people would figure out how to use their throttle before completing the tutorial, so this may be irrelevant...
running (I finally got a new computer so I can play VS again!):
ubuntu linux 8.04
AMD Athlon XP 2 GHz
1 GB RAM
GeForce FX 5200
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Re: a couple of bugs with Oswald

Post by pyramid »

Thanks for testing the features and feedback. I'll definitely look into this issues.

1) I do remember that when I tried making Oswald anything else than neutral, he would not like the AI I was assigning him and start his own life. I'll check that again, if this was maybe related to some other issue. Oswald is really easy to kill. It was suggested by safemode to make him much harder to kill, which I'm strongly inclined to do.

2) Yeah, happens to me at times, especially when my ship has velocity <> 0 after launching. I'll try increasing the stopping distance from 500m to 1000m to allow more distance for Oswald to slow down and come to a stop before bumping into my ship.

3) When using joystick you'll probably not come around using the keyboard, too. The instructions clearly say that you need to decrease your speed to negative using the minus (-) key to reverse thrust and reach reverse/negative velocity.
El Bobbo
Hunter
Hunter
Posts: 89
Joined: Thu Jul 20, 2006 10:51 pm
Location: Columbus, Ohio

Post by El Bobbo »

Making Oswald harder (or impossible?) to kill would definitely solve (1). Hopefully most people won't try to kill him anyway - I just felt it needed to be tried in the name of science...

as for (3), what I mean to say is even using the keyboard minus key, I can't decelerate to -20 m/s if I have the throttle enabled. With the throttle at the zero position, it keeps setting speed to zero, even if I am pressing the minus key.

If I were you I wouldn't worry about this - its an issue with how joystick throttles are handled (possibly in SDL and not even a vegastrike issue). You should be able to override the throttle with the keyboard, but right now you can't, so I would have to disable the throttle to complete the tutorial. Also, *sometimes* I can actually just get to -20 m/s, it depends perhaps on my joystick configuration that day...
running (I finally got a new computer so I can play VS again!):
ubuntu linux 8.04
AMD Athlon XP 2 GHz
1 GB RAM
GeForce FX 5200
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Post by pyramid »

El Bobbo wrote:it depends perhaps on my joystick configuration that day...
:lol: Yeah, computers are strange animals indeed.
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Post by pyramid »

Improvements of the tutorial were committed:
1) Oswald got a new ship, the Progeny to be less destructible
2) The stopping distance was increased to avoid crashing into your ship
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Re:

Post by pyramid »

Houston! I've got a problem.

For speech integration into the tutorial I am using the python function VS.playSound(file, position, velocity).
When flying with high velocity the sound gets lower and lower in volume until becoming completely inaudible even before the speech ends. This is kinda annoying, especially in the spec part of the tutorial, where parts of the speech cannot be heard at all. Changing of the parameter velocity doesn't change the behavior at all.

The way it is, the tutorial becomes quite ugly. So the question is: am I overlooking something in the way I am setting my parameters. If not, the option I see is changing the code, so that when the velocity vector is (0,0,0) the sound volume will not change at all.

Advice is wanted :?
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Re: Tutorial Quest Development

Post by ace123 »

Yikes! The only function to play sounds takes in a position and velocity. That means we need to add a new function from C++, which will make it incompatible with the older engine.
We want a playLocalSound or something that plays a sound without any care for your position or the velocity of the sound.

We can put it in a try/catch block, and if playLocalSound does not exist, it will use the old method.

Also, noticed a bug in bases/bartender.py

Code: Select all

        Base.TextBox(roomNumber, textBox, text, xCoord, yCoord, WidHeiMult, BGColor, BackAlp, FGColor)
        if (sound!=''):
            VS.playSound (sound)
That playSound will error out because it does not specify a position.

Out of the rest of the code, I see everything seems to use position (0,0,0) and velocity (0,0,0). Would make things easier if we just did not need to specify a position/velocity at all, and make it do the same thing that communications messages normally do when you hear somebody speak.
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Re: Tutorial Quest Development

Post by pyramid »

i've added "void playSoundCockpit(string soundName)" to universe_util.h/cppp, star_system_exports..h but still get an error:

Code: Select all

    VS.playSoundCockpit(self.speech[index])
AttributeError: 'module' object has no attribute 'playSoundCockpit'
terminate called after throwing an instance of 'boost::python::error_already_set'
Aborted
*EDIT*
Seems I have to change some more files. Preliminary testing yielded a running version. After some further tests, this should be concluded.
pyramid
Expert Mercenary
Expert Mercenary
Posts: 988
Joined: Thu Jun 15, 2006 1:02 am
Location: Somewhere in the vastness of space
Contact:

Re: Tutorial Quest Development

Post by pyramid »

New source and quest files are committed to svn.

A new python function is available, which plays a sound as if it were in the cockpit and does not change volume when flying with velocity with the following syntax:

Code: Select all

VS.playSoundCockpit(soundfile_path)
The drawback is that a new binary is needed to run correctly with the updated quest_tutorial.py, otherwise vs will exit with an error. This means Win users should *not* update to latest svn unless a new binary is committed.

As a workaround, after updating the data without availability of a new binary, players may comment line 23 in modules/adventure.py prefixing it with a sharp character '#' like in this example:

Code: Select all

#    "Crucible/Cephid_17":quest_tutorial.quest_tutorial_factory(),
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

Re: Tutorial Quest Development

Post by ace123 »

That function should come in handy.

For now, whenever you need to use playSoundCockpit, put it in a try/catch block, like:

Code: Select all

try:
    VS.playSoundCockpit(filename)
except AttributeError:
    VS.playSound(filename, (0,0,0), (0,0,0)) or whatever the code had before.
That way we do not require a new binary for all of the python code. We can make a wrapper function somewhere that does this (such as in the quests module)
kraehe
Merchant
Merchant
Posts: 34
Joined: Thu Dec 04, 2008 4:26 am

Re: a couple of bugs with Oswald

Post by kraehe »

Moin Pyramid,
pyramid wrote: 1) I do remember that when I tried making Oswald anything else than neutral, he would not like the AI I was assigning him and start his own life. I'll check that again, if this was maybe related to some other issue. Oswald is really easy to kill. It was suggested by safemode to make him much harder to kill, which I'm strongly inclined to do.
I think its ok, that Oswald is flying one of the cheapest fighers available. People who kill Oswald will either know what they do and have an escape plan into Aera controlled room, or will learn it on the hard way, that its easy to lose friends in VS.

Making him harder to kill, would mean to improve his fighting AI. So he should use his light weapons to shoot at missiles and evade direct fire like a Turkish dog. His mission would be to act as a flight instructor and wingman for the first trip in the C17 system. So his AI should also react on pirates and Luddites. Give the ship two racks of friend or foe missiles, and let him use those with the words: *oups* an other stupid pirate. You might encounter them sometimes. At best evade them and let the authorities do their job. *boom* job done ... lets continue with our flight instructions ;)
pyramid wrote: 1) Oswald got a new ship, the Progeny to be less destructible
The Progeny could do same tactics as the Robin, to use light weapons as point defense and missiles for attack, even if its possible to mount two Razors and use it as a light attack fighter, but both cant survive a missile volley of a Llama even if you upgrade shields.

ciao,Kraehe
Post Reply