Synthetic Reality Forums Post New Topic  New Poll  Post A Reply
my profile | directory login | register | search | faq | forum home

  next oldest topic   next newest topic
» Synthetic Reality Forums » Well of Souls » Well of Souls Public Beta » WoS Development Notes (Page 7)

  This topic comprises 7 pages: 1  2  3  4  5  6  7   
Author Topic: WoS Development Notes
Weylin
Member
Member # 8359

Rate Member
Icon 1 posted      Profile for Weylin   Email Weylin   Send New Private Message       Edit/Delete Post 
Sorry I was too lazy to look through 6 pages of posts, so this may be a repeat.

Equipment that boost attributes:
Certain weapons that have the ability to boost attributes... example: Big shield.. +25 Stamina, -10 agility. (please make it so the stat attribute boost can go above 255 so its useful to high lvls too. [Big Grin] )


Weapons/spells with a special attack ARG:
Weapons/spells have the ability to have aspecial attack. there are 2 ways this can happen.
Way 1: The weapon has a specified chance (0-100%) to do a special attack, that, i.. um.. would assume is way better than the normal attack. the ARG for this could go like this: in the item/spell wizard, there would be a box to input the special attack chance.
Way 2: The weapon has a (specified?) charge time in which the special attack must wait to be used. maybe to make it simpler, when the attack bar under the HP/MP charges up, the player's next attack would be a special attack.
Other thing about this: maybe include a special attack sound, and maybe even a skin frame for it. Also able to specify how much better the special attack is.


This leads to my 3rd suggestion, Allow classes to have different attack charge times, which are set in the levels.txt file. the variable would go from 1 (0.01 seconds) to 1000 (10 seconds)


Monsters with a hand/magic ratio like humans:
monsters can have a magic/hand ratio just like human players
Defaulted to 70/70


Monsters have amount [percentage] of attacks are spells:
useful for the above suggestion, tells the monster how often to use spells.
Defaulted to 10%

[ 01-26-2010, 10:19 PM: Message edited by: Weylin ]

Posts: 20 | From: Right behind you | Registered: Jan 2010  |  IP: Logged
Geno Ranger Prap
Compulsive Member
Member # 8095

Member Rated:
3
Icon 1 posted      Profile for Geno Ranger Prap   Email Geno Ranger Prap   Send New Private Message       Edit/Delete Post 
Make your own world or modify evergreen to have said benefits. Some of what you said, kinda already exists.

But most of the players of Evergreen throughout the years play for the pking. Not all, there are a lot who actually did what Dan intended and scripted and role played with their friends. And these special attacks would unbalance the art of pking. Sure it would be great in game play. But most of us got bored with that years ago, and dedicated our time to figuring out how to work the ping and lag to our advantages in hit 4 hit pking styles.

Truth is, you figure out how to script it, and make your own world. Wheter or not it will attract players is irrelevent. Make it into your own personal victory in self-developement. And if you're good enough, go to other games and find like minded people like you, who still believes the world is a decent, magical place where people actually care about each other, rather then pretend to care to fit in society and gain approval and popularity.

Kudos for the childish innocence and over-excitement though.

And yes, before you pricks say it, "Well of Souls isn't just evergreen."

[ 01-26-2010, 11:06 PM: Message edited by: Geno Ranger Prap ]

--------------------
Innovation aimed at benefiting humanity is useless if it’s only accessible to a wealthy minority.

Posts: 3504 | From: In the Cataclysm of the Paradox | Registered: Apr 2008  |  IP: Logged
Weylin
Member
Member # 8359

Rate Member
Icon 1 posted      Profile for Weylin   Email Weylin   Send New Private Message       Edit/Delete Post 
[read whole post, but nothing decent to comment back, other than that i agree]

well what about the percentage of time monsters use spells, the attribute boosting weapons, and the attack charge bar charge time? [in case you dont know its those 2 little white bars under HP and under MP

no offense but you seem to have targetted only one area of my post.

[ 01-26-2010, 11:19 PM: Message edited by: Weylin ]

Posts: 20 | From: Right behind you | Registered: Jan 2010  |  IP: Logged
Geno Ranger Prap
Compulsive Member
Member # 8095

Member Rated:
3
Icon 1 posted      Profile for Geno Ranger Prap   Email Geno Ranger Prap   Send New Private Message       Edit/Delete Post 
I only read a part of your post. But now that I read the rest, pretty much what I suggest covered it and my thoughts on it, which was what MY feedback represented. Unless you want me to be like CNN and reword the same idea/statement using different words and emphasis while constantly repeating the same line of news.

You know... Kinda like how your ideas already somewhat exist in the game, and you're just using things that already exist, tweaking them a bit, and trying to pass it off as something new.

[ 01-26-2010, 11:29 PM: Message edited by: Geno Ranger Prap ]

--------------------
Innovation aimed at benefiting humanity is useless if it’s only accessible to a wealthy minority.

Posts: 3504 | From: In the Cataclysm of the Paradox | Registered: Apr 2008  |  IP: Logged
Weylin
Member
Member # 8359

Rate Member
Icon 1 posted      Profile for Weylin   Email Weylin   Send New Private Message       Edit/Delete Post 
well not the weapons that add attributes [iirc, but its been awhile since ive made a world], and for monsters and spells, its either 0%, random, but low percentage, or 100%, i want a bit more control over that. [once again, iirc]
Posts: 20 | From: Right behind you | Registered: Jan 2010  |  IP: Logged
Geno Ranger Prap
Compulsive Member
Member # 8095

Member Rated:
3
Icon 1 posted      Profile for Geno Ranger Prap   Email Geno Ranger Prap   Send New Private Message       Edit/Delete Post 
Can't you figure out how to do it?

Besides, even though I'd like to see more feedback from Dan with his community, I doubt you will get one.

Not hating on Dan though. Dan's been real good staying involved with the community he's built for a long time. But I think he has bigger things in mind and doesn't have as much time for this older project.

But it's a good place to start.

Anyways, if you figure it out, let us know.

--------------------
Innovation aimed at benefiting humanity is useless if it’s only accessible to a wealthy minority.

Posts: 3504 | From: In the Cataclysm of the Paradox | Registered: Apr 2008  |  IP: Logged
Flamelord
Compulsive Member
Member # 4491

Member Rated:
4
Icon 1 posted      Profile for Flamelord   Author's Homepage   Email Flamelord   Send New Private Message       Edit/Delete Post 
Um, RP, most of those changes require a full battle simulation inside the WoS scripting engine. And that's not particularly easy to do well. [Wink]

--------------------
Constantinople! We shall never forget your zany barge poles!

Posts: 4232 | From: Gresham, OR | Registered: Nov 2003  |  IP: Logged
Weylin
Member
Member # 8359

Rate Member
Icon 1 posted      Profile for Weylin   Email Weylin   Send New Private Message       Edit/Delete Post 
Well thanks, Flamelord, for recognizing the difficulty of the things i suggested. i should state that i am also not an avid programmer in any way, i took a small computer programming class last semester [in high school] and it only taught me the basics of Visual Basic..
Posts: 20 | From: Right behind you | Registered: Jan 2010  |  IP: Logged
Geno Ranger Prap
Compulsive Member
Member # 8095

Member Rated:
3
Icon 1 posted      Profile for Geno Ranger Prap   Email Geno Ranger Prap   Send New Private Message       Edit/Delete Post 
I know enough to understand that much Chris. But thanks for specifying.

It's possible though.

--------------------
Innovation aimed at benefiting humanity is useless if it’s only accessible to a wealthy minority.

Posts: 3504 | From: In the Cataclysm of the Paradox | Registered: Apr 2008  |  IP: Logged
Flamelord
Compulsive Member
Member # 4491

Member Rated:
4
Icon 1 posted      Profile for Flamelord   Author's Homepage   Email Flamelord   Send New Private Message       Edit/Delete Post 
It is indeed possible! I've been working somewhat on a project of that nature for a while now. There are several obstacles which make it difficult enough that an entry-level scripter is unlikely to accomplish it in a manner congruent with the current style of WoS battles.

--------------------
Constantinople! We shall never forget your zany barge poles!

Posts: 4232 | From: Gresham, OR | Registered: Nov 2003  |  IP: Logged
Hesacon
Obsessive Member
Member # 3724

Member Rated:
4
Icon 1 posted      Profile for Hesacon   Author's Homepage   Email Hesacon   Send New Private Message       Edit/Delete Post 
Flag 2048, the one for No_Rewards still awards trophies on kills.

--------------------
SoV: Exalted Devout Oracle | World Developer | The Black Guard
Outside is just a prank older kids tell younger kids at Internet Camp

Posts: 9531 | From: NY | Registered: Apr 2003  |  IP: Logged
Hesacon
Obsessive Member
Member # 3724

Member Rated:
4
Icon 1 posted      Profile for Hesacon   Author's Homepage   Email Hesacon   Send New Private Message       Edit/Delete Post 
Two requests.

1) Remove the 60000 per battle max exp, at higher levels, it makes things like boss battles not really worth it, because you get no real reward for hard battles.

2) Add a cookie (or command) to base an exp multiplier for the battle, for example if more people were in the scene, more exp could be rewarded to encourage group leveling. Conversely, less exp could be rewarded to discourage it.

Another use would be to reward players for making good decision and punish them for bad ones.

For example:

code:
 IF T111, @SavedOldLady ;you saved an old lady earlier
MUL num.expMultiplier, "3"
DIV num.expMultiplier, "4" ;25% less exp as a punishment for not saving her
FIGHT
END

@SavedOldLady
MUL num.expMultiplier, "5"
DIV num.expMultiplier, "4" ;25% more exp as a reward for saving her
FIGHT
END



--------------------
SoV: Exalted Devout Oracle | World Developer | The Black Guard
Outside is just a prank older kids tell younger kids at Internet Camp

Posts: 9531 | From: NY | Registered: Apr 2003  |  IP: Logged
Sir Mj
Obsessive Member
Member # 4642

Member Rated:
3
Icon 1 posted      Profile for Sir Mj     Send New Private Message       Edit/Delete Post 
Quick and (hopefully) easy.
An IF command to evaluate #<str.uniform> as a friend/foe of a particular guild.

Output code to go something like...
code:
SET comparison.uniform, "WoS"
' I can't remember if the str.uniform cookie returns the uniform string or guild number (hazy memory is leaning towards the latter)...sorry but it's been a while!
IF #<str.uniform> Ally #<comparison.uniform> @allied
IF #<str.uniform> Enemy #<comparison.uniform> @enemy
N: You have no relations with Guild WoS

I'd always wanted to involve guilds in the story of P.U. (soon to be renamed as I re-start work on it) and at last check many moons ago I had working "Guild Halls" that allowed players with a certain uniform to enter a hidden map/scene sequence. If allowed to compare members of other guilds and assess ally/enemy status I could do something for those players also besides a simple "Not your guild, be gone." message.

--------------------
Come ride with me through the veins of history,
I'll show you how god falls asleep on the job.

Posts: 5438 | Registered: Dec 2003  |  IP: Logged
Tamriel
Healthy Member
Member # 4758

Member Rated:
4
Icon 1 posted      Profile for Tamriel   Author's Homepage   Email Tamriel   Send New Private Message       Edit/Delete Post 
I have an idea that will help me greatly by cutting down the amount of code I need to do, and it should be FAIRLY easy to implement, as it would fall in line with your current standards.

Currently, if you use %I20, it will return the name of Item ID 20 as defined in items.txt. Using Judgement as an example, that would be the item, "Tonic of the Ancients."

If you type %Z20, that will return the name of Trophy 20, as defined in trophies.txt. Once again, using Judgement as an example, that would be the trophy, Leviathan Skin.

However, using %G20 doesn't return 20 [Custom Gold Name Here]. This is unfortunate, as I have an elaborate script in the works that pulls its data from devtables, and having the ability to say "You've received %#<str.devTableCOL1>" (Since the devtables are used as a chart to determine rewards, and the reward would be either Gold, an Item, or a Trophy) would cut down on a lot of lines of code for me.

Plus, it shouldn't be hard to add, right? <_<

[ 11-11-2010, 02:18 AM: Message edited by: Tamriel ]

--------------------
Best. Website. Evar?
JapaneseLearning.com- Learn Japanese, and about the Japanese culture, for free.

Posts: 403 | From: Seoul, South Korea | Registered: Jan 2004  |  IP: Logged
Flamelord
Compulsive Member
Member # 4491

Member Rated:
4
Icon 1 posted      Profile for Flamelord   Author's Homepage   Email Flamelord   Send New Private Message       Edit/Delete Post 
You could CALL the reward line, then (since it's only one place, so only a few more lines of code) test to see if it's a G reward and handle it separately if it is.

--------------------
Constantinople! We shall never forget your zany barge poles!

Posts: 4232 | From: Gresham, OR | Registered: Nov 2003  |  IP: Logged
Tamriel
Healthy Member
Member # 4758

Member Rated:
4
Icon 1 posted      Profile for Tamriel   Author's Homepage   Email Tamriel   Send New Private Message       Edit/Delete Post 
So, I believe I've found a bug.

My intention with the upcoming version update of my world, Judgement, was to add a layer of strategy by giving two new spells to the Assassin class. One spell would be a "Summon Specific Monster" spell that would summon a monster type and create a trophy. The second spell, also a "Summon Specific Monster" spell, would require 2 of the trophies that the first spell creates.

Unfortunately, it doesn't work.

The summon spells work exactly as intended, and the second spell requires two of the trophies as intended. However, the first spell doesn't create the trophy.

So, I changed the effect of the summon spell to a simple attack spell, and the trophy was successfully created. Thinking that the problem was "Summon spells are incompatible with trophy creation," I created a third spell, an Agility buff that would also create the required trophy.

That didn't work either.

It leads me to believe that any less-than-zero value in the "power" field causes the trophy creation field to be ignored. Whether or not this is by design is only (maybe) known by Dan.

I know a fix is probably unlikely, but it would be nice... ._.

--------------------
Best. Website. Evar?
JapaneseLearning.com- Learn Japanese, and about the Japanese culture, for free.

Posts: 403 | From: Seoul, South Korea | Registered: Jan 2004  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
But thanks for the report :-) I suspect you're right about the relationship. I think the use I intended for a spell creating a trophy was as a 'craft' as in a spell that took two "ore" trophies as input and created one "bar" trophy as output. And knowing myself, that sort of thinking would have gone so far as "a crafting spell should not be a damaging attack spell" followed by "summon? huh?"

But I don't really remember :-)

--------------------
He knows when you are sleeping.

Posts: 10997 | From: California | Registered: Dec 1998  |  IP: Logged
Tamriel
Healthy Member
Member # 4758

Member Rated:
4
Icon 1 posted      Profile for Tamriel   Author's Homepage   Email Tamriel   Send New Private Message       Edit/Delete Post 
I see, thanks for the clarification.

It's unfortunate though; I was definitely looking forward to seeing what sort of playing strategies would open up with summon spells restricted in such a way. (Particularly because the monsters in question were designed simply to take a hit in lieu of the character.)

Oh well, I guess it's (somewhat) back to the drawing board on this feature... [Frown]

--------------------
Best. Website. Evar?
JapaneseLearning.com- Learn Japanese, and about the Japanese culture, for free.

Posts: 403 | From: Seoul, South Korea | Registered: Jan 2004  |  IP: Logged
Sir Mj
Obsessive Member
Member # 4642

Member Rated:
3
Icon 1 posted      Profile for Sir Mj     Send New Private Message       Edit/Delete Post 
I'm confused:
quote:
And knowing myself, that sort of thinking would have gone so far as "a crafting spell should not be a damaging attack spell" followed by "summon? huh?"
...it seems that only a damaging attack spell will create a trophy upon casting.

Is there any likelyhood that we might be able to have this changed so that any spell can create a trophy? Spike's example from Judgement is a great one for summoning spells.

As for buff/debuffs a developer may wish to only allow players the use of certain spells after they have "mastered" another using a progression along the lines of:
practice --> trophies --> token --> new buff spell

Using the soldier class from P.U. (I'm clutching at straws here as this class was originally a no-spells-for-you class) I might wish to allow the soldier to "take cover" (+ agility), and after mastering this (ability/skill-boost via a "spell") the soldier could trade their "cover" trophies for a token that allows them to begin practicing "Take Aim" (+ dexterity). Aim trophies could lead to an unlock of "Field Armor" (+ stamina), then on to "Maximum Firepower" (+ strength) and ultimately "Field Tactics" ( + wisdom).

[Aside: This idea on the run actually could be pretty cool]

Again using the soldier class I might wish to implement the same kind of progression for healing. Admittedly, in this case "might" should be "won't but it's an option if allowed by the engine and I desired to do so" although other developers might find this useful.

--------------------
Come ride with me through the veins of history,
I'll show you how god falls asleep on the job.

Posts: 5438 | Registered: Dec 2003  |  IP: Logged
Role
Member
Member # 8457

Rate Member
Icon 1 posted      Profile for Role   Email Role   Send New Private Message       Edit/Delete Post 
I've been wondering... do we have a list of all the things people have suggested in case samsyn gets some more time for WoS? I don't mean it as a honey-do list or anything, but it'd be a nice list of things that are known to be desired features in the event of a miracle update.
Posts: 28 | From: Gensokyo | Registered: Jul 2011  |  IP: Logged
Makarei
Verbose Member
Member # 1646

Member Rated:
4
Icon 1 posted      Profile for Makarei   Author's Homepage   Email Makarei   Send New Private Message       Edit/Delete Post 
Problem with MOVE actor. if you make a button actor and script it to have a menu and tell it to MOVE to 0,0,1. Like this:

ACTOR 1, "", Buttons, 24, -50, -50 ;Menu
MOVE 1,0,0,1
END

@EventActorClick1
MENU "Hello=@hi"
END

@hi
N: hello
N:
END

It still can be selected in the upper left hand corner of the screen. (which will prompt the menu to appear) is there any way to move the actor further off screen so this doesn't happen?? (forgot to mention the actor is invisible, but the menu appears, which i don't want until the certain conditions are met, save me using a token.

[ 01-04-2012, 11:15 AM: Message edited by: Makarei ]

Posts: 1040 | From: Australia | Registered: Dec 2001  |  IP: Logged
Flamelord
Compulsive Member
Member # 4491

Member Rated:
4
Icon 1 posted      Profile for Flamelord   Author's Homepage   Email Flamelord   Send New Private Message       Edit/Delete Post 
I generally use -100, -100 for off-screen actors. They'd have to be very, very large to still be visible/clickable.

--------------------
Constantinople! We shall never forget your zany barge poles!

Posts: 4232 | From: Gresham, OR | Registered: Nov 2003  |  IP: Logged
zim zim
Veteran Member
Member # 1233

Member Rated:
4
Icon 1 posted      Profile for zim zim   Author's Homepage   Email zim zim   Send New Private Message       Edit/Delete Post 
I'm surprised Arcadia Park hasn't been implemented into WoS. It would give a 3d-ish feel to the game.

--------------------
I'll be around here until the plug gets pulled.
http://flashzz.webs.com/

Posts: 550 | From: USA-WI | Registered: Aug 2001  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
If you've seen my 3D characters in Well of Souls: Rune Runner (for android), you know my skill level. But that engine supports player-defined models, in theory if not in current release.

I used MilkShape as the 3D modeller for Rocket Club, but it, as a website, has been pretty silent for a long time, plus it was never completely FREE free, so it makes sense to have a completely free solution and the obvious choice is Blender (which can conveniently both import and export to the milkshape format I used... oh... as in I wouldn't even change my code. Yeah, has to export to SOMETHING, why NOT the devil I know? Well, I will probablu suggest FBX before this is over.

ANYWAY, so my plan is to suppoprt full 3d 'skinned' characters/critters with skelton driven animations. With the idea that players could contribute at several levels:

* making the whole rigged skeleton with fancy material textures and particles

* using existing art from the game or other players, and providing just:

- new texture art for existing materials
- simple 2d 'decal's for existing objects
- simple 'clothing changes' by texture only
- new skeletons and skins
- snap on skeleton accessories (wings, horns, tails, saddles, weapons mount points)
- new poses (animations are sequence of poses with auto tweening and IK, fingers crossed) for existing skeletons
- new sounds, music, particles, lighting, shader changes, etc

vaporware.. vaporware.. vaporware.. But that would be nice. In the near term, I have been watching a lot of Blender youtubes and here's an example of something to aspire to

https://www.youtube.com/watch?v=Z2i01_avzEo

He does the usual thing of extruding a quality human form from a box (in fast motion), which is pretty gorgeous in low poly, then he focuses on the head and adds billions of polygons in sculpt mode and models the tiniest details of the face (eyes nose mouth) and does thie iteratively, coming back to it again and again, looking at inspiration artwork now and then. He's really designing the face at this point and using sculpt mode to quickly try things out and end up with a super precise model of what he wants

but with a billion polygons in it. And frankly, it looks messy, like an art project you should have stopped a week earlier.

BUT

I assume he saves the whole file and never actually deletes this high resolution mesh, and it never really leaves the scene, but I think he starts a brand new mesh and starts manually placing individual verts and polys to not only reduce the polycount, but to do everthing along some sort of iso contours that are just plain pleasant to look at, everything is four-sided, all the sides flow smoothly with their neighbors, just a real work of art

and no longer billions of polygons.

Clearly this is a lot of work though, for this professional guy who has I imagine done this a lot. But if I can just approximate the first minute of this (in an evening or to), I would be adequately pleased.

Anyway, I think people like to design their character, and some people are prepared to get more into it than others, but lots of people would like to take part even at the synSpace FACE icon level (design your guild symbol that is then overlayed on your current 3D cloak)

And I know I want to make poses and animations.

And the thought pleases me to have a lua script command the creature to walk on stage and deliver its lines will full pose/animation glory and all decals in place :-) Little actors, doing your biddiong in your little scene box.

And in VR, you are in a sort of god mode looking down on them.

And everything is as autonomous as possible, never just sitting around (except when explicitly commanded to do so), with needs and priorities defined by the world designer.

And lua makes for a much more powerful spell casting experience as well. Of course, in the following you have to add 'before being hacked, it would work like this'

I see you in game and desire inflicting pain upon you, but I am a weeny, so I turn on my forcefield first.
[i click forcefield button]
the fprcefield button is only there because the world designer wanted it
my game's copy of the lua script (every player has their own copy [this is where you hack, but please don't]) and it is a 'trusted' definition of the world (with the usual tattle-tales to let you know who has a copy of the same version as you. We depend on everyone having an identical copy of the game, and will go so far as to fetch from the session host as needed.

anyway, so your local copy of the script gets the message that you pushed the forcefield button. The game engine doesn't care. forcefield is not a standard engine feature. Your script cares, and can do anything it wants, with as much or little code as it like, without any hassles in the coding style (thank you lua co-routines). So nice (if you scripted in QUEST, you should try scripting in lua for synSpace: Drone Runners (Google Play store and Amazon.com)

Anyway, so the local script (other players still have no idea that you pushed that button yet), decides whether it was legal to push the button r not [another good spot to hack, but please dont, write a cool world script instead]

If not legal, then play a sound, emit some particles, some text to the player. And if you want other players to know, sends a player packet (your script sends a message to 'itself' running on all the other player machines [see, you could make a VERY cool world, mister hacker, even with packet chain reactions, but please don't].

So for other players to know about something, just send a message to all about "MyPlayerThudded" and they can turn that into whatever combination of sound effects, particles and animations you like (in theory, eventually).

And if that message was "MyPlayerCastForceFieldOnHimSelfBecauseHeIsABigWeenie" then the scripts would (remember, the game engine itself still knows nothing about this. It just carried the script messages. It is up to each copy of the script (each player's machine) to actually call down into the local game engine to make it actually DO things, like 'remove N life points' or 'start timed effect with id=forcefield,'

where a timed effect would be something the game engine understood how to apply, and could just remember a huge list of them whicm might be affect ion any player.

And if that's a game engine thing (timed effect), then I would probably do the distribution for you so you wouldn't actually have to send the packet yourself, but you would call into the game engine to say something like

game.startTimedEffect( effectId, characterId, durationSeconds )

where earlier, at script load maybe, the script explained to the game engine what the 'forcefield' effect was like

effectIdFF = game.defineTimedEffect( BlockPain, FreezeMovement, SwitchFace, bareHanded )

Where BlockPain was from a list of things the game engine knew how to do, in general (add or block pain or mana, subtract life at some rate, heal over time, poison). Anyway, whatever sort of effect you would like needs to be broken down into its individual pieces and then you declare and effect which triggers several (potentially) of those at the same time, as a single timed effect

ANYWAY, letting the script decide what the combinations are is much nicer than the engine enforcing the combinations as in QUEST. But at the end of the day, the individual 'symptoms' have to be supported by the game engine and make sense in some general way, like 'set alpha to 50%' sounds pretty do-able, while "make them a ghost" is maybe too vague. But you would craft (at the script level) your own 'make them a ghost' by declaring it is the combination of '50% alpha for 90 second' and 'gruesome moan sound after 3 seconds' and 'can no longer give pain' and 'can no longer take pain'

The game engine would apply each individually, and remove them when they expired, or if there is some rule like 'cured by impact'

I think it gives the author a lot more flexibility to craft something really unique instead of the 128 canned versions baked into the game engine (which are maybe also nice to have, where appropriate :-)

I know this work will depend on really good particles. And particles submitted by players. In theory, with the right automation, that could be a match made in heaven. but the actual particle rendering has to be nice, and screen filling when needed. low volumetric fog filling an area, creepy footprint sound effects, echoes in caves, frogs and drops, driven by autonomous bugs and critters. (in theory, one day). Growls. Clangs. Zaps, Swishes, Thunks, Thwacks, Doings and boings (ideally patches in the synth, encoded as text in the world map)

But yes, group dueling in PKer with nice particles and skeletal attack animations (spin and roll, drop and kick, design your own cool move with the pose designer, define your N stock poses for each character you play, auto-shared like WoS skins so everone sees the way YOU /bow, and how YOU /shake

But 'attack #3' is something like timed effect 2. Something the engine understands (what a pose is) and something the script know (sequence of poses required to approach, slap with a fish, and then back away) with trigger moments for sound effects and particles.) So the script worries about the combinations and sequences (predeclaring what makes sense so the engine can auto-tween and such), and the engine keeps everything running at full frame rate with the explosions going off on time.

In addition to poses though, there is the concept of the attitude of the character. That aspects of the character, like its physical fitness, can be reflected in its poses, and hence its animations. Like to give a character a limp, you give it some constraint on one joint, so it has a different than normal range of motion.

The locomotion animations, I hope, will be based on a sort of inverse kinematic real-ish physics (in a small way, that makes them have to think about holding the requested pose, against current odds, so they try to walk in the sense of achieving a destination location, by moving through a series of microposes (walk animation basically) but informed by gravity pulling you down any time your feet are in the air. (or your center of mass is out of balance). is what I'd like. Anyway, so then you don't 'design the limp' you just give the character a constraint to work with, and it solves it in its own way, which looks 'gimpy' (sorry, that was for literary purposes)

Posts: 10997 | From: California | Registered: Dec 1998  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
a little more on timed effects.... I already have a mechanism where each character periodically reports its status. I am tempted to put on my 'think small' hat and just add a fixed sized field to that, which is a bitmap of the 'currently applied effects' and let that be the way that others discover what effects are on YOU.

Then, again, your local script would at some point start an effect, like..

game.beginTimedEffect( shipId, effectId, seconds )

prior to that it would have said:

game.bindEffectToCharms( effectId, charmSum )

where charmSum is the sum of a bunch of individual 'charms' like 1 = takes no pain, 2 = takes double pain, 4 = loses pain at rate, 8 = loses mana at rate, ....

With there being as many charms (predefined core character disease symptoms... yes. symptom is the word I want. (and disease in general), but it is a SYMPTOM of this effect that you 'feel no pain' or 'are twice as fast' and that some property like HP or MP is incrementing or decrementing over time.

Anyway, so a particular combination (any combination) of these symptom bits (powers of two, so they add together nicely, which also turns out to be Linear Algebra when you think about it). this bitmap of symptoms is stored in some table that holds all the disease definitions (they need cool names, and then to be bound to particular weapons and shields and such)

diseases[ diseaseId ].symptomMask = FEEL_NO_PAIN + STEERING_IMPAIRED + LEAD_FOOT

so in the 'active timed effect list' is an array of the current effects, possibly held per ship... no... I think I want a single list of map-wide active effects. Might help cull when crowded. Well, I start by wanting it that way.

activeTimedEffects[ i ].endingSecond = now + 360
.affectedShip = shipId
.symptomMask = whatever was passed when created

so, I might have a single disease effect that is applying N symptoms, or I might have several diseases effects with a mix of same and different symptoms. I might be simultaneously under the same symptom from two effects (should they stack?)

But so far, that info is in the activeTimedEffects table. At the appropriate spot in the physics loops, that needs to be stepped (expiring effects, applying symptom damage/healing)

Immediately after updating that, we calculate the current symptom mask for our ship. we step over all the effects that apply to us and merge all their symptomMasks into a single master mask that has everything we've been infected with. We store that inside the ship itself, where it is the authoritative opinion until the next time it is set.

So, if the code needs to know, when computing the effect of an explosion, if the ship also has a handful of symptoms that this code specifically cares about, it can know. It does what it does, changing ship stats as needed (which are then propagated to the other players)

But part of that propagation is this master symptomMask, so I know the full list of symptoms affecting every other player (within a couple of seconds or so). And my copy of the game can use that information to decorate things appropriately. Particles, animations, etc. Even though ONLY THE OWNER/HOST of the ship in question actually 'applies' the symptoms. Everyone else just waits for updates.

Yes, that is basically how it will be, but clearly I need most of this in the script, but only the game engine can update ship data in real time... so.. it's all about the symptoms. For a character attribute like lifeforce, I need several symptoms for healing/hurting at various rates. It might be best to have a sort of standard language and give N bits per attribute, so 3 bits for managing HP, 3 bits for MP, 3 bits for Gold, etc. With maybe a couple placehold currency slots for the map to use as it saw fit but that could be affected directly by the disease system.

So, my design lost the possible symptom-stacking (higher rate if DOUBLE_HURT symptom is provided by several diseases at the same time)

And I haven't really addressed flow rates, nor what if the script wanted to do something fancy.

I think the fancy stuff will want to mostly happen at the beginning and the end of the effect, which there would be messages for.

But would we actually call the script repeatedly during the timed effect, so it could diddle numbers in real time?

The problem there is several fold. Being separate threads, they don't just slam each others variables (they could, but huge performance hit, and buggy) so they have to 'send a message' which is fine, but kinda weird and not great for asking for data. great for sending it. You just have to catch it, whenever it arrives, and give your customer access to whatever you caufht most recently.

But these timed effects probably wouldn't actually change much in a second, so maybe invoking the script at that sort of rate would be acceptable. And nothing less is acceptable, really, if you want SYMPTOM_DRAIN_RENT_AT_MINUTE_INTERVALS_THEN_EVICT

Also, that allows a disease to morph its effects over time to some degree. And react to changing circumstances. So yes. In addition to performing canned actions for the symptoms that the game engine controls (bad_steering, faulty_reactor), the script can periodically update more complex game state and script-defined 'diseases'

And I think messaging should most always come only from the script. So the game engine might be doing all the work, but it leaves it up to the script to decide when to inform the player 'You have been blessed with the Wisdom of Sargon, for 3 minutes'

And the game engine doesn't really need to know 'Wisdom of Sargon' anyway, so let that name definition live inside a lua table and let the game engine stay ignorant of those details.

I struggle with this handoff, mainly because it just adds a bunch of boilerplate needed in most maps. But if I had a mature include file solution, that would not have to be a problem, and mapmakers could just include specific libraries/objects that supported the style of map they liked.

For example, the disease library (or maybe the timed effects library) would include tables pre-defining all the game engine standard symptoms, but the mapmaker would have access to creating.. I dunno.. probably a total of 64 potential symptoms, with half of them predefined by the game engine, so 32 for the mapmaker maybe. For a single map, plus they could overwrite the names of the stock symptoms if they wanted to call HP something else, for example.

I know that's the right thing to do. but in the mean time I can keep cramming things into my single include file, but maybe I can think ahead, more towards object libaries and less about the globals... I like globals in lua though, and it's such a little sandbox, why not?

namespaces, that's why.

yeah yeah

I guess if my referenece name is short enough, I don't care too much

#magicInclude effectsLib -- loads source into global object effectsLib

effectsLib.beginTimedEffect( shipId, effectId, durationSeconds )

but then I could

fx = effectsLib --- somethig less to type, just a reference

fx.beginTimedEffect()

or even

fx.effects[i].begin( tgtShip, srcShip, duration, symptomMask )

Where one of the symptomMask bits means "report this one to local script periodically, like one hertz or so"

Actually, if I hard dedicate 64 bits to the symptomMask, and keep 32 for the game and 32 for the script, then I can just test if there are any non-zero bits in the map's half, and assume the map needs to be informed, otherwise not.

Well, that wouldn't help if you wanted the scrpt to decorate an otherwise standard symptom... I think an explicit 'tell the script' symptom is best. (then the script will get the full symptom mask every second and can do what it likes for any active symptoms)

--

but what about rates... s oome would be done in the script, of course, so no problem there. But what about the symptom "POISONED" that needs to slowly kill you. Is there a "1% maxHP per second" and a "exactly 100 HP per second" and a handful of other values? Sounds confusing. I don't think we are happy with anything less than an official rate value somewhwere.

Now, the good news is that we can say these rate values don't change over the life of the game, so they could be distributed 'in the map'

But that being said, the map needs a way to tell the game engine to use a specific rate for a specific symptom (and only some symptoms have rates.)

And don't let me forget two sided relationships. I suck energy out of YOU but it goes into ME. Is that two separate symptoms?

Sometimes the timing will be flexible like 'effect lasts until cured, until receipt of blow to the head, until distance achieved, until return to home planet, etc.

yeah, like the 'report it to script' symptom, there could be 'effect cancelled by blow to the head' symptom, and 'effect stops after fleeing'

and those are actually attributes of the effect, giving it additional termination criteria.

So, I think there will be a handful of rates and distance values that will be needed to be set, and so make them something generic like

fx.effectConstants[ RATE_POISON ] = 1 -- percent or something

fx.effectConstants[ DISTANCE_FLEE ] = 8 -- sectors from source of effect

And then the game engine would be hardwired to use RATE_POISON when updating the stock poison symptom.

The mapmaker could then ignore it (default being 'reasonable') or override it.

(and a hacker could override their OWN copy of the script to reduce pain rates). So that's why we want to be sure everyone has identical map, or at least know who doesn't.

I guess I should edit the above down into my 'personal consensus version' :-)

---

So what have I actually DONE?

Not much, mainly work work with all the collada stuff. I finally got email up on my new desktop, so I don't actually use the old machine now. Which means it's time to port all the android work to the new machine (already moved all the windows work).

To that end, I updated my Android Studio installation and did a couple test apps (made a nice OpenGLES app with only about 20 lines of code above that provided by the app wizard thing). All it can do is paint the screen red, but hey!

So, it's kind of a big deal to move from Eclipse to Android Studio, and the Internet is NOT abuzz with people praising Google for making them switch off of Eclipse.

But I haven't seen any actual shouts of condemnatino since 2015 or so, so maybe I've waited just long enough... And hopefully not TOO long.

I also have been learning gradle, ant, and maven, which I have so far managed to avoid. I know I had to learn a lot of quirky things about Eclipse before I was comfortable with it, and no doubt the same will be true here. But man, these last few months have been spent grokking a lot of tool manuals as it were... gmax, blender, audacity, gimp, photoshop, premiere, wtv, magic bump, awesome bump new windows, new visual studio, oculus, steam vr, new directx, old directx, new openGl, more linear algebra, and endless amounts of youtube on deep AI :-)

I can finally make a monocomponent bitmap file, and edit an alpha layer with normal painting tools, and save the result in any possible form of DDS DXT file.

I finally grok what all these 3D design programs are doing that has absolutely nothing to do with my personal needs and can be safely ignored.

And it looks like Blender has a MilkShape exporter, so I don't actually have to abandon MilkShape as my model file format. I do have a soft spot for it, so long as it meets my new material needs. But it's likely another format will make more sense foundationally. Something DirectX/openGLES helper libraries can load natively, for example.

--------------------
He knows when you are sleeping.

Posts: 10997 | From: California | Registered: Dec 1998  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
Just to end with a more focussed post:

code:
-- game engine symptom constants
SYMPTOM_POISON = 1
SYMPTOM_HEAL = 2
SYMPTOM_TELL_SCRIPT = 4
SYMPTOM_ENDS_ON_IMPACT = 8

-- library fx for managing timed effects/diseases
fx = { -- I'm another table, ma!
beginTimedEffect = function( self, tgt, src, duration, symptomMask
-- add to table of active effects
game.addTimedEffect( tgt, src, duration, symptomMask, progressMessageId )
end
}

-- my starmap
#magicInclude fx

fx.init()
...

fx:beginTimedEffect( tgt, src, duration, "effectUpdate"
SYMPTOM_POISON + SYMPTOM_TELL_SCRIPT )

.. message handlers

effectUpdate = function( self, tgt, src, symptomMask )
-- a TELL_SCRIPT effect is checking in
-- this is its personal symptom mask probably
if( 0 != symptomMask bit32.band(symptomMask, SYMPTOM_POISON ) )
// I guess I would like this message to
// include the length of the effect and the
// time so far, and some way to detect the
// start, middle, and finish, so I can use
// this one routine to drive the whole
// lifecyc le of the effect
ship.animateItWhenAlmostDead()
ship.becomeContgiousNearTheEnd()
ship.changeAllegiances()
end



--------------------
He knows when you are sleeping.

Posts: 10997 | From: California | Registered: Dec 1998  |  IP: Logged
WildWestPyro
Member
Member # 10220

Rate Member
Icon 1 posted      Profile for WildWestPyro     Send New Private Message       Edit/Delete Post 
Rocket club doesn't seem to be working anymore, it just freezes when you try to get past the main menu

--------------------
Gacha ruined my life

Posts: 20 | Registered: Jun 2017  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
Hmmm... working for me on... windows 10. Do the menu items LOOK clickable? (do they enlarge when you point at them?)

--------------------
He knows when you are sleeping.

Posts: 10997 | From: California | Registered: Dec 1998  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
I wonder. My games all use the re-usable browser control that comes with IE. New Windows 10 ships with Edge and not IE. I wonder if I handle that?

If that's the case, then installing IE would make it work.

I assume you get no useful error messages?

Probably has a dependency on an older MS runtime as well. Visual Studio 2003 perhaps. but that would definitely give an actual error message.

--------------------
He knows when you are sleeping.

Posts: 10997 | From: California | Registered: Dec 1998  |  IP: Logged
Starix
Member
Member # 9912

Member Rated:
3
Icon 1 posted      Profile for Starix   Author's Homepage     Send New Private Message       Edit/Delete Post 
Guild pages in WoS no longer work as well. From what I'm told the passwords are incorrect when they get created.

--------------------
https://bitbucket.org/ahitb/remix

Posts: 50 | Registered: Jul 2014  |  IP: Logged
Leave_Me_Dead
Healthy Member
Member # 8470

Member Rated:
4
Icon 1 posted      Profile for Leave_Me_Dead   Email Leave_Me_Dead   Send New Private Message       Edit/Delete Post 
Yeah your right Starix, i put a post on in the Guild section of the Forums.

All Guilds seem to reject the Password and the Page flags them as incorroct causing the Guild to automatically Delete after Creation. iv tried a few times to put a guild up. and i Dont know if Ryan has the Issue with his 420 Guild

Posts: 267 | From: New Zealand | Registered: Oct 2011  |  IP: Logged
zim zim
Veteran Member
Member # 1233

Member Rated:
4
Icon 1 posted      Profile for zim zim   Author's Homepage   Email zim zim   Send New Private Message       Edit/Delete Post 
Didn't bother to read through the previous sugestions, so sorry if it's already mentioned.

How about allowing cookies to overwrite max stats on a class.

I was wanting to change max hp/mp, max stats and max hand/element training on a class. The idea I have is to avoid using class morphing as to not top out the max of 88 classes quickly.

For example I have 4 classes planned out that will have higher max stats the more it morphs. As of right now each have of collection of 10 class slots to reach the desired amount of strength. Unfortunately that is going to take up 40 class slots total, and leave only 44 left. I'd imagine they will fill up if I keep up with character progression.

In order to help prevent misuse maybe the class in class.txt can limit how high it could be set.

example:
AUTO_MAX 100, 9999, 10, 999, 0

I would only be able to set maxHP between 100 and 9999. That way I would only need to write out a maxed version of the class. I could set max stats low with the cookies and set the cookies higher as the character progresses. I would then be able to avoid hitting that dreaded 88 class limit.

--------------------
I'll be around here until the plug gets pulled.
http://flashzz.webs.com/

Posts: 550 | From: USA-WI | Registered: Aug 2001  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
remind me to read this and learn from it. (the whole topic, I mean).

But from the immediately above, my hard linking the character levels to specific max HP values was pretty limiting.

In Lua (for example, synSpace, plug plug), you still have tables, but they can inherit from one another. So you can have a base table for 'hero' and that has all the basic stuff you want any character to be able to do, but then you create another table for 'mage', which inherits from 'hero', and then a 'red mage' that inherits from 'mage', so you define only the specific classes you care about, and then things like maxMP are just data that can be dynamically updated by the script.

King: I grant you, hero Korgo, of the red mages, 100 MP bonus! I grant this to you as an individual. You are, mighty hero, an 'instance' of red-mage, not the base class itself. In fact, you are, less grandiosely, a copy of the 'red-mage' table. My son.

maxMP += 100!

King: But only for the next 14 seconds

---

Also, all effects should support time-outs.

I'm blabbering now, in case it wasn't obvious, there is a strong wind blowing (which will probably blow out the cardboard plug in our window) And it's raining. Hasn't rained in a long time. I heard Oregon was going to have a bomb cyclone!

Just heard thunder or a transformer blowing up. There's another one.

PGE will probably shut off power right about now.

OK, rain has changed in sound.. more regular, but lighter... [just documenting, you have my permission to skip :-) ]... hitting the transition point between new rain being quieter than old rain drips.

----

Well, anyway. So I need to flesh out the health system for synspace critters. Something like my old Pokegatchi with the simple simulation of an intestinal tract. Only not so gross. I'm thinking maybe two kinds of energy, tracking sprint vs marathon in some ways. Marathon is your normal hit point sort of thing and just goes down until you eat. Sprint energy recharges on its own.

When you swing your sword, it is improved by your sprint energy. Likewise, when you defend yourself, your sprint energy diminishes the blow (protecting your Marathon HP), but then your attack is weakened until you recharge (and your skeleton should be panting until sprint energy recovers).

sprint energy lets you run faster until it runs out (actually, that's a WarPath mechanic come to think of it)

Eating (for critters anyway) probably has the food tagged as containing components (carb, fat, protein, water) and maybe some components have secondary effects (alcohol carb), but some components charge HP and some charge sprint probably.

Ideally, most of that would be done on the map and not baked into the engine, but still, certain common things, and infrastructure should be in the engine. I think. the map sets the fractal terrain, and initial critter population/distribution. But I want the critters themselves to be autonomous and just get data placed into them by the script. Well, outside of cut scenes anyway.

What does that mean for a sentient creature... It should be evaluating how you fit into its affinity matrix and what you trigger on fight/flight curve for my species. Then calculating the best possible attack, if necessary, or verbal greeting of some nature. Dialog would presumably mostly come from scripted text in the map, but maybe you could have some hashtags for mannerisms or phrases that this particular character tends to say. Like in every character's table, there is a spot for 'aphorisms' or 'banter' containing sentences or sentence fragments, or nouns, or adjectives unique to that character (also with inheirtance, so you might also say something a 'mage' would say, as well as things a 'red mage' would say, and those things that you as an individual have been taught to say to advance the plot.

King: So, Korgon, $um, $anecdote, you really saved our butts!

Where
$um injects one of: "um" "er" "y'know"..
$anecdote: "Like that time the dragon almost burned me from behind"

And that might end up looking more like

king.say("So," .. player.name .. player.um() .. player.anecdote() .. " You really saved our butts!" )

Which is to say, you could do something like that right away (where king and player are individual character tables, and um() and anecdote() are methods defined in the base table, but using data stored in the instance and/or its parents and grandparents.

----

sorry for the invasive blabber. But I would like to get this particular thing right someday.

--------------------
He knows when you are sleeping.

Posts: 10997 | From: California | Registered: Dec 1998  |  IP: Logged
samsyn
Administrator
Member # 162

Member Rated:
4
Icon 1 posted      Profile for samsyn   Author's Homepage   Email samsyn   Send New Private Message       Edit/Delete Post 
Make that

king.say("So," .. player.name .. king.um() .. king.anecdote() .. " You really saved our butts!" )

it's probably better to *not* use hashtags, since this way you could add your own stuff without specific keywords needing to be recognized by middleware. Still... #name and #he and even #anecdote are easier to type and read. So obviously I am going to do both. Why pretend otherwise. I kinda like literally using pound signs (instead of a more traditionally dollar sign, I guess). But there has to be a way of linking the # to a specific character, and easily supporting multiple characters. Good old

1: Hi there, #2name, my name is #1name!
2: Leave me alone, #1name! or #2simile, I'll #xverb you!

So, perhaps # without a number might mean 'the current speaker' and then #n could identify any other character in the context (scene, map), and tags could not start with numbers, so n could be any integer value.

except then I have to add a parser and it would need references to all the characters. If 'n' were literally mapped to 'all the characters' then maybe that would not be bad and the parser could use member data I didn't have to include with my call. Bleah, don't like this path, change course.

---

As I link the critter fractal world to the grid space world, I am slowly discovering synergies like setting the grid and terrain coordinate systems to the same scale, so if a ship changes mode, its current xy value continues to 'make sense without needing any correction to speak of (well, that's not hardly true at all, is it, but I like this anyway). So asically only Z changes, with yuo snapped to the plane of the space grid while in space (but I could support multiple planes for interesting game purposes (most weapons are stuck in one plane) Ooh,, space warp to move between layers... maybe a form of dog fighting... 2D zoom around, with +/- layer bumps to avoid weapons and such. Hmm, well, that sort of thing works better if you have a clear shadow, I think.

For now, I will be happy just to be able to zoom between atmospheric arcade flight over fractal terrain, and 2D space flight with inertia

After that, make sure the terrain is populated... finish 'the hive' concept and let the starmap declare where the hives go and what they are guarding.

Then maybe some aerial bombardment for a sort of tower defense game where you are just trying to bomb the ground base construction before it achieves the ability to shoot you down.

And in the course of that a basic starmap skeleton for a normal-ish up-to-8 player real-time-strategy game (each makes a base which makes critters which make buildings which make critters which collect resources and research new technologies which they then use to attack the other bases. With flexible alliances and enforced cease fire periods. But in this case the critters fight each other and you are an invisible sky-general. (which fits into you being a drone in orbit all the time, and you are just somehow influencing events on the planet.

OK ok.. I already have a metaphor.. the clone factories that make the drones. So these RTS assets would ultimately be made in the clone factories so they aren't living creatures per se, so their destruction is not actually death... and if they leave behind parts which are valuable to collect and get rebuilt into new critters... well.. maybe you can recognize a glint in the eye of that new critter. Or maybe they retain a full memory of all their past lives, which influence their affinities in this life.

ok, moving my blabber back to synSpace, sorry for the interruption of great ideas!

--------------------
He knows when you are sleeping.

Posts: 10997 | From: California | Registered: Dec 1998  |  IP: Logged
  This topic comprises 7 pages: 1  2  3  4  5  6  7   

Quick Reply
Message:

HTML is not enabled.
UBB Code™ is enabled.

Instant Graemlins
   


Post New Topic  New Poll  Post A Reply Close Topic   Unfeature Topic   Move Topic   Delete Topic next oldest topic   next newest topic
 - Printer-friendly view of this topic
Hop To:


Contact Us | Synthetic Reality

Copyright 2003 (c) Synthetic Reality Co.

Powered by UBB.classic™ 6.7.3