Mar 10 16:05:30 BEGINLOG! Mar 10 16:05:37 oki, it seems some people who I would've liked to have here couldn't make it, I guess we'll have to do without them or see if they drop in Mar 10 16:05:41 So it'd be better to behave now? ;-) Mar 10 16:05:50 yeah, some4thing like that Tomsik ;) Mar 10 16:06:07 anyway, I thought that we'd start off by a short introduction of the new people here Mar 10 16:06:30 me, freestream, pietro and zorbeltuss have introduced ourself officially on the forum, but we don't know much about you guys Mar 10 16:06:44 care to say a few words? =) Mar 10 16:06:47 Umm.. Mar 10 16:06:49 Hello! Mar 10 16:07:01 My name is.. oh wait's you don't mean that? :-p Mar 10 16:07:24 let's see Mar 10 16:07:28 actually, I was more thinking along the line of why you folks ended up here, and what you have done before coming here Mar 10 16:07:30 Well, I can use c/c++ and would like to help, although I'm quite lazy Mar 10 16:07:39 Hi im GigaClon in the USA nice to meet you Mar 10 16:07:40 a small kind of curriculum? Mar 10 16:08:11 karagh: nah, just a few words for now, could be good to know what kind of people I'm talking with :) Mar 10 16:08:31 Hm, some patches for wesnoth, some little stuff for h-5(which is dead anyway), some WML, made VAIN with EP and some help from xan Mar 10 16:08:36 well, you know me roze ;-) Mar 10 16:08:51 yeah, I do, but the rest probably don't got a clue :) Mar 10 16:09:03 Let's be mysterious! Mar 10 16:09:07 Well, pietro does Mar 10 16:09:45 GigaClon and karagh: what do you do for a living, and what part of the game are you interested in? Mar 10 16:09:50 i like strategy games, and i'm fan of final fantasy tactics so. i saw this project announced in happypenguin and... Mar 10 16:10:07 ah, it was a good move to keyword it then ^-^ Mar 10 16:10:12 im currently looking for a job Mar 10 16:10:22 karagh: on a sidenote, you should try to play tactics ogre, it's damned good :) Mar 10 16:10:37 and im interested in the model of game mostly Mar 10 16:10:49 GigaClon: care to expand what you mean with model? Mar 10 16:10:51 YellowRoze, already played it :P Mar 10 16:10:52 lots of good strat rpgs Mar 10 16:11:21 like the character and the stats and the items Mar 10 16:11:24 the backend Mar 10 16:11:39 GigaClon: the game rules and logic, design Mar 10 16:11:50 yes Mar 10 16:12:22 sound good, that's what should make a game interesting in my point of view, I'm sick and tired of overly flashy things which lack soul :) Mar 10 16:12:28 i work at the university, in electronics. althought i play a lot of freeware, i never worked in anyone Mar 10 16:13:27 karagh: interesting, I was studying electronics once but I found it more enjoyable to work theoretically than practically, thus coding comes natural Mar 10 16:13:52 It's nice to have you on board Mar 10 16:14:04 Actually, I think it's good to keep graphic simple to don't attract Evil Ones so you get only nice people Mar 10 16:14:16 to be frank, I have a horrible statistic when it comes to completing projects, like, 1/~50 done so far :) Mar 10 16:14:31 It's quite normal :-) Mar 10 16:14:31 me too Mar 10 16:14:33 so having more people to encourage me is a good thing Mar 10 16:14:36 YellowRoze, i go to the other side then, i prefer practical part. Mar 10 16:14:54 I have redone my personal project from scratch like 4 times Mar 10 16:15:14 karagh: something like that, but theory alone won't create a good game, it needs reallife experience, testing etc. that's where you come in, I take it? Mar 10 16:15:51 I'd like to know if there is anything in particular you ahve though about with how the project is managed that in your eyes could've been better Mar 10 16:16:02 what do you mean Evil Ones? Mar 10 16:16:03 yeah, i think Mar 10 16:16:37 as a project leader I see things mostly from my own perspective, and may easily miss obcious things. new people tend to see things I don't, so if there's anything that I could do to better the experience, let me know. Mar 10 16:16:50 GigaClon: tomsik refers to people who don't like what he likes :) Mar 10 16:17:50 Usually it's "stupid, arrogant and 1337-haxx0r-ish" Mar 10 16:17:56 hehe.. Mar 10 16:18:09 lets just say that it's a bad idea to spell you with 'u' near Tomsik :) Mar 10 16:18:11 emm, putting the svn at my place would be a good choice speedwise Mar 10 16:18:17 also I will be proofreader Mar 10 16:18:50 Zorbeltuss: I could consider mirroring it, but I need to be able to manage the server it's on, and I can't move my own as is.. Mar 10 16:18:57 ehh, I get these odd stuff again Mar 10 16:19:22 earlier today I gave Tomsik and GigaClon commit access Mar 10 16:19:35 audio_inited_ HAS to be true but stuff in if(!audio_inited_) {} executes.. Mar 10 16:19:39 I'd like to know if you want to be listed as participating in the project on the website etc Mar 10 16:19:40 Well, iam off now. Have fun everyone! Mar 10 16:19:42 hte project management will be improved from this meeting, we need area leaders, and this should be cleared today. Mar 10 16:19:47 What idea do you have about how turns should work? Mar 10 16:19:49 yeah Mar 10 16:19:58 karagh: agree, tis' a later point in the list Mar 10 16:20:29 GigaClon: pm me name, and otionally mail and jabber and I'll put you up as a contributor Mar 10 16:20:47 - Newcomer Status (Who are these new fellas, what can they do, what can we do for them?) <- lets call taht line finished, and head over to this: Mar 10 16:20:55 - Developer Status (Who does what, who is good at what, what about the TODO?) Mar 10 16:21:10 Currently, this is how it works within the project: Mar 10 16:21:39 I lead it, and write code occasionally, but mostly I'm a jack of all trades that does what is needed to be done. that means I produce less than average quality for most things Mar 10 16:22:01 whenever something is to be done that someone else can do, I try to push it, those pietro have been working a lot, big thanks to him ^-^ Mar 10 16:22:25 I'm main arbitor about code things Mar 10 16:22:42 as I pointed out this also means I'm far from the best at what I do, so pietro actually teaches me how to code in quite a lot fo situations, so whenever it comes to code, I've put pietro as the reviewer Mar 10 16:22:54 Pietro checks code for quality Mar 10 16:23:23 however, as I have a pretty clear idea of what _i_ want to create here, i'd say that most design decisions are made by me. Mar 10 16:24:04 now that can be both good and bad, but generally it seems to turn out just about right Mar 10 16:24:07 Urgghhh.. Stop urge to use bad words while it's logged.. Mar 10 16:24:16 can you tell me Mar 10 16:24:25 that's how it's been up til now Mar 10 16:24:37 it would be nice if you could write down a good portion of your ideas Mar 10 16:24:45 how it is possible to audio_inited_ == false and audio_inited==true be true AT SAME TIME?! Mar 10 16:25:02 that also means that outside contributions have been slow, something I intend to change today Mar 10 16:25:07 Tomsik: let's look at that later Mar 10 16:25:42 >YellowRoze< name David Wilson Mar 10 16:25:52 I'd like to know if anyone has a will or desire to take a certain part of the game and work with that, and call it 'your field' Mar 10 16:26:39 I guess everyone should do what he does best Mar 10 16:26:41 as stated I would like to work mostly on the backend Mar 10 16:27:05 i can do something Mar 10 16:27:28 we should clarify the part that compose this project? Mar 10 16:27:36 "parts" Mar 10 16:27:39 karagh: you're right Mar 10 16:27:58 i'd like to take a field but as said before the meeting, i have to test what remains of my codingskill first Mar 10 16:28:21 we dont' have any defined parts to people to take, you have to create a name for what you'd like to do yourself :) Mar 10 16:28:43 Zorbeltuss: then start out with trying to code, if you want I can have pietro find some easycoding tasks Mar 10 16:28:48 adn you can start there? Mar 10 16:29:13 to make things simple, I'll cut down the game into some subjects: Mar 10 16:29:13 art, coding, design, testing Mar 10 16:29:31 ok, that would be nice Mar 10 16:29:35 coding can be split over engines, systems and game, I'll get to that later Mar 10 16:29:36 contents part: create stats for classes, descriptions, skills,... Mar 10 16:29:44 karagh: got me! :) Mar 10 16:29:52 as karagh noted, we have game content as well Mar 10 16:30:36 design would be how things should work, gamelogic and coding wise Mar 10 16:31:02 I've claimed the gamelogic field, but I welcome anyone to share it or help out Mar 10 16:31:20 for the code design part, I want to look it over, but I'm not skilled enough to be responsible for it. Mar 10 16:31:38 yeah I have some ideas for weapon/armor Mar 10 16:31:53 up until now I've shared that with pietro, and unless someone what to take the role of ensuring that code is designed logically, we'll stay that way Mar 10 16:32:00 i can help with code design Mar 10 16:32:14 ive read the Gang of Four book Mar 10 16:32:47 GigaClon: good to know, then if things looks good and dont' directly contradict my opinions, I'll probably leave it to you or you and pietro to handle how-to-code Mar 10 16:33:02 testing is pretty obvious, I take it Mar 10 16:33:09 Jolt^: you fit in there? =) Mar 10 16:33:29 do we have plans to do any unit-testing? Mar 10 16:33:32 and art, well, lets discuss that when we got the artists, shall we? =) Mar 10 16:33:43 GigaClon: good thing you asked, I've been thinking about it Mar 10 16:33:59 GigaClon: however I've never gotten around to bother, as we're still quite small in codesize etc. Mar 10 16:34:20 ah but the best to start testing is when it is small Mar 10 16:34:36 yep Mar 10 16:34:47 GigaClon: I suggest we leave unittesting to discuss among us coder, so we don't take up karaghs time during the meeting, he only had about half an hour (which has already passed :) Mar 10 16:34:58 ok Mar 10 16:35:06 - General Design (*Engine, *System, Game*) Mar 10 16:35:19 or wait, lets start with - Character Design (Attributes, Effects, Equipment. Who is responsible for what?) Mar 10 16:35:27 YellowRoze, i have some more time, ~ 15 minutes Mar 10 16:35:41 karagh: then lets spend it on something your interested in? =) Mar 10 16:36:03 in what you last pointed, for example Mar 10 16:36:20 i think i can work there Mar 10 16:36:34 you already have, to some extent Mar 10 16:36:36 i would also like to work some there Mar 10 16:36:49 interesting situation Mar 10 16:36:53 since I would also like to work there :D Mar 10 16:37:05 I bet we want to do slightly different things Mar 10 16:37:16 sure :P Mar 10 16:37:31 so far karagh, you've been working on content and it's implications Mar 10 16:37:38 you've been writing names, effects etc. Mar 10 16:38:09 if this is what you'd like to do, then it would be great, as it's a very timeconsuming process, and we have a lot of objects to create Mar 10 16:38:38 yep, i need to practice my english Mar 10 16:38:46 of course, when something doesn't work, the system is too vaguely defined etc, you'd be letting us know so we can adapt the system, or deny your request ^-^ Mar 10 16:39:05 GigaClon: if I understood right, your interested in _both_ the coding of it, and the design of it? Mar 10 16:39:10 yeah Mar 10 16:39:43 Pietro_S: YellowRoze: see if it's acceptable http://81.168.250.247/patch.diff Mar 10 16:39:49 Then we'll split the design somewhat, whenever somethings new, I need to know about it. Mar 10 16:40:32 GigaClon: so I'd be glad to get new ideas, different points of view and so on, but I also need to assure that it is still the game I intended for ti to be. Mar 10 16:40:46 GigaClon: does that work for you, for the moment? Mar 10 16:40:50 yes Mar 10 16:41:34 good, the further we come, the more I take it you wil start seeing things my way, and I yours. and then it won't be as important who takes decisions, but until you get a similiar idea as to what game we are creating, I need to look things over Mar 10 16:42:27 karagh: you've been working a lot on the chance to hit forumula, or rather, on it's implications Mar 10 16:42:48 for the math side of things I guess it would be nice if msx had attended, but we got a decision to take here Mar 10 16:43:00 oh btw, I think it should be something more like n^3 Mar 10 16:43:18 n^3? Mar 10 16:43:29 because, if there's small diff in skills, then there should be small diffrience in CTH Mar 10 16:43:29 http://tactical-rogue.mine.nu/forum/viewtopic.php?t=37 <- for those of you who haven't read about the cth formula Mar 10 16:43:33 actually you also can use my good knowledge/talent to math Mar 10 16:43:56 Pietro_S: good to know, I had no idea you were into math :) Mar 10 16:44:02 ok, i take care, till someone better comes Mar 10 16:44:05 (or maybe I did and just have a blackout :) Mar 10 16:44:06 I checked it and with small modification it can be coded Mar 10 16:44:22 hold it Mar 10 16:44:31 the decision we need to take is design wise Mar 10 16:44:37 we have on one side: simplicity Mar 10 16:44:45 sure I hold it, I just checked it if it's usable idea Mar 10 16:44:47 and on the other: complexity Mar 10 16:45:30 the question is if we want users to be able to compute it or not ... Mar 10 16:45:34 with simplicity we get formulas that the player can understand, and which the player when playing, can get to know, and get a feeling/understanding of. Mar 10 16:45:56 YellowRoze, you keep using take when you mean make Mar 10 16:45:57 how about (attacker-defender)^3+50% Mar 10 16:45:59 it also means ease of maintaining, but all this at the cost of some very very skewed results when we get big numbers Mar 10 16:46:00 decision to make Mar 10 16:46:26 GigaClon: thanks for pointing it out :) Mar 10 16:46:27 you can basically combine them if you pregenerate the sigmoidfunction and only check a table at execution time, but that may be harder an more complex in c++ than matlab Mar 10 16:46:45 because hight skill diffriences should make even bigger diff in CTH Mar 10 16:47:25 Tomsik: that formula expects attacker-defender to be >1 or <1 ? Mar 10 16:48:08 i must leave, see you all Mar 10 16:48:12 oh wait (attacker/defender)^3 Mar 10 16:48:17 karagh: bye Mar 10 16:48:25 see ya Mar 10 16:48:26 karagh: I'll post the log ont eh forum, have a nice day/night/whatever Mar 10 16:48:40 * karagh has quit ("Leaving") Mar 10 16:49:15 Tomsik: if the computed value is < 1, then ^3 is a good thing, as it makes the difference smaller. how do we ensure that it stays < 1 ? Mar 10 16:50:31 we're getting off-track btw, we're not here to discuss the exact formula, but if it should stay true to simplicity, or if we actually need to add some complexity to make it playable Mar 10 16:50:50 Tomsik: to that patch: 1) Do getter to audio_inited_ Mar 10 16:51:09 Hm? What do you mean? Mar 10 16:51:31 2) Make general function to parse when function should be skipped Mar 10 16:52:14 YellowRoze: erk, I do think too much like an infomatic about complexity Mar 10 16:52:14 3) When audio is turned off, all functions like playing sounds/ music should return true Mar 10 16:52:21 I obviously assumed some const before it Mar 10 16:52:33 and maybe luck Mar 10 16:53:03 luck*0.4*(att/def)^3 (or 2 if it works better) Mar 10 16:53:40 and if attacker has more than 2.5 skills of the opponent, uhh, why shouldn't he get sure hit? Mar 10 16:53:49 always though you can make it max 95% or something Mar 10 16:53:53 Zorbeltuss: you have read the thread on the cth as well as the result tables? Mar 10 16:54:20 Tomsik: yes, min of 5% and max of 95% (or thereabout) is needed Mar 10 16:54:29 min? dunno Mar 10 16:54:36 Tomsik: what happend if def = 0? Mar 10 16:55:04 Pietro_S: mathematically we can solve it by ((att+1)/(def+1)) Mar 10 16:55:14 it don't give the exact same results, but close enough Mar 10 16:55:22 Pietro_S: exception? Mar 10 16:55:29 if def == 0 -> 95% Mar 10 16:55:49 either way I don't really like that fact that if (att/def) > 1 we give the attacker an even bigger advantage Mar 10 16:56:42 YellowRoze:checking the tables now, i have read the thread though Mar 10 16:56:52 yes that function isn't very good Mar 10 16:56:56 Zorbeltuss: when you read the tables, bear this in mind: Mar 10 16:57:12 Zorbeltuss: when stats get very out of hand and very big, is the results acceptable? Mar 10 16:58:05 make it (attacker/defender)^100*luck ! ;-) Mar 10 16:58:27 eh Mar 10 16:58:31 so, by default: (attacker/defender)^5000 ? =) Mar 10 16:58:39 why not? :-p Mar 10 16:59:18 See: CTH should grow faster than diffrience in skill Mar 10 16:59:52 hmm, even it's important decision, I think that we won't need it for some time ... Mar 10 17:00:57 Pietro_S: we need the decision so that we can start making the other formulas. We need to know if we should strictly stay with simplicity, like in dungeons and dragons and most pen & paper rpg's, or if we should harness the power of the CPU to do inhumane thinsg Mar 10 17:01:48 I would vote for more complex, but better statisticaly/fair function Mar 10 17:02:14 YellowRoze: i've read it, and it seems exactly like the way i would've wanted it if it was my game Mar 10 17:02:28 but don't want me to make it in 5 mins, I think we will debate about it at least 14days Mar 10 17:02:30 Pietro_S: so your vote would go to the sigmoid function? or even more statistically fair? Mar 10 17:02:54 Zorbeltuss: the one with sigmoid, or the one without? Mar 10 17:02:59 sigmoid fce is fine for me Mar 10 17:03:52 but this game shouldn't be only for math's geeks ... Mar 10 17:03:59 why not? ;-) Mar 10 17:04:21 actually, I don't like sigmoid Mar 10 17:05:02 because it should more like x^2 or x^3 rather than log(x) Mar 10 17:05:32 x^3 from range <-1, 1> should be Mar 10 17:05:40 other ranges not Mar 10 17:06:01 well as i said earlier, you can have a pregenerated number of values and interpolate the result incase it isn't on the list, ineffect: low complexity for code wilst the dymamics of the complex code Mar 10 17:06:26 tables are evil Mar 10 17:06:44 Zorbeltuss: the question was if you think the one without sigmoid is playable even if we get big numbers Mar 10 17:06:56 Zorbeltuss: interpolates to nearest table value? Mar 10 17:07:00 Tomsik: they have ruled HTML for too long! :) Mar 10 17:07:08 heh Mar 10 17:07:11 Pietro_S: (a1+a2)/2 Mar 10 17:07:39 ah I have an idea! Mar 10 17:07:52 sigmoid(att/def)^3 :-p Mar 10 17:08:00 * Pietro_S goes for dring Mar 10 17:08:05 drink* Mar 10 17:08:09 i would say sigmoid all the way, but it's not up to me it's up to those who code, isn't it? Mar 10 17:08:33 Zorbeltuss: it's up for us to choose if we want simplicity, if that is good enough, or if we want to add complexity Mar 10 17:08:50 Zorbeltuss: don't care about code, when I tell that it can be coded, it can. Mar 10 17:08:50 I'd say complicity Mar 10 17:09:54 it seems all but me prefer the complex form, so we will use that unless someone complains :) Mar 10 17:10:08 I would vote for something else than D&D Mar 10 17:10:09 now, over to a more recent and interesting issue: the stat/character attributes Mar 10 17:10:37 w00t\ Mar 10 17:10:52 There has been a lot of talking and a lot of thinking Mar 10 17:11:01 and somethings that were true when we started this, is not true now Mar 10 17:11:09 Pietro_S: its not that i meant, 3 years of coding matlab, i know that it can be coded, i meant that i don't really have a way of telling how the current coders would want to implement it Mar 10 17:11:29 for example, there is a stat that can get reduced without needing effects and modifications: alignment Mar 10 17:12:06 sigmoid(x) = (tanh(x/2)+1)/2 Mar 10 17:12:16 well, tanh is in math.h Mar 10 17:12:39 So we need to define what varaibles should be covered by the stat class, so that we know what the stat class has to be able to do Mar 10 17:12:58 we also need to define what the stat class should be responsible for Mar 10 17:13:23 I think that alignment should have quite "small" range let's say <-10,+10> Mar 10 17:13:56 if we go back to before GigaClon made the stat class, the character class had a function for returning the 'effective' value for a given attribute Mar 10 17:14:04 or use it as enum [pure evil, light evil, neutral, light good, pure good] Mar 10 17:14:14 here i will not give opinions, my thoughts wouldn't fit on a "violent" rpg implementation Mar 10 17:14:27 Good and evil? :-/ Mar 10 17:14:38 opinions are always good Zorbeltuss Mar 10 17:14:40 it is of my understanding that this functionality got ported over to the stat class, so we need to take into consideration whether or not ti belongs there Mar 10 17:14:41 That's so.. generic.. Mar 10 17:14:57 and untrue actually Mar 10 17:14:59 Tomsik and Zorbeltuss: Good and Evil are not to be used for alignment measures Mar 10 17:15:08 or use it as enum [pure evil, light evil, neutral, light good, pure good] Mar 10 17:15:09 Rather Chaotic -> Balanced Mar 10 17:15:41 Pietro_S: what motivation is there behind your suggestion? Mar 10 17:15:43 or Selfish -> Selfless Mar 10 17:15:58 no i was slow at writing i meant no opinions on stat/character attributes Mar 10 17:16:09 GigaClon: well, everyone is selfish Mar 10 17:16:09 I just wanted to point that we want for some items to be usable only for some alignment Mar 10 17:16:23 even altruists are Mar 10 17:16:25 GigaClon: I agree with tomsik, there is no altruism in the world Mar 10 17:16:38 Altruist ARE selfish Mar 10 17:16:41 Pietro_S: yes, we can do that by defining thresholds Mar 10 17:17:08 because they do what they do just because they want to fulfill their needs, what's selfish Mar 10 17:17:20 the way I read the "D&D" definintion of chaotic is that they act with no regard for anything but themselves Mar 10 17:17:45 now alignment is just int, question is how we will present it to players Mar 10 17:17:51 I think Lawful/Chaotic like in Chaos and Law is ok Mar 10 17:17:57 GigaClon: D&D defines it something along those lines, we will define it slightly different, less specific, more vague Mar 10 17:18:32 Pietro_S: we will present it as a % value Mar 10 17:18:33 Like lawful ones do follow laws, their or of country Mar 10 17:18:36 it goes from 0..100 Mar 10 17:18:42 and chaotical ones just do chaos Mar 10 17:19:16 Tomsik: lawful according to D6D means with respect for traditions and social rules Mar 10 17:19:29 where chaotic is without said respect Mar 10 17:19:45 that's why a thief won't steal if he's lawful, it's against the social rules Mar 10 17:19:53 I don't see D&D as my moral and ideological dogma :-/ Mar 10 17:20:04 me eithere Mar 10 17:20:23 I don't think it is good to stick to D&D Mar 10 17:20:26 question, how will alignment effect game play Mar 10 17:20:31 It makes things too generic Mar 10 17:20:34 GigaClon: good question Mar 10 17:20:48 i was bringing it up as a baseline Mar 10 17:20:51 Actually, agliment thing is quite silly Mar 10 17:20:54 The basic idea was to use something similiar to Ogre Battle - March of the Black Queen Mar 10 17:20:57 I'd rather have karma Mar 10 17:21:23 Tomsik: karma? Mar 10 17:21:33 Yeah, you do good things, you get + karma Mar 10 17:21:34 That when you perform choices or act in a way that goes inline with either high alignment, or low alignment, then your alignment changes Mar 10 17:21:38 you do bad things you get - Mar 10 17:22:13 so -1000 would mean you're a supervillian and 1000 a superhero Mar 10 17:22:17 0 you're just a guy Mar 10 17:22:20 So if you attack someone far weaker than yourself, you lack compassion, it's the opposite of "order", and thus your alignment lowers if it isn't lower then the action you just performed Mar 10 17:22:41 if you get a choice in-game of either stealing or not stealing, the choice not to steal would raise it, if it isn't high enough already Mar 10 17:22:50 I think it worked like this in fallout Mar 10 17:23:12 Tomsik: that's more or less the alignment I'm talking about, only it goes from 0..100, where 50 is a normal dude Mar 10 17:23:25 and what about to have dark / light force, two separate ints so you can see how much times you did good things and bad ones Mar 10 17:23:28 but you don't choose your karma, your doings change it Mar 10 17:23:39 Tomsik: yes, so do they here Mar 10 17:23:50 but also big karma means fameous Mar 10 17:23:50 than we can compute it to some % and that % we can use for items ... Mar 10 17:24:12 Pietro_S: we can't define good and bad, as many things lies in teh gray shades Mar 10 17:24:12 I like idea of two values Mar 10 17:24:18 or high alignment does more damage to low alignment and viceversa Mar 10 17:24:26 Actually, good and evil doesn't exist Mar 10 17:24:43 GigaClon: your alignment won't modify amount fo damage you do to the opposite side Mar 10 17:24:55 GigaClon: however, there are 2 attack types that does! Mar 10 17:24:56 How about morale? Mar 10 17:25:16 There are hoyl and unholy damage types, which deal damage based upon enemy alignment. Mar 10 17:25:26 If something is agnist your agliment too much, you can fail to do that because your guy refuse to do that Mar 10 17:25:27 Tomsik: no morale as of now, maybe later Mar 10 17:25:50 Tomsik: that's a bad thing, what if you _want_ to go to the evil side when you're good? Mar 10 17:25:55 Like good guy won't kill children for fun Mar 10 17:25:59 you character shouldn't prevent you, it should be free to do so. Mar 10 17:26:07 and your alignment will change accordingly. Mar 10 17:26:41 But it would be more realistical Mar 10 17:26:54 Tomsik: we're not after realism, we're going for fun play Mar 10 17:27:10 and people tend to find it funny to sloughter innocent children in video games >_< Mar 10 17:27:10 Also, a lich won't save a children for price of his own life Mar 10 17:27:21 it would be fun IMO Mar 10 17:27:21 -o + a Mar 10 17:27:24 Tomsik: but if you want special for you we'll implement kid's mode where killing small kids and raping woman won't be possible :) Mar 10 17:27:36 if we were going for realism we would be programing on the XBOX 360 Mar 10 17:27:42 ? O.o Mar 10 17:27:52 What does it have to do with realism? Mar 10 17:28:11 GigaClon: no, we'd be programming on the cluster over at the centre for developement in japan :P Mar 10 17:28:17 Heh Mar 10 17:28:21 now, put that aside, we have questions which need answers. Mar 10 17:28:24 yeah just at GTA Mar 10 17:28:34 the stat class Mar 10 17:29:02 it's a good thing, it simplifies a lot and it's the correct way to handle the many attributes a character can have Mar 10 17:29:14 but we need to define what it can and can not do, and what it should and should not do. Mar 10 17:29:28 we know i _has_ to be able to manage the attributes of a character Mar 10 17:29:46 mainly modifcations Mar 10 17:29:46 that means, it has to have min and max values, it has to be able to increase and decrease values. Mar 10 17:29:58 those are given Mar 10 17:30:15 now, is it anything else they have to be able to do? Mar 10 17:30:50 well right now it keeps a list of modifications to a stat Mar 10 17:31:04 yes, but does it _have_ to do that? Mar 10 17:31:26 what do we gain from putting the responsibility of doing that on the attribute themselves? Mar 10 17:31:33 I think so because it doesn't keep a modified value in the class Mar 10 17:31:41 yes it has, because without it you won't be able to unequipe item/modification Mar 10 17:31:51 is it logical that a simple thing as an attribute should be know anywthing at all about other things? Mar 10 17:31:59 we calculate it every time we get it Mar 10 17:32:23 it doesn't Mar 10 17:32:23 Pietro_S: I disagree Mar 10 17:32:43 all it knows that can be modified by "somethign" Mar 10 17:32:44 GigaClon: I think that this we can change, but I still think that list of modification needs to be there Mar 10 17:32:47 Pietro_S: I think that if we do calculate it at accesstime, there is no reason why one shouldn't get a different value if we unequip Mar 10 17:32:50 it doesn't know what that something is Mar 10 17:33:15 GigaClon: correct, now, if ti doesn't know what is happening to it, should it really happen? Mar 10 17:33:45 GigaClon: in the object oriented thinking, is keeping a list of id and values the correct thing to do? Mar 10 17:34:10 it knows what it is, it's modifications done with some item with unique id Mar 10 17:34:22 Pietro_S: what about spells? Mar 10 17:34:31 status modifgications such as disease/poison? Mar 10 17:34:51 both they can have same id Mar 10 17:35:05 signed int is enough big for all of them Mar 10 17:35:06 then it's not an item ID, then it's a modification ID Mar 10 17:35:41 bool cStat::deleteModifier( int id ) Mar 10 17:35:43 yes, a signed int is big enough, but I don't know, it doesn't feel right, design wise Mar 10 17:36:07 frankly i just ported what you did to a stat class Mar 10 17:36:09 umm Mar 10 17:36:22 I haven't though about it much Mar 10 17:36:25 GigaClon: yes, I dont' say anyone did anything wrong here Mar 10 17:36:35 wouldn't it be easier to just add to value when adding a modif and don't calculate it Mar 10 17:36:38 what I am saying is that it doesn't look like the best solution Mar 10 17:36:53 its not clear what it does (what is a modification in terms of code?) Mar 10 17:36:54 and sub when dequiping? Mar 10 17:37:11 Tomsik: that would leave horrrors if one manage to trash the game Mar 10 17:37:22 if one manage to Mar 10 17:37:25 "if" Mar 10 17:37:25 I think that it should be good to know how your items modify you stat together Mar 10 17:37:26 I propose we instead keep the stat class very very clean Mar 10 17:37:39 not just displaying restult Mar 10 17:37:43 and put back the functionality to calculate the 'effective' value on the cahracter class Mar 10 17:38:08 and that in the cahracter class, we do a more informative calculation Mar 10 17:38:12 so one can see that: Mar 10 17:38:28 that defeats the purpose of the class to begin with Mar 10 17:38:36 effective value = ase attribute + item modifiers + status modifiers + spell modifiers Mar 10 17:38:46 GigaClon: why? Mar 10 17:39:00 I made the stat class to cut down the repeative code Mar 10 17:39:15 the class still limits the top and bottom values, and takes care all over/underflows Mar 10 17:39:40 before you had like 9 functions that were all the same save one varible name Mar 10 17:40:04 GigaClon: yeah, I'm not saying we should have 9 new functions to calculate each effective value Mar 10 17:40:26 GigaClon: has right, the old code was very ineffective I do it as fast hack ... Mar 10 17:40:34 that would also need to be reusable and cleanly implemented, I'm saying that a dumb, dead-simple thing as an attribute should be just that. dead-simple Mar 10 17:40:54 I just think the stat class should know every thing about it self and be a self-contained as possible Mar 10 17:41:06 GigaClon: I agree Mar 10 17:41:12 KISS I say! Mar 10 17:41:19 YellowRoze: what you said violate concepts of OOP Mar 10 17:41:21 Let's stick to KISS Mar 10 17:41:28 Pietro_S: eh?! Mar 10 17:41:35 which means it should be able to calculate its own value Mar 10 17:41:41 Pietro_S: well, how is OOP a good thing? Mar 10 17:41:45 GigaClon: and it does Mar 10 17:41:52 GigaClon: it calculates _it's own value_ Mar 10 17:42:06 now, we dont' call it effective_value_for_intelligence Mar 10 17:42:11 we call it intelligence Mar 10 17:42:15 it's the base value Mar 10 17:42:36 we need another, also clean and good way, to calculate the effective value Mar 10 17:42:47 as the effective value is very different from the real base value Mar 10 17:43:03 BTW, calculating it each time is quite dumb Mar 10 17:43:08 Tomsik: OOP is a good thing :P Mar 10 17:43:09 if you get many of these.. Mar 10 17:43:31 actually, OOP is as good as non-OOP in general IMO Mar 10 17:43:43 there are some things that OOP is better Mar 10 17:43:52 Tomsik: I know, soon it will be changed to have some "cache" value Mar 10 17:43:56 but for some non-OOP is Mar 10 17:44:11 Tomsik: agree Mar 10 17:44:16 now lets get back to the subject Mar 10 17:44:28 why not just use the stat class to encapsulated all the values that the stat has Mar 10 17:44:40 it makes better design sense Mar 10 17:44:58 Non everything has to have some sense in it ;-) Mar 10 17:45:04 and how would you do modifications? Mar 10 17:45:04 * Jolt^ has quit ("<ยบ((((><") Mar 10 17:45:10 and forcing things to have sense is bad Mar 10 17:45:44 * xo1 (n=xor@hal9000.ost.sgsnet.se) has joined #tactical_rogue Mar 10 17:45:48 hello Mar 10 17:45:50 hello Mar 10 17:45:52 hello Mar 10 17:45:53 like foring life to appear to have some sense.. Mar 10 17:45:56 hello Mar 10 17:45:56 hi Mar 10 17:45:56 hello Mar 10 17:45:58 :) Mar 10 17:46:06 forcing* Mar 10 17:46:09 well this isn't life its a program Mar 10 17:46:16 And? Mar 10 17:46:19 life is a program :P Mar 10 17:46:20 What's the diff? ;-) Mar 10 17:46:22 GigaClon: if we are to stay with the stat class we have right now, and ahve it remain it's responsibilites, how can we make it cleaner, more obvious how it works and why? Mar 10 17:46:30 Yeah, whole universe is god's program Mar 10 17:46:50 GigaClon: how do we make it so that one can look at the code, and understand _why_ the effective value is different from the base? Mar 10 17:46:51 That's the only thing that a programmer should believe in ;-) Mar 10 17:46:58 what modificaitons that have been done, and why those have been done? Mar 10 17:47:14 Tomsik: but i dont believe in god. (see http://en.wikipedia.org/wiki/digital_philosophy) Mar 10 17:47:15 Tomsik: that pray for not finding bug in it ;-) Mar 10 17:47:18 Tomsik: in that case I hope god have forgotten where the reset button is :op Mar 10 17:48:11 how about this Mar 10 17:48:21 use good old polymorphism Mar 10 17:48:47 have a class "Modifible" Mar 10 17:49:17 have any object that can modified inherit from it Mar 10 17:49:57 store in the Stat class pointers to every object that modifies it Mar 10 17:50:02 Sorry if I write strange things, it's bit late here Mar 10 17:50:09 GigaClon: and then the modifiable class contain a cache value (effective value) as well as the formula for calculating it in a way that one can see how the calucaltion is done? Mar 10 17:50:36 I see something growing that is not needed Mar 10 17:50:52 no the stat class would have the effective value Mar 10 17:50:58 I think it would be good to stick to KISS, wesnoth works after all :-) Mar 10 17:51:16 me too Mar 10 17:51:25 but tell that to YellowRoze Mar 10 17:51:29 Tomsik: wesnoth has.. issues.. due to KISS Mar 10 17:51:33 Sadly, somehow I don't see how it is KISS-ish GigaClon Mar 10 17:51:42 YellowRoze: but it started Mar 10 17:51:48 start is most important Mar 10 17:51:59 it's better to have issues later than die early Mar 10 17:52:16 Tomsik: agree, it come a far way, but again. the KISS design ahs caused me as a content dev lot of headache that would'be easily been avoided by having more meetings and more thinking done :) Mar 10 17:52:28 GigaClon: where do we store the original base value then? Mar 10 17:52:42 in the stat class Mar 10 17:53:12 * GigaClon pulls out his umbrello Mar 10 17:53:14 YellowRoze: you don't like WML? ;-) Mar 10 17:53:21 "(23:51:05) YellowRoze: GigaClon: and then the modifiable class contain a cache value (effective value) as well as the formula for calculating it in a way that one can see how the calucaltion is done?" Mar 10 17:53:21 (23:53:24) YellowRoze: GigaClon: where do we store the original base value then? Mar 10 17:53:21 (23:53:38) GigaClon: in the stat class Mar 10 17:53:26 hmm storing pointers not ids can be dangerous Mar 10 17:53:41 first you're telling me that we will do one thing and then another, or am I jsut too tired to udnerstand? Mar 10 17:53:58 I think you are just too tired Mar 10 17:54:03 what time is it over there? Mar 10 17:54:08 Tomsik: it's not WML thats the problem, WMl could be great if they let the content devs access the inner workings of it so they could do things :) Mar 10 17:54:13 23:55 Mar 10 17:54:20 I use to go to bed 21:30 Mar 10 17:54:29 It's 23:55 here too Mar 10 17:54:43 same timezone even for me Mar 10 17:54:48 GigaClon: so we store both the cache value and the base value int he stat? Mar 10 17:54:56 yeah Mar 10 17:55:09 but for some attributes we don't need the cache Mar 10 17:55:16 it will always be the base value Mar 10 17:55:21 I fear that GigaClon as the only outsider from Eu, will have problems to catch us in full strengh Mar 10 17:55:45 Pietro_S: I use to talk with GigaClon before he goes to bed, bout 07:00 in the morning :D Mar 10 17:55:45 That's what forums are for I guess Mar 10 17:58:33 as you can catch, I don't like forums ... so it's hard to catch me on forum ... Mar 10 17:58:35 Well, I think it's time to start to like them :-) Mar 10 17:58:35 GigaClon: or we'll assume that for the sake of discussion, I can't guarantee alignment won't be modifieable by items/status mods, I just can't see a case for ti now Mar 10 17:58:35 And evil ring! Mar 10 17:58:35 We need it for LotR mod1111!!!1!!! :-p Mar 10 17:58:36 when you will have mask made from skulls, you probably aren't *good* guy Mar 10 17:58:36 Oh come on, these may be skulls of bad guys Mar 10 17:58:36 Pietro_S: a lawful shaman Mar 10 17:58:36 translate *good* in terms how your mothers would imagine you should act Mar 10 17:58:38 Pietro_S: wears skulls and can have high alignment Mar 10 17:58:38 heh Mar 10 17:59:08 YellowRoze: make it dark elf lawful shaman and it will sound almost like adom :-p Mar 10 17:59:24 oki and what about freshly cut human head? Mar 10 17:59:43 Pietro_S, Tomsik, stick to topic for a while, ok? Mar 10 17:59:44 What if he was a massmurder? Mar 10 17:59:56 if it doesn't have modifications then it is not a stat Mar 10 18:00:10 YellowRoze: sorry, I'm bit tired so I'm in a strange mood as I don't think anymore :-/ Mar 10 18:00:12 err a cStat Mar 10 18:00:17 GigaClon: interesting point. I disagree Mar 10 18:00:51 GigaClon: I believe that even if it can't take modificaitons, it still benefits from being a a type with range-checking for example Mar 10 18:01:10 yeah Mar 10 18:01:39 but range checking can be done in accessor methods Mar 10 18:01:48 GigaClon: is there a way we could solve this by having a base stat class, and extending it with functionality for modifications? Mar 10 18:01:53 as GigaClon said, we can handle it with polymorfism Mar 10 18:02:05 I don't know waht polymorphism is Mar 10 18:02:18 hm Mar 10 18:02:30 http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html Mar 10 18:02:31 look on logger Mar 10 18:02:36 if you have a pointer or a reference to a class that inherits from X Mar 10 18:02:58 i think its chapter 14 in that book Mar 10 18:03:01 Tomsik: what is X? Mar 10 18:03:01 you can pass it as arg for function that takes object of class X Mar 10 18:03:08 class X Mar 10 18:03:13 oki Mar 10 18:03:25 in every engine you point to cLog class, but nearly everywhere it's cDummyLog class which will do job Mar 10 18:03:29 Pietro_S: like we pass an refernce to an instance of a logger? Mar 10 18:03:34 so multiple classes can be passed to it Mar 10 18:04:05 meh, I'm too tired to parse all this and get something useful out of it. Mar 10 18:04:14 so I'll ask a more useful question Mar 10 18:04:23 yeah when you get a chance read the link i sent you Mar 10 18:04:43 GigaClon: will these changes be an upgrade, will it make things designwise better? Mar 10 18:05:01 since as I think I've said abunch of times: Mar 10 18:05:19 yes it will be more flexible Mar 10 18:05:45 you're better than me at coding :) Mar 10 18:06:12 then, for now we'll go with this, and hopefully I'll just forget it and do something more useful ^-^ Mar 10 18:06:22 - General Design (*Engine, *System, Game*) Mar 10 18:06:29 phew, almost done now :) Mar 10 18:07:01 I think that was last one.. Mar 10 18:07:15 I've already told pietro this, but I thought that for the new coders here I should share my standpoint when it comes to naming of classes and some general design ideas Mar 10 18:08:09 consider an engine to be a workhorse that does _one thing_ and one things only. It relies on nothing but it's own subsystems (cAudioEngine depend only on sdl_mixer, cVideoEngine only on sdl adn opengl etc, not on any actual game code) Mar 10 18:08:58 The engines are to be created and maintained in a strict black-box manner, they should be resusable and generic and if we take one of the engines out of it's context, is should still be able to perform work in another context. Mar 10 18:09:04 me and GigaClon will discuss objected oriented desing of stats later ... Mar 10 18:09:37 if we move the audioengine to lostlabyrinth or any other game it should work, it should perform it's very few limited set of functions Mar 10 18:10:01 Contrary to engines, the systems are more complex Mar 10 18:10:16 systems define logical rules, set of formulas of how things work Mar 10 18:10:43 when engines does only a few things, the system does _all things in realtion to what it handles_ Mar 10 18:11:10 actually with this I'm not so strict as Roze, for example it's good that even engines *depend* somehow on log ... Mar 10 18:11:16 the terrain system will keep track of loading terrains, displaying terrain, accessing terrain, reading data about terrain, well,everything related to terrain simply. Mar 10 18:11:39 Pietro_S: and I yelled at you regarding that, but for now i'll live with it, as it works, and i'm lazy :P Mar 10 18:12:11 the systems are the foundations for the game, they define each set of the game in a way that they could be reusable, but they don't have to Mar 10 18:12:35 things such as how classes are defined and used, terrains, characters and so on are systems Mar 10 18:12:49 finally, we have the game* classes, which concern our specific game Mar 10 18:13:01 these classes can depend and itnerdepend on whatever they like Mar 10 18:13:23 they are here as the glue to get things to work together Mar 10 18:14:00 they use the engines to communicate with the user (i/o), and the systems for knowing what to say and do. Mar 10 18:14:27 so when we define and create systems Mar 10 18:14:47 so most of the game content would be in Game* Mar 10 18:15:08 actually, I don't think so Mar 10 18:15:15 we should take special care that the system does everything, a full part of a game, and that it would work (with a little effort) in another game, or that it could be switched out in favour of another system Mar 10 18:15:24 most of the game content would be in the systems Mar 10 18:15:42 most of the interface would be in the game* Mar 10 18:15:49 see ya Mar 10 18:16:05 what you see, hear and push, will be usign the engines, on command of the game* Mar 10 18:16:05 Tomsik: good night Mar 10 18:16:18 Tomsik: g'night Mar 10 18:16:21 * Tomsik has quit ("#!/bin/rm") Mar 10 18:17:00 well, that's the basic idea really Mar 10 18:17:08 I hope it makes at least some sense? =) Mar 10 18:17:17 yeah Mar 10 18:17:36 so game* would contain main Mar 10 18:18:31 GigaClon: if c could've start a program by any class constructor, main wouldn't be needed and we'd be using a game* for that. but as things are with c, we need main(), so main() will just init some classes adn apss control to a game* class Mar 10 18:18:50 then the main game loop occurs inside gameLogic Mar 10 18:18:55 cGameLogic Mar 10 18:18:57 that is. Mar 10 18:19:14 oki, can we discuss another thing? - need for something which get rid of manual/pure Makefile Mar 10 18:19:53 yeah, we need something more sphisticated Mar 10 18:20:01 like gnu autotools Mar 10 18:20:21 as we can see it's a problem for newcomers to edit Makefile ... Mar 10 18:20:29 s/can/could Mar 10 18:20:33 <_< Mar 10 18:20:39 >_> Mar 10 18:20:46 you bet :) Mar 10 18:21:05 however, as some say.. autotools is a monster that eats children Mar 10 18:21:11 or, perhaps not that bad, but close to it >_> Mar 10 18:21:14 and with growing it will be harder even for me Mar 10 18:21:28 indeed Mar 10 18:21:42 GigaClon: suggest something better Mar 10 18:21:48 do we have any other suggestions? I personally think I'd actually like autotools Mar 10 18:21:56 scons Mar 10 18:21:59 GigaClon: can you give link for roze? Mar 10 18:22:02 even if it's a pain to set up, it's very smooth once it works Mar 10 18:22:09 scons.org Mar 10 18:22:19 GigaClon: you've set up scons before? Mar 10 18:22:38 i am using it my own projectg Mar 10 18:22:58 and are you happy with it? Mar 10 18:23:12 yes Mar 10 18:23:13 Then I'll read some about it when I'm not sleepiing, and I'll take a decision at a later date, for not the makefile will have to do. Mar 10 18:23:23 for now, not for not. Mar 10 18:23:27 - Release Plan (v0.1.1 and v0.2) Mar 10 18:24:03 I think that we should use scons/autotools in 0.2 Mar 10 18:24:13 when I released v0.1, I set up a plan for what needs to be deon before v0.2 Mar 10 18:24:19 that plan is a bit out of date now Mar 10 18:24:22 it needs changing Mar 10 18:24:31 and more importantly, it needs v0.1.1 nad probably more Mar 10 18:24:36 release early, release often Mar 10 18:24:49 so I'd like to take this opportinuty to do some release management Mar 10 18:25:09 every other friday/saturday? Mar 10 18:25:26 so btw. releases will be 14 days? Mar 10 18:25:32 I thought it would be a good idea to release v0.1.1 when the town got done, but I've come to realise that it will be better if it was a real milestone release, not just some fancy visuals. Mar 10 18:25:51 so when Pietro_S did the first work on terrains, I made a decision Mar 10 18:26:19 once the we've moved all hardcoded map-data out of the code, and into xml files, we release Mar 10 18:26:36 so if possible, I would like the focus to be on getting the release ready Mar 10 18:27:25 GigaClon: for your part, it would mean that you touch up that stat class, and when you're pleased with that, I'd like you to go through and fix //FIXME: and maybe some //TODO: Mar 10 18:27:46 Pietro_S: for your part it means finishing what you started with the terrain code Mar 10 18:27:48 ok Mar 10 18:28:06 on my part it means getting all the data into the xml files, and defining xml structures Mar 10 18:28:09 and for YellowRoze part it will be to finish syntax of xmls Mar 10 18:28:24 I will also update the website and prepeare announcements, fill in news on happypenguin, linuxgames etc. Mar 10 18:29:10 I don't want date based releases, but we'll be updating the v0.2 roadmap, and for each listitem, I want to do a release Mar 10 18:29:32 Generate characters. <- one release Mar 10 18:29:38 Implement turns and time. <- one release Mar 10 18:29:50 Implement basic fighting. Mar 10 18:29:51 Implement ugly simple ai (can hit = will hit). <- together these are one release Mar 10 18:29:56 before it I would put editor Mar 10 18:30:09 yes, editor will also be worthy of a full release Mar 10 18:30:21 and to generate charactgers, we need the classsystem, also a release Mar 10 18:31:43 well, that pretty much concludes the meeting Mar 10 18:31:56 the art discussions will be pur off for the next meeting Mar 10 18:32:05 and oh, evaluation: Mar 10 18:32:06 and then we should prepare for internationalization Mar 10 18:32:16 Pietro_S: that's post v0.2 Mar 10 18:32:23 oh what a ugly word I wrote :( Mar 10 18:32:45 yes Mar 10 18:32:46 it looks fine to me Mar 10 18:33:16 GigaClon: before this meeting, me and pietro was getting a feeling that things was going a bit slow, and lost of delays and that there was a risk of the new members loosing interest Mar 10 18:33:39 I'd like to know if that feeling had some truth to it, and I'd also like to know if this meeting changed that Mar 10 18:33:54 or rather, how this meeting changed how you look at the project Mar 10 18:34:13 -- End of project meeting -- Mar 10 18:34:18 ENDLOG!