Game launcher and patcher

A place for Ogre users to discuss non-Ogre subjects with friends from the community.
Post Reply
amireh
Kobold
Posts: 25
Joined: Thu Mar 17, 2011 9:26 pm
Location: Amman, Jordan
x 6
Contact:

Game launcher and patcher

Post by amireh »

Hi guys :D I've been working for some time on a tool that'd allow me to update my game clients easily and steadily. This isn't exactly an Ogre-related project, hence it's in this forum, but I thought it might be useful to you since most games need this and Ogre is well ... helps games. :b

They are 2 tools, the first:

Karazeh it's a launcher/patcher tool that's plugged with different frontends/renderers (one of them is actually Ogre) that you can use to a) validate & update your game, b) launch it after it's done updating

The second tool is Kiwi, the one that generates the patch script which Karazeh consumes.

Both tools are hosted on github, completely free, licensed under the MIT, and Karazeh was built in a way that (as much as was humanly possible) didn't get in the way of your toolset/environment. For example, if you're using boost already, it can make use of boost threads. If you're using Qt, it can use Qt threads. If you're using neither, you can write your own thread wrapper, or run it in "threadless" mode!

The same goes for the "Renderers", by default I shipped 3 renderers: a vanilla/CLI one that's not really helpful, an Ogre SdkTrays-powered one, and a full-fledged Qt one which is good because you can easily customize/skin it... I might create a CEGUI renderer soon since I'm using it for my next game.

Anyway, I'd love to hear your input on this. I was amazed not to find such a tool already existing for, well, something less than thousands of USD !!

If you'd like to contribute, you can:
  • * issue tickets with features you'd like to have implemented/would need in such a tool (or just reply here)
    * tell me of things you would've done better
    * help in testing it on your own distribution, i personally use arch linux and sometimes windows XP ... so I can't test thoroughly
Cheers!
amireh

PS: for anyone who's liked Vertigo the game, with the patcher finished, I'm going to be updating it heavily starting next month, so stay tuned! =D
User avatar
Klaim
Old One
Posts: 2565
Joined: Sun Sep 11, 2005 1:04 am
Location: Paris, France
x 56
Contact:

Re: Game launcher and patcher

Post by Klaim »

I posted links to your project in this thread (in another forum) http://forums.tigsource.com/index.php?topic=18688.0
They are trying to do something similar, so sharing should improve all potential solutions.
User avatar
SomeFusion
Gremlin
Posts: 191
Joined: Sun Dec 01, 2002 12:38 am
x 3

Re: Game launcher and patcher

Post by SomeFusion »

This is a very cool project!
I'm currently trying to compile it but I can't figure out how to compile log4cpp with VS2010. Its the last dependency I need.
Are there any precompiled binaries for download availeable?
Summoning Wars is an open source role-playing game, featuring both a single-player and a multiplayer mode for about 2 to 8 players.
http://www.sumwars.org
User avatar
nevarim
Gnoll
Posts: 675
Joined: Mon Jul 05, 2010 6:16 pm
Location: Pavia Italy
x 4
Contact:

Re: Game launcher and patcher

Post by nevarim »

fantastic i will try to use for my project :D

thanks
i'm a noob until proven otherwise :D
used in my project ;) and thanks to everyone :D
Ogre 3d
Mygui
Skyx
Hydrax
MOC
CCS
amireh
Kobold
Posts: 25
Joined: Thu Mar 17, 2011 9:26 pm
Location: Amman, Jordan
x 6
Contact:

Re: Game launcher and patcher

Post by amireh »

Hi guys thanks for the kind words I'm glad it's useful.
I'm currently trying to compile it but I can't figure out how to compile log4cpp with VS2010. Its the last dependency I need.
Are there any precompiled binaries for download availeable?
Yes I made one for 32bit windows that u can find here on sourceforge http://sourceforge.net/projects/karazeh/ ... anyway I'd like to remove log4cpp as a dependency soon, so u can consider this temporary :)

Let me know if u have any further trouble
User avatar
SomeFusion
Gremlin
Posts: 191
Joined: Sun Dec 01, 2002 12:38 am
x 3

Re: Game launcher and patcher

Post by SomeFusion »

Hi amireh,

I have downloaded the dep. package, but not matter which brwoser or mirror I choose for download the package always ends up corrupted. 7Zip can't open the file.

Thank you very much.
Summoning Wars is an open source role-playing game, featuring both a single-player and a multiplayer mode for about 2 to 8 players.
http://www.sumwars.org
amireh
Kobold
Posts: 25
Joined: Thu Mar 17, 2011 9:26 pm
Location: Amman, Jordan
x 6
Contact:

Re: Game launcher and patcher

Post by amireh »

SomeFusion wrote:Hi amireh,

I have downloaded the dep. package, but not matter which brwoser or mirror I choose for download the package always ends up corrupted. 7Zip can't open the file.

Thank you very much.
That's odd, I can't trust Windows programs to even compress an archive bah :p Anyway, SF is acting funky and I can't upload the other archive there, so I uploaded it to my own server. Get it here http://www.amireh.net/external/KarazehD ... _Win32.rar

Let me know if you still have trouble, this should work though I just tested it :D

Salam!
User avatar
SomeFusion
Gremlin
Posts: 191
Joined: Sun Dec 01, 2002 12:38 am
x 3

Re: Game launcher and patcher

Post by SomeFusion »

Thanks for your quick answers! I have Karazeh compiled now but I got this linker error:

Code: Select all

1>MSVCRT.lib(crtexe.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "_main".
1>D:\Dev\Stuff\amireh-Karazeh-8643f14\bin\Release\Karazeh.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
I had to change the linker subsystem setting from "/SUBSYSTEM:CONSOLE" to "/SUBSYSTEM:WINDOWS" for linking without an error.
Summoning Wars is an open source role-playing game, featuring both a single-player and a multiplayer mode for about 2 to 8 players.
http://www.sumwars.org
amireh
Kobold
Posts: 25
Joined: Thu Mar 17, 2011 9:26 pm
Location: Amman, Jordan
x 6
Contact:

Re: Game launcher and patcher

Post by amireh »

SomeFusion wrote:Thanks for your quick answers! I have Karazeh compiled now but I got this linker error:

Code: Select all

1>MSVCRT.lib(crtexe.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "_main".
1>D:\Dev\Stuff\amireh-Karazeh-8643f14\bin\Release\Karazeh.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
I had to change the linker subsystem setting from "/SUBSYSTEM:CONSOLE" to "/SUBSYSTEM:WINDOWS" for linking without an error.
Thanks for the tip. Although as far as I know, that shouldn't happen as per this CMake directive:

Code: Select all

IF(WIN32 AND (KARAZEH_RENDERER_QT OR KARAZEH_RENDERER_OGRE))
  ADD_EXECUTABLE(${PROJECT_NAME} WIN32 ${Karazeh_SRCS})
ELSE()
That should force creating the VS project as a Win32 app not a console one. I'm curious, were you building with the Vanilla renderer or did you choose an Ogre/Qt one ?
User avatar
SomeFusion
Gremlin
Posts: 191
Joined: Sun Dec 01, 2002 12:38 am
x 3

Re: Game launcher and patcher

Post by SomeFusion »

Oops sorry, neither Qt nor Ogre :-) I have deleted the CmakeCache and forgot to tick the Qt renderer again.

I have found one typo in the Kiwi CMakeLists.txt.
I got linking errors because of getLogin(), the sources are added to Karazeh_SRCS instead of Kiwi_SRCS (line 85)

Code: Select all

84: IF(WIN32)
85:   SET(Karazeh_SRCS ${Karazeh_SRCS} src/getlogin.cpp)
86:   ADD_EXECUTABLE(${PROJECT_NAME} WIN32 ${Kiwi_SRCS} ${Kiwi_MOC_SRCS} ${Kiwi_QRC_SRCS} ${Kiwi_UI_SRCS})
87: ELSE()

I'm far from an expert in licensing, but by including login.h and login.cpp wich is GPL doesn't this make the complete project basically GPL licensed instead of MIT?
Summoning Wars is an open source role-playing game, featuring both a single-player and a multiplayer mode for about 2 to 8 players.
http://www.sumwars.org
amireh
Kobold
Posts: 25
Joined: Thu Mar 17, 2011 9:26 pm
Location: Amman, Jordan
x 6
Contact:

Re: Game launcher and patcher

Post by amireh »

I have found one typo in the Kiwi CMakeLists.txt.
Thank you, fill commit this!
I'm far from an expert in licensing, but by including login.h and login.cpp wich is GPL doesn't this make the complete project basically GPL licensed instead of MIT?
Hmm, frankly I'm not sure. It seems to be LGPL licensed, which is not as free as the MIT one but it does not get in your way of incorporating the code within a commercial product. I have to ask about this, thanks for the notice.

It would be welcome if any licensing expert could shed some light on this.
User avatar
SomeFusion
Gremlin
Posts: 191
Joined: Sun Dec 01, 2002 12:38 am
x 3

Re: Game launcher and patcher

Post by SomeFusion »

Summoning Wars is an open source role-playing game, featuring both a single-player and a multiplayer mode for about 2 to 8 players.
http://www.sumwars.org
amireh
Kobold
Posts: 25
Joined: Thu Mar 17, 2011 9:26 pm
Location: Amman, Jordan
x 6
Contact:

Re: Game launcher and patcher

Post by amireh »

I just came across a bug in Kiwi under Windows 7 that effectively breaks it, it happens when u set a root for the repository. I'm fixing this now. I'll update this post when it's committed so u can update.
User avatar
Klaim
Old One
Posts: 2565
Joined: Sun Sep 11, 2005 1:04 am
Location: Paris, France
x 56
Contact:

Re: Game launcher and patcher

Post by Klaim »

JDX_John
Gnome
Posts: 397
Joined: Sat Nov 08, 2008 1:59 pm
x 2

Re: Game launcher and patcher

Post by JDX_John »

amireh wrote:Hi guys :D I've been working for some time on a tool that'd allow me to update my game clients easily and steadily. This isn't exactly an Ogre-related project, hence it's in this forum, but I thought it might be useful to you since most games need this and Ogre is well ... helps games. :b
Sounds interesting but could you clarify why a patching tool needs an Ogre front-end? Is it supposed to run inside my game to do auto-updating, or does it run like a separate tool to update the files before I run my game?
amireh
Kobold
Posts: 25
Joined: Thu Mar 17, 2011 9:26 pm
Location: Amman, Jordan
x 6
Contact:

Re: Game launcher and patcher

Post by amireh »

JDX_John wrote:
amireh wrote:Hi guys :D I've been working for some time on a tool that'd allow me to update my game clients easily and steadily. This isn't exactly an Ogre-related project, hence it's in this forum, but I thought it might be useful to you since most games need this and Ogre is well ... helps games. :b
Sounds interesting but could you clarify why a patching tool needs an Ogre front-end? Is it supposed to run inside my game to do auto-updating, or does it run like a separate tool to update the files before I run my game?
It's supposed to work in both modes: stand-alone (as a separate launcher/patcher) or in embedded mode, running as part of your application (sort of how Heroes of Newerth's patcher works like). However, I didn't get to implement the embedded-mode yet, so right now it only works as a separate application (launcher).

Now about having an Ogre front-end, it's not required, it's just there, so is the ability to use a GTK3, Cocoa, Qt, CLI, you-name-it, front-end. I wrote the Ogre front-end merely because I was using it for a small application that already used Ogre, and I didn't feel like adding yet another heavy dependency like Qt, but in those cases, it makes more sense to use the embedded mode. It's even possible to run it with no front-end at all, for whatever use that may be xD

I should mention that I've been working locally for some time on the patcher and a major release is due hopefully in February, where it'll hit the v1.0 milestone, which will mark it as production-ready! :D
Post Reply