August Development Objectives

Development, Research, and Testing Updates.

August Development Objectives

Postby Obi-Two » August 30th, 2015, 5:05 pm

Hello Galaxy,

After a much needed break, we've gotten back to work on SWG:ANH, and fixed up some things!

With a massive thank you to former developer HTX, I bring you this short video..




As you can see, we have a buildable project once again and we need you to help up develop and move it forwards.

I've created an unoffical repository on GitHub and set up a hand full of bugs. if you are interested in joining our team and help develop our project the challange is to fix at least one of thoes bugs.
Unofficial_Hope
Unofficial_Hope/Bugs

I've also created a wish list of everything I'd love to see developed in the next 12 moths or so,
Unofficial_Hope/Milestones

She doen't have to look pretty she just has to work!

Obi
Obi-Two

Quality Assurance
Star Wars Galaxies:A new hope
there is another...

Server by : Hostwind
Project : SWGANHServices/SWGANHJava
Obi-Two
SWG:ANH Staff
 
Posts: 246
Joined: January 3rd, 2009, 9:37 am
Location: Manchester, England
SWG Official Server: Ahazi

Re: August Development Objectives

Postby lei2 » September 23rd, 2015, 9:06 pm

For the unix build - the first linker error for ChatServer is quite trivial. Gcc at linking time is a bit prissy about order of libraries, so if one can manage to rearrange the order of the libraries so the libUtils.a comes after libDatabaseManager.a it will compile. I am not familiar with cmake so I simply SET(CMAKE_VERBOSE_MAKEFILE ON) and compile it manually then what is not really a solution.

In Session.cpp the seed_randmwc1616 and rand_mwc1616 may be replaced by unix srand and rand functions. This passed my compiler but I did not test if the build then works as expected.
---
Update: Server is up and running ... still big flaws and dropping exceptions here and then but ... well .. a few things are working. Target system is an older Ubuntu (12.04) .

The compile issue was as mentioned, a question of gcc argument order. The mwc1616 issue is related here too, in Utils there is a function for that. But so far the unix rand still works.

On first glance it looks as if the source would benefit from a general overhaul. Not sure if for example boost really is necessary. Since I have a few days I'll see what can be done then.
lei2
SWG:ANH Staff
 
Posts: 25
Joined: September 23rd, 2015, 1:11 pm
SWG Official Server: Farstar

Re: August Development Objectives

Postby Obi-Two » September 25th, 2015, 11:15 am

Hi lei2.
this looks like some great work, and a good step in the right direction :) thank you :D

I can't say I'm an expert on Ubuntu or any linux based systems, if you can do a pull request on GitHub I'll test it on my server and merge it

Many thanks Obi
Obi-Two

Quality Assurance
Star Wars Galaxies:A new hope
there is another...

Server by : Hostwind
Project : SWGANHServices/SWGANHJava
Obi-Two
SWG:ANH Staff
 
Posts: 246
Joined: January 3rd, 2009, 9:37 am
Location: Manchester, England
SWG Official Server: Ahazi

Re: August Development Objectives

Postby lei2 » September 28th, 2015, 5:52 pm

So far not really big thing, the gcc issue is quite common and this has been the easy part.

Guess it wont make so much sense to upload the whole project since I didnt keep a clean copy...also it would stuff my tiny line for some time ... alas there are not so many changes to do. As said Im not that familiar with cmake so there may be a more elegant way to go and I hope I didnt miss something.

So here the changes:
--- ~/build_server.sh
issue with [[... && ...]]: my bash dont eats that so [ ... ] && [ ... ] is working better


--- ~/CMakeLists.txt
commented out: SET(CMAKE_EXE_LINKER_FLAGS ...
added : SET(CMAKE_VERBOSE_MAKEFILE ON)

--- ~/src/CMakeLists.txt:
ADD_SUBDIRECTORY(ScriptEngine)
ADD_SUBDIRECTORY(ChatServer)
ADD_SUBDIRECTORY(ConnectionServer)
ADD_SUBDIRECTORY(LoginServer)
ADD_SUBDIRECTORY(PingServer)
ADD_SUBDIRECTORY(ZoneServer)
ADD_SUBDIRECTORY(NetworkManager)
ADD_SUBDIRECTORY(DatabaseManager)
ADD_SUBDIRECTORY(MessageLib)
ADD_SUBDIRECTORY(SwgProtocol)
ADD_SUBDIRECTORY(Utils)
ADD_SUBDIRECTORY(Common)


---~/src/ZoneServer/CMakeLists.txt
include(MMOServerExecutable)

AddMMOServerExecutable(ZoneServer
MMOSERVER_DEPS
DatabaseManager
NetworkManager
MessageLib
SwgProtocol
ScriptEngine
libanh
Utils
Common
ADDITIONAL_INCLUDE_DIRS
${LUA_INCLUDE_DIR}
${NOISE_INCLUDE_DIR}
${TOLUAPP_INCLUDE_DIR}
DEBUG_LIBRARIES
${LUA_LIBRARY_DEBUG}
${NOISE_LIBRARY_DEBUG}
${TOLUAPP_LIBRARY_DEBUG}
OPTIMIZED_LIBRARIES
${LUA_LIBRARY_RELEASE}
${NOISE_LIBRARY_RELEASE}
${TOLUAPP_LIBRARY_RELEASE}
"-lrt"
)



---~/src/ChatServer/CMakeLists.txt

AddMMOServerExecutable(ChatServer
MMOSERVER_DEPS
DatabaseManager
NetworkManager
Utils
Common
)
TARGET_LINK_LIBRARIES(ChatServer "-lrt -lpthread")
---
This step needs to be done to the other server directories under /src as well. Change the modules order, add the target_link_lib directive appropriate for the server and as last step remove the cmake cache in ~/src.

Now the build process for the project should work.

As next step - if not already exists - create ~/bin (bin directory in projects main dir) and copy ChatServer, ConnectionServer, LoginServer, PingServer and ZoneServer from the ~/build/src directories to ~/bin.
In ~/bin create directories config, heightmaps, logs and script.

~/bin/config and ~/bin/scripts need to contain the corresponding content from the directories under ~/data, download the heightmaps (https://github.com/anhstudios/swg-heightmaps/downloads) and
then setup the msql database, the swganh database should be all whats needed for this version.

Update the galaxy table with the appropriate ip address.

The lua's in ~/bin/script still contain an error, edit the include line to
local MM = require 'script/TatooineNpcTest2'

The configs need to be edited to have ip's, db server address, user and password in place. Then servers can be started. Maybe you need to start servers with --Bindaddress/--BindPort/--ZoneName arguments, for example nohup ./ZoneServer --BindAddress 192.168.2.2 --BindPort 5010 --ZoneName tutorial &

ZoneServer with heightmap takes a time to report ready to the ConnectionServer.

Now the client's swgemu_login.cfg can be edited to the servers ip and login port (44990). Log in as swganh0, password swganh and you should be able to create a char then.

The tutorial works only partially. The travel terminal might not work either. Might be the anh customized client is necessary, I used the emu one. To get past the tutorial simply update the accounts table and set 8 | 3527.840088 | 5.000000 | -4803.689941 | 0.000000 | 0.999805 | 0.000000 | -0.019740 | for
planet_id and coordinates, relog the client and land in Mos Eisley.
lei2
SWG:ANH Staff
 
Posts: 25
Joined: September 23rd, 2015, 1:11 pm
SWG Official Server: Farstar

Re: August Development Objectives

Postby Obi-Two » September 29th, 2015, 4:22 am

Thank you againLei2, I've applied this to the unofficial project to test a little later :)

I forgot to mention about the src, your are very right there is a lot of work that need doing to it, not to mention a good olds tidy up and update. this will be part of phase 2 an 3, for now I'd like to get a test centre up and running, and try and attract some good folks like yourself to help with the next pase, :D how is your C++ anyway :D

The tutorial has been broken for the longest time, something I hope to get fixed (not that its needed but I kind of liked it :D)

Thank you again, your efforts are amazing
Obi
Obi-Two

Quality Assurance
Star Wars Galaxies:A new hope
there is another...

Server by : Hostwind
Project : SWGANHServices/SWGANHJava
Obi-Two
SWG:ANH Staff
 
Posts: 246
Joined: January 3rd, 2009, 9:37 am
Location: Manchester, England
SWG Official Server: Ahazi

Re: August Development Objectives

Postby lei2 » September 29th, 2015, 3:12 pm

A test center ... well yes, that would be nice indeed. Not sure if it will be fun with this version. Alas not in the state it is.

Currently ZoneServer is throwing an exception on inventory open. It seems to be located in
ObjectController::_handleGetAttributesBatch, ~/src/ZoneServer/OCCommonHandlers.cpp where the message does not contain the expected values. Also the function Object::addObject in Object.cpp does
not work as expected. Here I am not sure if the underlying data is complete.

But - so far so good - all boost lexicals wrapped into proper try catches help to keep the zone alive. To turn on debugging just #define DLOG(level) LOG(level) in Utils/logger.h so it becomes a bit more transparent what the servers to and where they fail.

I will see if the message issue can be solved, but in the next days I'll be busy with other things that need to be done.
lei2
SWG:ANH Staff
 
Posts: 25
Joined: September 23rd, 2015, 1:11 pm
SWG Official Server: Farstar

Re: August Development Objectives

Postby Obi-Two » September 30th, 2015, 4:03 am

In all honesty the test center wouldn't me playable, but might act as a 100w bulb and attract people back to the project, I hope so anyway.

Once that happens I can start phase 2 and start looking into the src code then phase 3 we start working on features....

In an ideal world I'd have the skills, knowledge and time to start this from scratch, but sadly I do not :( so I'll work with what we have :).

OK, I think I've copied your mods across, but when I try to run the connection server it says it cannot open the config file, I might have missed something :/

Is there any chance you can do a pull, request to my unofficial github, then I know where on the same page :)
Thank you once again for your hard work
Obi-Two

Quality Assurance
Star Wars Galaxies:A new hope
there is another...

Server by : Hostwind
Project : SWGANHServices/SWGANHJava
Obi-Two
SWG:ANH Staff
 
Posts: 246
Joined: January 3rd, 2009, 9:37 am
Location: Manchester, England
SWG Official Server: Ahazi

Re: August Development Objectives

Postby lei2 » September 30th, 2015, 6:50 am

configs need to be in ~bin/config, same with scripts and logs. And ... all config filenames must be lowercase only. I guess that should be it.

The inventory issue is almost traced down, its origin is the message handler. So it needs to recompile the whole project on a slow box :( But it seems to be the source of a couple of other issues too, so that rly would be an advance.

It indeed would be nice if this project could be revived. Its code is quite small, so it might even succeed to port it to a RasPi, what would mean a complete Galaxy in a box then. :)

Guess for a real revive it would not only mean to attract ppl who can do things in c/c++ but ones who can and are willing do it the right way.
lei2
SWG:ANH Staff
 
Posts: 25
Joined: September 23rd, 2015, 1:11 pm
SWG Official Server: Farstar

Re: August Development Objectives

Postby Obi-Two » September 30th, 2015, 1:31 pm

interesting I thought I'd put comments in here...

lei2 wrote:configs need to be in ~bin/config, same with scripts and logs. And ... all config filenames must be lowercase only. I guess that should be it.

Yes, I've double checked my dir is Home/unofficial_hope/bin/config for the config files
I've copied the folders from the build folder to the bin folder also

edit: I've figured this one out :D opening a terminal and browsing to the build folder I used make install
this make the bin folder with the server parts of the server in, copy across the data (config, heightmaps, scrips and logs) rename the configs to all lowercase) and its working for me now (ISH)

lei2 wrote:It indeed would be nice if this project could be revived. Its code is quite small, so it might even succeed to port it to a RasPi, what would mean a complete Galaxy in a box then. :)

I think this idea has its merrits, though I just want to see ANH get its project back on track, then we can this about the furture of the project :) great idea though

lei2 wrote:Guess for a real revive it would not only mean to attract ppl who can do things in c/c++ but ones who can and are willing do it the right way.

This is the real trick, its really my hope that once the test centres running it'll attract the comunty back and hopefully the bring some devs with them, while this maybe wishfull thinking on my part, I think its would be a shame for us to vanish.

As I'm sure I've said before, I'd love to start this from scratch, but we need devs who would be willing to stick at a very large project with little reward other than getting a 10 year+ old game running.
who knows though once the server sides done we might be able to rebuild the client, would be nice to expand on the game adn get it to where it should have been in the first place...

Obi
Obi-Two

Quality Assurance
Star Wars Galaxies:A new hope
there is another...

Server by : Hostwind
Project : SWGANHServices/SWGANHJava
Obi-Two
SWG:ANH Staff
 
Posts: 246
Joined: January 3rd, 2009, 9:37 am
Location: Manchester, England
SWG Official Server: Ahazi

Re: August Development Objectives

Postby lei2 » October 14th, 2015, 2:30 pm

Obi-Two wrote:edit: I've figured this one out :D opening a terminal and browsing to the build folder I used make install
this make the bin folder with the server parts of the server in, copy across the data (config, heightmaps, scrips and logs) rename the configs to all lowercase) and its working for me now (ISH)


How did you do that before? I never thought of any other method than using a terminal : ) But good to hear its running now. Is it a 64bit system?

RPI indeed might work since on linux things are quite portable, but it would just be some fancy, not a real project goal. And it would be just one or two Zones ...

Obi-Two wrote:This is the real trick, its really my hope that once the test centres running it'll attract the comunty back and hopefully the bring some devs with them, while this maybe wishfull thinking on my part, I think its would be a shame for us to vanish.

As I'm sure I've said before, I'd love to start this from scratch, but we need devs who would be willing to stick at a very large project with little reward other than getting a 10 year+ old game running.
who knows though once the server sides done we might be able to rebuild the client, would be nice to expand on the game adn get it to where it should have been in the first place...


Well, the game was quite ahead of its time and I guess it will last since it has unique features.

In between I had some time to become a bit more familiar with the code and its concepts. And I am quite sure that the requirements of a linux server simply were no project goals. So even if the most urgent throws and asserts are debugged, the servers will still render a linux box useless by putting it under heavy load by just waiting for something to happen. Its a hell of a polling machine, designed for a dedicated high end server farm that serves high session numbers. Nice concept but only for this special szenario. For common all day use - all servers on one box, some ten sessions - it bummers.

From implementation side I'd say a lot of things are quite complicated - and complicative. The use of deque is a nice idea, but for simple data acquisition is a bit oversized. Also some parts of the code still use an old world object model, that for example is the reason why the tutorial doesnt work right. Well, but that all is theory.

In practice my problem was that most fixes lead to details and details that then lead to the current projects dependency problems. Btw, the inventory issue was a message problem caused by bstring, the wide char conversion simply didnt work as expected. Might be a 32bit issue, same with regex, easy to replace. Also the mysql connectors in deps seem to cause problems, so I replaced them with the systems connectors I get through apt-get. To have the chance to get rid of boost, I already rewrote some code for debug, config and servers. Currently Im working on a more simple alternative for the database manager, after that thread management can get a go. This together should result into better controlled servers that at least behave under linux. In current state it makes no sense to upload a copy to git, since it would break what is there. And among all verifying and testing its quite a lot of redaction work, so it will take some time.

But when its done, a linux testcenter will be in range. And I guess even if the code is outdated and a bit behind compared with the emu, it has its potentials and at least its engine comes without intentional limits.
And I am learning a lot about c++, a nice side effect in all this : )

lei
lei2
SWG:ANH Staff
 
Posts: 25
Joined: September 23rd, 2015, 1:11 pm
SWG Official Server: Farstar

Next

Return to Developer's Datapad

Who is online

Users browsing this forum: No registered users and 1 guest

cron