From The Mana World
(→‎Steps: more minor clean up, entry is new art process and further clarifications on steps were made.)
(→‎Set Up: added Ali-G's Development Guide + Link to README.mv.txt)
Line 4: Line 4:
'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.
'''Dependencies:''' Throughout this tutorial, I do not address dependencies.  Bison and Flex are needed, as are other dependencies.  This will be inserted with time.


# Open a command line terminal (e.g. xterm or konsole).
==Set Up Own Server==
# mkdir ~/tmw-ea (or other name you prefer your directory to be called).
 
# cd ~/tmw-ea
Here are the steps I use all the time when I want to make a new, fresh local testing server.
# git clone git://gitorious.org/tmw-eathena/mainline.git eathena
* Open a terminal.
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data
* ''mkdir ~/tmw-ea''
# git clone git://gitorious.org/+tmw-admins/tmw/tmwa-client-test.git tmwdata
* ''cd ~/tmw-ea/''
# cd eathena
* ''git clone git://gitorious.org/tmw-eathena/mainline.git eathena''
# make
* ''git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data''
# cd ../eathena-data
* ''cd eathena/''
# ln -s ../eathena/{char-server,login-server,map-server,ladmin} .
* ''make''
# for F in *.example; do cp $F ${F/.example/}; done
* ''sudo cp login-server char-server map-server /usr/local/bin/''
# cp save/account.txt.example save/account.txt
* Close terminal.
# Edit conf/char_local.conf and change login_ip and char_ip to 127.0.0.1
* Open ~/tmw-ea/eathena-data/login/conf folder.
# Edit conf/map_local.conf and change char_ip and map_ip to 127.0.0.1
* Open '''login_local.conf.example''' and save it at the same place under '''login_local.conf'''.
# Edit conf/ladmin_local.conf and change login_ip to 127.0.0.1, login_port to 6901, and admin_pass to p1
* Open ~/tmw-ea/eathena-data/world/conf folder.
# TODO give instructions about lan_support.conf and opening your server to access from other computers.
* Open '''char_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''char_local.conf'''.
# cd conf
* Open ~/tmw-ea/eathena-data/world/map/conf folder.
# ./build-magic
* Open '''help.txt.example''' and save it at the same place under '''help.txt'''.
# Edit the second column of conf/spells-build to give usable names to spells.
* Open '''map_local.conf.example''', change the '''81.161.192.4''' to '''127.0.0.1''' and save it at the same place under '''map_local.conf'''.
# ./build-magic (again)
* Open ~/tmw-ea/eathena-data/login/save folder.
== Start the servers ==
* Open '''account.txt.example''' and save it at the same place under '''account.txt'''.
# Open a command line terminal.
 
# cd ~/tmw-ea/eathena-data
You can now launch your test server.
# ./char-server
* Open a terminal.
# Repeat steps 1 and 2
* ''cd ~/tmw-ea/eathena-data/''
# ./login-server
* ''./char-server& ./login-server& ./map-server&''
# Repeat steps 1 and 2.
* Open another terminal.
# ./map-server
* ''mana -u -d ~/tmw-ea/eathena-data/client-data''
 
You are now ready and able to do anything on your local test server.


This should run all three of your servers.
This should run all three of your servers.
'''See Also:''' [http://wiki.themanaworld.org/images/3/33/README.mv.txt README.mv.txt] - Documentation on using git submodules, like client-data and tmw-music.


== Administation ==
== Administation ==

Revision as of 11:42, 24 June 2011

Set Up

This is a how to help content development for official TMW-eA using Ubuntu 10.04 on amd64 and the Mana client. Other OS and clients may differ. Following this guide, you should be able to get development testing versions of the client data (tmwdata), server-data (eathena-data) and participate in development by using a localhost server. After getting these, you can both test current development and begin development in the direction you find most fitting.

Dependencies: Throughout this tutorial, I do not address dependencies. Bison and Flex are needed, as are other dependencies. This will be inserted with time.

Set Up Own Server

Here are the steps I use all the time when I want to make a new, fresh local testing server.

  • Open a terminal.
  • mkdir ~/tmw-ea
  • cd ~/tmw-ea/
  • git clone git://gitorious.org/tmw-eathena/mainline.git eathena
  • git clone --recursive git://gitorious.org/+tmw-admins/tmw/tmwa-server-test.git eathena-data
  • cd eathena/
  • make
  • sudo cp login-server char-server map-server /usr/local/bin/
  • Close terminal.
  • Open ~/tmw-ea/eathena-data/login/conf folder.
  • Open login_local.conf.example and save it at the same place under login_local.conf.
  • Open ~/tmw-ea/eathena-data/world/conf folder.
  • Open char_local.conf.example, change the 81.161.192.4 to 127.0.0.1 and save it at the same place under char_local.conf.
  • Open ~/tmw-ea/eathena-data/world/map/conf folder.
  • Open help.txt.example and save it at the same place under help.txt.
  • Open map_local.conf.example, change the 81.161.192.4 to 127.0.0.1 and save it at the same place under map_local.conf.
  • Open ~/tmw-ea/eathena-data/login/save folder.
  • Open account.txt.example and save it at the same place under account.txt.

You can now launch your test server.

  • Open a terminal.
  • cd ~/tmw-ea/eathena-data/
  • ./char-server& ./login-server& ./map-server&
  • Open another terminal.
  • mana -u -d ~/tmw-ea/eathena-data/client-data

You are now ready and able to do anything on your local test server.

This should run all three of your servers.

See Also: README.mv.txt - Documentation on using git submodules, like client-data and tmw-music.

Administation

  1. Start the servers.
  2. Open a command line terminal.
  3. cd ~/tmw-ea/eathena-data
  4. ./ladmin
  5. add username M password
  6. gm username 99

Connecting

  1. Open a command line terminal.
  2. Run your client pointing to your client data and your local server. E.g. mana -u -d ~/tmw-ea/tmwdata --server localhost --port 6901

If all goes well, you are now ready to test new content and participate with development.

Making Content

Making Map Content

Java Converter Tool

This has been my experience on running the java Converter tools, which takes map data from client-data and applies it to the server-data. The README addresses dependencies for using this tool. It suggests there are other ways it can work in the README, if this method does work for you.

  1. cd ~/tmw-ea/eathena-data/tools/tmwcon
  2. ant
  3. ln -s ../.. server-data
  4. ln -s ../../../tmwdata tmwdata
  5. java Converter

Making Art Content

Steps

  • Post [CPT] or [WIP] art on the graphics development forum.
  • Work with the Art Director and collaborators on getting the art consistent.
  • When finished, edit topic as [FND].
  • Art Director approves [FND] art and makes/requests xml for it.
  • A1. Once the .png and .xml is ready, the Art Directory can mark as [RC].
  • A2. Any developer, including the Art Director, can add [RC] content through a patch, or push if they have commit access.
  • A3. Once pushed, Art Director marks topic as [GIT].
  • or
  • B. Art Director commits art and xml, then marks as [GIT].
  • Project developer requests database entry reservations from a General Content Team developer.
  • Map entry server data affected: resnametable.txt and .wlk files in the data directory, map content files in the npc directory.
  • Map entry client data affected: .tmx files in the maps directory.
  • Map entry requires the running of the .tmx converter (aka java converter) before commits can be made.
  • Art content server data affected: entry made in the item_db.txt, mob_db.txt or mob_skills_db.txt in the db directory.
  • Art content client data affected: entry added in items.xml, monsters.xml or other identification file, art .png and xml added to appropriate sub-directory in the graphics directory.

Handling General Content Team [REQ]s

  • General Content Team member adds a [REQ] topic to the graphics development forum.
  • General Content Team member adds the [REQ] topic as a hyperlink under "Required Art" on the Art in Development page.
  • Art Director attempts to network with other artists to assign the art to an artist.

Bit Masking

Bit Masking helps us reduce our variable count while offering a dynamic method of script writing that is versatile and flexible to both linear and non-linear script writing.

Bit Masking Test Script

Using the Git Repositories

Making Git Patches and Submitting them For Review

Reviewing Git Patches and Pushing

Git Branches, Git Merging

Using the Test Server

Using The Mana World Workshop