Jump to content
Ryan

Documentation and Tutorials Now Available

Recommended Posts

Posted (edited)

I had a problem here:

cd ~/
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.7.0-rc.3/protobuf-cpp-3.7.0-rc-3.zip
unzip protobuf-cpp-3.7.0-rc-3.zip
cd ~/protobuf-cpp-3.7.0-rc-3
./configure
make
sudo make install

https://github.com/xaya/xaya_tutorials/wiki/How-to-Compile-libxayagame-in-Ubuntu-short

I needed to change it to this (remove "-cpp" in the fourth line):

cd ~/
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.7.0-rc.3/protobuf-cpp-3.7.0-rc-3.zip
unzip protobuf-cpp-3.7.0-rc-3.zip
cd ~/protobuf-3.7.0-rc-3
./configure
make
sudo make install

Then I got this error:

xxx@xxx:~$ git clone https://github.com/xaya/libxayagame.git
Cloning into 'libxayagame'...
remote: Enumerating objects: 70, done.
remote: Counting objects: 100% (70/70), done.
remote: Compressing objects: 100% (55/55), done.
remote: Total 967 (delta 33), reused 35 (delta 15), pack-reused 897
Receiving objects: 100% (967/967), 408.44 KiB | 567.00 KiB/s, done.
Resolving deltas: 100% (666/666), done.
xxx@xxx:~$ cd ~/libxayagame/
xxx@xxx:~/libxayagame$ ./autogen.sh
libtoolize: putting auxiliary files in '.'.
libtoolize: linking file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: linking file 'm4/libtool.m4'
libtoolize: linking file 'm4/ltoptions.m4'
libtoolize: linking file 'm4/ltsugar.m4'
libtoolize: linking file 'm4/ltversion.m4'
libtoolize: linking file 'm4/lt~obsolete.m4'
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
configure.ac:8: installing './ar-lib'
configure.ac:8: installing './compile'
configure.ac:13: installing './config.guess'
configure.ac:13: installing './config.sub'
configure.ac:2: installing './install-sh'
configure.ac:2: installing './missing'
Makefile.am: installing './INSTALL'
mover/Makefile.am:16: warning: source file 'proto/mover.pb.cc' is in a subdirectory,
mover/Makefile.am:16: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled.  For now, the corresponding output
automake: object file(s) will be placed in the top-level directory.  However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
mover/Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'
xayagametest/Makefile.am:2: installing './py-compile'
xxx@xxx:~/libxayagame$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for ar... ar
checking the archiver (ar) interface... ar
checking for python... /usr/bin/python
checking for python version... 2.7
checking for python platform... linux2
checking for python script directory... ${prefix}/lib/python2.7/dist-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.7/dist-packages
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether g++ supports C++14 features by default... yes
checking whether C++ compiler accepts -Wall... yes
checking whether C++ compiler accepts -Werror... yes
checking whether C++ compiler accepts -pedantic... yes
checking whether C++ compiler accepts -Wno-deprecated... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for JSONCPP... yes
checking for JSONRPCCLIENT... yes
checking for JSONRPCSERVER... yes
checking for SQLITE3... yes
checking for LMDB... yes
checking for GLOG... yes
checking for OPENSSL... yes
checking for ZMQ... yes
checking for GFLAGS... yes
checking for GTEST... no
configure: error: Package requirements (gmock gtest_main) were not met:

No package 'gmock' found
No package 'gtest_main' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables GTEST_CFLAGS
and GTEST_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

 

The (run earlier) gtest install didn't report any problems:

xxx@xxx:~$ cd /usr/src/gtest
xxx@xxx:/usr/src/gtest$ sudo cmake CMakeLists.txt
[sudo] password for xxx:            
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/src/googletest/googletest
xxx@xxx:/usr/src/gtest$ sudo make -j2
[ 50%] Built target gtest
[100%] Built target gtest_main
xxx@xxx:/usr/src/gtest$ sudo cp *.a /usr/lib
xxx@xxx:/usr/src/gtest$ export GTEST_CFLAGS="/usr/src/gtest"
xxx@xxx:/usr/src/gtest$ export GTEST_LIBS="/usr/src/gtest"
xxx@xxx:/usr/src/gtest$ echo 'export GTEST_CFLAGS="/usr/src/gtest"' >> ~/.profile
xxx@xxx:/usr/src/gtest$ echo 'export GTEST_LIBS="/usr/src/gtest"' >> ~/.profile

 

Edited by DarkClaw

Share this post


Link to post
Share on other sites
3 hours ago, snailbrain said:

Hey. If you type

echo $GTEST_CFLAGS

and

echo $GTEST_LIBS

what's it say?

try reboot too

xxx@xxx:~$ echo $GTEST_CFLAGS 

xxx@xxx:~$ cd /usr/src/gtest
xxx@xxx:/usr/src/gtest$ echo $GTEST_CFLAGS 

xxx@xxx:/usr/src/gtest$ echo $GTEST_LIBS

It returns nothing, an empty string I guess. I will try to reboot later.

 

Share this post


Link to post
Share on other sites
xxx@xxx:/usr/src/gtest$ export GTEST_CFLAGS="/usr/src/gtest"
xxx@xxx:/usr/src/gtest$ export GTEST_LIBS="/usr/src/gtest"

type those to again and then check 

echo $GTEST_CFLAGS 

should work but wont survive reboot

 

Share this post


Link to post
Share on other sites
Posted (edited)
6 hours ago, snailbrain said:

xxx@xxx:/usr/src/gtest$ export GTEST_CFLAGS="/usr/src/gtest"
xxx@xxx:/usr/src/gtest$ export GTEST_LIBS="/usr/src/gtest"

type those to again and then check 


echo $GTEST_CFLAGS 

should work but wont survive reboot

 

Progress, but now I get this error when running make:

Making all in mover
make[2]: Entering directory '/home/xxx/libxayagame/mover'
protoc --cpp_out=. "proto/mover.proto"
protoc: error while loading shared libraries: libprotoc.so.18: cannot open shared object file: No such file or directory
Makefile:1327: recipe for target 'proto/mover.pb.h' failed
make[2]: *** [proto/mover.pb.h] Error 127

 

Edited by DarkClaw

Share this post


Link to post
Share on other sites

After doing this:

cd ~/
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.7.0-rc.3/protobuf-cpp-3.7.0-rc-3.zip
unzip protobuf-cpp-3.7.0-rc-3.zip
cd ~/protobuf-cpp-3.7.0-rc-3
./configure
make
sudo make install


try
sudo ldconfig

 

Share this post


Link to post
Share on other sites

Also if you are on GNU/Linux, probably you can just install "libprotobuf-dev" and "protobuf-compiler" through your package manager.  At least on Debian Stretch that works perfectly for me.

Share this post


Link to post
Share on other sites
5 hours ago, domob said:

Also if you are on GNU/Linux, probably you can just install "libprotobuf-dev" and "protobuf-compiler" through your package manager.  At least on Debian Stretch that works perfectly for me.

It said I already had the latest version for both, so doesn't help my case.

 

6 hours ago, snailbrain said:

After doing this:


cd ~/
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.7.0-rc.3/protobuf-cpp-3.7.0-rc-3.zip
unzip protobuf-cpp-3.7.0-rc-3.zip
cd ~/protobuf-cpp-3.7.0-rc-3
./configure
make
sudo make install


try
sudo ldconfig

 

This seems to have worked (do not see any errors), except as mentioned earlier my protobuf directory is called: "~/protobuf-3.7.0-rc-3" (no -cpp as it is in the docs).

Btw, I noticed this warning:

xxx@xxx:~/protobuf-3.7.0-rc-3$ sudo make install
[...]
libtool: warning: relinking 'libprotoc.la'

 

Share this post


Link to post
Share on other sites
1 minute ago, DarkClaw said:

It said I already had the latest version for both, so doesn't help my case.

 

This seems to have worked (do not see any errors), except as mentioned earlier my protobuf directory is called: "~/protobuf-3.7.0-rc-3" (no -cpp as it is in the docs).

Btw, I noticed this warning:


xxx@xxx:~/protobuf-3.7.0-rc-3$ sudo make install
[...]
libtool: warning: relinking 'libprotoc.la'

 

i think that should be fine. you probably only needed to just do the ldconfig rather than the sudo make install and other stuff.
Thanks for testing.. so you now have libxayagame library installed?

Share this post


Link to post
Share on other sites
1 minute ago, snailbrain said:

i think that should be fine. you probably only needed to just do the ldconfig rather than the sudo make install and other stuff.
Thanks for testing.. so you now have libxayagame library installed?

I believe so. I had to use the "troubleshooting" instructions to build the hello world:

xxx@xxx:/media/xxx/extA/xaya/Games/Linux/HelloWorld$ ./build.sh
/bin/sh: 0: Illegal option -
xxx@xxx:/media/xxx/extA/xaya/Games/Linux/HelloWorld$ packages="libxayagame jsoncpp libglog gflags libzmq openssl"
xxx@xxx:/media/xxx/extA/xaya/Games/Linux/HelloWorld$ g++ hello.cpp -o hello -Wall -Werror -pedantic -std=c++14 -DGLOG_NO_ABBREVIATED_SEVERITIES `pkg-config --cflags ${packages}` `pkg-config --libs ${packages}` -pthread -lstdc++fs
xxx@xxx:/media/xxx/extA/xaya/Games/Linux/HelloWorld$ 

I should get it running in a bit and will let you know. Currently just did this:

xxx@xxx:/media/xxx/extA/xaya/Games/Linux/HelloWorld$ ./hello
Error: --xaya_rpc_url must be set

 

Share this post


Link to post
Share on other sites
Posted (edited)

Ok, it looks like helloworld is running (where "pass" is whatever is in the .cookie file):

xxx@xxx:/media/xxx/extA/xaya/Games/Linux/HelloWorld$ ./hello --xaya_rpc_url="http://__cookie__:pass@127.0.0.1:8396" --game_rpc_port=29050 --storage_type=memory --datadir=/tmp/xayagame
ALICE said "HELLO WORLD!"
ALICE said "Hello world!"
Crawling Chaos said "...Hello, ALICE!"
BOB said "HELLO WORLD!"
ALICE said "Hello everybody!"
Wile E. Coyote said "Hello Road Runner!"
ALICE said "Hello everyone!"
ALICE said "Yo! WAZZUP?!?"
ALICE said ""
Alice in Wonderland said "Hello World!"
Alice in Wonderland said "Hello Wonderland!"

But my attempt to read the gamestate came back empty:

xxx@xxx:~$ curl --data-binary '{"jsonrpc": "2.0", "id":"curltest", "method": "getcurrentstate"}" -H 'content-type: text/plain;' http://127.0.0.1:29050/
> 

Or is it that there is an unclosed quote or something?

Yes, this works:

xxx@xxx:/media/xxx/extA/xaya/Games/Linux/HelloWorld$ curl --data-binary '{"jsonrpc": "2.0", "id":"curltest", "method": "getcurrentstate"}" -H content-type: text/plain;' http://127.0.0.1:29050/
{"id":"curltest","jsonrpc":"2.0","result":{"blockhash":"fac1a755cf18458da113e43ee3e7134e46d75bcf033b6229e1e9632e258b7c67","chain":"main","gameid":"helloworld","gamestate":{"ALICE":"","Alice in Wonderland":"Hello Wonderland!","BOB":"HELLO WORLD!","Crawling Chaos":"...Hello, ALICE!","Wile E. Coyote":"Hello Road Runner!"},"height":653850,"state":"up-to-date"}}

There is a stray quote before content-type.

Edited by DarkClaw

Share this post


Link to post
Share on other sites

Ok, got it working: https://explorer.xaya.io/tx/c003273f60aeae5efa05f4c9a9c697874a907de5d57a79cc2f281c8beef8af4a

I did have a problem here though:

xaya-cli name_update "p/tf101" "{\"g\":{\"helloworld\":{\"m\":\"Hello World!\"}}}"
bash: !\: event not found

That exclamation point needs to be escaped or something for me. In my case I just removed it.

Share this post


Link to post
Share on other sites
Posted (edited)

So to summarize in one post:

1) Build & Install gtest

For some reason export GTEST_CFLAGS and GTEST_LIBS weren't being written/read to  ./profile. It looks like they were written though since here is what mine currently looks like:

export GTEST_CFLAGS="/usr/src/gtest"
export GTEST_LIBS="/usr/src/gtest"
export GTEST_CFLAGS="/usr/src/gtest"
export GTEST_LIBS="/usr/src/gtest"
export GTEST_CFLAGS="/usr/src/gtest"
export GTEST_LIBS="/usr/src/gtest"

Anyway, this worked:

cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make -j2
sudo cp *.a /usr/lib
export GTEST_CFLAGS="/usr/src/gtest"
export GTEST_LIBS="/usr/src/gtest"
echo 'export GTEST_CFLAGS="/usr/src/gtest"' >> ~/.profile
echo 'export GTEST_LIBS="/usr/src/gtest"' >> ~/.profile

export GTEST_CFLAGS="/usr/src/gtest"
export GTEST_LIBS="/usr/src/gtest"

2) Build & Install protobuf

The directory created did not include "-cpp" in the name, and I needed to run ldconfig at the end (maybe make and make install can be skipped?):

cd ~/
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.7.0-rc.3/protobuf-cpp-3.7.0-rc-3.zip
unzip protobuf-cpp-3.7.0-rc-3.zip
cd ~/protobuf-3.7.0-rc-3
./configure
make
sudo make install
sudo ldconfig

3) See What People Are Saying with GetCurrentState

There was a stray quote before content-type:

curl --data-binary '{"jsonrpc": "2.0", "id":"curltest", "method": "getcurrentstate"}" -H content-type: text/plain;' http://127.0.0.1:29050/

4) Time to make your move

I needed to remove the exclamation point:

xaya-cli name_update "p/tf101" "{\"g\":{\"helloworld\":{\"m\":\"Hello World\"}}}"

Hope that helps. Feel free to reward chi for bug testing the docs: CKHuNvPg7hB72R4npYyNHBSr3wSnSuyxFS

Edited by DarkClaw
  • Like 1

Share this post


Link to post
Share on other sites

It was a little confusing but after figuring out the hello world I was able to make a move in mover without too much trouble:

https://explorer.xaya.io/tx/97cc53c8ae4f55e2bcd30059bdee4bab25d473b0b583b39b5acf0fc621d2207e

Here is what I eventually ran:

xaya-cli name_update "p/tf101" "{\"g\":{\"mv\":{\"d\":\"u\", \"n\":1}}}"

Basically I needed to look at the C# tutorial to see the right format. I wasted some time with having an extra nested "m" level which I thought always needed to be present for "moves", then passing the 1 as a string. That example should probably be in the readme since I didn't think to look in a C# tutorial to just run some terminal commands. Not a big deal though.

Share this post


Link to post
Share on other sites

@DarkClaw  Thanks for all that! (And sorry I didn't see this all sooner.)

I've updated the Ubuntu libxayagame build doc (I knew we should've put in "sudo ldconfig" there just in case) and the Hello World C++ for that single quote. 

Regarding the name_update and the bash error, you can use a space, e.g.:

osboxes@osboxes:~/xaya$ ./xaya-cli -rpcuser=user -rpcpassword=password name_update "p/Road Runner" "{\"g\":{\"helloworld\":{\"m\":\"Hello Wile E. Coyote! \"}}}"
d70393029638a494b0771a778d39766e5ea0806f29e0af9a0116d86361e81a73

You can also "set +H" to turn off that ! bash history:

osboxes@osboxes:~/xaya$ set +H
osboxes@osboxes:~/xaya$ ./xaya-cli -rpcuser=user -rpcpassword=password name_update "p/Road Runner" "{\"g\":{\"helloworld\":{\"m\":\"Hello Wile E. Coyote!\"}}}"
0f1c0f5ee32af773a2edb869ed3c5fa75d8e8edc1d53ee169a28118be5aa0ecc

See here for more information on that:

https://serverfault.com/questions/208265/what-is-bash-event-not-found

I've updated the C++ tutorial with a note to help people get around that. 

For the Mover move format, it's in 2 places (other than in the C# tutorial):

https://github.com/xaya/xaya_tutorials/wiki/Mover-Console-Tutorial#a-quick-look-at-moves

https://github.com/xaya/xaya_tutorials/wiki/Unity-Mover-Tutorial#making-a-move

The other Mover doc is only a very high-level overview without any details.

 

Share this post


Link to post
Share on other sites

I've added a new tutorial for xaya::SQLiteGame here:

https://github.com/xaya/xaya_tutorials/wiki/Hello-World-with-SQLite

For game developers, this will be a MUST read as libxayagame's SQLiteGame offers some incredible advantages over a CachingGame, including massive scalability for immense game worlds. 

There are also many other edits, tweaks, updates, improvements, etc. 

For those wishing to learn more about daemon operation, there's more content in there now for that, e.g. the xaya.conf document, etc.

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Awesome, Ryan!

A request - is it possible to have a small Unreal Hello World project/game that has everything for the SqliteGame wired up already? One that is downloadable off GitHub. Would be a good "Getting started easily" boilerplate project for people to start building their games on. 

The more devs and games being built, the better. And the easier the on-ramp, the more games and devs will be attracted :)

Thanks! :)

Share this post


Link to post
Share on other sites
5 hours ago, Grahnite said:

Awesome, Ryan!

A request - is it possible to have a small Unreal Hello World project/game that has everything for the SqliteGame wired up already? One that is downloadable off GitHub. Would be a good "Getting started easily" boilerplate project for people to start building their games on. 

The more devs and games being built, the better. And the easier the on-ramp, the more games and devs will be attracted :)

Thanks! :)

An Unreal Engine Hello World would most certainly be a good addition, and yes - I think wiring it up with SQLiteGame makes sense. 

The documentation and tutorials are still "in progress". Another significant update is coming to help make using it easier and more convenient. 

 

Share this post


Link to post
Share on other sites
21 hours ago, Ryan said:

I've added a new tutorial for xaya::SQLiteGame here:

https://github.com/xaya/xaya_tutorials/wiki/Hello-World-with-SQLite

For game developers, this will be a MUST read as libxayagame's SQLiteGame offers some incredible advantages over a CachingGame, including massive scalability for immense game worlds. 

There are also many other edits, tweaks, updates, improvements, etc. 

For those wishing to learn more about daemon operation, there's more content in there now for that, e.g. the xaya.conf document, etc.

 

Is there a file with everything in it instead of the separate chunks?

Share this post


Link to post
Share on other sites
On 3/24/2019 at 2:37 PM, DarkClaw said:

Is there a file with everything in it instead of the separate chunks?

Sorry. I'd forgotten to add in a download link as we were also in the middle of consolidating the code into a single repo. I've added the download link now. 

Also, please note that we've consolidated all of the tutorial code into 1 nice and easy repository here:

https://github.com/xaya/XAYA_tutorial_code

It is easiest to simply clone or download the entire repo rather than try to download individual files one at a time.

Links throughout the tutorial wiki have been updated as well.

Hopefully this will make it easier and more convenient for people. 

There are also a few content changes, but nothing spectacular. They're all relatively minor. 

 

 

  • Thanks 1

Share this post


Link to post
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.


×
×
  • Create New...

Important Information

Your use of this site is governed by our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.