Jump to content
XCOMUFO & Xenocide

Utto - Ufo2000 Organizer - Check It!


Intri

Recommended Posts

Hi there (I hope this is good place...or add-ons section of forum maybe?)

 

I've prepared Utto - Ufo2000 Organizer (application name is temporary...or maybe not). I was thinking about it before but I didn't have knowledge enough to start. About week ago (from date of creating this post) I've realised I could make this thing. It was written in C++/Qt4.6, previously Qt4.2 (for informations about Qt see http://doc.trolltech.com/4.6/index.html ). It should be compatible with Qt 4.6 or higher versions.

 

Utto's website : http://www.utto.yoyo.pl/

 

It is simple program (currently 0.2.3 version ) which allows to:

  • chat with other Utto's users/Ufo2000 players (text, smilies and units toolbars included)
  • check traffic and statistics at Ufo2000 server (same as by web browser but with automatic refresh for traffic - 5 sec by default)
  • see who is logged in at Ufo2000 server - list of players is always visible, next to clocks with your/game time
  • browse news and files from Ufo2000 website (with optional rare refreshing)
  • browse information from tournament's host's website (currently part of file 'players' from my website, I can prepare XML template)
  • browse Ufo2000 help file (from Ufo2000 directory)
  • change program options : Ufo2000 directory, translation, refresh rate, Ufo2000 version and colors
  • open Ufo2000 links
  • see information about this program
  • browse last news from Ufo2000 forum about Utto and first Ufo2000 forum's page
  • run Ufo2000 game in two modes:normal (F9) and quick (CTRL+F9) - this solution shouldn't be buggy but be careful
  • change basic translation of the application - English, Polish, Dutch, Estonian, German and Russian are available, you can prepare your own translation (see 'translation.txt')
  • added system tray icon with context menu, message field ("balloon") and tooltip with "players online" counter
  • sound playing when new player's connected/disconnected or back from game and when new message appeared (working when minimized to bar or tray too)
  • work with application in compact mode and/or stay on top with full chat's functionality
  • auto-detecting new version of the application
  • view the manual included to package

Recently added features (see post #46 for details):

  • switched from Qt 4.2 to 4.6
  • added Russian translation
  • ufo2000.net as default server

To increase efficiency, you should appear at Ufo2000 chat room from time to time, for at least 1 or 2 minutes.

 

CONTENT WARNING: Very long post - read next informations, only if above ones made you courious (or don't have other things to do :ironing: ).

 

Downloads - version 0.2.3 ( try to do first use without internet connection to see if program runs properly):

NOTE: Please, read all informations in this post before running application (I know, it is much to read) - it is for your and other users safety.

For Windows (executable and important files to run):

Method I
- download from here

This method is recommended if you have already Qt4.6 or higher installed or you have properly working DLLs.

Utto_0.2.3_for_windows.zip

List of these DLL's :

- libgcc_s_dw2-1.dll

- mingwm10.dll

- QtCore4.dll

- QtNetwork4.dll

- QtXml4.dll

- QtGui4.dll

DLLs from previous versions of Utto (0.2.2 or older) won't work with the current one!

 

Method II
- download from FUEL's website (make sure it is the newest version) :

In this case you will have all Utto's files and DLLs in a single ZIP file - you don't need other files (thanks to FUEL for storage space).

 

 

For Linux(sources and important files to run):

 

Utto_0.2.3_for_linux_sources_.zip

 

NOTE: I advise you to make any changes in source code only if you have Qt programming experience - Qt has got some unique features (e.g. signals&slots, autodeleting pointers of QWidget and inherited classes), unexperienced person could make some extra bugs and errors.

 

Known and unknown bugs and errors:

  • after running Ufo2000 by Lauch 'Ufo2000' button, the game (not Organizer) may become closed if you run Task Manager (Windows)
  • when site isn't available there should appear proper information in application but this is not guaranteed (crashes might occur without warning)
  • I couldn't test this program on Linux so I will be grateful if user of Linux reports detected bugs
  • there might be memory leaks (but don't have to) so also someone could debug this application
  • if player's nickname contains <sometext> (something like tag starter) his name at table of connected players is displayed without this part of name - it is html processing effect.
  • 'back from game' sound/message can't work because server don't change status 'in game XXXX' to 'in server chat' after match's ending (user is still displayed as 'in game' but can talk through the Ufo2000's chat room).

I think I could add these features:

  • if Ufo2000 server would generate XML file (see Appendix A below) like current server status page, it would be possible to change display method for traffic.
    I can analize current status page html code now and get players names, version etc. but it is more difficult than from XML file.
  • there could be something like download manager at 'updates' tab which would check maps/weaponsets/others in player's Ufo2000 directory and asking for download if player don't have certain file.
    I think this solution require XML file on server with files listed.
  • news could be in XML file too, but current truncated Ufo2000 website is enough I think
  • informations about tournament could be loaded directly from host's website or XML file (both solutions could have combobox for choosing tournament's host from list loaded from ... XML B) )
  • Ufo2000 help can contain future Ufo2000 html help (currently in progress) - loading it from Ufo2000 directory
  • there could be more options changeable at options tab, current are very basic
  • optimized translations

I think I can't add these features now but maybe someday it will be possible:

  • Qt provides full OpenGL support (OpenGL libraries are distributed with Qt), so there is possibility to make Geoscape globe in application and use it.
    It may be hard to connect such feature with Ufo2000 game.
  • there is possibilty in Qt to communicate between Qt application and application run by QProcess - it could bring some extra functionality

 

As you may noticed, I suggest mostly XML solutions - I like XML and know how to use it in Qt.

Those XML files could be stored at Ufo2000 website server or somewhere at ufo2000.xcomufo.com.

XML structure of those file should be discussed too.

 

I would like to know which of features (current and possible to add) would you like to see in this application.

Also, put any suggestions,ideas, detected bugs or opinions here, I want to know if you like or hate the idea.

Especially I want to know developers opinions and suggestions.

 

Running application:

This section is available at Utto's Manual - see http://www.utto.yoyo.pl/html/manual.html

 

Appendix A (for developers and curious people) : XML status page equivalent:

I've searched Ufo2000 code (server part of it) and I have found 'void ServerDispatch::MakeHtmlReport(std::string &html_body)' function in server_protocol.cpp file (declared in server.h),

which probably generates Ufo2000 server status page. That function is used in

void ServerDispatch::HandleSocket(NLsocket socket) function in server_transport.cpp file (declared in server.cpp too).

I've made equivalent of first function for XML generating (MakeXMLReport):

 

XMLreport.zip

I don't know where output file name is set and even can'y be sure if two files can be made.

It would be good if server generates both status versions (XML for Utto and HTML for web browsers).

 

Alternative solution is using XHTML instead of XML and HTML. In that case there would be only one function needed.

 

Appendix B: Getting Qt for Windows/Linux to copmpile this application(Qt in Windows may be hard thing to do, trust me) :

1. type in website browser: ftp://ftp.trolltech.com/qt/source/ (I think it is correct place for download).

2. try to download Qt 4.6 or higher

I have windows 4.6.3 version of Qt (I think it needs also MinGW installed from somewhere, I've got 5.0.2 version)- its file name is:

qt-win-opensource-4.6.3-mingw.exe - MinGW should be installed automaticly too but not sure for that.

Other way is to compile file: qt-win-opensource-src-4.6.3.zip sources in Windows but this is very hard (I've tried long time ago and failed)

3. sorry but I don't know exactly and can't predict next steps in Linux - I think you should have to compiling Qt sources

I also can't remember what I was doing during Qt for Windows installation (installing MinGW before or after Qt - I think before is better).

 

NOTE:It can take much time to set Qt to work properly after installing or compiling it.

For Windows, it is better to use final .exe file of Organizer application.

For Linux, it is better if you already have Qt installed (I think Qt is added to many distributions of Linux).

 

 

Hmm... that is all for now. :wave:

Edited by Intri
Link to comment
Share on other sites

Ok, first impressions.

 

1) Why does it output two messages on startup (initialization check??): 'ok' and 'Ok'

 

2) I can't read Russian (?). I know this sounds a bit biased towards my native language, but since it is the most commonly used, can it be default? I don't know what "Twoj jezyk: PL" mean. Wait, is that Polish (PL)? At least say "English", "Espanol" in their native language so it can be a little more clearer.

 

3) I am trying to select my path to something other than 'C:\systemfiles\DeleteMeIfYouWant' (j/k), but it constantly checks everytime something has changed and literally thinks I want that path. Here's an illustration of my frustration of typing my path name in:

 

'/' System Message: "File cannot be loaded /readme_en.txt: no such file or directory"

'/h' System Message: "File cannot be loaded /hfsreadme_en.txt: no such file or directory"

'/ho' System Message: "File cannot be loaded /hofsreadme_en.txt: no such file or directory"

'/hom' System Message: "File cannot be loaded /homfsreadme_en.txt: no such file or directory"

'/home' System Message: "File cannot be loaded /homefsreadme_en.txt: no such file or directory"

'/home/' System Message: "File cannot be loaded /home/readme_en.txt: no such file or directory"

...

 

I could copy paste my directory, but can I type it in please? :)

 

-----

 

Ok, now that I'm done with the first impressions, all I have to report is that it works fine for me under Linux: Ubuntu 8.04. :)

 

But in all honesty, I can't see myself using this for anything I can't already do myself. It probably was a fun experience for you, nonetheless. Maybe you can take it a step beyond this and make it into a lua editor for the game? I'm sure a lot of new people would find that useful.

 

I'll check back for Linux testing if you change something though. :wink1:

Link to comment
Share on other sites

1) Why does it output two messages on startup (initialization check??): 'ok' and 'Ok'

I've used it for testing - now they won't appear.

 

2) I can't read Russian (?). I know this sounds a bit biased towards my native language, but since it is the most commonly used, can it be default? I don't know what "Twoj jezyk: PL" mean. Wait, is that Polish (PL)? At least say "English", "Espanol" in their native language so it can be a little more clearer.

Oops...Forgot to change it to "EN" at startup in options, sorry :bash: .

 

3) I am trying to select my path to something other than 'C:\systemfiles\DeleteMeIfYouWant' (j/k), but it constantly checks everytime something has changed and literally thinks I want that path. Here's an illustration of my frustration of typing my path name in:

 

'/' System Message: "File cannot be loaded /readme_en.txt: no such file or directory"

'/h' System Message: "File cannot be loaded /hfsreadme_en.txt: no such file or directory"

'/ho' System Message: "File cannot be loaded /hofsreadme_en.txt: no such file or directory"

'/hom' System Message: "File cannot be loaded /homfsreadme_en.txt: no such file or directory"

'/home' System Message: "File cannot be loaded /homefsreadme_en.txt: no such file or directory"

'/home/' System Message: "File cannot be loaded /home/readme_en.txt: no such file or directory"

...

I've used bad signal for this. Now that message would appear after edit field lost focus or enter pressed.

 

Ok, now that I'm done with the first impressions, all I have to report is that it works fine for me under Linux: Ubuntu 8.04. :)

Nice to hear that - I was afraid I've made some errors caused by case sensitivity or other diffenreces in linux.

 

But in all honesty, I can't see myself using this for anything I can't already do myself. It probably was a fun experience for you, nonetheless. Maybe you can take it a step beyond this and make it into a lua editor for the game? I'm sure a lot of new people would find that useful.

I think this application could evolve into something useful (see possible things to add) - update checker, advanced server's informations browsing, viewing help etc. at one place could be very handy - any new players could have all informations from single source (don't have to know any website addresses).

I'm not familiar with lua, I think XML processing is all I can do for now.

 

I've updated download links with fixed things you have mentioned. As I wrote it is testing version so it is not perfect :huh:

Thanks for comment and waitng for more :D

 

Btw. Could you write which version of Qt you have? It would be easier for me to know which one is used mostly (especially by Linux users) - I would like to know how much would windows and linux versions differ (Minimize to tray functionality is possible for Windows in Qt 4.2, some other things too).

Edited by Intri
Link to comment
Share on other sites

I started out with version 3 but I didn't test this so I just went directly to 4.3.4. It's mainly directed at Linux, so support for Linux is most likely higher. Of course this is just an assumption though, for I have not actually read all the fine print.
Link to comment
Share on other sites

I think I will use Qt 4.2 without 4.0 compatibility (some nice functions are posiible only in 4.2 or higher) - for Windows .exe users it doesn't matter, for Windows and Linux users who compile sources, getting 4.0 or 4.2 is almost the same (would be a problem only if someone got 4.0 already and have problems with getting newer version).

I've read in documentation that QSystemTrayIcon is available for Linux KDE/GNOME enviroments too, so this feature would be on both (Windows/Linux) platform types.

Link to comment
Share on other sites

Important bug in Windows version detected (thanks to lemm):

After running application message box says there is no mingwm10.dll library.

 

I've put that file next to exe so this should work fine.

I've also added QtGui4.dll and QtCore4.dll libraries but don't know if they are really necessary (they are very large comparing to rest of files)- I suggest move those two files to other safe directory and ckeck if error message appear. It would be nice if someone do such experiment and report results of it here.

 

Version with those files is 0.0.1u.

New features available soon =b

Link to comment
Share on other sites

Application runs on XP for me.

 

 

You might want to add a list of people who are also running the client, and maybe some messaging option. I know one thing that holds this game back is that the multiplayer hasn't reached critical mass yet; that is, people pop in for 10 seconds and leave. (Since the application frequently crashes on Alt-Tabbing, and the background music doesn't stop upon minimization, I can see why they might not want to keep UFO2000 running in the background either). So perhaps if people could just run this client, and if it provided some internal messaging support, it would make starting matches a bit easier.

 

The "to tray" button isn't working for me

 

Also the "home directory" issues are bit of an annoyance. Maybe make it find UFO2000 directory or something...

 

awesome job! this is much better than having to scroll to different webpages. Maybe you could also provide links to the 10 most recent forum posts or something

Edited by lemm
Link to comment
Share on other sites

Application runs on XP for me.

Great! - I don't have to add more dll's :P

 

You might want to add a list of people who are also running the client, and maybe some messaging option.

My skills are limited so I don't know if I could add passing messages between application worked on two different computers (but I think I can try :) )

 

The "to tray" button isn't working for me

This thing is not working now but it will work soon and will bring nice functionality (be patient B) )

 

Also the "home directory" issues are bit of an annoyance. Maybe make it find UFO2000 directory or something...

All I can do for now is adding 'browse' button - auto-searching for directory may cause some problems (e.g. linux/windows compatibility).

 

Maybe you could also provide links to the 10 most recent forum posts or something

I've tried to do similar thing but I can't add it yet - first have to find out how to get content from websites with queries in url. (I think it it possible to add soon).

 

Thanks for your notes.

Link to comment
Share on other sites

All I can do for now is adding 'browse' button - auto-searching for directory may cause some problems (e.g. linux/windows compatibility).

 

Sorry for interrupting again, but you could just write you different parts of code (#ifdef WIN32, #else) and execute a different search on each type of system. Nevertheless, I believe that the needed functions are available to both systems (POSIX, sweet POSIX!)

Link to comment
Share on other sites

New version is available OMG

 

To increase efficiency, you should appear at Ufo2000 chat room from time to time, for at least 1 or 2 minutes.

I think this kind of message should have appeared long time ago at Ufo2000 server chat room.

 

Version 0.0.2

NOTE: This appliction support only Qt4.2 or higher from now.

NOTE: Files from previous version aren't compatible with current one (well...icon file may stay :rolleyes: )

  • html file from status page is basically converted into list of players
    This conversion isn't perfect (see bugs) - XML would be better.
  • added system tray icon with context menu, message field ("balloon") and tooltip with "players online" counter
    You can minimize to tray application's window by pressing 'To tray' button or F12.
    Double clicking on icon will restore application.
    Each connection/disconnection/back from game player should be reported in "baloon message".(also see bugs)
    Players who are online less than traffic update frequency may not be reported (connecting and disconnecting between two loadings from server).
    Many players connecting/disconnecting at time is supported.
    If you play Ufo2000 in window mode (F10), you should be able to see messages too.
    In fullscreen mode they won't interrupt a battle.
  • sound playing when new player's connected/disconnected or back from game (working when minimized to bar or tray too)
    Sound effects can be disabled in tray icon menu.
    There are two things that wasn't planned but they are results of above updates and may be useful:

    1. 1. Sounds are played also during match so you can know if someone came (if you don't want to hear those sounds during gameplay you can disable them before fighting).
      2. After fullscreen battle's end and closing game (or F10 window mode), all accumulated connections/disconnections that took place during game are reported in "balloon message" - even if you turn off sounds, you will be able to know who was in lobby during your match.

  • links now will open in default web browser
  • added 'browse' button at choosing Ufo2000 Directory
  • added shortcut keys for tabs and buttons
    F10 wasn't used because it would collide with F10 from Ufo2000.
  • changed application's style from QPlastique to QCleanlooks (I hope you will see the difference B) )
  • rearanged structure of files

Known and uknown bugs and errors update 0.0.2:

  • if player's nickname contains <sometext> (something like tag starter) his name at table of connected players is displayed without this part of name - it is html processing effect.
  • 'back from game' reaction doesn't work properly - it will be fixed in later version

About XMLreport function: I forgot to add part of code which generates "someone was here 1s ago" - I've updated it in appendix A in first post.

 

About sounds: I couldn't find better sound files than current - if someone has got sounds which would fit better they can be used instead of current ones.

 

About tray icon: It should work in Linux with KDE/GNOME - if doesn't work or work incorrectly, report situation in this thread.

Edited by Intri
Link to comment
Share on other sites

  • 4 weeks later...

New version is available

 

Version 0.0.3

NOTE: Important dlls are in independent package - you have to download it only once.

 

  • added compact mode
    It is useful when you want to use 'stay on top' or see basic informations about the traffic only.
  • added a simple list of players visible all the time
  • 'refresh' button is available now - when is pressed, currently selected tab's content is reloaded (except the 'traffic' tab)
  • added automatic detection of the translation files in the 'translations' directory and a readme file for translation's makers
  • last news from Ufo2000 forum about Utto are available at 'About' tab (Lo-Fi version of the forum page)
  • first ufo2000 forum page is available at 'News' tab
    You can see if there are new threads on forum and open them directly from that tab.
  • added 'stay on top' button
    You can choose that application's window should be displayed always on top or not.
  • added two clocks
    First clock displays user's local time. The second one contains time from ufo2000 server (in fact it is time from ufo2000 forum - time differrence is calculated only once and it is added to user's local time).
  • 'new version available' message will appear if there will be posted new version of Utto on the forum

 

Known and uknown bugs and errors update 0.0.3:

  • the minutes displayed on both clocks won't be the same in most cases (one or more minutes delay) - to avoid this you can set minutes on your local clock to be the same as on forum.
  • if xcomufo.com forum keepers would like to change the html structure of the forum, this application may not display forum's content and the clock properly.
  • 'back from game' sound/message can't work because server don't change status 'in game XXXX' to 'in server chat' after match's ending (user is still displayed as 'in game' but can talk through the Ufo2000's chat room).

 

About future download manager : It is possible to add this feature but it requires some storage space where update files (maps, guns, etc) could be placed without zipping them (e.g. file path http://w w w.server.com/custommap/mapfile.map instead of http://w w w.server.com/custommap.zip). If you know about a server space without file storage and usage restrictions (downloading through Utto might not be the same as through a web browser for server provider),

write such information here.

 

About other features : Store space is also required for any XML file - I can try to test loading the XMLs from my website's server-space but my hosting provider might not be happy with that and would ban my account :unsure:

 

About next version : next version will be 0.1 - it will contain current basic and useful set of features. Any further versions will be focused on each tab's content improving.

 

About message system (mentioned by lemm) : I will try to connect the shoutbox from my website with the Utto - if it would work, message sytem would be possible to add.

 

About dlls : I've diecided to split dlls from the windows package - you will have to download dll package only once. When new version of Utto will appear, you will have to copy them from previous version's directory to other safe directory and then paste dlls next to Utto's new executable.

 

I'm waiting for any suggestions or opinions :D

 

Edit : If ufo2000.xcomufo.com:2000 server is down, it is possible that Utto make crash after few seconds. This bug is bad. All you can do for avoiding this, is to set traffic refresh rate to 60 sec (max possible) and use the application during that time (without main functionality but still useful). I will try to remove this problem soon.

Edited by Intri
Link to comment
Share on other sites

  • 2 months later...

New version is available

 

Version 0.1(0.0.4)

 

  • you can Launch Ufo2000 game directly on ufo2000.xcomufo.com server by pressing Ctrl+F9
    You don't have to add your nickname at 'options' tab - content of ufo2000.ini file is loaded and Utto have access to all informations needed from that file.
    If you haven't logged in to the server before (just installed Ufo2000 game), it is strongly recommended to run the game by F9 and put your unique nickname and password firstly. After this you can use Ctrl+F9 without any problems.
  • it is possible to choose the game server from the list
    Previous bug with unavailable server was removed
  • there is statistics page at 'traffic' tab available now
    You can browse tables of players, matches, usage of weaponsets/maps and stability ratings of ufo2000 versions
  • added manual file
    It contains basic and important informations about this application.
  • some other minor changes

 

NOTE: If you don't want Utto to do anything with ufo2000.ini file, just don't use Ctrl+F9(quick start will cause read-only actions with ufo2000.ini file so ufo2000.ini shouldn't be modified).

 

It took a little time from previous version ;) I've removed some little bugs and added some features (useful I hope :D ).

I can't be sure if any future versions will be made soon but maybe I will prepare something more interesting B) .

Link to comment
Share on other sites

  • 2 weeks later...

This is actually... quite awesome! I was thinking about something similar and here you are!

 

*downloading Utto*

 

OMG it's working. Good job Intri!

 

Some random thoughs

 

* it would be useful to have a 'run at startup' checkbox in the options menu

 

* UTTO makes it easier for you to check the UFO lobby, but it makes it impossible for other players to find you! Especially players who don't know about UTTO might think there is nobody up for a game at all!

 

You might want to add a list of people who are also running the client, and maybe some messaging option.

My skills are limited so I don't know if I could add passing messages between application worked on two different computers (but I think I can try :) )

 

^^ instead of this, it would be much more sexy if UTTO would directly log in into the UFO2000 server.

 

I don't know how hard it would be to program UTTO to make you visible in the UFO lobby, though it might be easier and more efficient than a UTTO to UTTO message system... This feature for sure making UTTO complete!

 

Also would be great to have an automatic message to be displayed for every new player who joins the lobby so he doesn't think you are idle.

 

If this is done, UTTO should be definitely distributed bundled with the original game installer. Maybe call it "match seeker" for clarity?

Edited by doodydota
Link to comment
Share on other sites

* it would be useful to have a 'run at startup' checkbox in the options menu

I think it is possible but don't know if it will work in Linux systems too - I don't have big experience with making things which will work depending on user's operating system.

* UTTO makes it easier for you to check the UFO lobby, but it makes it impossible for other players to find you! Especially players who don't know about UTTO might think there is nobody up for a game at all!

 

You might want to add a list of people who are also running the client, and maybe some messaging option.

My skills are limited so I don't know if I could add passing messages between application worked on two different computers (but I think I can try :) )

 

^^ instead of this, it would be much more sexy if UTTO would directly log in into the UFO2000 server.

 

Well... I guess this solution needs good protection for loging to the server and protecting user's password. Also, it requires analising the ufo2000's source code to find out how server communicates with the client (and procedure of verifying). I think I could do something like this when I know the sources better.

Also, I suggested to log in to the server (for at least 2,3 minutes). Further integrating Utto with the Ufo2000 game is only possible if developers will agree with such thing - it might be hard to do because developement of this game is.... hmm...not working good in last months :unsure: One of the reasons why I made Utto was lack of progresses at Ufo2000.

 

If this is done, UTTO should be definitely distributed bundled with the original game installer. Maybe call it "match seeker" for clarity?

In fact, the Utto has got a little more functionallity than a "match seeker" (I mean those "internet browser" equivalents :laugh: ).

 

 

Thanks for your opinion and notes =b

 

 

doodydota

There was ufo2000 pager program written by skybuck, it had the features that you are missing.

http://www.xcomufo.com/forums/index.php?showtopic=7068

I've read about it but the link is not working for me. I think I wouldn't have done such think as Utto (or would made it in other way) if I had seen something better than it. :P

Link to comment
Share on other sites

The fuction connect_internet_server() in server_gui.cpp handles login and the lobbychat. Though I dont really I understant the code well enough since my C++ knowledge is very limited.

 

I might play around with it a little bit. Nowadays I usually use a simple scripting language (AutoIt3) to make something small very quickly and efficiently.

I haven't done anything in c++ for 10 years.

Link to comment
Share on other sites

doodydota

There was ufo2000 pager program written by skybuck, it had the features that you are missing.

http://www.xcomufo.com/forums/index.php?showtopic=7068

Serge, do you have that pager maybe? Even if it isn't working it would be nice to know it. It is strange that there is no sign of that application (except the thread you mentioned).

Link to comment
Share on other sites

doodydota

There was ufo2000 pager program written by skybuck, it had the features that you are missing.

http://www.xcomufo.com/forums/index.php?showtopic=7068

Serge, do you have that pager maybe? Even if it isn't working it would be nice to know it. It is strange that there is no sign of that application (except the thread you mentioned).

No, I don't have any binary copy of this application now. But it is very easy to reimplement. The protocol that the game is using is very simple, I had it documented on the old wiki page, but now it's unfortunately gone.

Link to comment
Share on other sites

No, I don't have any binary copy of this application now. But it is very easy to reimplement. The protocol that the game is using is very simple, I had it documented on the old wiki page, but now it's unfortunately gone.

Hm... so how it should work? I've thought about this scenario (of course if loging-in will work in Utto):

1. User logs in by Utto (e.g. as Utto#321nickname) - he is on the server but his nickname is invisible for normal players in chat room (to avoid challenging) - user can talk with all connected people (players and Utto users) and have them listed on some kind of list. Other Utto's users will know he is on the server and non-users will know it from status page (as it was before). I think this solution would be possible if Utto logs to server as special Ufo2000 version (so players won't see such user but could talk with him).

2.If someone agree to play with user, he logs out, launch the Ufo2000, log in and play.

 

I think the procedure could be more simple a little but it might cause more problems.

Also, there is some kind of password's coding/decoding during connection to the server - I hope it isn't complicated too much:unsure:

Description of the protocol could be very useful :rolleyes: Is there other place to get it maybe?

Edit: I guess the connection's algorithm should be similar to that one used by Ufo2000 (without certain parts of code) - have to find that section in Ufo2000 code firstly.

Any suggestions where to look would be nice :D

Edit2: I think it is the code which was pointed by doodydota :hammer: Now have to examine it.

Edit3: I've also detected interesting things in server_protocol.cpp. It may be something important.

Edit4: Another thing - file nl.h (from mingw-libs) contains HawkNL cross platform network library. Should it be used by Utto too?

Edited by Intri
Link to comment
Share on other sites

No, I don't have any binary copy of this application now. But it is very easy to reimplement. The protocol that the game is using is very simple, I had it documented on the old wiki page, but now it's unfortunately gone.

Hm... so how it should work? I've thought about this scenario (of course if loging-in will work in Utto):

1. User logs in by Utto (e.g. as Utto#321nickname) - he is on the server but his nickname is invisible for normal players in chat room (to avoid challenging) - user can talk with all connected people (players and Utto users) and have them listed on some kind of list. Other Utto's users will know he is on the server and non-users will know it from status page (as it was before). I think this solution would be possible if Utto logs to server as special Ufo2000 version (so players won't see such user but could talk with him).

2.If someone agree to play with user, he logs out, launch the Ufo2000, log in and play.

Yes.

 

I think the procedure could be more simple a little but it might cause more problems.

Also, there is some kind of password's coding/decoding during connection to the server - I hope it isn't complicated too much:unsure:

Passwords handling is very simple. Password just does not get transmitted in plain text, but MD5 hash is sent instead (with some 'salt' prefix added). Once we calculate the hash, it's practically impossible to restore original password back from it. The only goal for such passwords handling is to prevent the users from accidentally disclosing any valuable passwords and blaming us for this ;) It does not provide secure authentication (some kind of challenge-response scheme would be needed for that), but this was never strictly needed.

 

Description of the protocol could be very useful :rolleyes: Is there other place to get it maybe?

Edit: I guess the connection's algorithm should be similar to that one used by Ufo2000 (without certain parts of code) - have to find that section in Ufo2000 code firstly.

Any suggestions where to look would be nice :D

Edit2: I think it is the code which was pointed by doodydota :hammer: Now have to examine it.

Edit3: I've also detected interesting things in server_protocol.cpp. It may be something important.

The sources of the game is the only way to get information about the protocol. I did a fatal mistake by not including protocol description to the SVN repository and just using a wiki page instead. Now somebody needs to redo this work if we want to have network protocol properly documented.

 

Edit4: Another thing - file nl.h (from mingw-libs) contains HawkNL cross platform network library. Should it be used by Utto too?

Not really. The use of HawkNL was basically a mistake. The problem is that windows and bsd sockets are a bit different. That's why some kind of portable layer is needed to take care of these differences. HawkNL was selected as this portability layer, but as I see it now, it actually introduced more problems than solved :) Networking stuff needs to be reworked to use something else, or just develop our own wrapper for the sockets.

 

Anyway Qt has its own portability layer for TCP sockets, it's a good idea to use it in Utto.

Link to comment
Share on other sites

Hm... so how it should work? I've thought about this scenario (of course if loging-in will work in Utto)....

Yes.

Ok, so let's try this scenario =b .

Passwords handling is very simple. Password just does not get transmitted in plain text, but MD5 hash is sent instead (with some 'salt' prefix added). Once we calculate the hash, it's practically impossible to restore original password back from it. The only goal for such passwords handling is to prevent the users from accidentally disclosing any valuable passwords and blaming us for this ;) It does not provide secure authentication (some kind of challenge-response scheme would be needed for that), but this was never strictly needed.

If I understand it correctly, I have to use some kind of coding method (I hope I will find it in Ufo2000 source and copy it) for password and send that coded version (other things should go without coding).

The sources of the game is the only way to get information about the protocol. I did a fatal mistake by not including protocol description to the SVN repository and just using a wiki page instead. Now somebody needs to redo this work if we want to have network protocol properly documented.

 

Not really. The use of HawkNL was basically a mistake. The problem is that windows and bsd sockets are a bit different. That's why some kind of portable layer is needed to take care of these differences. HawkNL was selected as this portability layer, but as I see it now, it actually introduced more problems than solved :) Networking stuff needs to be reworked to use something else, or just develop our own wrapper for the sockets.

 

Anyway Qt has its own portability layer for TCP sockets, it's a good idea to use it in Utto.

I've figured out that QTcpSocket or similar class from Qt may be good (during chat with doodydota). He also suggested me to use packet sniffer to see how the packets are transmitted when Ufo2000 is running. Maybe it will be helpful.

Link to comment
Share on other sites

After quick analasing I am able to send a packet (by 'write' method from QTcpSocket class) but the server is not responsing(no 'login ok').

The packet I sended look the same as that one which is send by the game(username, coded password etc.). I am sending it to ufo2000.xcomufo.com (port 2000). Should I somehow begin with transmition before packet's sending? Maybe server can't recognize where to send back?

I will try to check server-side code, maybe it will bring some informations about accepting conditions.

Link to comment
Share on other sites

Little success :banana:

First contact with alien civilisation :coolmad: :alien2: :alienoooh: :icon_alien:

I've send them my 'welcome' phrase (nick, pasword, version) and they replied to me (login ok) and listed all they leaders (list of connected players) - even can see what I am writing through Ufo2000 at the same time.

I've used the alien's technology a little (some parts of code from server_transport.cpp file e.g. packet_to_stream, send_packet) - does it cause any copyright law's breaking? I hope it doesn't(I do it for the community :laughsmiley: ). I can always write in 'Credits' what was my inspiration.

I will try to find a way of nice communication (chat system).

But firstly have to remove those square signs which are substitutes of spaces in packets (I think it will be easy).

The solution of connecting was trivial but it took a time to discover it :idea:.

 

Question: what should I pass as 'realm' and 'version' for Utto's connections (1st packet)?

Could they be e.g. realm=Utto and version=0.1 (version of Utto)? Or should they have certain structure?

Edited by Intri
Link to comment
Share on other sites

Congrats on your first little success :)

 

For me the learning curve of C++ coding is very steep and I am a bit overwhelmed... also the ufo code is very complex and impossible to understand to a newbie.

 

On a sidenote:

I've noticed that players with different UFO2000 versions are visible in the ufo lobby only to players with the same version (probably to avoid being challanged) although all can chat together. I think the same case will be with UTTO users, who log in to the server, passing a "pseudo-ufo-utto-version" to the server - unless the server rejects "fake" versions.

 

Also UTTO does not have to implement all the communication at all. Just the basic chat would be fine.

Edited by doodydota
Link to comment
Share on other sites

Congrats on your first little success :)

 

For me the learning curve of C++ coding is very steep and I am a bit overwhelmed... also the ufo code is very complex and impossible to understand to a newbie.

Thanks :P I know it's hard to work with the Ufo2000 code. I still know only small part of it too. :D (but got some interesting thoughts after analysing it and other things which comes with it in distribution).

On a sidenote:

I've noticed that players with different UFO2000 versions are visible in the ufo lobby only to players with the same version (probably to avoid being challanged) although all can chat together. I think the same case will be with UTTO users, who log in to the server, passing a "pseudo-ufo-utto-version" to the server - unless the server rejects "fake" versions.

 

Also UTTO does not have to implement all the communication at all. Just the basic chat would be fine.

I've noticed it in post #23 B) . Server is able to accept any string as version (well... it accepted Utto0.2; as realm it will be Utto). I think Utto will use Utto#nickname as nickname and same or similar password as that one used by the Ufo2000 game - both things are available directly from the ufo2000.ini file.

 

Currently Utto is able to detect packet type through packet ID (message for chat or other kind e.g. confirm of connection) and display its content properly - so now I only have to implement chat :wink1: Also I will try to change "borowed" functions into something shorter and easier.

Also I thought it could be problems with disconnecting (e.g. blocking login on server for couple hours), but it didn't happen luckyly - I even don't have to send 'disconnection' packet (well...such ID for disconnecting doesn't exists in Ufo2000 code :blush1: )- server detects Utto's closing (and destroying QTcpSocket object) and finishes the connection.

Edited by Intri
Link to comment
Share on other sites

  • 2 weeks later...

New version is available :meeting:

 

Version 0.2.0

  • added chat feature for messages sending between Ufo2000's and Utto's users through Ufo2000 official server
    You can connect to the Ufo2000 server as Utto#nickname and talk with both Utto and Ufo2000 users. There is simple users-filtering feature on the right side (through combobox).
    There is also 'connection' button next to chat input field which allows you to connect/disconnect (there is 5 sec pause between such actions to avoid server's overloading).
    For chat input copy/paste is possible (max 60 characters), chat browser allows you to copy it only. (See manual for full descritpion of chat).
  • manual is now accesible directly from application at 'about' tab.
    The updated content of Manual.html is displayed instead of 'About' informations now.
  • added License.txt file and posibility of viewing it directly from application
    GNU GPL content is now available at 'About' tab and as single text file.
  • updated some informations

Known and uknown bugs and errors update 0.2.0:

  • there are character's coding/decoding problems in Utto's messaging system - currently it is impossible to write couple special letters (like ą, ę, ś, ł etc. in Polish) - olny basic ASCII characters allowed.

 

It was quite simple to do the TCP connection :P But it took a little time to find out how to do it and quite more time for testing.

I had to leave that little part of Ufo2000 code (mentioned previously) - to be sure that the packets are being passed correctly.

I've also updated documetation of any kind (manual, license etc.)

I forgot to tell about "Ctrl + mouse wheel" method for scaling fonts in frames (it was able to use in previous versions too).

The full description of messaging (and of other things too) is available in the Manual.

Chatting maybe won't be as nice as at proffesional chat-rooms but it should be enough for start =b .

I've made 'system detection' method (WinXP, Win98, Linux, OS2, MacOS etc.)- if your system displayed next to your Utto#nickname at Ufo2000 status page is not valid, report it as bug.

I've finally found time for making simple Utto's website too - see http://www.utto.yoyo.pl/.

But main Utto's download source is still at this thread :blush1:

Edit : Had to make quick update in files (there was no 'space' support for chatting).

 

That's it...Happy New Year! :jitterbug: :Band: :party: :banana:

Edited by Intri
Link to comment
Share on other sites

  • 1 month later...
I have a problem with uploading the 'QtGui4.dll' file... :( Copy of the 'QtGui4.dll' file at the link I posted is incopatible with rest of files from DLL's package - so you can run Utto at windows only if you have Qt4.2 or newer installed. I will try to solve this problem soon. =b
Link to comment
Share on other sites

Thanks to FUEL for a possibility to download the Utto's windows version from his 7kplay.net tournaments website B) - now you can get the full package (Utto files + DLLs) in a single ZIP file. Linux version is available from the first post in this thread as it was before. Edited by Intri
Link to comment
Share on other sites

Known and uknown bugs and errors update 0.2.0:

  • there are character's coding/decoding problems in Utto's messaging system - currently it is impossible to write couple special letters (like ą, ę, ś, ł etc. in Polish) - olny basic ASCII characters allowed.

ufo2000 server is fully unicode aware and uses UTF-8 for all the text messages

Link to comment
Share on other sites

ufo2000 server is fully unicode aware and uses UTF-8 for all the text messages

I know that but when I tried to send UTF-8 packet with special letters (calling QString::toUtf8()), the server didn't want to display the full message (just about half of it) that was sent and it broke the connection after few seconds.... :OhBrother:

I guess it might be packet's length calculation problem or I'm using some methods in a wrong way. I tried to find out why it happens (without results) - but I will try again soon =b

Link to comment
Share on other sites

ufo2000 server is fully unicode aware and uses UTF-8 for all the text messages

I know that but when I tried to send UTF-8 packet with special letters (calling QString::toUtf8()), the server didn't want to display the full message (just about half of it) that was sent and it broke the connection after few seconds.... :OhBrother:

I guess it might be packet's length calculation problem or I'm using some methods in a wrong way. I tried to find out why it happens (without results) - but I will try again soon =b

Sounds like some kind of size of string in bytes vs. number of characters problem. You are probably setting the number of characters for the size of packet and the server gets confused.

Link to comment
Share on other sites

  • 2 weeks later...

I think I finally found the solution :D Utto will be turned almost everywhere to UTF-8 (previously it was ISO8859-2, because I had problem with preparing a 'starting connection' string in the 'connectToGameServer' method....I still have it so that part of code is temporary based on ISO8859-2 ^_^ ). I will do some tests, new version should appear soon.

Also, I could add a translation if someone will be so nice and prepare it for the Utto :P

Edited by Intri
Link to comment
Share on other sites

  • 2 weeks later...

New version is available

 

Version 0.2.1

  • support for UTF-8 in the chat system
    You can write and read all UTF-8 characters now.
  • added possibilty to send smilies and alien pictures
    The smilies set isn't very unified, maybe it will be at next version.
  • added German and Dutch translation
    Thanks to FUEL (Dutch) and hurz (German) for those translations.
  • changed tag's recognizing from QSytnaxHighlighter to HTML-like processing
    Every tags should work without problems now - but you can't use any HMTL tags in your message
  • fixed other problems with messages
  • added splash screen as the application's intro
    It shows tip for the user too.

 

As you may noticed, there are more graphics at this version - but I am aware that they are not the best ^_^

Some kind of graphic's unification would be good - any help with preparing Utto's pictures would be rewarded by mentioning at 'Credits' :)

 

Edit: Chat's icons are better now - thanks to hurz B)

Edited by Intri
Link to comment
Share on other sites

  • 2 months later...
The protocol that the game is using is very simple, I had it documented on the old wiki page, but now it's unfortunately gone.

Don't know if anybody is still interested (apparently Utto managed to solve all the problems by its own :-) ), but web.archive.org is a nice service:

http://web.archive.org/web/20060217174609/.../ServerProtocol

Link to comment
Share on other sites

Don't know if anybody is still interested (apparently Utto managed to solve all the problems by its own :-) ), but web.archive.org is a nice service:

http://web.archive.org/web/20060217174609/.../ServerProtocol

It is good that the description of the Server Protocol is available for read - it should be helpful to every Ufo2000's developer. Maybe a copy of it should be placed somewhere on the forums or on the Ufo2000 MainPage too.

Link to comment
Share on other sites

As for me this utility is quite nice, but it lacks usability a lot. I'd propose not making so many tabs, not using all those crazy color schemes and rethinking the ui of each tab - the options tab might be just a separate Preferences dialog. Good that there's an ufo2000 protocol somewhere, as noted by Intri, it should better be posted somewhere on forums.

 

I wish you luck in refactoring your utility and hope to see renewed version soon :)

Link to comment
Share on other sites

  • 2 months later...

New version is available

 

Version 0.2.2 :angel:

  • a sound is emitted when new message comes
    You can hear if somebody writes something new in the chat. The sounds can be disabled in TrayIcon menu (Sound submenu).
  • extended message's sending
    You can use a new toolbar for quick text's editing. The buttons are: bold, underline, italics, color, units, couple popular smilies and rest of the smilies.
  • compact mode became more useful
    Full chat system is also available after switching to the compact mode (by pressing 'Compact Mode' button or F11 key).
  • added Estonian translation
    Thanks to Trolly for this translation.
  • an application icon is built in the Utto.exe (Windows version)
    Making a nice destop shortcut should be a little easier from now.

 

Thanks for all suggestions about the chat - I hope the changes will be useful. B)

Link to comment
Share on other sites

  • 11 months later...
  • 3 weeks later...

New version is available

 

Version 0.2.3 :guitar:

  • switched from Qt 4.2 to 4.6
    This isn't a new feature but it should improve some things.
  • added Russian translation
    Thanks to Nidhegg for this translation.
  • some important updates
    From now on new official server (ufo2000.net) is default for Utto.

 

Sorry that it took so long to make a new version. There are no new big features this time but I hope that changes made in this version will be helpful.

New set of DLL files for Qt 4.6 is required - make sure that you have the correct ones.

Full package should be available from 7kplay site in couple days.

Edited by Intri
Link to comment
Share on other sites

New version is available

Version 0.2.3 :guitar:

...

 

Full package should be available from 7kplay site in couple days.

 

Thanks, it works!

The package is available for download by the following link: http://7kplay.net/phpBB3/downloads/Utto-0....ull-package.zip

Linux sources are available too: http://7kplay.net/phpBB3/downloads/Utto-0....ux(sources).zip

Edited by Fomka
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...