Description:

There is now binary packages for several distributions thanks to the OpenSuSE Build Service. See the links below. If there is no package for your distribution, it's probably because it does not currently contains KNewStuff3 while the current (20100717) version of KsirK depends on it.

The KDE 4.2 version of KsirK corrected a lot of bugs but moreover it had new features:
- playing over the Jabber network (Gmail protocol);
- a skin editor. Now if you can create (or gather) SVG graphics, you can easily create new skins;
- Hot New Stuff support. You can easily download and install new skins.


To build the KDE4 preview version, you must have the KDE4 libkdegames package installed with its development package. Then
* download and extract the archive;
* cd in the newly created dir ;
* mkdir build
* cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR .. (where $KDEDIR is where KDE4 is installed)
* make
* install with the appropriate root rights
* run ksirk (or ksirkskineditor)

For bugs reports, please no comment here but at bugs.kde.org

If you want to play network games with others, connect with your jabber account and reach the room ksirk@conference.kdetalk.net


KsirK still needs YOU ! I'd like to receive:
- play network games with you;
- comments;
- bug reports (well, I wouldn't like but they would be useful !);
- help for new skins ;
- code if you'd like.

Happy World Conquest !

Kleag

KsirK is a strategy game inspired by the well known game Risk. It runs under KDE or any Linux system with the KDE libs and is released under the GPL. KsirK is a multi-player network-enabled game with an AI.

Build and installation instructions are in the INSTALL file in the source archive
Last changelog:

12 years ago

This was completely outdated ! Before I update this data, you can have a look at the ChangeLog file and the TODO file (items marked with DONE)

Superstoned

12 years ago

i got ksirk-1.2-1.tar.gz (i thought ksirk-1.2-2.tgz is a slackware package, and the -2 denotes normally a newer downstream package, not a newer upstream version. you should name it 1.2.1 or something like that to avoid confusion, if it is supposed to be a newer version)

Report

C

kleag

12 years ago

I will take your advice into consideration. Thanks.

I suppose you used the RPM ? In other case, you should have experimented the same compilation problems as with 1.3beta1

Report

Superstoned

12 years ago

i used the tar.gz package, and it compiled fine... btw, i use KDE SVN on gentoo, with the KDE SVN packages. i've asked about STL there, you can find the thread here: http://forums.gentoo.org/viewtopic.php?p=2641903#2641903

Report

Superstoned

12 years ago

i get the following error when compiling the source: In file included from ../../ksirk/GameLogic/eventslistproperty.h:15, from ../../ksirk/GameLogic/gameautomaton.h:15, from kplayersetupdialog.cpp:19: /usr/kde/devel/include/kgame/kgamepropertylist.h: In member function `uint KGamePropertyList::findIterator(QValueListIterator)': /usr/kde/devel/include/kgame/kgamepropertylist.h:56: error: there are no arguments to `begin' that depend on a template parameter, so a declaration of `begin' must be available /usr/kde/devel/include/kgame/kgamepropertylist.h:56: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) /usr/kde/devel/include/kgame/kgamepropertylist.h:56: error: there are no arguments to `end' that depend on a template parameter, so a declaration of `end' must be available /usr/kde/devel/include/kgame/kgamepropertylist.h:64: error: no matching function for call to `count()' /usr/kde/devel/include/kgame/kgamepropertylist.h: In member function `void KGamePropertyList::prepend(const type&)': /usr/kde/devel/include/kgame/kgamepropertylist.h:91: error: there are no arguments to `begin' that depend on a template parameter, so a declaration of `begin' must be available /usr/kde/devel/include/kgame/kgamepropertylist.h: In member function `void KGamePropertyList::save(QDataStream&)': /usr/kde/devel/include/kgame/kgamepropertylist.h:184: error: no matching function for call to `count()' /usr/kde/devel/include/kgame/kgamepropertylist.h:187: error: there are no arguments to `begin' that depend on a template parameter, so a declaration of `begin' must be available /usr/kde/devel/include/kgame/kgamepropertylist.h:187: error: there are no arguments to `end' that depend on a template parameter, so a declaration of `end' must be available /usr/kde/devel/include/kgame/kgamepropertylist.h: In member function `void KGamePropertyList::command(QDataStream&, int, bool)': /usr/kde/devel/include/kgame/kgamepropertylist.h:206: error: there are no arguments to `at' that depend on a template parameter, so a declaration of `at' must be available /usr/kde/devel/include/kgame/kgamepropertylist.h:225: error: there are no arguments to `at' that depend on a template parameter, so a declaration of `at' must be available make[3]: *** [kplayersetupdialog.lo] Error 1 is this a fault of yours, or on my side? x86_64-pc-linux-gnu-3.4.4 kde SVN

Report

C

kleag

12 years ago

It looks like if your Qt was compiled without STL support (which is not good). Could you please check with the little program below (found on the web) ? Put in an empty directory and do:

qmake -project
qmake
make

and see if it compile fine.


#include
#include
#include

int main()
{

std::list items;

items.push_back(QString("5"));
items.push_back(QString("2"));
items.push_back(QString("3"));

items.sort();

if (std::binary_search(items.begin(), items.end(), QString("5")))
qWarning("found");

for (std::list::iterator it = items.begin(); it != items.end(); ++it)
{
qWarning(*it);
}
}

If if compiles fine, then you have STL support and we should search for another problem. Could you then open a bug report here, please ? :
https://gna.org/bugs/?group=ksirk

Good luck.

Report

Superstoned

12 years ago

ehm, with what name should i put this text in a directory? btw what does stl do?

Report

C

kleag

12 years ago

Any name will do ! Myself, I named it qtstl.cpp

STL is the Standard Template Library, a full part of the standard C++ language since some years now but that were not well supported by compilers for a long time. But now it is and it's support should be compiled in Qt.

I heared that some distributions still give Qt without STL support. That should be changed.

Report

Superstoned

12 years ago

superstoned@wietbak ~/test $ cat qtstl.cpp #include #include #include int main() { std::list items; items.push_back(QString("5")); items.push_back(QString("2")); items.push_back(QString("3")); items.sort(); if (std::binary_search(items.begin(), items.end(), QString("5"))) qWarning("found"); for (std::list::iterator it = items.begin(); it != items.end(); ++it) { qWarning(*it); } }superstoned@wietbak ~/test $ qmake -project superstoned@wietbak ~/test $ qmake superstoned@wietbak ~/test $ make g++ -c -pipe -Wall -W -march=k8 -O2 -pipe -DQT_NO_DEBUG -I/usr/qt/devel/mkspecs/linux-g++ -I. -I. -I/usr/qt/devel/include -o qtstl.o qtstl.cpp qtstl.cpp:1:10: #include expects "FILENAME" or qtstl.cpp:2:10: #include expects "FILENAME" or qtstl.cpp:3:10: #include expects "FILENAME" or qtstl.cpp: In function `int main()': qtstl.cpp:8: error: `list' is not a member of `std' qtstl.cpp:8: error: expected `;' before "items" qtstl.cpp:10: error: `items' undeclared (first use this function) qtstl.cpp:10: error: (Each undeclared identifier is reported only once for each function it appears in.) qtstl.cpp:10: error: `QString' undeclared (first use this function) qtstl.cpp:16: error: `binary_search' is not a member of `std' qtstl.cpp:17: error: `qWarning' undeclared (first use this function) qtstl.cpp:19: error: `std::list' has not been declared qtstl.cpp:19: error: `iterator' undeclared (first use this function) qtstl.cpp:19: error: expected `;' before "it" qtstl.cpp:19: error: `it' undeclared (first use this function) qtstl.cpp:23:2: warning: no newline at end of file make: *** [qtstl.o] Error 1 is this the same problem? looks like that, isn't it?

Report

Superstoned

12 years ago

superstoned@wietbak ~/test $ cat qtstl.cpp #include #include #include int main() { std::list items; items.push_back(QString("5")); items.push_back(QString("2")); items.push_back(QString("3")); items.sort(); if (std::binary_search(items.begin(), items.end(), QString("5"))) qWarning("found"); for (std::list::iterator it = items.begin(); it != items.end(); ++it) { qWarning(*it); } }superstoned@wietbak ~/test $ qmake -project superstoned@wietbak ~/test $ qmake superstoned@wietbak ~/test $ make g++ -c -pipe -Wall -W -march=k8 -O2 -pipe -DQT_NO_DEBUG -I/usr/qt/devel/mkspecs/linux-g++ -I. -I. -I/usr/qt/devel/include -o qtstl.o qtstl.cpp qtstl.cpp:1:10: #include expects "FILENAME" or qtstl.cpp:2:10: #include expects "FILENAME" or qtstl.cpp:3:10: #include expects "FILENAME" or qtstl.cpp: In function `int main()': qtstl.cpp:8: error: `list' is not a member of `std' qtstl.cpp:8: error: expected `;' before "items" qtstl.cpp:10: error: `items' undeclared (first use this function) qtstl.cpp:10: error: (Each undeclared identifier is reported only once for each function it appears in.) qtstl.cpp:10: error: `QString' undeclared (first use this function) qtstl.cpp:16: error: `binary_search' is not a member of `std' qtstl.cpp:17: error: `qWarning' undeclared (first use this function) qtstl.cpp:19: error: `std::list' has not been declared qtstl.cpp:19: error: `iterator' undeclared (first use this function) qtstl.cpp:19: error: expected `;' before "it" qtstl.cpp:19: error: `it' undeclared (first use this function) qtstl.cpp:23:2: warning: no newline at end of file make: *** [qtstl.o] Error 1 is this the same problem? looks like that, isn't it?

Report

C

kleag

12 years ago

Hello,

Sorry, I did not see that some text was lost in the test program during the adding on the forum.
I have put the file on the KsirK download area, here:
http://download.gna.org/ksirk/qtstl.cpp

So, you can do the test. Thank you !

Report

Superstoned

12 years ago

thank you! output was this: superstoned@wietbak ~/test $ qmake -project superstoned@wietbak ~/test $ qmake superstoned@wietbak ~/test $ make g++ -c -pipe -Wall -W -march=k8 -O2 -pipe -DQT_NO_DEBUG -I/usr/qt/devel/mkspecs/linux-g++ -I. -I. -I/usr/qt/devel/include -o qtstl.o qtstl.cpp g++ -Wl,-O1 -o test qtstl.o -L/usr/qt/devel/lib -L/usr/X11R6/lib -lqt -lXext -lX11 -lm seems to work?!?!?

Report

somekool

12 years ago

any gentoo ebuild for this ???

Report

C

kleag

12 years ago

Well, there is currently no binary distribution nor specific scripts to build on a specific distribution.

Anybody wanted to create packages would be very welcome !

Report

muts68

12 years ago

What i would like to see in Ksirk is a history of the attacks. Now only in the status bar you can see what the outcome of the dices were and how many armies are lost. But it is all gone in a seconde. Maybe an extra window where all the attacs/dices/lost-win are showed.
An other thing whould be if the map (board) is scalleble. so you can play the game full screen or as small as you want.
I like the game very much, it is good fun to play it.

Report

C

kleag

12 years ago

Thanks for your very positive feedback !

The history is a very good idea. I will add it in the TODO list.

For the zoom possibility, it's not a bad idea, but is probably difficult to implement. New skins of various sizes would be easily feasable.

Anyone interested in creating a beautiful wide new skin ???

Report

spiffytech

12 years ago

I installed ksirK, but where's the executable? How do I launch it?

Report

C

kleag

12 years ago

Sorry, but what did you download exactly ? If it is the source tarball of ksirk-1.2-2 (and it is the only non-buggy source for now), then you should untar it (tar xvzf , configure (don't forget to give the location of your KDE distribution to the --prefix option), compile and install. Sorry, but I have no time to prepare pre-compiled binaries.
You can find more complete instructions in the INSTALL file on the web site...

Good luck !

Report

fab

12 years ago

use the prefix option when compiling. For SUSE this is ./configure --prefix=/opt/kde3


Fab

Report

freon

12 years ago

Hello ,I insist.

please go to
http://openclipart.org/cgi-bin/navigate/geography?page=4
and tell me why you couldn't use
africa.svg
europe.svg
oceania.svg
world map.svg.

I'm the author and this is Public domain.
Well, I don't know really if you used it, because I only see a map where Spain, Portugal and Italy is France. :)
When I had time I will try it.
Bye

Report

C

kleag

12 years ago

Well, really, as I had already replied, I had a look to your maps and, yes, it could be a good starting point for new graphics. But let me precise two or three points:
- the original map is voluntarily over simplified ! I don't want to hurt anybody. Choices I made are mainly random. I had only to put no more than 40 or 50 countries on the earth map... (See the history of the game on the web site for details) ;
- I am not a graphic artist and I plan mainly to work on code, so I count on volunteers to create better graphics.

Please, if you have time, propose novelties. They will be positively examined.

Report

mrpengo

12 years ago

Compiling from source on Debian testing with KDE 3.3.2 everything works. I run the game and after inserting the last player name Ksirk crashes.

The console says...

...
ksirk: Handling INIT ; ; 0,0
ksirk: slotOk
ksirk: Got name Kengo
ksirk: computer? : true
ksirk: After KPlayerSetupDialog. name: Kengo
ksirk: Creating player Kengo(computer: true): Japan
ksirk: Creating player with flag file name: japan.png
ksirk: Sprite file name: skins/default/Images/sprites/japan.png
ksirk: imgName= /usr/local/kde/share/apps/ksirk/skins/default/Images/sprites/japan.png
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: Kengo: Action choice (state is INIT)
ksirk: Kengo : choosing my action
ksirk: AIPlayer::placeArmiesAction Kengo ; nb to place: 52
ksirk: AIPlayer::chooseReceivingCountry()
ksirk: Kengo: AIPlayer::countries()
ksirk: ERROR: AIPlayer::chooseReceivingCountry() EMPTY LIST
KCrash: Application 'ksirk' crashing...
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Kengo ; return value is 0
ksirk: KGameWindow::setCurrentPlayerToNext()
ksirk: New current player is Pengo ; return value is 1
ksirk: Sprite file name: skins/default/Images/sprites/infantry.png
ksirk: imgName= /usr/local/kde/share/apps/ksirk/skins/default/Images/sprites/infantry.png
ksirk: Fatal IO error: client killed

Report

C

kleag

12 years ago

Well, that's a real bug !

Could you, please, fill a bug report at https://gna.org/bugs/?group=ksirk ? This would be useful for me as it would initiate the use of these sites by users.

I will contact you by mail to try to obtain more info on the crash.

Report

gaston

12 years ago

"a license change to a GPL-compatible that is also compatible with franch laws is planned"


No, don't !!!

First, it's not at all proved that the GPL is not compatible with French law. By saying so, you give credit to the FUD that pretends that the GPL has no juridic value.

Second, the GPL is way more important than French law, so it's the French law that should adapt itself to the GPL, not the opposite. Imagine what the situation would be if every country had its own GPL-compatible license!

Third, the idea of having a French GPL-compatible license has already been pursued by the INRIA. Result : the venerable INRIA got slammed by the FSF, and their license has been a flop.

By the way, I'm French, and I live in France.

Report

C

kleag

12 years ago

> First
Well, I don't agree. There is a lot of arguments saying the contrary. I let everybody refer to the Web.

> Second
That's a case of pragmatism. Political pressure should continue to allow more and more free software in France and in Europe in general. The creation of the CeCILL license is an important thing in this idea.

> Third
The CeCILL license has been created by CEA, INRIA and CNRS together and, AFAIK, the FSF approved it or is in the way to approve it (refer to the Web). The fact that these organisms create this license is very important. It proves that they are not completely commercial ones.

Report

freon

12 years ago

If you want to improve your graphics you could use America,America,Europe... openclipart.org maps ,it's public domain ,you have already all recent countries splitted,good quality and in vector format.
With inkcape boolean ops you could compose virtually any past country in seconds.
Just a suggestion.

Report

12 years ago

This was completely outdated ! Before I update this data, you can have a look at the ChangeLog file and the TODO file (items marked with DONE)

product-maker 62 214

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install DL
Details
version
20100717
updated Jul 17 2010
added Mar 04 2005
downloads today
0
page views today 8