Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: Cendric: An RPG Platformer  (Read 67645 times)

0 Members and 1 Guest are viewing this topic.

Ironbell

  • Jr. Member
  • **
  • Posts: 61
    • View Profile
    • Cendric
Re: Cendric: An RPG Platformer
« Reply #45 on: September 10, 2016, 03:48:28 pm »
Thanks for the nice words CleverBoy  :)

Hey all, we're back with another
Progress Update
for Cendric!

First of all, I'm proud to announce that our team has grown. While there are still only two people working on code, sprites and content, we've found
  • a composer who writes beautiful and amazing tracks for the game, check her out on Soundcloud: https://soundcloud.com/susi-aubert
  • a translator who will translate the game to Spanish. Like, why not a fourth language.

Regarding the game's progress, we've been working on a new mechanic. As we have a thief guild, we wanted to have some sort of stealing in the game, which turned out to be rather challenging in a platformer game.
To solve this problem, we've added so-called "observer spells" that look like eyes and float around in houses where thieves are unwanted. If the player tries to steal something while such an eye is watching, he will be sent to jail. The eyes have a predefined path and the thief has to steal the items without being seen.


An observer spell

The whole jail-thing then opened a wholly new challenge. How to get out? Will there be different paths? Is it beneficial to get caught?



Well, it surely isn't a nice place. The player will have to work in the mines until he has enough gold to redeem himself. If he's lucky, he  can get more gold by gambling with a fellow prisoner. And yes, there are other possibilities to get out :)




MrOnlineCoder

  • Jr. Member
  • **
  • Posts: 87
    • View Profile
Re: Cendric: An RPG Platformer
« Reply #46 on: October 09, 2016, 12:19:59 pm »
Very good work. But when I tried to save a game, I saw an "Operation failed" message. How to fix this?

eXpl0it3r

  • SFML Team
  • Hero Member
  • *****
  • Posts: 11030
    • View Profile
    • development blog
    • Email
AW: Cendric: An RPG Platformer
« Reply #47 on: October 09, 2016, 12:25:40 pm »
Where did you copy the game? Are the directories writable?
Official FAQ: https://www.sfml-dev.org/faq.php
Official Discord Server: https://discord.gg/nr4X7Fh
——————————————————————
Dev Blog: https://duerrenberger.dev/blog/

MrOnlineCoder

  • Jr. Member
  • **
  • Posts: 87
    • View Profile
Re: Cendric: An RPG Platformer
« Reply #48 on: October 09, 2016, 03:28:56 pm »
Yep. I downloaded just to my games folder on data drive ( not system)

Ironbell

  • Jr. Member
  • **
  • Posts: 61
    • View Profile
    • Cendric
Re: Cendric: An RPG Platformer
« Reply #49 on: October 10, 2016, 01:43:25 am »
Which version did you play and on which OS? The 0.3.0 stores the save files to <user>/Documents/My Games/Cendric/saves on Windows or ~/Library/Application Support/Cendric/saves on Mac. The 0.3.1 version tries to store the saves where the game folder is.

Ironbell

  • Jr. Member
  • **
  • Posts: 61
    • View Profile
    • Cendric
Re: Cendric: An RPG Platformer
« Reply #50 on: December 08, 2016, 03:38:05 am »
Progress Update for Cendric

Hey all! Long time no update here in the forum, as I was too busy adding stuff to the game. It finally seems like it's getting somewhere. The main problem with the game is that it's getting way bigger that we had originally assumed. The initial plan was to have 5 maps with 3-5 levels each, but the (single) map I'm currently working on has already 6 submaps and 4 levels, and there are still at least 5 more to come. But even if it's a hella work, I'm not going to give it up - it's just sometimes hard to cope with the scale of an RPG as a nearly-one-man project.

Also this is kinda shocking

(we've expected to have ~100 items in the final game, and now it's about 40% finished)

But it's also a lot of fun doing everything - drawing npc portraits, npc spritesheets, enemies, tiles - writing the story, dialogues, quests, routine scripts and code - designing maps, levels, puzzles, bossfights - creating sound effects and lately even music (I'm not good at it, sadly).



Change Log (heavily summarized)
  • New quest lines in Gandria (prequests for necromancers, clerics and thieves)
  • The prison in Gandria and the Gandria map are finished
  • New levels: Mines of Gandria, Syrah's Basement, Sewers of Gandria, Secret Library, Jonathan's Laboratory
  • New maps: Basilisk Inn, Sewers of Gandria, Jonathan's House, Syrah's House, The Barracks, Prison of Gandria
  • New enemies: Bat, Ooze
  • New skins for existing enemies, spells and tiles
  • New dynamic tiles: Trampoline, Disappearing, Doors
  • New sound effects and music, music is now fading
  • Interface improvements, more user options
  • Buying items can be restricted with reputation
  • Added an alchemist who will brew potions for the player
  • Updated SFML version to 2.4.1

The game's version is now 0.3.2 and is going to be 0.4.0 as soon as the player can join all three guilds, I'm currently working on the prequests to go there. If you're brave enough, you can play the newest release:
https://github.com/tizian/Cendric2/releases/tag/v0.3.2 (currently only windows, but we'd build for mac and linux too, if requested)

Playing the whole content takes now a bit more than 3 hours. That's a lot of time, and I encourage you to wait with playing Cendric until the next major release (0.4.0) or even the beta or final release. To still see how the game looks like now, take a look at the freshest screenshots I've made:
http://cendric.ch/screenshots



Comments, critics, feedback and bugreports are as always really appreciated.
« Last Edit: December 08, 2016, 03:44:00 am by Ironbell »

Ironbell

  • Jr. Member
  • **
  • Posts: 61
    • View Profile
    • Cendric
Re: Cendric: An RPG Platformer
« Reply #51 on: January 15, 2017, 10:17:49 pm »
Pre-Alpha Release 0.4.0



Hey y'all!
We're back with the promised demo release: 0.4.0

You can get the newest build and its source code here (Mac/Win/Linux)
https://github.com/tizian/Cendric2/releases/tag/v0.4.0

Chapter 2 of the game is now complete. If you want to test the game, you can load the prefab saved game "Chapter 2" that will let you directly start at the beginning of chapter 2. Your old saved games probably won't work anymore. If you're still want to use them, you can send them to me and I'll update them for the new version.

In chapter 2, you can join one of three mage guilds - which one will it be? Depending on your choice you'll learn other spells and get other gear.



There are also other changes like new enemies and levels, but you'll see :)
Lua is really awesome by the way - - -



Feedback for this chapter of the game would really be appreciated, we need your help to create a better game. But if you don't want to be spoiled for the final version, you'd better not touch it.

Cheers,
Team Cendric
« Last Edit: January 15, 2017, 11:25:31 pm by Ironbell »

mpeg3

  • Newbie
  • *
  • Posts: 13
  • gdinit@github
    • View Profile
Re: Cendric: An RPG Platformer
« Reply #52 on: January 16, 2017, 02:21:18 am »
Just gave it a quick try - it's amazing! Keep up the good work :)

Ironbell

  • Jr. Member
  • **
  • Posts: 61
    • View Profile
    • Cendric
Re: Cendric: An RPG Platformer
« Reply #53 on: May 07, 2017, 08:40:20 pm »

Hey all! We're back with a new pre-alpha release for Cendric. There's finally an end in sight - 70-80% of the content is done.

Changelog
  • Finished chapter III
  • Added jump sensibility (it finally feels like a true platformer, eh)
  • Added cross-map teleport (see gif below)
  • Item stats can now be compared with the equipped ones
  • The text for dialogues is now a sf::Text and is better readable than the bitmap font
  • 3 new bosses
  • 5 new enemies
  • New levels: Jack's Lighthouse, Rainy Forest, Cathedral of Gandria, Forgotten Passage, Crypt of Gandria, Bridge in the Swamp
  • New map: Marshlands, The Red Pearl (Brothel)
  • Several new quests and items
  • New NPCs and dialogues
  • Enemy AI upgrades
  • API upgrade for npcs and enemies
  • Several bugfixes





You can get the release here: https://github.com/tizian/Cendric2/releases/tag/v0.5.0 but as it is the second-last or last release before the final release, maybe just wait for that. But if you want to test it anyway, we'd be happy to hear your feedback :)

Cheers,
Ironbell

FRex

  • Hero Member
  • *****
  • Posts: 1848
  • Back to C++ gamedev with SFML in May 2023
    • View Profile
    • Email
Re: Cendric: An RPG Platformer
« Reply #54 on: May 08, 2017, 02:22:18 am »
I wish I had time to play this. :(

I'm curious why did you decide to use sqlite over Lua, XML or plain text for defining your items and spells and all? Isn't that more work for little to no gain? Do you just like SQL or sqlite DB Browser? Also, there is Lua 5.3.4 and you have compiled the Windows exe with 5.3.1. Also also - shameless plug - I happen to have a nice LuaConsole that happens to work with 5.3 too. It's very convenient. ;)

Edit: I guess the point stands with why not use Lua (or XML) for the config files too, instead of these 'ini' named files that are some custom non-ini format.
« Last Edit: May 08, 2017, 02:44:16 am by FRex »
Back to C++ gamedev with SFML in May 2023

Ironbell

  • Jr. Member
  • **
  • Posts: 61
    • View Profile
    • Cendric
Re: Cendric: An RPG Platformer
« Reply #55 on: May 08, 2017, 10:13:50 am »
I'm curious why did you decide to use sqlite over Lua, XML or plain text for defining your items and spells and all? Isn't that more work for little to no gain? Do you just like SQL or sqlite DB Browser?
Good question. When I began implementing this game, I didn't know much about gamedev with C++ so I just sticked with what I knew. The custom config (ini) files were just a way for me to learn how to write a parser and as the config files stayed simple enough, I never changed to something more sophisticated. Using a simple text editor, they are also more readable than XML.

Regarding the database: I started using it because I needed a simple solution for the localisation. With a database, you never have to reload all strings when changing the language and you don't have to keep much in memory. It's really fast and convenient. Items and their properties are all nicely packed in one intelligent file that is kept open while playing. And just imagine the possibilities when balancing the item's stats! Want to know about all items that have a "health" attribute that is at least 5? Easy.
SELECT item.item_id FROM item INNER JOIN item_attribute ON item.item_id=item_attribute.item_id WHERE item_attribute.max_health >= 5;
I'd say it would require more code (and there's overhead) to do something like this when using Lua tables.

Also, there is Lua 5.3.4 and you have compiled the Windows exe with 5.3.1.
Oh, I've never updated the Lua version since I first got it. I guess it's time to do so, thank you :)

Also also - shameless plug - I happen to have a nice LuaConsole that happens to work with 5.3 too. It's very convenient. ;)

That's great, I need one anyway for "cheating" (inserting gold and items into the player's inventory, checking and changing quest states etc.) These functions are already in the API but I got no ingame console - yet. So I'll check it out :)



FRex

  • Hero Member
  • *****
  • Posts: 1848
  • Back to C++ gamedev with SFML in May 2023
    • View Profile
    • Email
Re: Cendric: An RPG Platformer
« Reply #56 on: May 08, 2017, 01:55:55 pm »
Quote
Using a simple text editor, they are also more readable than XML.
Lua with custom environment tables (so you can use 'globals' and just do key = value in the file and not expose any functions to the config file) would be readable too. ;)


Quote
I'd say it would require more code (and there's overhead) to do something like this when using Lua tables.
I meant Lua as just data representation on disk and for editing. Stuff can still be loaded into dedicated C or C++ structs/classes/whatever at runtime, even a database. And the example is quite contrived and rare and I'd say and probably runs fine enough with pure C++. It might be premature optimization. I recently was afraid parsing each line of the original dracula book (I added it as a benchmark/large body of text) in my notes keeping app (another shameless plug - it's called 'botes', I have a github repo too ;) ) would be slow but it works totally fine.

I'm not saying you did something wrong but everytime I get this idea myself, it sounds good on paper (a REAL database that can handle dozens of thousands of elements, cool editor with a GUI and all*, structure data, typesafety and names, constraints in SQL, etc.), but not in practice (I always just go with Lua tables and have few hundred entries in them at best, they are more convenient to edit by hand quickly in notepad++). Same for stuff like Tokyo or Kyoto cabinet, a high performance key value binary databases, good idea on paper and all for file store, but a zip used via physfs beats that in usability and is fast enough too.

I'm actually amazed that you use all three, I understand XML is just to parse tmx files probably since most people hate how verbose XML is but still. It's probably bad I think that but a game that uses XML, Lua and sqlite3 instantly feels like a more serious piece of software to me. I like how complete, packed with content and not like a tech demo your game feels, even though I enjoy metroidvania style platformers and design more than this style of platforming. I myself rarely move my projects past the proof of concept stage. I've never released anything I used Lua or my console in I don't think. ;D


Quote
Oh, I've never updated the Lua version since I first got it. I guess it's time to do so, thank you :)
You could also downgrade to 5.1 or 5.2. I myself like 5.1 and even dissected it's code and wrote a paper on it because LuaJIT is compatible with it, it was the biggest jump (5.0 sucked, it had a stop the world GC) and I don't really like the features of 5.2 or 5.3 enough to switch, even though I started in 5.2, I moved to 5.1 for JIT if I ever need it and then read through entire codebase and just stayed there. But I wanted to make my console compatible with 5.1, 5.2, 5.3 and JIT so it should work with all four so you should have no problems.

If you're changing/upgrading you might also look into http://pugixml.org/ , it's the xml parser I use, it's really nice, DOM style parser with very STL like API. I'm not sure if it's better or worse than tinyxml but it took me a long time to find and it's so good I wish I found it sooner.

Quote
That's great, I need one anyway for "cheating" (inserting gold and items into the player's inventory, checking and changing quest states etc.) These functions are already in the API but I got no ingame console - yet. So I'll check it out :)
Yes, it should be easy to integrate, just drop the sources in your own code and do some init and then update/input/draw as in the example given, feel free to ask (via a PM is best, I might miss the thread post on here, I'm here less and less often lately :( ) if you have problems or questions. I made it primarily for myself, same as my 'botes' notes app, but I try to spread the word and get other people to use them too.

* By that I mean http://sqlitebrowser.org/ I hope you didn't insert all the items by hand using the command line tool and SQL written by hand. ;D
« Last Edit: May 08, 2017, 02:01:33 pm by FRex »
Back to C++ gamedev with SFML in May 2023

Ironbell

  • Jr. Member
  • **
  • Posts: 61
    • View Profile
    • Cendric
Re: Cendric: An RPG Platformer
« Reply #57 on: May 08, 2017, 04:30:38 pm »
Lua with custom environment tables (so you can use 'globals' and just do key = value in the file and not expose any functions to the config file) would be readable too. ;)
True, but I didn't even know about Lua when I started and writing a small parser is always a good exercise :)

I meant Lua as just data representation on disk and for editing. Stuff can still be loaded into dedicated C or C++ structs/classes/whatever at runtime, even a database. And the example is quite contrived and rare and I'd say and probably runs fine enough with pure C++. It might be premature optimization.
Yes but I wanted a clean representation of the data and only load it into memory when I need it. If I wanted to make comparisions like the SQL query I wrote, everything had to be loaded into memory and then compared using C++. Also, finding a certain item is very fast as I use two keys, one for the item type and one for the item id. It's like a hash map inside of a hash map. And, last but not least: Having experience with databases is never wrong ^^. Oh yes, and I make use of type safety and constraints. Also foreign keys: You can't add a convertible component to an item that doesn't exist.


(Image because the forum can't highlight SQL yet :P)

For me, it's not really more work as the SQLite interface is quite convenient and I can make use of the database functionality (see above). But to each his own, eh :)

I'm actually amazed that you use all three, I understand XML is just to parse tmx files probably since most people hate how verbose XML is but still. It's probably bad I think that but a game that uses XML, Lua and sqlite3 instantly feels like a more serious piece of software to me. I like how complete, packed with content and not like a tech demo your game feels, even though I enjoy metroidvania style platformers and design more than this style of platforming. I myself rarely move my projects past the proof of concept stage. I've never released anything I used Lua or my console in I don't think. ;D
Thanks. I count "using all three" also as an exercise. About the proof of concept stage: I think that's a problem all programmer-gamedevs face, we love to implement cool features but when it comes to content and polishing, we're getting bored. I work around this a bit by still adding logic to the game and refactoring the code while creating content.

And thanks for your other tips, I'll check them out :)

I hope you didn't insert all the items by hand using the command line tool and SQL written by hand. ;D
::) *cough. Partly. I've written a own small tool that helps me creating dialogues (choices and conditions can get confusing if you have pure Lua code) and it exports the logic to Lua and the text as SQL insert scripts. For the items... yes I write the SQL code myself but it just works for me :P

FRex

  • Hero Member
  • *****
  • Posts: 1848
  • Back to C++ gamedev with SFML in May 2023
    • View Profile
    • Email
Re: Cendric: An RPG Platformer
« Reply #58 on: May 08, 2017, 09:38:07 pm »
The forum can highlight SQL (code=sql) but it's not in the default combo box list:
DROP TABLE items;

As I said I find the idea of using sqlite awesome and wish I had the willpower to use it myself too, instead of just going with Lua. Your game is very interesting from a technical standpoint. Are you planning to make an engine out of it too?
Back to C++ gamedev with SFML in May 2023

Ironbell

  • Jr. Member
  • **
  • Posts: 61
    • View Profile
    • Cendric
Re: Cendric: An RPG Platformer
« Reply #59 on: May 08, 2017, 10:06:49 pm »
Ah great, good to know :)
I  don't think it's going to be made into an engine because it's just too specific and there are things that are not yet nicely seperated (core vs. content). If I could start anew I would do so many things differently - how about an ECS using a database for component data, with perfect memory utilization. That's something I dream about  ;D

For now, I'm just focusing on finishing the game itself. But after that, who knows ;)