Console Game: "Skeptor". Wanting code revision and opinions/suggestions [v0.7.3]

Pages: 12
This is a Work In Progress game. It's currently v0.7.3, with only Chapter 1 and half of Chapter 2.

"You wake up in a forest at night. You just remember one thing: A blue crystal, people's screams, then nothing. With only a sword and no food, you decide to explore."

Mystery, suspense... What happened? Will you be able to discover the secret of the Skeptor?

Game Properties:
-Variety of good ASCII images made mostly by me
-Option selection with arrow keys (Instead of the ugly number pressing)
-Main menu with How to Play section and a short animation with the logo falling down
-'Try and fail' general gameplay, includes checkpoint system
-Using of different "Beep" musical notes
-Stackable score across chapters shown when you die or win (Reset to 0 when dying)
-Situations in wich need you to try and investigate the different options, and "interactive" puzzles
-Support for music

Code Properties:
-Made in C++, using Dev-C++ compiler and Code::Blocks IDE. Windows only.
-Class-based, with 7 files (one for each important different thing) and lots of function prototyping
-No 'goto' labels (I swear, search 'goto' with my code open in your compiler and you'll find nothing!), global variables nor system() commands

As i said before, for now it's just Chapter 1 and half of Chapter 2, but i have planned everything up to chapter 4 and i have an idea on what to do in chapter 5 (the ending). The second part of Chapter 2 will be another (more simple) investigating thing (with translating and potion brewing), but i don't know what to do after that, at all! I don't know!

Main menu:
Chapter 1:
Puzzle in chapter 2:

Download: Game:

Please let me take 5-20 minutes of your time to test the game and tell me what you think, what do i need to do, and how to make it better!

Next update: The second part of Chapter 2, no more code changes for some time!
Last edited on
Your links are broken.
The pictures make it look very polished/interesting though.
Last edited on
There's no problem with the links, it's just a bitly thing, but you can still go to the dropbox downloads! Well, i'll change it.

Edit: I had a problem with the open-to-all current version of the game, now it's fixed

I need ideas!!! I can't continue chapter 2 without ideas!!!
Last edited on
v0.7 available! Extended Chapter 1, colors, a way to die in chapter 2, music support, checkpoint support, and maybe more!

Give me yours opinions and suggestions, please, I want some love and more things to do!
Last edited on
Seriously, someone!
Well personally I'm stuck on the combination game in the second chapter, are you sure that logic works right? I'm trying to read the code to cheat but it's a bit disorganized compared to what I'm used to. EDIT: Yes I got the symbols from the books in the previous scene, I've played Myst before to.

The way you're using objects makes me think of Java for some reason, you know you're free to use procedural programming in C++ right? Not everything, the title screen and Main Menu for instance needs to be an object. I usually discourage the defining of objects inside of functions, if their scope is really that small then you're probably overlooking something or rewriting the code needlessly somewhere, again C++ does not FORCE you to use objects.

As far as your uses of goto, you can get rid of these by making each scene that leads into a fight or other way to die into it's own function. That way when the user chooses to continue you just call the function again with it's original set of arguments. You may run into some issues with your global variables using this method but some of those shouldn't be global.

On the plus side I have to admire your ambition, you're clearly dead set on making a game using what ever you know and it plays well enough.
Last edited on
I'll check this out tonight when I'm home from work. One question though, what type of game is it? Perhaps more people would be willing to provide feedback if you described your project a little better.
Very nice game just finished chapter 1
I knew it was too hard... In the altar, from left to rigth is the correct combination using what you find in the books. Those are roman numbers. In the code there's another sequence for it to be harder to cheat!
I like classes for interactive parts of the game because they just look good in the code, they make it more organized, and i put them inside the chapter functions because they're only used there! :3
I don't want to reorganize the whole code, sorry :c I was thinking of classes for the chapters, but it would make the code to be just weird to read and to find things. I will probably rewrite it so it breaks a switch with the correct option and continues with the following part of the code, so it would be much easier to use the checkpoint system and i wouldn't need goto's! :D
And yeah, I use whatever i have with me, I just try to apply my ideas and see what I can make out of them with extremely basic C++ knowledgement!

Thanks, i know you'll like it! In the game properties i talk about it a little bit:
"'Try and fail' general gameplay[...]"
But it's mostly about mystery (not too much for now, but the Skeptor has very much to discover from... Follow the calls... and find the blue ligth...)

Thanks too! Good luck on finding the answer in the first part of chapter 2 :D

I will probably make a better 2D game out of this when i learn more, maybe with Allegro or OpenGL. Probably a point'n'click, because they're just cool <3
Last edited on
The game itself is great and I enjoyed playing it, but that's where it ends. I really don't like the way you coded it. I don't want to offend anyone, so I'm not going to tell you why unless you want me to.
Yeah, the code is somewhat bad, but i'll keep the chapter functions there and mostly change what's inside them in the following updates.

Well, tell me what's it.
First off, nice work, I can tell you've put alot of effort into this so for that, great job :)

I'm going to split my post up into 2 sections, one part will contain feedback on the code, and one part will be on the actual game.

Disclaimer: I can be very picky with my reviews. Expect everything and anything to be analyzed. Also, if you take ANYTHING the wrong way in my post, then perhaps you shouldn't be asking for feedback (as I feel like I'm generally quite constructive with my feedback).

Code Feedback:

1. Space your code out a little more.
if(Path1){cout<<LeftPath[x];} else{cout<<NoPath[x];}
// vs
if (Path1)
    {    cout << LeftPath [x];    }     
    {    cout << NoPath [x];     }

2. Break up your code into several files. There's no reason you shouldn't have a header as well as several .cpp files for your program. Currently, it's difficult to see the overall "flow" of the program.

3. Your code should be commented. I don't mean the obvious stuff like "oh, cout does this and blah blah" but the overall functionality of...each function. Erm, let me put it this way, if you came back to this code without seeing it for 4 months, would it be easy to continue with the project where you left off?

4. Look up function prototyping.

5. I absolutely hate goto's.

6. I find it odd you pass int score by value rather than by reference.

7. It seems like you aren't happy with your code ("the code is somewhat bad"), if you don't like it, fix it! :) Consider the time that you spend fixing up your code (so it's more organized/readable) as punishment for not doing it perfectly in the first place :)

Actual Game Feedback:

1. Neat main menu, I like it.

2. How To Play -> Some sentence structure and spelling errors here. Fix em up.

3. CH1: I liked how the main menu slowly came into view, you should implement something along those lines for your chapters so it isn't like BAM TEXT IN YOUR FACE BRO (which is something I've been working on in my project).

4. CH1: I would rework the sentence structure and the story a bit here. Why does the player have a sword randomly? People don't often wake up with a sword in their hand (maybe the player found it knocked out of his hand a few feet away so he picked it up?) Why did the player decide to explore?

Also, you can simply say "With nothing but a sword and some ragged clothes, you head off in search of information." or something like that, rather than saying "you don't have food."

5. CH1: "A wolf shows up charging at you" "You died!" I feel like this should be in red text as it's a very dramatic moment.

6. CH1: Places - This is REALLY neat, I'm always a huge fan of memory games. I feel like the person should be a different colour, as at first I wasn't entirely sure what I was doing, but if the two up arrows were a different colour I'd have caught on quicker (1:09AM FTL). Also, when I finally figured out the very last move, the text on the screen changed sooo fast I had no idea what the hell happened. Maybe put some mini-cinematic that shows you walking out of a forest? I don't know. Overall this was so cool though.

7. CH1: Overall: Really cool stuff. I think you should lean more toward the puzzle side of things rather than the player simply remembering which of the 3 options is the right one in order to progress. Not only are the actual puzzles more fun, but eventually you could randomize the puzzles to make it even more of a challenge from one game to the next.

8. By the way, you really should put your full name on your projects.

9. CH2: Can't seem to get the combination lock to work properly. I read the books and tried all sorts of combinations (including the combination the two books suggest), but no go. Maybe being tired is getting the best of me right now, but I'll try it again when I'm actually rested.

Overall, so far so good.

The puzzles in your game have been incredibly fun, where as randomly making a decision that gets me killed is pretty meh/boring (to be blunt - as a player, I don't really feel rewarded by "surviving" when I'd make the right decision, where as when I use my brain to figure out a puzzle, psychologically it's more rewarding - Zelda games, for example, are COMPLETELY based off of this "hell yeah, I figured out the puzzle" feeling).

I also really need to stress, the codeeeeeeee, the codeeeeeeeeeee. I could try to understand the flow of the program and how you coded it that way and why, but it would likely give me a headache. Don't take this too harshly, but for my standards, it's extremely messy and disorganized. Function prototyping, splitting it up into several files, good comments, proper spacing and variable/function naming will help fix this.

Literally, take an entire day, and spend 18 hours organizing your code (don't forget to make a backup of your program) so it looks GOOD. This is your work, so strive for perfection in every way possible. If you've fixed things up for 18 hours straight and still aren't done, then continue working on it the next day.

Edit: Just so we're clear, this game is awesome, and I'd definitely like a copy of it when it's finished to show to people (another reason why you should put your real full name in the credits).
Last edited on
Why is it bad to pass the score value around? And with the reorganizing of the chapter functions in the code I'll delete the gotos that are still there from v0.5.
I'll consider makig some extra headers and cpps.

And yeah, the cutscenes and different colors for important things are an obviouly great idea! The commentary and spacing will be something I'll work on too.

Thank you very much for your feedback! I'll work in the game in some days, I'll be very busy for a week...

PD: I'm very adapted to my code becuse it's just chapter functions wich continue straigth down. If i lft the code for a year then come back, I just play the game again, go to the part from where I left it and because it's so simple to cout text i would continue it without uch trouble...
PD2: In chapter 2 it actually was that I wrote the wrong password in the code, now it's fixed (I fixed it yesterday, along with some small thingies)
Last edited on
Well, in regards to int score, I guess since your program is broken up into different chapters it wouldn't make a difference (as opposed to one long story where the player can only start from the beginning, or load a saved game etc)
What are you saying? What do you mean by "by reference"?
I'll start to change my game one by one by the suggestions you said. I'll find some time to do it in the next week.
#include <iostream>

using namespace std;

void No_Change (int score);
void Change (int & score);

int main()
    int score = 5;
    cout << "Initial Value of Score: " << score << endl;

    No_Change (score);  // score == 10, or is it?
    cout << "After calling No_Change: " << score << endl;

    Change (score);  // score == 15
    cout << "After calling Change: " << score << endl;

    return 0;

void No_Change (int score) // score passed by value, can't change the value of score in int main()
    score = 10;

void Change (int & score) // pass by reference, can change the value of score in int main()
    score = 15;
Last edited on
That's interesting, how to use it in my game?

Edit: Check my new code, hope you'll be able to read it properly. I added pretty much everything you said, even some code improvements you didn't mention, the cutscenes will be made later (Probably after i finish the second part of chapter 2).

I still don't know how to "break up my code into several files", I mean, I can put all the chapters in a header, or one for each chapter, and maybe i can make classes for the chapters, ok, but, what about the death screen? and where to put the global functions?
Last edited on
Random puzzles coming soon!
Nice, let me know when you release the next update and I'll give it another shot and mini-review.
@OP: I'll give you this, you can draw with standard characters way better than I can. Try a ship somewhere in the future, then draw a castle...just change it up and make it awesome, and people will all want your game for the drawings alone (and maybe for the game too XD).
Pages: 12