fodev.net

FOnline Development => FOnline Projects => Topic started by: wladimiiir on June 19, 2013, 10:20:50 pm

Title: FOnline Vault 112
Post by: wladimiiir on June 19, 2013, 10:20:50 pm
Hello guys,
I would like to introduce my personal project I have been working on for last half a year or so. I feel like now is the good time to announce it even if the project is (absolutely) not finished. This project is mostly focused on those of you who are having their own projects and would like have some knowledge base.
My idea was to create an open-source project of FOnline, where people (scripters, mappers, dialogue writers...) could submit their work and ideas to share it (and to share fun) with others.
So, if you expect another running FOnline server, let me stop you there, so you don't get too excited about it, because there is no server running, only repository with source codes (additions to default TLA SDK). But that definitely should not stop you before trying the server and seeing for yourself if there is something you might enjoy. ;)

More information as well as link to repository can be found here:
FOnline Vault 112 (http://wladimiiir.github.io/vault112/)

Cheers,
wladimiiir
Title: Re: FOnline Vault 112
Post by: Gob on June 19, 2013, 10:26:26 pm
I still have some maps from my old project, I can share them no problem as I'm not going to start working on it too soon.
Title: Re: FOnline Vault 112
Post by: wladimiiir on June 19, 2013, 10:39:45 pm
I still have some maps from my old project, I can share them no problem as I'm not going to start working on it too soon.
Thanks, if you have Git account I can make you a contributor an you can submit it there. :)
Title: Re: FOnline Vault 112
Post by: Wipe on June 19, 2013, 10:52:28 pm
Hell yeah! Great to finally see your creation alive :)

Some fast oh-gods-so-minor thoughs:
- you don't really need need void InitLibrary() to enforce loading library, same thing can be accomplished by simply binding SERVER()/CLIENT()/MAPPER(), which are present in every .dll/.so (as long it's using fonline.h ofc :))
- SetSendParameter( ST_CURRENT_HP/ST_MAX_LIFE, true );  >>> if server gonna be online/multiplayer one, and use Awareness perk, i'd change it to check for the perk before sending to client; "self-made" awareness "mod" is not really a hard thing to do without that

Gonna check it next week in more detail, glad to see open FOnline, whole brahmin of kudos for you! ;>
Title: Re: FOnline Vault 112
Post by: JovankaB on June 19, 2013, 11:12:00 pm
Nice! The VR idea with as little restrictions as possible is very intriguing.
Title: Re: FOnline Vault 112
Post by: wladimiiir on June 20, 2013, 09:38:27 am
Thanks for the tips :D
- you don't really need need void InitLibrary() to enforce loading library, same thing can be accomplished by simply binding SERVER()/CLIENT()/MAPPER(), which are present in every .dll/.so (as long it's using fonline.h ofc :))
Can you be more specific? I actually don't know what you mean. ::)
- SetSendParameter( ST_CURRENT_HP/ST_MAX_LIFE, true );  >>> if server gonna be online/multiplayer one, and use Awareness perk, i'd change it to check for the perk before sending to client; "self-made" awareness "mod" is not really a hard thing to do without that
I need those to values even if player has no Awareness. In such a case you will see health bar over the critter's head. And even in default TLA SDK, when you look on (click on) critter (client_main@critter_description) you need those to get info about critter's state (Unhurt, Wounded...). Or did you mean something else?
Title: Re: FOnline Vault 112
Post by: Mike Crosser on June 20, 2013, 10:57:41 am
Any chance we find out the setting?

Since V112 was a coast away.
This is just for specific map details (IE vegetation,landmarks,etc.)
Title: Re: FOnline Vault 112
Post by: wladimiiir on June 20, 2013, 11:46:11 am
Any chance we find out the setting?

Since V112 was a coast away.
This is just for specific map details (IE vegetation,landmarks,etc.)
World map (https://raw.github.com/wladimiiir/vault112/master/Client/data/art/intrface/worldmap.png) is based on F3 map, so the setting of V112 should be in the exact spot as in F3, as part of Capital Wasteland. But currently there is only V112 location on WM.
Title: Re: FOnline Vault 112
Post by: JovankaB on June 20, 2013, 12:12:23 pm
So if understood well the concept, there is a real world with Vault 112 where you can go and enter "virtual reality mode" which is some separate locations with their own rules, pretty much anything you want and if you leave it, you lose items, statistics and other things that you gained in VR? I think the idea is pretty damn neat :)
Title: Re: FOnline Vault 112
Post by: Wipe on June 20, 2013, 12:14:56 pm
Can you be more specific? I actually don't know what you mean. ::)
Just that https://github.com/wladimiiir/vault112/blob/master/Server/scripts/_defines.fos#L1493 can be replaced with #pragma bindfunc "void someDummyName() -> cam.dll SERVER", no need for fake init functions ;)

I need those to values even if player has no Awareness. In such a case you will see health bar over the critter's head. And even in default TLA SDK, when you look on (click on) critter (client_main@critter_description) you need those to get info about critter's state (Unhurt, Wounded...).
Unhurt etc. can be calculated server-side and sent as additional param, but heh, with health bar there's no much point in doing that indeed.

Btw, talking to overseer never updates quest status, it always stays at "talk to dr.braun" stage, no matter how hard i wanna push it forward; as a bonus, mr. gyro doesn't even start any dialog :P
Title: Re: FOnline Vault 112
Post by: wladimiiir on June 20, 2013, 12:42:07 pm
So if understood well the concept, there is a real world with Vault 112 where you can go and enter "virtual reality mode" which is some separate locations with their own rules, pretty much anything you want and if you leave it, you lose items, statistics and other things that you gained in VR? I think the idea is pretty damn neat :)
Well, there is no direct support for that (via some API), but it would be possible. My first idea was to create some Hinkley-like area, where players could PvP or even PvE. This is possible for try out (if I did not screw anything meanwhile :) ) using VR terminal in Vault 112. There is also admininstator there who sells stuff you can use in VR (weapons, armor, drugs) for Digital Credit (DC). But at the moment, there is no way to obtain DC, as dialogues are not ready. :P

Just that https://github.com/wladimiiir/vault112/blob/master/Server/scripts/_defines.fos#L1493 can be replaced with #pragma bindfunc "void someDummyName() -> cam.dll SERVER", no need for fake init functions ;)
Oh, I see now, good to know. :)
Btw, talking to overseer never updates quest status, it always stays at "talk to dr.braun" stage, no matter how hard i wanna push it forward; as a bonus, mr. gyro doesn't even start any dialog :P
Yeah, I wish everything was in working state at least to be able to use VR properly. But I have too little time to work on it, so I decided, that I won't be waiting for its finished state (could be Months) and share stuff I have got with you.

If someone feels a desire to improve the project, I am ready (and will be happy) to provide contributor rights. ;) Or you can create your own closed-source project based on this one, as I don't really care. :P
All I want is to share some ready-to-use solutions that are present in the project and/or maybe start some real first open-source FOnline project as I see people creating too many small projects (with no future?), that could be merged to one big one. :)
Title: Re: FOnline Vault 112
Post by: fonliner on June 20, 2013, 01:42:25 pm
Can you upload ftrobots.bos and fov112.zip?
Title: Re: FOnline Vault 112
Post by: Surf on June 20, 2013, 02:47:21 pm
Hey, that sounds good and you look like a reasonable fella, best of luck to your project!
Title: Re: FOnline Vault 112
Post by: wladimiiir on June 20, 2013, 02:49:31 pm
Can you upload ftrobots.bos and fov112.zip?
fov112.zip is there in Client folder. ftrobots.bos as well as fallout.dat (and others) from TLA SDK (https://xp-dev.com/sc/76003/HEAD/%2FClient) won't be uploaded, because of copyrights (I think it is Interplay/Bethseda's stuff).
Sorry for the inconvenience.
Title: Re: FOnline Vault 112
Post by: Gob on June 20, 2013, 06:26:02 pm
So its like the player actually lives in the vault, but they are able to use the VR machines to visit the outside world in VR. And I belive players will need to pay each time they use the VR and when they die they will respawn back in the Vault next to the VR they were in. And how will we aquire credits, are going to have to do small quests in the Vault and to get credits?
Title: Re: FOnline Vault 112
Post by: wladimiiir on June 20, 2013, 07:04:31 pm
So its like the player actually lives in the vault, but they are able to use the VR machines to visit the outside world in VR. And I belive players will need to pay each time they use the VR and when they die they will respawn back in the Vault next to the VR they were in. And how will we aquire credits, are going to have to do small quests in the Vault and to get credits?
There is an outside (real) world where you will be able to take quests, trade, do PvE/PvP and stuff like on some other server. Vault 112 collects junk which is then traded for energy modules (secret stuff), which are used to power up the VR machines (Tranquility Lanes) and Vault itself (and also food and other stuff needed for their survival). So they are buying junk in exchange for credits, which you can use for VR. So in order to use VR you have to make some effort in "real" world - collect junk in city encounters (by using Science on scenery in the encounters - finished) or by buying the junk from other players and/or from traders (not finished). And also as you mentioned, you can do quests for the Vault to get some additional credit. ;)

Note, that most of the stuff is still not finished - dialog for Chuck (the Vault 112 logistic leader), who exchanges the junk for digital credit, traders over the "real" world and mentioned quests. Also if someone will come up with some other idea how to get digital credit, he can freely implement the solution. ;)
Title: Re: FOnline Vault 112
Post by: k3tamina on June 20, 2013, 07:36:21 pm
Could you translate the license to english?
Title: Re: FOnline Vault 112
Post by: wladimiiir on June 20, 2013, 08:05:42 pm
Could you translate the license to english?
English license (https://github.com/wladimiiir/vault112/blob/master/License_EN.txt) file has been added. I am not Russian, so I have used Google translator for the translation. The license is taken from TLA SDK.
Title: Re: FOnline Vault 112
Post by: fonliner on June 20, 2013, 08:22:31 pm
Does awareness on mouse work?
Title: Re: FOnline Vault 112
Post by: wladimiiir on June 20, 2013, 08:57:09 pm
Does awareness on mouse work?
It should work now (https://github.com/wladimiiir/vault112/commit/a0aebb4d29382203141b5524625761fc46a308b2). Thanks for pointing it out. ;)
Title: Re: FOnline Vault 112
Post by: wladimiiir on June 21, 2013, 02:54:47 pm
Btw, talking to overseer never updates quest status, it always stays at "talk to dr.braun" stage, no matter how hard i wanna push it forward; as a bonus, mr. gyro doesn't even start any dialog :P
Fixed (https://github.com/wladimiiir/vault112/commit/a06cc94548b7a99a6b6cc9e8eec628b219bc8c10). You would have to create a new character, though. :P
Title: Re: FOnline Vault 112
Post by: wladimiiir on July 17, 2013, 08:56:35 am
I have finally completed my first roadmap step and successfully released first alpha version:
FOnline: Vault 112 v0.1.0-alpha (https://github.com/wladimiiir/vault112/releases/tag/v0.1.0-alpha)

It is still in alpha state, but it should be more-less stable and it provides Virtual Reality, which can be used by single player or small group of players using local server to have some (isolated) fun. :)


Behavior Tree System
What might be more interesting for FOnline developers is remade system for defining NPC behavior. As server is run using Mono integration, also the Behavior Tree system is done in Mono. This system is based on common concept of trees that specify AI behavior of NPC in games. Some info can be found here (http://aigamedev.com/open/article/bt-overview/) and also on Google (https://www.google.sk/#safe=off&sclient=psy-ab&q=behavior+tree).

Package with logic and tasks for Behavior Tree System (BTS) can be found in Server/mono/FOnline.Server/BehaviorTrees (https://github.com/wladimiiir/vault112/tree/master/Server/mono/FOnline.Server/BehaviorTrees) directory.
Example of creating such a behavior tree can be found in classes contained in Server/mono/FOnline.Server/Roles (https://github.com/wladimiiir/vault112/tree/master/Server/mono/FOnline.Server/Roles) directory.

Simple example how these trees can be specified:
Code: [Select]
var builder = new CritterBehaviorBuilder (critter);

builder
.Do (new CallReinforcements (BlackboardKeys.Attackers))
.Do (new TakeDrug (ItemPack.HealingDrugs)).If (new IsHurt (70))
.DoSequence ("20% to find weakest player and attack him instead")
.Do (new AtFixedRate<CritterBlackboard> (Time.RealSecond (10)))
.Do (new AtChance<CritterBlackboard> (20))
.Do (new FindCritters (Find.Life | Find.OnlyPlayers).Choose (new Weakest ())).If (new IsSeen ()).IfNot (new IsTeamMember ())
.Do (new Attack ())
.End ()
.DoSequence ("Attack every non member")
.Do (new FindCritters (Find.Life)).If (new IsSeen ()).IfNot (new AmAttacking ()).IfNot (new IsTeamMember ())
.Do (new Attack ())
.End ()
.Do (new ProvideReinforcements ()).IfNot (new AmAttacking ());

Global.RegisterBehaviorTask (builder.MainTask);
This code specifies behavior for "evil" human critter in encounter in which:

This way it is possible to specify behavior for NPCs in game, whether it is town AI system or mobs in encounters. Also it is possible for designer (someone who is not experienced in programming) to specify such a behavior tree using diagrams and then it will be implemented by someone with programming experience.

There are currently some basic tasks for Critter entity contained in the project, but there will be more of them created as the time passes by. ;)
Title: Re: FOnline Vault 112
Post by: hexer on August 25, 2014, 11:33:54 am
Can I use this project with Van Buren somehow?