ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I am currently working on a terminal based RPG, and have come to a problem. I know it is not complete, but have no ideas of what to add. The basic idea is below. Also, if you want a copy of the source code to get ideas from, just ask.
The game is based around a philosophy of mine and a real world fact. The philosophy is that 'while you may have many enemies, the only real one is yourself', and the real world fact is that things will not always fall your way. The game is based around probability, meaning it can fall your way, or not.
The story starts of with your player, Ben (Nothing to do with me in real life, but I thought 'Ben' seemed like a rather good name for a village lad who found himself in danger), who is just walking around the village, finding things to do. He eventually finds a job working for a Blacksmith, who later helps him with weaponary, and earns 50 credits.
However this job affected a 'Boss' (No good name for him yet, ideas?) who decided to stop you. You may have seen the blender movie 'Sintel', and where the dragon takes 'Skills', this sort of happens here.
'Ben', has a pet dog (Or another animal), called 'Jeremy' (Same with 'Ben' but here it had to be a rather good narrators name), who was taken and when you walked to the cave enterance was lying there, dead (Another representation of things falling one way or another).
Ben is outraged by this, and this is where the game starts.
He needs to fight the enemies in the cave, earn money, buy medicine, beat bosses on the hillside, buy swords, and reach level 10 (May not seem like a lot, but I have played this game at least 20 times and only twice have I got to level 10), and then he meets the boss. During the whole game, the Boss has been taunting you as Jeremy explains the steps. At the boss level, Jeremy, the dogs spirit takes his swords and gives him 3 special weapons. He must use these to defeat his enemy. In this level however, the weapons have random hit power - eg a hit to the stomach could hurt you with a small lightning strike, but kill you with a massive one.
When he wins, his dog comes back.
What I need is ideas on how I could either improve the storyline, or new ideas I could use. If you have any ideas, I am going to rate their importance and work on them before the 1.0_0 release. I will try and get all of the ideas in, but I cannot promise anything.
I think this should go in Programming as it is not to do with any of the other topics, and it is to do with ideas for a program. If it is not meant to be here, please tell me for next time.
Maybe you should have a beta test or something, and then people can suggest ideas after playing it. Just reading the description doesn't really allow for too many ideas. It also depends on how ready the game is.
Maybe you should have a beta test or something, and then people can suggest ideas after playing it. Just reading the description doesn't really allow for too many ideas. It also depends on how ready the game is.
I have the current source code attached. You can just run GCC on it when you rename it to main.c. As it is not finished, the storyline is not fully implemented and an bug where it gets rid of the bosses name due to an error are still there. Press '?' and press enter to get help.
//Pretty sloppy code here, needs you to enter a new else if for a
//new weapon which kind of defeats the easy of adding weapons.
If you were using C++, std::map may have helped you here.
Quote:
Originally Posted by ThatPerson
I know it is not complete, but have no ideas of what to add.
I think the hardest part of game programming is writing a compelling story.
By asking a question in this forum, you are using the common brainstorming method of asking a group to help you come up with ideas. However, the relatively slow nature of an online forum does not really lend itself to brainstorming. Brainstorming works best when the ideas are coming quickly and when people are saying the first thing that pops into their head. You may want to see if there are any IRC channels that specialize in brainstorming for writers and other story developers.
Maybe you should develop the story independently of the game. For example, you could set up a framework that reads in a story and/or "world" file and plays out the game, then spend a lot of time writing and revising the files it reads, while adding to the framework as necessary. It's always nice when a game is built around something that you need to rebuild within your own mind while playing it. I personally think there should be an elaborate story or history of relationships between people or things that you only get small glimpses of from the game. That way the player has to figure out what's behind it all, and for those who will look anyway, there really will be something.
Kevin Barry
//Pretty sloppy code here, needs you to enter a new else if for a
//new weapon which kind of defeats the easy of adding weapons.
If you were using C++, std::map may have helped you here.
I did look at that, But I cannot see a way of using a variable as a variable name, so I could set char weaponname[50]; to be 'simpleBlade', and then call like in PHP, ${$weaponname]. If there are thinks like this in C, please tell me, I have looked over a lot of forums.
Quote:
Originally Posted by David1357
I think the hardest part of game programming is writing a compelling story.
By asking a question in this forum, you are using the common brainstorming method of asking a group to help you come up with ideas. However, the relatively slow nature of an online forum does not really lend itself to brainstorming. Brainstorming works best when the ideas are coming quickly and when people are saying the first thing that pops into their head. You may want to see if there are any IRC channels that specialize in brainstorming for writers and other story developers.
Ah, thanks for the tip. I have not yet integrated the story with the game, but will soon.
At the beginning you should make up a story about how it started. Why is boss evil, why you are after him. Maybe he betrayed you or killed your relatives.
At the beginning you should make up a story about how it started. Why is boss evil, why you are after him. Maybe he betrayed you or killed your relatives.
I know the combat systems need work, I may add the Boss level type idea, where you take random amounts of health away until you win. The parameters of how much it wins are less than the players, so the player CAN lose up to 30, but also as little as 3. That might make it better.
About the '?', I probably will add 'help', but when I was making it I was trying to think about associations. I could make it both ? and help.
What, so you have a cave like:
Ben: cave
Jeremy: You peer into the darkness, wondering what is inside. You hear something crunching underfoot. You peer around. Nothing.
Ben@cave: look
Jeremy: As you fumble for the flaming torch, you notice the floor is literally covered in dead bodies. Young, old, men, women, children. The sight horrifies you, and that was when you saw the Templar Militia storming towards you.
Ben@cave: fight
And then it goes to the fighting part. I could have it so you have to look, which would be faster to implement, unless you have other ideas...?
Nice idea about at the end. Could be something like:
Jeremy: As you look down at the dead body beneath your feet, you remember your friend. The day he had been slaughtered by the animal left at your feet. But was it good to take an eye for an eye? Possibly....
Quote:
Originally Posted by ta0kira
Maybe you should develop the story independently of the game. For example, you could set up a framework that reads in a story and/or "world" file and plays out the game, then spend a lot of time writing and revising the files it reads, while adding to the framework as necessary. It's always nice when a game is built around something that you need to rebuild within your own mind while playing it. I personally think there should be an elaborate story or history of relationships between people or things that you only get small glimpses of from the game. That way the player has to figure out what's behind it all, and for those who will look anyway, there really will be something.
Kevin Barry
Nice idea for it there, I could have it so it only gives glimpses, such as:
Ben@cave: 1
Jeremy: As you looked down at the dead Templar Militia, you remembered... If only you could have stopped it...
And other ideas? Nice idea. I will try and add something for the next version.
Ben: cave
Jeremy: You peer into the darkness, wondering what is inside. You hear something crunching underfoot. You peer around. Nothing.
Ben@cave: look
Jeremy: As you fumble for the flaming torch, you notice the floor is literally covered in dead bodies. Young, old, men, women, children. The sight horrifies you, and that was when you saw the Templar Militia storming towards you.
Ben@cave: fight
Yes, I think that is good. You may also consider a flee option.
For story ideas you may want to check a few classic games such as "Silent Hill 1: and 2 and "Planescape: Torment".
For examples of what can be done in terminal, you may want to check DoomRL and ADOM.
Judging by your source code, right now you're writing interactive fiction. As far as I know, there should be multiple interactive fiction engines available, so you won't have to reinvent the wheel.
Another genre that is very close to interactive fiction is "visual novel" (interactive fiction + graphics + voice + music). There's a RenPY engine available for making something like that, and their website should have a few demos.
Before you start writing code, I'd advice to sit down, outline your game ON PAPER, plan and think about it for a few days. (IMO) If you keep updating code as it is now, you are very likely to reach the situation when the code will become unmanageable and you'll have to start over.
Also I'd recommend to use higher-level language with "string", "boolean" and "map" types instead of C.
If you insist on using C, you should switch to portable framework instead of using raw terminal. That means libSDL or ncurses.
In current situation, If I were you, I'd probably switch to RenPY, C++ or ready-to use Interactive Fiction engine. That would be more efficient than writing everything from scratch while simultaneously developing a story.
For story ideas you may want to check a few classic games such as "Silent Hill 1: and 2 and "Planescape: Torment".
For examples of what can be done in terminal, you may want to check DoomRL and ADOM.
Judging by your source code, right now you're writing interactive fiction. As far as I know, there should be multiple interactive fiction engines available, so you won't have to reinvent the wheel.
Another genre that is very close to interactive fiction is "visual novel" (interactive fiction + graphics + voice + music). There's a RenPY engine available for making something like that, and their website should have a few demos.
Before you start writing code, I'd advice to sit down, outline your game ON PAPER, plan and think about it for a few days. (IMO) If you keep updating code as it is now, you are very likely to reach the situation when the code will become unmanageable and you'll have to start over.
Also I'd recommend to use higher-level language with "string", "boolean" and "map" types instead of C.
If you insist on using C, you should switch to portable framework instead of using raw terminal. That means libSDL or ncurses.
In current situation, If I were you, I'd probably switch to RenPY, C++ or ready-to use Interactive Fiction engine. That would be more efficient than writing everything from scratch while simultaneously developing a story.
Well, I started working on the game because I wanted to try and learn the basics of C, and I wanted to make it completely free software - but open to EVERYONE. I even planned a board game version of it which used a dice. That is why it is terminal based. If you have an old computer with no GUI, I believe you should be able to play the game. If you have no computer at all, you can play it (Board game), if you have a super fast computer, you can play it.
I wrote the whole thing out on paper and before I working on the C version I made a web based version in PHP (Chromebooks anyone?), and a version in Gambas, and I know there are other interactive fiction engines, it is just that I wanted to see what I could do with a netbook, a lot of coffee, and some sheets of paper.
The reason I came to ask for opinions here is because I am trying to get the game as good as I could. Currently it is version 0.3_6 (The source code I posted is 0.3_5, but I added some of the ideas) and I was hoping to get to version 0.3_0 with the main game and then leave the rest of it to the audience. Unfortunately this over ran as I found some bugs, but since the 0.3_3 build I have been asking for opinions from different places. I also have every single version stored on 3 different computers which are interlinked, so if one breaks I have other copies. So getting it messed up should not be too much on an issue.
whatever you end up with, make it subscription based, not one-time purchase based. Learn from the masters and those who are now multi-multi millionaires like the guys who created WOW.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.