Server Help

Misc User Apps - PSpace

Hakaku - Wed Jan 02, 2008 11:00 pm
Post subject: PSpace
Some of you may have seen this, as I posted it on SSforums, but for those who don't check those forums, PSpace is an alternative client to Continuum created by Pyxlz, that is able to connect to unmodified ASSS zones :

Earlier this year I discovered an earlier attempt for a second client made by Pyxlz back in 2005 (here). After looking around for it a bit, I managed to find an old version off SubSpace Downloads (download here). Unfortunately though, the version on there is 0.182, and I know he released a few newer versions afterwards. I still tested the old version, and surprisingly it worked, at least for unmodified ASSS zones. Some things were messed up, and it lacked any frontend, but Pyxlz's client had both chat and graphical interface. I don't know if he ever respected SS protocol, but it's still a step forwards when the client recognizes Continuum players, server messages, map, and all.

I previously asked about this client in another thread, and only got the response "why?" and "it's dead", because he was the only person working on it. Instead, I managed to contact Pyxlz afterwards, and after some e-mails passed, he ended up passing the source. Last he wrote in 2005, he said the client was nearly completed, except he never released a stable build later on. In a more recent e-mail he wrote:
pyxlz wrote:
Ok, here it is in very raw form. You'll probably need to download the DirectX sdk to get it working. I'm not even positive that it compiles in its current state. I'm traveling right now, so I won't have access to my dev box until next week to check all the dependencies. (...) Feel free to look the code and critique as necessary - it was never really designed to be maintained by other people. Let me know what you problems you run into and what suggestions you have.


In the end, the source (last I checked, it is written in C++ with Opengl and DirectX) is not of much use to me, but I'm hoping it will be for someone else. It's currently set up on SourceForge with Subversion, so knock yourselves out (if you ever manage to compile a stable build, please share the results). :

http://sourceforge.net/projects/pspace/
BDwinsAlt - Thu Jan 03, 2008 1:55 am
Post subject:
This is exactly what we need to keep the development going. We won't need priitk anymore pretty soon. He could close his directory servers in response or something, but someone like MGB could still host a sscentral.minegoboom,com server.

The project has to be passed on to someone else who has the time for it.

Thanks for caring. Let's get this thing done.
Doc Flabby - Sat Jan 05, 2008 11:10 am
Post subject:
Interestingly the design network code he is similar (mainly in the packet constructions/deconsturction) to the code i'm using. I would like to add, that as I uploaded the ssAPI before this was released, there was no way either of us could have seen each others code, i just found it amusing icon_smile.gif
BDwinsAlt - Sat Jan 05, 2008 3:42 pm
Post subject:
Great minds think alike.
Cheese - Sun Jan 13, 2008 12:21 am
Post subject:
BDwinsAlt wrote:
This is exactly what we need to keep the development going. We won't need priitk anymore pretty soon. He could close his directory servers in response or something, but someone like MGB could still host a sscentral.minegoboom,com server.

The project has to be passed on to someone else who has the time for it.

Thanks for caring. Let's get this thing done.


ill party in that boat!

:D
Anonymous - Thu Mar 05, 2009 11:47 am
Post subject:
http://www.ssforum.net/index.php?showtopic=22798
Initrd.gz - Wed Mar 11, 2009 9:29 pm
Post subject:
Major bump. Probably should have made a new thread icon_smile.gif
Samapico - Wed Mar 11, 2009 9:33 pm
Post subject:
Initrd.gz wrote:
Major bump. Probably should have made a new thread icon_smile.gif
No
Hakaku - Wed Mar 11, 2009 10:15 pm
Post subject:
If I had the means to compile it I would, but I'm happy that doc flabby could get it done. If anyone cares, even though there's quite a bit of work to be finished in the PSpace client, it has quite a lot of functionality... but one thing that failed me each time was that the chat feature was somehow broken and caused it to crash if you pressed enter.

Anyhow, here's a screenshot of Cheese's zone (hope you don't mind):

^There are things wrong with this, but it's just to show.

Cheese - Thu Mar 12, 2009 2:32 am
Post subject:
glad to help =)
Anonymous - Thu Mar 12, 2009 12:33 pm
Post subject:
Hakaku wrote:
If I had the means to compile it I would, but I'm happy that doc flabby could get it done. If anyone cares, even though there's quite a bit of work to be finished in the PSpace client, it has quite a lot of functionality... but one thing that failed me each time was that the chat feature was somehow broken and caused it to crash if you pressed enter.


That might be related to something i did to the code...i remember having to mess with the source for the console to get it to run/compile.

Btw I'm happy to upload all the files and more importantly project files i used to compile PSpace, they might need some tidying though. Let me know if u are interested its about 200MB of files :/

Anyone with a windows 2000+ machine and a bit of c++ knowledge should be able to compile it. I used all free tools to get this running.

You can use visual studio express 2005 (which is free) and the PDK to get the windows development enviroment you require.

ToolKit
Visual C++ Studio Express 2005
http://www.microsoft.com/express/2005/download/default.aspx

Microsoft Platform SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=0baf2b35-c656-4969-ace8-e4c0c0716adb&displaylang=en

Once you have downloaded the Platform SDK you need to follow the instructions here (note this step is essential):

http://www.microsoft.com/express/2005/platformsdk/default.aspx

DirectX SDK (for directinput) (i used 2004 edition but latest will probably work) http://www.microsoft.com/downloads/details.aspx?familyid=5493F76A-6D37-478D-BA17-28B1CCA4865A&displaylang=en

OpenAL (sound)
http://connect.creativelabs.com/openal/Dow...AL11CoreSDK.zip

ALUT (sound)
http://connect.creativelabs.com/openal/Dow...t-1.1.0-bin.zip

FreeGlut (graphics)
http://freeglut.sourceforge.net/

Its just a matter of setting up the above libs to work with the project.

PSpace has a somewhat interesting compilation design (i dont understand the reason for it...it seems overly complex). It consists of 3 lib projects which are then statically linked into the main "exe" project, you have to compile each project in turn before trying to compile the main project.[/b]
Hakaku - Thu Mar 12, 2009 11:30 pm
Post subject:
doc flabby -working wrote:
Btw I'm happy to upload all the files and more importantly project files i used to compile PSpace, they might need some tidying though. Let me know if u are interested its about 200MB of files :/

Well I thought it would kill my computer installing all of that >< but apparently it managed to survive. Soo... If you could do that that would be great icon_smile.gif
Cheese - Fri Mar 13, 2009 12:01 am
Post subject:
flabby, whats your day job?
same for you, dr b

u ppl code for a living?
Samapico - Fri Mar 13, 2009 12:29 am
Post subject:
Cheese wrote:
flabby, whats your day job?
same for you, dr b

u ppl code for a living?
They are working in my basement, tied up to their chair, which is chained to the ground. I hired some immigrants to whip them whenever they stop typing.

I throw a live chicken down there once in a while, and I assume they figure out some way to eat it.
Doc Flabby - Fri Mar 13, 2009 2:24 pm
Post subject:
Cheese wrote:
flabby, whats your day job?

u ppl code for a living?

i do code a bit for my job..but its generally boring sql queries and database crap. The stuff related to subspace doesn't really cross-over

As requested

http://subspace2.net/pspace.zip
60MB

I've even helped you out with most of the dependencies and fixed the bug (caused by the use of compiler dependant code) that makes sending messages crash icon_smile.gif

You will probably need to update the references to DirectX (change the library folder name in the project properties (linker and C++) It only compiles in DEBUG mode as i couldnt be bothered to duplicate all the settings to Release but it wouldnt be a massive task
Hakaku - Fri Mar 13, 2009 3:57 pm
Post subject:
Thank you Doc, much appreciated ^^
Though I also had to download the glaux library and header file to get it to work (apparently they've been deprecated?). But other than that, it's running well (aside a few of the usual crashes, such as this, besides chat).
Hakaku - Sun Mar 15, 2009 7:33 pm
Post subject:
Hakaku wrote:
...a few of the usual crashes, such as this...

I've been looking through the code for what could possible cause this, a second error given is "Expression: map/set iterator not dereferencable". Basically they occur in either of two situations: one crash occurs when I go upwards about 3/4 to the top of the map, the second occurs when I try to get in a ship (or when someone else changes ship)
I thought the problem might lie in SubspaceMap.cpp or even SubspaceFlash.cpp (seeing how it never occured if a second player went from ship->spec), but I'm not so sure anymore. (I assume it has to do with an iterator somewhere... but the problem is, that there are so many)

Do you think you could shed some light on this Doc Flabby? Also, why did you change the rgba values to rrba?


Edit: After adding about 100 lines of debug, I managed to isolate the shipchange problem (but not the map one) to the following in SubspaceZone.cpp:
Code: Show/Hide
template <class ListType>
void SubspaceZone::updateList(ListType& list, double timeStep, ObjectLayerType layer)
{
   ListType::iterator i;
   ListType::value_type item;
   bool doDelete = false;

   for(i = list.begin(); i != list.end(); ++i)
   {
      item = (*i);
      if(item)
      {
         item->update(timeStep);
      }

        if(!item || item->isGarbage())
      {
         i = list.erase(i);
         --i;
      }

      if(item->isGarbage())
      {
         /*if(layer != UnknownLayer)
            displayManager_[layer].removeObject(item);*/
         delete item;
         //item = 0;
      }
   }
}

Edit #2: The map bug seems to occur in the following bit of SubspaceMap.cpp:
Code: Show/Hide
void SubspaceMap::drawTileMap(const SubspaceTileMap& map) const
{
   SubspaceTileMap::const_iterator i, j;
   SubspaceTileMap::const_iterator startCol, startRow;
   int endRowIndex, endColIndex;

   startRow = map.lower_bound(toLinear(drawX_, drawY_));
   endRowIndex = toLinear(drawXEnd_, drawYEnd_);
   for(j = startRow; (*j).first < endRowIndex && j != map.end(); )
   {
      startCol = j;
      endColIndex = toLinear(drawXEnd_, (*j).second.y_);
      for(i = startCol; (*i).first < endColIndex && i != map.end(); ++i)
      {
         drawTile((*i).second);
      }
      j = map.lower_bound(toLinear(drawX_, (*j).second.y_+1));
   }
}

Doc Flabby - Mon Mar 16, 2009 5:03 pm
Post subject:
Would you be able to post how you got it to load/connect in the first place...ive been unable to get it to load levels or connect to zones tongue.gif
Hakaku - Mon Mar 16, 2009 5:29 pm
Post subject:
Doc Flabby wrote:
Would you be able to post how you got it to load/connect in the first place...ive been unable to get it to load levels or connect to zones tongue.gif

>< I never thought of that. What does it say when you try to connect?

I haven't been able to get it to connect to an ASSS zone, since it rejects the client over invalid protocol or something, and the offline mode simply doesn't work at all. But I did manage to get it to connect to Cheese's zone, but I had to copy paste the map from Continuum to the zones folder (since it has trouble downloading maps). Otherwise, using LC's AIO Server Kit (Version 4) locally, I could get the client to connect anytime and download the map (though it should be sysop'ed or else it'll eventually get kicked after 2 minutes for map checksum error). I recommend using the ssbiller rather than catid's, since catid's seems to get angry at repeated connections lol.

You might also want to consider making sure that the username & password is valid on the server/biller beforehand. In the configurations file, comment the lvz part, make sure noconnect=0, arena=0, and ship=8. Then fill out the zonedir, port, and ip appropriately.
Cheese - Mon Mar 16, 2009 10:50 pm
Post subject:
catids prevents ddos type stuff, and has light/heavy flood from single ip before it begins ignoring connections/packets...
All times are -5 GMT
View topic
Powered by phpBB 2.0 .0.11 © 2001 phpBB Group