LPC entry: Tales of Gydia (progress thread)
Welcome to Tales of Gydia progress thread!
We're a team of 2 people working on a turn based tactical RPG focused on user-made content.
A small test-dem (not up to date with development...) o of the game can be found here (windows only - linux build will come): http://sourceforge.net/projects/talesofgydia/, while the repo is at https://github.com/buch415/Tales-of-Gydia, if you're so brave to try building from my messy code.
Enjoy and leave feedback!
Buch & MikiGuerri
Good work so far, Buch!
Just a quick suggestion: Change all SDL related includes from
#include "SDL\SDL.h"
#include "SDL\SDL_image.h"
to
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
to make it more linux friendly.
Thanks for suggestion farrer! I will do it asap...
Just gitted, now have to see when the README is updated and instructions for compilation on GNU/Linux are shared. The screen looks good atm.
Quick (and sadly few) updates for today:
Now working on inventory system...
...And sorry for the Linux build not available yet, but I'm still pretty busy on code and I'm still learning how to do that... :)
no harm done. AFA it's there sometime before the contest gets over it's all good. :)
This game looks great! I'm very interested to see how it ends up.
Today's news:
(note: screenshots are low-quality due to jpg format, real game looks better)
New windows build is already available on Sourceforge: https://sourceforge.net/projects/talesofgydia/
Next step are flying enemies/projectiles (that should be pretty easy by the way) and XP/Levelling system...
Today's update:
As usual, uploaded Windows binaries to SourceForge: https://sourceforge.net/projects/talesofgydia/; the current very small demo allows you to try spells (the fireball image is a dummy) and both ranged and melee weapons, as long as level up system.
And good news for Linux users! I have almost finished preparing the Linux build, so I should be able to make it available during next week.
Today made a little main menu... I know it's very minimal and basic, but for the moment should be fine... of course, I'm going to add the game title/logo on top...
Need to make a request to you artists round here: would someone make some more projectiles? I mean, inside the submissions I actually found just wulax's arrow... It would be fine to have even just some kind of fireball (I could recolor it pretty easily), since the one we're using now is just a horrible placeholder made by me.
Last updates:
The binaries for Windows haven't been uploaded yet, and I'm still working on the linux build
Just quick updates on what we've been working on lately.
We found out that many features we had wanted to implement won't probably be added to the game due to lack of time (we intend to add them once the competition has ended).
There probably won't be any possibility to trade with NPC (and no gold! - you'll find new items in chests and if we get enough time by killing monsters), no multiple/secondary quests, no crafting panel (we really wanted to add it :(...) and no per-type attack stats.
Of course, we will reintroduce these features in the remote case we have some spare time to work on them :)
Now we started working hard on game content... I attached a first draft of how our main map will probably look like (there's still lots more to do on it... the right side is pretty empty and we will add a village somewhere and possibly many dungeon entrances - the map itself is not that big), we're working on implementing all wulax's clothes (they're really a lot! thanks wulax), weapons, spells... We probably won't release many updates from here to the competition end...
tut_island.png 89.9 Kb [50 download(s)]
@Buch no README compiling instructions still for Linux users .
@shirish: I know... still sorry but very busy on almost any other thing... I promise I'll do it :) (I'm actually forced to let the game run on a free platform, so I'll do it ASAP)
@buch : more things to you change to make it compatible with linux (plataform independent):
on ui.h, change:
#include "SDL/SDL_rotozom.c"
#include "SDL/SDL_gfxPrimitives.c"
to
#include <SDL/SDL_rotozom.h>
#include <SDL/SDL_gfxPrimitives.h>
on test.cpp, change:
game_init("data\\cfg\\db.cfg", "data\\cfg\\settings.cfg", "data\\cfg\\theme.cfg");
to
game_init("data/cfg/db.cfg", "data/cfg/settings.cfg", "data/cfg/theme.cfg");
also, on all .cfg files, where you set some directories, change \ to / .
That's it.
Thank you! Too many time spent on Windows programming makes me forget of this simple stuff...
One more thing I want to ask you: SDL_rotozoom.h and SDL_gfxPrimitives.h contain only the prototypes of their functions, while actual definition is inside SDL_rotozoom.c and SDL_gfxPrimitives.c - on Windows I included the directly .c files, but I've seen in Linux (at least in Ubuntu) those aren't downloaded with the package (or at least they're not placed inside include directory)... This means I have to put them inside my source folder and share them together with the code? Maybe it's a noobish question but I'm not an expert in linux programming..
SDL_rotozom and SDL_gfx primitives are from the SDL_gfx library (as SDL_image.h is from SDL_image library).
The correct way to use it is to include the headers (.h) and link the program with the library (-lSDL_gfx). In ubuntu the headers probably are on libsdl-gfx1.2-dev package (or something like that).
Linux build is there, at last! :)
I added a bash script file (make.sh) which should check for required SDL packages (the game shouldn't require anything else to run), give the option to install them if they aren't there, and then builds the game.
I guess this isn't exactly the most "professional" solution, but should be fine for the moment, if you want to try our game... And though I tried it and it was working for me, I'm not really sure it does for everyone, so feedback about it (and bug report of course) is very appreciated!
I also updated the Windows binaries (http://sourceforge.net/projects/talesofgydia/files/tales_of_gydia.zip/do...) with the latest changes (if game runs in italian, open file data/cfg/settings.cfg and change "locale = it;" to "locale = en;" - translations might be not complete...)
What's more, we're dealing with the last couple of engine issues (one of which - a real AI - is actually pretty big) and we can work very hard on adding content and making our game playable and fun
...oh, and I made the editor run again! It had been broken for a few time, since I had left it to work on the game engine... It has terrible interface (practically, command line + mouse) but it has been done on a hurry
Windows users will find the editor packaged in the downloaded zip archive (see link in post above); linux users can build it;
the make.sh file doesn't contain the command to build it, but just replace line 46 with
and run it. You can find the basic instructions in file README_editor
Note: the editor hasn't been tested a lot, and never on Linux, so feedback is welcome
Radical changes!
I was trying the game a few days ago and I found myself thinking: "Hell! This game is the most boring thing I've ever played!" - and yes, it really was.
Having a turn based RPG means (IMO) you need to have a good background story or a good gameplay to make it interesting. And we hadn't. We also had to remove some features to end within the competition end, which made the game even more boring.
So what's the conclusion of this? I adapted the engine a little bit to make a turn based strategy game, instead. Very simple. The idea is this: you have a (hopefully large) set of battles, played in smaller maps (from 20x20 to 30x30 tiles); each battle has a fixed starting situation (e.g. you have some fixed units in fixed position, as well as your enemy) and can be played either between human and computer or between two humans. No inventory, no recruiting, no resource, just battle. Think of it as if you were playing chess on an unusual board with unusual pieces.
I know it might be too late to make such changes to the game, but we will try...
Hi,
Btw, how do you play it?
You mean how to run the game or which are the commands?
If you want to know how to run the game, follow instructions in readme.
Else, use WASD to move, Q to strike, E to cast spell, U for player info, I for inventory, O for quests, P to look inside container
In any case, some of this commands will vary in next release with changes discussed above
I meant the commands. Thanks! (I was too lazy to look at the code ;])
Hi again,
Found a bug. When you use an item, it disappear from the inventory but not from the window used when opening a box. Thus the two apples are still there when you find the potion.
Second thing, when you try to use an item after selecting an empty slot, the game crashes.
Apart from that, it's promising :) Wish you luck!
Thanks for your report!
Btw, I think both inventory and item exchange will be removed if I totally turn the game into a RTS (and I have done most of the conversion)... The release you're trying is not up to date (my fault - didn't upload new files)
@Bertram: I fixed the second bug, the game crash when trying to use empty slot, but I can't see the other one... Are you saying that when you pick the apples from the box, then you use one of them and re-open the box, the two apples are still in your inventory?
BTW, the RTS idea was even worst than the original one - picked back the old ideas... Though I'm not completely satisfied about none of the two :)
Hi Buch,
To get the first bug (see the apple when opening th treasure containing the potion) , I simply opened the first chest, picked up the apples, used them, then manage to go to the potion chest, and open it.
I wish I'd try it again but it seems I've got compilation issues on linux at the moment. (I'll see whether I'm not too lazy and try to fix them myself. ;])
Best regards,
Bertram
P.S.: The compilation errors just in case it'd help you:
(Debian amd64)
Fixed the compilation errors you had above - found out I had accidentally used a 'replace all' too much :)
Final update.
I haven't had time to finish the game - even if due time is delayed to tomorrow 1st August, I have other businesses both today and tomorrow and I can't finish it no way... :(
...but I will submit what I have by now anyway. So the repo has been updated with last changes and the almost-playable windows build is at https://sourceforge.net/projects/talesofgydia/
Good luck to all partecipants to Liberated Pixel Cup!
Your install script for Linux references libsdl-ttf1.2-dev... should this be libsdl-ttf2.0-dev?
Inclusion of ; make the script look for the "now" command (the next word in the script). This should probably be replaced with a comma, as much as I love semicolons.
Also, even if the compile fails, your script still says that ./ToG is ready to play. Throwing a && in there should have it check for proper completion of the prior command before echoing the next line.
Try this instead:
echo All required packages are installed, now building...
g++ -o ToG test.cpp -w -lSDLmain -lSDL -lSDL_image -lSDL_ttf -lSDL_gfx &&
echo Build complete. Run ./ToG to play
---------------------------------------------------------------
Pulling the compile command straight out of your script, I get the following:
$g++ -o ToG test.cpp -w -lSDLmain -lSDL -lSDL_image -lSDL_ttf -lSDL_gfx
In file included from test.cpp:4:0:
game.h: In constructor ‘battle::battle()’:
game.h:3390:28: error: assigning to an array from an initializer list
Fixed... The line giving you the error (though I don't know why it did) was inside an old and unused part of code, so I removed the useless part straight away... I also fixed the make.sh file as you suggested (I'm not expert in linux programming)... And as far as I know libsdl-ttf1.2-def is fine...
Installed! I like the combat, animations feel smooth to me. I think I'll need pen and paper to figure out the gravestones... which is totally awesome classy old-school.
Yep! The problem is that there's practically nothing else after that... yet! Unfortunately, my time to work on it has finished :(
umm... this is how it looks at my end.
~/games/Tales-of-Gydia$ ls
AUTHORS.txt COPYING.txt error.h GPL 3.0.txt locale.h README.md ui.h
cache.h data expr.h image.h make.sh script.h
CC-BY-SA 3.0.txt editor.cpp game.h imgCFG.cpp README_editor.txt test.cpp~/games
/Tales-of-Gydia$ ll -h make.sh
-rw-r--r-- 1 shirish shirish 1.1K 2012-08-04 10:39 make.sh
~/games/Tales-of-Gydia$ ./make.sh
bash: ./make.sh: Permission denied
I could change permissions locally but it would be better if this was done in the repo. itself. I don't want to use chmod so that the next time I sync I would have to chmod again.
shirish, it also might just require a $sudo ./make.sh depending on your linux distro.
@shirish: it's a permission problem. Change the permission with:
$ chmod +x make.sh
To make it executable (so you can call with ./make.sh). Or, call it directly with:
$ sh ./make.sh
But the script is only usefull for debian-like distributions (debian, ubuntu). In my case, to compile it I need to copy and paste the last script line:
$ g++ -o ToG test.cpp -w -lSDLmain -lSDL -lSDL_image -lSDL_ttf -lSDL_gfx
umm.... I'm on Debian wheezy and it doesn't compile at least not in that straightway as given.I chmodded
$ ./make.sh
./make.sh: line 10: syntax error near unexpected token `fi'
./make.sh: line 10: `fi'
I looked at the make.sh script and out of the four packages, one package is not there. Instead of libsdl-ttf-1.2-dev I have libsdl-ttf2.0-dev
$ apt-show-versions -a libsdl-ttf2.0-dev
libsdl-ttf2.0-dev 2.0.11-2 install ok installed
libsdl-ttf2.0-dev 2.0.9-1 stable ftp.debian.org
libsdl-ttf2.0-dev 2.0.11-2 testing ftp.debian.org
libsdl-ttf2.0-dev 2.0.11-2 wheezy ftp.debian.org
libsdl-ttf2.0-dev/testing uptodate 2.0.11-2
Apparently in Debian people have moved on from libsdl-ttf-1.2-dev to libsdl-ttf-2.0-dev.All the others are at 1.2 yet though.
Looking forward to answer.
Maybe the script is broken (as I don't have a debian or ubuntu, I couldn't test it... as far as I looked, it only searches for the libraries, instaling the missing ones with apt-get, before calling the compile setence.).
anyway, to compile, if you have all needed libraries (SDL, SDL_image SDL_gfx SDL_ttf), just do:
g++ -o ToG test.cpp -w -lSDLmain -lSDL -lSDL_image -lSDL_ttf -lSDL_gfx
that's the way I was successfull to compile it here last time I tested the game... Or you can wait the developer (Buch) fix the script (or use something more common like autoconf).
actually tried that command
g++ -o ToG test.cpp -w -lSDLmain -lSDL -lSDL_image -lSDL_ttf -lSDL_gfx
while I have all the libraries as told above, there is no mention of the libraries in the README.md. Please fix that.
I had a runaway black rectangular box with nothing to show and eating my memory when I ran ./ToG ,
I had to kill the process in order to use the desktop.
First of all, I have to apologize for not having been around these days, but I was busy with other business...
For the compilation problems, I tried to make it easier to check dependencies and compile the game without needing to spend too much time studying automake tools or similar (which I actually never used before) - which lead me to writing that make.sh script, which actually runs only on debian based distros.
As for non-debian based distributions, I probably had better inserting more instructions in the readme file (my fault, I know) - but running the command in the posts above should work (I will fix the readme ASAP)
Coming to the "error" shirish had, it is not a real bug, but a performance problem. The real fact is that the database loading system is not very performant - that means, it takes very long to load the whole database, first of all, because the database loading system is not very efficient, secondly because the way it is used in the game is the worst possible (it requires to load multiple times even the same objects - although I realized it much too late to change it); when I started adding content, this became a pretty annoying problem, though I didn't have time to fix it.
So, to try my game you must be veeeery patient and motivated, that's it :)
Buch, can't you fix those ? While your entry would be of 1st - 2nd Aug, you can always fix it. That's why you have git repo. so you could fix things.
I can (and I will) fix the readme file - that won't take me too much time.
Coming to the loading time, it won't be fixed, unfortunately. The animation loading system, up to now, requires each animation object to have inside all objects representing frames that compose the animation. For example, the object that describes the idle animation of the base male contains all the 8 frames of the idle animation. Each of this frames is loaded at game startup. Since we have many clothes, weapons and units, each with at least 8 frames (units and clothes can have even 300 frames), we have a very large amount of frames to load, which results in a long loading time.
I have no idea, at the moment, about how to change/fix this (without changing the whole game structure, which would take me much more time and work than I can give to game developing)