« first day (64 days earlier)      last day (3503 days later) » 
10:00 - 20:0020:00 - 00:00

10:03 AM
Monking
Hey, no reading up to do!
 
Monking @skiwi
 
Monking @SimonAndréForsberg
I feel like I need to make a mock-up of the GUI... but how
(without drawing by hand)
Do you know a tool that works I guess vector graphics? Paint seems a bit useless as you cannot resize things
 
10:34 AM
Ping: Approachable is better than simple.
 
11:00 AM
> Added templates files of the assignment.
 
Uh... what
The initial commit is before the real commit
Because it uses the time related to the commit
And my system clock on my virtual machine is somehow behind
 
12:19 PM
@skiwi Photoshop? Adobe Illustrator? SnagIt? How advanced do you want to be? :)
 
12:31 PM
@SimonAndréForsberg Not much advanced for just a mock-up
 
I enjoy SnagIt a lot, to structure things. It uses scalable objects. You can't really do anything fancy in it though :)
simply rectangles, lines and stuff
SnagIt is not freeware though
Gimp perhaps?
 
Gimp is like Photoshop :P
I'll just do an awesome mock-up in Paint then for now
It's horrible yes
This would represent the boardside of one player
Where left top denotes the cards on field, left bottom cards in hand, and in the right you have your decks at the bottom
Now the cards in hand show a timer that denotes how close the card is to getting destroyed due to time limits, with them being filled = discarded, reset per round
And left side denotes your three decks you have in play, with them being an early game deck, a mid game deck and an endgame deck, where the bars above them denote the chance of getting a card from said deck
 
12:48 PM
The discarding card feature is interesting, but I wonder about the real-time aspect of it. TCGs are normally turn-based, and everything we have done so far is turn-based. It would take quite some work to support that feature.
And as for the three different decks, it seems like that doesn't really have any real effect compared to only having one deck. The only difference is that now you see the probabilities of getting a card from each deck.
 
@SimonAndréForsberg I don't know... maybe if the ECS can supply a clock or a scheduled in which we can hook?
@SimonAndréForsberg There is a difference... The game progresses in awesomeness as time goes by, the three decks would have different strengths. The early game deck has weak cards, the mid game has good cards and the end game deck has awesome cards
 
@skiwi Sure it can, but there should probably be only one call to the client so that does this on its own, to avoid sending a message once ever 100ms or so that reduces the remaining time.
@skiwi How is it determined which deck you draw a card from?
 
@SimonAndréForsberg That's a good point
@SimonAndréForsberg By chance, and every turn the chance on mid & end game increases and early game decreases
And of course by special cards
and effects, etc.
 
The three different decks could be worth trying out in a mod in the future, but I am afraid that it just adds unnecessary complex for the players.
 
@skiwi for simple vector graphics I would use inkscape
 
1:02 PM
> Implemented initializing all values to prime and printing the primes to stdout.
 
@SimonAndréForsberg Well... I'm all up for doing things later, but currently the game is a bit dull, it's a very early alpha I know
 
First experiments should be trample and perhaps to give cards also health?
 
@skiwi What do you mean by give cards health? Change the attack system to be more like Hearthstone?
 
@skiwi I like the idea of timers on the card (reminds me of something like final fantasy 6) but we would have to play test it to know if it is fun. it could be. as for having 3 decks, I'm not so sure about increased probabilities to draw in the mid and late game, but it could work. Maybe instead of that, you could choose to switch from the early game to the mid game deck (and it would discard the early game deck). So you may want to do that earlier or later depending on the circumstances
 
1:04 PM
@SimonAndréForsberg Yeah, what we all seemed to want yesterday evening, at least I heard statements about it
@bazola That's also an interesting idea
 
@skiwi yes indeed.
@bazola that seems like a simpler version of @skiwi's idea.
 
i have another game idea that I have been messing with where there would be three decks. the problem is that you don't want to get in a situation where there is "not much point" in how you construct the decks. The beauty of hearthstone is that there are so many amazing combinations that come about when you can put any 30 cards together from the whole set. but if we could achieve that same feeling with 3 decks then it is an idea worth exploring for sure
 
> Refactored commandHandler setup
> Added getEntity in game and removedComponent for entity
> Added a method to call AIs in a game directly
> Added an IdleAI (unplayable)
> Made the getGameModel method an abstract method in ServerGame
> Improved the handling of commands for better integration with
JCommander. Also added an `AICommand`
 
also @skiwi @SimonAndréForsberg if you guys have never heard of Paint.net, that is an amazing program for something very simple that also has stuff like layers and filters
 
never heard of it
until now :)
 
1:19 PM
I heard about it
before now
 
paint.net is what I use for all my "programmer art"
 
> The client now remembers the username, using java.util.prefs.Preferences
 
^^ How have we survived without that? @skiwi @bazola
 
by putting it in each time?
 
probably yes
this seemed very useful though
 
1:33 PM
 
definitely :)
 
> Implement the Sieve of Eratosthenes algorithm without threads.
 
@bazola Only did it two times here.
One time when I wanted to play via the server, but instead clicked on local client. And the other one succeeded
Wondering if I can find some time this evening, out now for a bit then got to finish the assignment
Still got to implement threading in C where the threads take turns initially (only one accessing a shared structure at a time)
And then need to add real multi-threading mutexes
And write a report, but it doesn't seem too much of a work
 
 
2 hours later…
3:58 PM
> Using threads now to strike out the multiples, but not multi-threaded.
 
4:21 PM
[Cardshifter/Cardshifter] Zomis pushed 39 commits to issue10
> Merge branch 'client-server' of github.com:Cardshifter/Cardshifter into issue10
> Made sure that non-cards can't be targeted for Mulligan
> Dirty fix for stand-alone game client to simply skip Mulligan step
> Added support for Mulligan and other multi-target actions in game client
 
waiting for result from Travis
 
[Cardshifter/Cardshifter] build #307 for commit d60ec014 on branch issue10 passed
 
@Duga Thank you!
@skiwi @bazola Mulligan is now supported in the game client
 
[Cardshifter/Cardshifter] Zomis pushed 20 commits to develop
[Cardshifter/Cardshifter] Zomis deleted branch issue10
> Added a minimalistic SimpleGame
[Cardshifter/Cardshifter] build #309 for commit d60ec014 on branch develop passed
> added mockito dep
> improved ActionTest.testPerformAllowedAction and removed side-effecty things
> removed side-effecty ActionTest.used
> got rid of duplicated string literal
> Merge pull request #59 from janosgyerik/improved-actiontest

Improved actiontest, using Mockito. Thanks @janosgyerik
[Cardshifter/Cardshifter] build #311 for commit 1044e008 on branch ecs-utils passed
[Cardshifter/Cardshifter] Zomis pushed 5 commits to develop
 
@bazola When you're back to coding, it's time to git pull origin develop
 
@SimonAndréForsberg Cool :)
 
5:34 PM
> Minor cleanup of various methods in CardHand and BattlefieldZoneView
> Removed some minor commends
> Removed code duplication by making removeCardActive inside CardView
> Clearing targetable and clearing active is the same thing
> setTargetable is now an abstract method in CardView
@SimonAndréForsberg, your build reported bad status: Errored!
> Avoiding FindBugs warning. cardId *is* initialized but findbugs doesn't
know it because it's done with reflection.
 
Stupid FindBugs!
 
 
5:50 PM
@SimonAndréForsberg Reflection... Uh oh okay
 
@skiwi FXML.
FXMLLoader.
 
On what line was the error?
 
[INFO] Uninitialized read of cardId in new com.cardshifter.client.CardHandDocumentController(CardInfoMessage, GameClientController) ["com.cardshifter.client.CardHandDocumentController"] At CardHandDocumentController.java:[lines 18-116]
 
> Changed package of some view classes
 
@SimonAndréForsberg Ah I see... maybe a rule can be made about it, maybe not
I don't think so, most you can do is suppress the warning
 
5:57 PM
I'm simply avoiding it for now
 
 
6:15 PM
This assignment is extremely frustrating
 
6:35 PM
This code is.... not very frustrating
This game situation however, is very frustrating...
 
How so?
 
Didn't say it was frustrating for me :)
 
Doesn't seem too balanced
 
But perhaps we should consider a limit of the number of cards on the battlefield? :)
I'm just totally mastering the AI
 
> Corrected location of FXML documents
> Starting a new game no longer starts a new connection. Can now continue
being in lobby while playing, and also after playing a game.
> Avoiding NPE when a game ends
[Cardshifter/Cardshifter] Zomis pushed 10 commits to develop
> Added unsafe multi-threading.
[Cardshifter/Cardshifter] build #319 for commit 29c26209 on branch develop passed
> Especially components, systems, and events needs some good documentation.
 
6:51 PM
@Duga /s/documentation/smoking/
 
@skiwi gotta write it before you can smoke it!
 
Hey guys
 
Hey @Phrancis!
How are you is your leg?
 
Quite a bit better, thanks to 2400mg/day antibiotics ;-)
 
6:57 PM
IKR
 
that sounds like a lot
 
It is a lot. The pharmacist could not believe it.
 
are you still on 2400mg/day?
 
Yes, for another 8 days
 
wow
alright, I'm glad it's helping
 
7:00 PM
Good thing is, the doctor checked and it is not a blood clot, as far as she could tell; just infection from a wasp sting.
 
good good
are you allergic to wasps perhaps?
 
No... She said wasps here mostly live in garbage and are notorious for causing infections like this. Too bad I did not know that before, else I could have done something earlier
 
If I were allergic the reaction would have been very quick; rather, it took about 3 weeks to manifest
 
oh, I thought that the sting itself happened lately
3 weeks is a long time before getting a reaction
 
7:05 PM
Right. Stupid wasp was wounded and just laying on the carpet in the bedroom. I had gotten up at night and stepped on it. I cussed a bit but did not give more thought after disinfecting my foot.
 
Just managed to compile this in C
static int read_buffer_safe(int element)
{
    rsleep(100);
    pthread_mutex_lock(&buffer_mutexes[element / 64]);
    return BIT_IS_SET(buffer[element / 64], element % 64);
    pthread_mutex_unlock(&buffer_mutexes[element / 64]);
}
 
Congratulations...?
 
> Added mutexes to ensure safe multi-threading.
 
C appears to have interesting indentation
 
7:08 PM
similar to C#
although I think C can also use Java-style braces
 
Guess I'm more used to Java/PHP style indentation
 
me too
although I do use C# style when I do C#
...which is not very often...
 
I even use Java-style when writing SQL lol.
 
@Phrancis You want to play a game of Cardshifter?
 
7:09 PM
Sure thing! Let me grab the iPad real quick
 
iPad?
Cardshifter doesn't work on iPad....
 
Wait I thought I read Hearthstone lol. Yeah we can play, I need to get it to work on this computer
 
0.3 snapshot?
 
7:13 PM
Does it run without the server file now?
 
@Phrancis You will connect to my server, so you won't need the server
 
Oh ok. is it IP Address: dwarftowers.com Port 4242 ?
 
nope. stats.zomis.net
still port 4242 though
@Phrancis All features are not added yet so I will start a game by writing some server commands, when you're ready.
@Phrancis Sorry, my mistake... I can't start a game against us that easily. I'll get back to you about that
Closing server
 
OK
 
It won't take many minutes though I think
 
7:18 PM
No rush :)
 
Monking, @bazola
 
why don't you two just use version 0.2 and connect to dwarftowers.com
howsit going @SimonAndréForsberg
 
Linux people here?
If a diff between two files gives no output, that's okay?
 
@bazola because.... umm... I don't remember the differences between 0.2 and 0.3 :)
 
I'm really amazed the game has come this far along
 
7:21 PM
@skiwi sounds like it's the same content
@bazola it's going well. been doing a bunch of refactoring and new features today.
 
0.2 has all the features except mulligan and the better AI, i think
 
> Fixed issue when initializing the buffer mutexes.
 
@SimonAndréForsberg Then that sounds good
 
@SimonAndréForsberg I saw all the refactoring you have done. You put in a lot of hours this weekend! Sorry that I had it in such a bad state
 
@Phrancis Though there are a few gameplay things we should discuss
 
7:23 PM
 
Sure
 
@bazola Don't worry. You haven't used Java for very long so it's perfectly fine to leave the code in a bad state. I hope you will learn from what I did :)
 
i will make sure that I do
 
One thing first @Phrancis, how about giving monsters health?
 
I'm planning to make a branch @skiwi to improve balance issues, but what else is there?
 
7:24 PM
actually I have only been programming at all for a couple years, and every day it is something more complex than pretty much everything I have done before. slowly I am starting to see ways to reduce duplication
 
Or well, how did you want to make monsters have "health" @SimonAndréForsberg?
 
@Phrancis I think what @skiwi means is to have the monsters take permanent damage instead of going back to full health when not destroyed
 
What do we even have right now?
It's some kind of combination of health and defense?
 
right now they die if they take damage equal to or greater than their health, but otherwise recover to full health immediately afterwards
 
@bazola I'm also learning new things very often. And I've been programming for... 15 years...
 
7:26 PM
@bazola it is by design; Jay, Greyfox and I thought a YGO type health might work better for our design
 
the YGO type itself might work, but the cards really need to change in that case
 
It doesn't seem to be working/be fun here I must admit
Granted, we do not have a game yet
Like actual cards, etc.
 
maybe a good combination would be to have health stay reduced during the current turn, and only regenerate at the start of the next turn. the problem as we see it @Phrancis is that if the opponent has one 5/5, and you have a 4/4 and a 1/1 (or even another 4/4), you can't do anything against the opponent
 
I'm going to be working with them on balance and cards and such
 
What you see now is that a player can put up one "gatekeeper", reinforce it, and he is unkillable
 
7:27 PM
@skiwi damn, you know my strategy!!
 
@bazola interesting idea, let me run it by them first and I'll get back with you
 
@Phrancis Also two other ideas I had, about which we are not sure yet, are the following (enjoy playtesting one of them :P)
 
@Phrancis just to be clear, I am not actually saying that anything Needs to change, these are just the thoughts that we have had so far. the game that you played is not yet Totally implemented yet, because trample and mulligan are not yet in place
 
1. Have a timer on all cards in hand that randomly increases as your turn progresses, if the timer/counter reaches 100%, you lose that card in hand
 
@bazola with just a few git commands though, everything would be in place :)
 
7:30 PM
2. Have three decks, (early game for weak cards, mid game for normal cards, end game for strong cards), of which you randomly pick a card. The chance to pick a card from mid/end game decks increases as a game takes longer. @bazola also got an alternative for that
 
@skiwi I think your ideas would be too radical to implement now.
 
I left a message for Jay to call me to discuss. I was hoping players could have any number of decks using cards they own
That's one gripe I have with HS, the 9-deck limit
 
@Phrancis Absolutely. That is a feature for 0.4. But that's not exactly what @skiwi means though
 
Oh. Clarify?
 
@skiwi means that you have three different decks in the same game.
 
7:33 PM
Would it... like... choose one for you depending on the skill/experience of your opponent?
 
@Phrancis Nope, let me get my mockup
 
OK
 
 
@Phrancis as the game progressed, the odds would increase that you get a card from the medium or end game deck. at the start you would only draw from the early game deck
 
Oh
...
check the source there
^ awesome mock-up
That would be a situation early in the game
 
7:35 PM
OK I'm following. It's an interesting idea
 
> Placed the rsleep call at the correct place.
 
We would probably have to add a card property like cardPower['weak', 'medium', 'strong'] or is there a smarter way to do this?
 
It's not something we could implement in one day though if accepted
@Phrancis Some kind of property on a card, or make it based on "points" of a card
 
In Yu-Gi-Oh cards had stars to denote their awesomeness
Gotta be afk for a bit
 
7:38 PM
I do recall that. It would be simpler than performing a calculation based on Strength/Health/Mana cost
Though making it with a calculations would be neat, if not too slow. If we do support custom/user-created cards this would be an absolute must...
 
@Phrancis I think the player would get to choose to put whatever card he wanted in each of the 3 decks when he was creating that deck
 
Otherwise there would be an obvious hack. But perhaps that value can be calculated at creation time rather than during play
Or that @bazola
So the cardAwesomeness would be a property in the deck rather than on the card?
 
@Phrancis making an accurate calculation for that would be really complex.
 
I think (strength + health) - cost may be a simple way...? But I'm no mathematician
Factoring in card properties may be problematic
 
for now that might work, but when you add abilities it gets a lot more complex
 
7:45 PM
I'll try to spend some time with Jay and discuss these points and get back with you... for now leave as-is please
 
Speaking of the creature health... I was just thinking. How about each card taking damage as in Hearthstone, but each card automatically heals 1 health at either the beginning or end of your turn?
 
There was also an idea where if you attack a weaker creature like 2/2 with a 5/5, the remaining 3 damage would roll over to the player. But I don't know whether or not that would work out
 
not bad @SimonAndréForsberg, but I could see a fixed number such as that scaling poorly in the metagame and also at the end of one game
@Phrancis the trample effect will be in the next version
 
Oh ok good
 
I thought that was how you all played it originally?
 
7:46 PM
Yes
 
@Phrancis yeah, that is what we call "Trample". It can be added to the existing game with just a few git commands (simply merging with a branch)
 
I didn't realize that was what Trample was
 
@bazola perhaps yes. I'm not sure how it would work out. Would be interesting to test though. Can probably be tweaked a bit
@Phrancis now you know :)
 
I think creatures regaining full health at new turn could be the most appropriate mechanic... but we would have to test it out
 
> Changed how opening a new game window works so that it is now opened
when the Server sends a `NewGameMessage`
 
7:49 PM
@Phrancis absolutely. We won't making any such changes for now, at least not to the main branches.
 
> Client needs to be able to handle `InviteRequest` and `InviteResponse`.

Client A sends `StartGameRequest` with userId for Client B
Server sends `InviteRequest` to Client B, with the information that it is Client A who wants to play
Client B sends `InviteResponse` to the Server, with a boolean flag for if to accept or decline the invite.
 
Personally I'm not a big fan of HS as in you cast a really expensive card like Stormwind Champion (6/6/(+1/+1 all creatures)) and have a freaking Mage turn its health to 1, and next turn cast a 1/1 and kill it
 
I would personally prefer to stay away from "AHA!" cards in favor of upgrade type of cards that promote strategy instead of... luck?
 
@Phrancis lol, I know the feeling. It is annoying, but it's a part of that game. The good part about it is that then you know that the opponent has one such card less after he played it.
 
7:54 PM
I just got a card with my Warlock that destroys ALL CREATURES. It feels like cheating...
 
@Phrancis Also, instead of playing Stormwind Champion, you might want to play another card first so that you try to get your opponent to play that card on that minion instead of at Stormwind Champion
@Phrancis At the same time, you don't want that there is one "ultimate strategy" that always wins against all other strategies. In Hearthstone there are so many different strategies you can have.
 
[Cardshifter/Cardshifter] build #322 for commit 847f737a on branch develop passed
 
I think that for Cardshifter, we need more cards. (And of course deck building in 0.4). Right now there are only 13 unique cards.
 
That's true. Guess that will all come into place with testing, hopefully by 1.0 we have a pretty well balanced and fun set of mechanics
 
7:58 PM
I'll create more cards (with some help) so far we have no effects, correct?
 
@Phrancis Correct. But feel free to add effects to cards as you wish. Most things shouldn't be too hard to add, and it is something we want to support later anyway.
 
10:00 - 20:0020:00 - 00:00

« first day (64 days earlier)      last day (3503 days later) »