Return to “Everything & Anything”

Post

Re: Taiya's IRC-based RPG

#34
Day 8
I managed to put in a couple more hours today. Much of it was focused on finally getting Debug Taiya to be able to actually run, so I could test out what I had in.

Features that are in:
- Starting a game
- Joining a game that hasn't started
- Putting in stats/skills/character name/gender
- At least two easter eggs
- Beginning the first turn
- getting an introductory paragraph detailing your character's background
- getting a list of options you can take on the first turn
- choosing an option
- Taiya creates AI players to fill in if there aren't enough human players

Things that aren't in:
- An unbuggy selection of second options (for some reason, it refuses to select any options for the second set)
- Any AI
- The ability to actually finish a turn
- Anything regarding the second option set

Things that don't work, but are in and just not hooked up
- Winning
- Losing
- Requesting something from another player



My current challenge is the option selection set. See, for each turn... Well, let's say there are 20 different types of options. First, it goes through and deletes the options that you could simply not use at all - for instance, paying off a debt when you don't owe anybody anything. That's pretty easy to cross off. Next, it goes through each remaining option and assigns percentage values (with some degree of randomness) based on:
- Your character's career
- Your previous actions
- Other things happening in the game (events and the like)

Then, it takes the top-scoring ones (again, with some degree of randomness) and shows them to you to select from. An example from earlier today:

<Taiya> Here are your choies for turn 1: >>A. Get to know the people around you, and make some new friends >>B. Spend some time hobnobbing to gain new contacts >>C. Spend some time on Zeus Station doing a little R&R >>D. Upgrade your hull and armor

Now, it's important to note that all of this is just placeholder text. I'll be adding a lot more variation and detail later on. I just haven't gotten to that yet. Unlike Josh, I'm a firm believer that polish and beauty should come last. :P Not first. My programs are always ugly to begin with. It'll improve. :)

Lycurgus helped me out in my freenode channel today, so I'd have someone to test with. We got a lot of little bugs and kinks worked out, and the outlook is pretty positive for tomorrow. :) Thanks, Lycurgus!



(By the way: I know these logs may not be as exciting as Josh's were, for a lot of reasons - because my game is smaller, my skill is less, and I'm not spending as much time on it daily - but it's as much for me as it is you guys. It holds me accountable. :) )
Have a question? Send me a PM! || I have a Patreon page up for REKT now! || People talking in IRC over the past two hours: Image
Image
Image
Post

Re: Taiya's IRC-based RPG

#35
Talvieno wrote:
(By the way: I know these logs may not be as exciting as Josh's were, for a lot of reasons - because my game is smaller, my skill is less, and I'm not spending as much time on it daily - but it's as much for me as it is you guys. It holds me accountable. :) )
Boulderdash young lad!!
It's the spirit that counts, and you've got it in spades.
Stop with the self-doubt and get on with it, wot wot?

Seriously, just be you Tal, we'll make comments if we want moar! :)
:lol:
YAY PYTHON \o/

In Josh We Trust
-=326.3827=-
Post

Re: Taiya's IRC-based RPG

#38
CSE wrote:Very interesting, Talv...
Can you not go around the "flooding" issue by having multiple bots (one for help pages, one for pvp...)?
Anyway, i may even have to install/use/learn IRC. I know only IRL....
Nope. If I connect too many devices, I get G-lined, which is basically a temporary ban from the server. Each bot is considered a "device". I already get G-lined anyway sometimes because of my brothers' insistence on staying logged in, even though they never talk. :D

Hexchat is a good way to go for IRC if you're looking for something permanent. Otherwise you can just use one of the kiwi/mibbit links floating around here. :)
Have a question? Send me a PM! || I have a Patreon page up for REKT now! || People talking in IRC over the past two hours: Image
Image
Image
Post

Re: Taiya's IRC-based RPG

#40
Day 9
I'm sure the forums were left in uproar yesterday. "WHERE TAL. WHY TAL NO POST. WHERE IS DEVLOG, TAL? :evil: " Well, calm down, keep your shirt on, it's not the end of the world. Tal's right here! :ghost:

Actually, I thought maybe it would be better if I wrote the updates early the next day, like Josh used to do. That means I'm not dead tired and about to pass out. :) Better for everyone! Then I can give you more text - hooray for walls! :lol: But in all seriousness, I do have a lot to talk about today, but unfortunately have not managed to complete the first turn! Actually, I'd forgotten a minor roadblock that I'm trying to work out...

To start the "coding day" off, I put in the rest of the core functions for handling the outcome turns - the parts where it calculated what would happen based on different factors, and adjusted your (and possibly someone else's) stats accordingly. Now that's all in for With and VS actions, which I needed to do before. I also discovered a bug in the prototype and spent a little time rebalancing. It should all be fine now. :) Unfortunately, while the code is there, it's not actually hooked up yet. That'll take some time. :) It wouldn't do any good right now, anyway. You wouldn't be able to tell what's going on. Actually... Taiya wouldn't even tell you a thing.

Annndd, that's the "minor roadblock" I mentioned a couple paragraphs ago. You can't actually tell what's going on yet because while the core functions are in place, there aren't actually any "outputs" visible to the players. I didn't need them in the prototype, because, well... the prototype AI only dealt with numbers and wouldn't have been able to do anything with text anyway. :shifty: But for players, they need what I'm going to call "Storytext" - stuff like this:

<Taiya> You notice a blip on the scanners, soon identifying it as the ship belonging to Silverware - and he has his weapons powered up. You quickly take cover, starting up your own weapon systems, and then loop around to attack him from behind. He's barely able to get away.

There are a lot of different "events" that need to be dealt with:
  • SELF Actions
  • VS Actions
  • WITH Actions
  • Game Intros
  • Loss messages
  • Win messages
In addition, there are 13 different "SELF Actions", 13 different "VS Actions", and 18 different "WITH Actions". (I feel like I need better names for these.) In addition, many of the VS and WITH actions have multiple possible outcomes. For instance, if you attack someone at random:
  1. You might kill them
  2. You might just deal a lot of damage
  3. You might miss them entirely
  4. They might come back around to attack you
  5. They might actually kill you
  6. You might not be able to find them (their discreetness too high vs your diligence (with some random elements involved))
  7. They might be too well protected (their defense too high vs your caution (again, with some random elements involved))
That's a total of seven outcomes, just for one action. Here's a total table of all the things I need to deal with:

- SELF Actions (x13)
----Option text (Displayed as an option to choose from)
----Explanation text (for when you use "explain A/B/etc"
-VS Actions (x13)
----Option text
----Explanation text
----Private outcome to self
-------Average of 2.8462 types total (not counting deaths)
----Private outcome to other player
-------Average of 2.8462 types total (not counting deaths)
----Public outcome
-------Average of 2.8462 types total (not counting deaths)
-WITH Actions (x18)
----Option text
----Explanation text
----Private outcome to self
-------Average of 1.6111 types total (not counting deaths)
----Private outcome to other player
-------Average of 1.6111 types total (not counting deaths)
----Public outcome
-------Average of 1.6111 types total (not counting deaths)
-Intro text (x1 min, but I've done 10, so one per class)
-Win text (x6 min, one per win type)
-Loss text (x3 min, one per loss type)

That's a total of 350 story strings I need to write, bare minimum. If I want to allow variations based on different relevant factors and classes, it bumps the total required amount up to 3895!! That's a ton of story-writing. If the average storytext line is 30 words long, I'm looking at either 10500 words, or, optimally, 116850 words. I'm writing a freaking novel here! :o Naturally, I'm only going to do the bare minimum to start out with. My old stint as master of REKT often had me writing 10k words per update, so just getting to the bare minimum should be no problem. If the game does well, and people enjoy it (or, I should say, after I fix anything people don't like so that they enjoy it), I'll think about upgrading the code so that the RPG feels much more like a true story generator.

I wrote a short Python script to quickly count up how many lines of story text I've done, and give me my progress - both to keep track of where I am, to encourage me, and give me something else to stick at the end of these devlogs. :) Because the code for story text is going to be so immense, I've already split it off from the main RPG logic into its own file, to try to keep things neater (and make it easier to deal with just the core game logic). :ugeek:

More tomorrow! Thanks for reading. :wave:

(Also, important note: I'm only able to manage, on average, a couple hours a day. :P I'm not getting paid for this, after all. :) )

storytext: 152 lines
file length: 1075 lines
percentage of file that is storytext: 14%
percentage of minimum complete: 43%
percentage of optimum complete: 4%
Have a question? Send me a PM! || I have a Patreon page up for REKT now! || People talking in IRC over the past two hours: Image
Image
Image
Post

Re: Taiya's IRC-based RPG

#43
Day 10
Today marks the tenth day since I've started on this quest. I've gained at least a level or two from XP, more than likely, and gained new ideas for other RPGs and games I could add... but I think I'll probably stop with this one. I think Taiya only really needs a single RPG. :P One is enough.


Channels and stuff

Lately in IRC, we've had a bit of a problem with Goatbot spam. Goatbot is Silverware's bot - and he plays blackjack. It's always easy to see when someone's playing blackjack, because the IRC becomes a wall of spam.
Spoiler:      SHOW
<DWMagus> gb deal me in for 50
* Goatbot draws [5 ♥] |}-{| for himself and [K ♦] [4 ♣] for dwmagus.
<DWMagus> hit
* Goatbot draws [10♠] for dwmagus and sees a BUST.
<DigitalDuck> gb deal me all in
<Goatbot> You need to be logged in to play blackjack digitalduck.
* Goatbot turns over [6 ♦] and draws [3 ♦] [5 ♠] for himself.
* Goatbot [5 ♥] [6 ♦] [3 ♦] [5 ♠] sees a score of 19 for himself.
* Goatbot Takes $50.00 from dwmagus;
It's pretty, colorful spam to be sure. I can't quite make an accurate representation of it here, but Silver's made cards with colored text and backgrounds. It's a good job - excellent implementation, besides the fact that you can't split. Nevertheless, I take two major things from it:

1. I want Taiya's RPG to be this fun
2. I don't want Taiya's RPG to spam this much.

#1 is the reason I'm trying to think of some long-lasting effect that you can have from playing/winning the game.
#2 is mostly the reason I decided to put the main gameplay in another channel - at least until I can be sure it won't spam the place up too much.

Progress
Yesterday was almost fully focused on more storytext. I got a lot done - but really, it's just a drop in the bucket. I had less coding time yesterday than I have in a single day since I began. :P I had a lot demanding my attention. Today should be better... hopefully. If all goes well, anyway. I've got some nice chillstep music going, and that should help me stay focused and working.

On that note: I've realized there are a few things I absolutely need to add in - things that bump the necessary lines of storytext up just a bit higher than previously predicted (such as actually informing you if you die in a duel, for instance). I may be slightly above 100% minimal by the time I'm finished... but perhaps I can find some things to shave off, too. :)

And finally... I need to find more questions to answer so I have more to write in these logs. :D

storytext: 190 lines (+38)
file length: 1161 lines (+86)
percentage of file that is storytext: 16% (+2%)
percentage of minimum complete: 54% (+11%)
percentage of optimum complete: 5% (+1%)
Have a question? Send me a PM! || I have a Patreon page up for REKT now! || People talking in IRC over the past two hours: Image
Image
Image

Online Now

Users browsing this forum: No registered users and 1 guest

cron