13 Replies - 1019 Views - Last Post: 18 June 2012 - 05:48 PM

Poll: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other (1 member(s) have cast votes)

What do you think of the project so far?

  1. It looks awesome! (0 votes [0.00%])

    Percentage of vote: 0.00%

  2. It looks nice, but I would like to see more features (1 votes [100.00%] - View)

    Percentage of vote: 100.00%

  3. Eeh.. its ok (0 votes [0.00%])

    Percentage of vote: 0.00%

  4. This looks awful (0 votes [0.00%])

    Percentage of vote: 0.00%

Vote Guests cannot vote

#1 ryansworld10  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 16
  • Joined: 02-May 12

[C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 02 May 2012 - 02:41 PM

Escape - A Console-Based RPG Like No Other
Current Version: 1.1.0


Overview
Escape is a project I recently started working on, with the purpose being to both learn C#, and change the way we think of text RPGs. While it may not look like much right now, there is much more to come. Please note that I have not started making the actual story, rooms, or items of the final game. This is currently in the "engine development" stage.

Current Features
  • Input interpretation with different sets of commands
  • Easy to manage world / item structure
  • Move between rooms; pickup, drop, examine, and use items, check your inventory


Coming Features (in order of importance)
  • Better organization of the inventory menu
  • Enemies
  • Battle system
  • Stats
  • Puzzles in the form of mini-games
  • Interactive conversations with characters
  • Actual story!


Source Code and Other Tat
Please check out the source code on Google Code here:
http://code.google.c.../source/browse/

I ask that you please leave comments on the code to help me improve the game!

You can also download the current version of the game from here:
http://code.google.c.../downloads/list


Please leave feedback and suggest improvements!


Is This A Good Question/Topic? 0
  • +

Replies To: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

#2 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 6473
  • View blog
  • Posts: 23,547
  • Joined: 12-June 08

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 02 May 2012 - 02:48 PM

Screen shots - they do wonders!
Was This Post Helpful? 0
  • +
  • -

#3 ryansworld10  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 16
  • Joined: 02-May 12

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 02 May 2012 - 02:50 PM

View Postmodi123_1, on 02 May 2012 - 02:48 PM, said:

Screen shots - they do wonders!


I'll add them when I get home, as I'm posting this from my school computer, and Imgur is blocked.
Was This Post Helpful? 0
  • +
  • -

#4 ryansworld10  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 16
  • Joined: 02-May 12

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 02 May 2012 - 06:52 PM

As per request, here are some screenshots from the first version.

Posted Image
Posted Image
Posted Image
Was This Post Helpful? 0
  • +
  • -

#5 ryansworld10  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 16
  • Joined: 02-May 12

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 10 May 2012 - 11:10 AM

Update Released - v1.1.1

What's new in this version?
v1.1.1

- Revamped command validation to only need a couple lines of code.
- Revamped the way text is positioned to support drawing blocks of text to a specific location.
- Text code is a little messy; will be trying to clean it up.

Download it here!
Was This Post Helpful? 0
  • +
  • -

#6 ryansworld10  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 16
  • Joined: 02-May 12

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 14 May 2012 - 04:52 PM

Update Released - v1.1.2

What's new in this version?

v1.1.2

- Revamped UI to be more organized and pretty to look at
- Changed how notifications and errors appear


Download it here!
Was This Post Helpful? 0
  • +
  • -

#7 ryansworld10  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 16
  • Joined: 02-May 12

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 21 May 2012 - 12:27 PM

v1.2.0 will contain saving and the basics of the battle engine, so it will probably be a little while until it comes out.
Was This Post Helpful? 0
  • +
  • -

#8 ryansworld10  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 16
  • Joined: 02-May 12

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 07 June 2012 - 01:41 PM

Development has been very slow over the past couple weeks due to school. Things should be picking up again in about a week, so expect to see v1.2.0 then!
Was This Post Helpful? 0
  • +
  • -

#9 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 6473
  • View blog
  • Posts: 23,547
  • Joined: 12-June 08

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 07 June 2012 - 01:42 PM

Soooooooo what's been added? What's on the docket?
Was This Post Helpful? 0
  • +
  • -

#10 Martyr2  Icon User is offline

  • Programming Theoretician
  • member icon

Reputation: 3873
  • View blog
  • Posts: 11,410
  • Joined: 18-April 07

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 07 June 2012 - 04:28 PM

Looks like a fun little project. One tip I have for you is to stop and think a little bit about your "Item" class and its "use" method.

Does it make more sense to create an item and test for "if this is a brass key, if this is a shiny stone, if this is a sword etc" for hundreds of potential items or to create a child class called "BrassKey" that inherits from item and contains its own "Use" method which overrides that of "Use" in the "item" base class?

Would you pick up an item you know is a book and test if it is a car, if it is a balloon if it is a gun etc? Or would you pick up a book and call "Use" which would then know that Use, in the case of a book, means read it?

Thinking about this situation carefully can save you some real nightmares later. Just wanted to mention it because I would hate for you to find this out later and hoop your project.

:)
Was This Post Helpful? 1
  • +
  • -

#11 ryansworld10  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 16
  • Joined: 02-May 12

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 07 June 2012 - 04:39 PM

View PostMartyr2, on 07 June 2012 - 04:28 PM, said:

Looks like a fun little project. One tip I have...

...hoop your project.

:)


Thanks for the tip! So are you saying make another .cs file and put in a new class for every item I have?

I'm not sure then how I would change the noun input into a class that I could then call a method from. I'll have to think about this one for a bit.

View Postryansworld10, on 07 June 2012 - 04:37 PM, said:

View PostMartyr2, on 07 June 2012 - 04:28 PM, said:

Looks like a fun little project. One tip I have...

...hoop your project.

:)


Thanks for the tip! So are you saying make another .cs file and put in a new class for every item I have?

I'm not sure then how I would change the noun input into a class that I could then call a method from. I'll have to think about this one for a bit.


Ignore the second part of what I just said there. I'm not sure what I was thinking, but I figured out how to do it. :P
Was This Post Helpful? 0
  • +
  • -

#12 Martyr2  Icon User is offline

  • Programming Theoretician
  • member icon

Reputation: 3873
  • View blog
  • Posts: 11,410
  • Joined: 18-April 07

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 07 June 2012 - 04:55 PM

I would make a class for each item yes... unless you have multiple "types" of the item. Obviously if you have a potion it could be a potion that gives you +5 to health or +10 to health. They are essentially the same item with a different stat.

But yes a new class for each item. This gives you three features that will be really desirable...

1) You can introduce new items by simply adding a new class without touching anything else.

2) It gives you a way to write your "Use" method to be special only to that class type. You don't want to be caught in a situation where you are having to try to figure out code for a brass key when the item is a potion. Besides the two items are used in completely different ways.

3) Those classes will be able to then act as base classes further on. Perhaps you have the need to create different types of potion. You have item which you inherit from to create a potion which you inherit from to create health, magic and strength potions. Heck these might have different ways to use them... one you drink, one you pour on your head and one you pour over a shield.

But you will quickly see how you will be able to keep code specific to the item and give you the flexibility to grow out a class hierarchy.

:)

This post has been edited by Martyr2: 07 June 2012 - 04:57 PM

Was This Post Helpful? 1
  • +
  • -

#13 ryansworld10  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 16
  • Joined: 02-May 12

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 09 June 2012 - 02:47 PM

View PostMartyr2, on 07 June 2012 - 04:55 PM, said:

I would make a class for each item yes...

...will be able to keep code specific to the item and give you the flexibility to grow out a class hierarchy.

:)


Ok I just restructured my code to do this, and here are the results!

The items are now constructed as their own class type, instead of just items.

		private static void GenerateItems()
		{
			Items.Add(new BrassKey(
				"Brass Key",
				"Just your generic key thats in almost every game.",
				true));
				
			Items.Add(new ShinyStone(
				"Shiny Stone",
				"Its a stone, and its shiny, what more could you ask for?"));
				
			Items.Add(new Rock(
				"Rock",
				"It doesn't do anything, however, it is said that the mystical game designer used this for testing."));
		}


My Items.cs file has now been changed to this:

	abstract class Item : Entity
	{
		#region Declarations
		public bool SingleUse;
		#endregion
		
		#region Constructor
		public Item(string Name, string Description, bool SingleUse = false)
			:base(Name, Description)
		{
			this.SingleUse = SingleUse;
		}
		#endregion
		
		#region Item Using Methods
		public virtual void Use() {}
		#endregion
		
		#region Public Methods
		public void NoUse()
		{
			Program.SetError("There is a time and place for everything, but this is not the place to use that!");
		}
		#endregion
	}

	class BrassKey : Item
	{
		public BrassKey(string Name, string Description, bool SingleUse = false)
			:base(Name, Description, SingleUse)
		{
		}

		public override void Use()
		{
			if (Player.Location == 2)
			{
				Program.SetNotification("The key opened the lock!");
				World.Map[2].Exits.Add(3);
			}
			else
			{
				NoUse();
				return;
			}
		}
	}

	class ShinyStone : Item
	{
		public ShinyStone(string Name, string Description, bool SingleUse = false)
			: base(Name, Description, SingleUse)
		{
		}

		public override void Use()
		{
			if (Player.Location == 4)
			{
				Player.Health += Math.Min(Player.MaxHealth / 10, Player.MaxHealth - Player.Health);
				Program.SetNotification("The magical stone restored your health by 10%!");
			}
			else
			{
				Program.SetNotification("The shiny orb glowed shiny colors!");
			}
		}
	}

	class Rock : Item
	{
		public Rock(string Name, string Description, bool SingleUse = false)
			: base(Name, Description, SingleUse)
		{
		}

		public override void Use()
		{
			Program.SetNotification("You threw the rock at a wall. Nothing happened.");
		}
	}


Is there any way I should change it, or is this a good start?
Was This Post Helpful? 0
  • +
  • -

#14 ryansworld10  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 16
  • Joined: 02-May 12

Re: [C#] [1.1.0] Escape - A Console-Based RPG Like No Other

Posted 18 June 2012 - 05:48 PM

Update Released - v1.2.0

What's new in this version?

- Added saving and loading
- Tweaked HUD
- Restructured item code to add flexibility
- Added incomplete enemy and battle code. Will be completed in v1.2.1


Download it here!
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1