A downloadable game

https://gitlab.com/philiphaubrich/cyandreams

Idea 2015/07/12

285th: Game, Azure dreams clone/7drl.   CyanDreams

Pitch: It's really just pokemon meets roguelike, but with a clever naming system.

 You take the monsters into a randomly generated dungeon to get better monsters and find stuff to sell. Stats, element, and special moves revolve around a consonant, vowel, consonant naming scheme. You'll find DOG, COW, but also TIC RON WAL. And specials like EXE EDU. There's a pile of content do to with name puns.

Took a stab at it in the ~2016 7DRL challenge and didn't much further than ye ole basic roguelike: Map, monsters, bump to damage.   Coming back to it in the 2023 7DRL challenge and welding in 3 other projects and fleshing it out.  We've got elements, eggs, hatching, economy, a town, windows to escape out of, and drinking. Still lacking a LOOOT of content I wanted in there.

Comments

Log in with itch.io to leave a comment.

Trying to test but I get a compiler error. Any idea what I'm missing?

c99 cyanDreams.c ai_pred.o ai_prey.o ai_pet.o events.o genMap.o map.o mon.o paint.o item.o monNames.o logging.o -o cyanDreams -L./libtcod-1.6.0/ -ltcod -lm -g -Wall -I./libtcod-1.6.0/include/  -Wl,-rpath,.

cyanDreams.c: In function ‘userInput’:

cyanDreams.c:314:7: error: a label can only be part of a statement and a declaration is not a statement

  314 |       int moveAction = inputMovePlayer(key.c);

      |       ^~~

cyanDreams.c:344:7: error: a label can only be part of a statement and a declaration is not a statement

  344 |       static int tick=0;

      |       ^~~~~~

Well that's no fun.  Hmm... It's explicitly c99...

Ah, not a standard thing. It shows with -Wpedantic... but it's only a warning.
    There's a risk of ambiguity for what the compiler jumps to when you declare something at the start of a case, but the default behavior of gcc works well enough.   I think you've got some sneaky means of inserting -Werror into your build tools.

None of this was every planning on being -Wpedantic. It's just game, not life-critical code. Remember kids, the MISRA standard makes you MISRAble.

DEADLINE!!!

ok, I've got about 18 minutes. First off SUCCESS! WOOO! We have a traditional roguelike with map, monsters, items, and inventory. The twist I added was a heavy pet-centric theme with what I consider a neat smooth gradient elemental system three-way circle of death.

Downsides:

-Leashes got cut. too many bugs too close to launch. Meaning psycho monsters won't eat you if you give them too short of a leash. DOGs aren't all that special for being domesticated. You can't store your monsters in inventory capsules/eggs. You can't pull them out to battle other tower monsters. No leashing weakened and exhusted tower monsters and making them pets.

-No eggshells. This should have been easy given the framework around it. You were supposed to be able to move your pets around the elements

-Swords and shields are just fluff. potions and magic items don't exist.

-While I set up everything to dump that big idea list into monNames.c... I never got around to it. So the only special monster is DOG. That's it.

-The town is only one static screen. All the townies are identical.

-No shortcut merchant. I have them trying and dying instead. oof.

-No plot with the endgame EXE, the weav cult, the basement, scavengers. Content takes TIME.

-oof, and no traits or actions. So gameplay is restricted to bump-attacks, which is a far-shot from all the interactions and depth that pokemon games provide.

I'm happy with what I got, but I was hoping for so much more. As I get older and become a better dev, there are some important lessons that have REALLY helped out: Always have a working build. All production halts if you have a game-breaker. Bugs come first. Just writing down the plan of what's coming next is really helpful. Wrapping up bugs and getting to a commit so often left me wondering around thinking about TODOs and improvements. It's easy to get sucked into brainstorming when you really ought to be getting to the next feature. And don't be afraid to tackle big features. It'll be changes and bugs and you might rip out some code, some you even just wrote an hour ago, but work through it and move the game forward. Don't have sacred cows, be okay with change. Some cleanup can save you a ton of debugging later, but oh man, some cleanup efforts are just a waste of time.