Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


text based game tricks


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 JonathanCCC   Members   -  Reputation: 158

Like
0Likes
Like

Posted 07 April 2012 - 02:07 PM

I have 2 questions, first, does anyone know of any good free open source text based games written in vanilla C that I can download and learn
some tips from? since for the moment i'm confining myself to console stuff and learning C inside and out before I go onto SDL.

EDIT: something like a large open source role playing game or "MUD" game would be great.



secondly, at the moment in my games, as an artifical way of making the program wait, for example, to simulate a poker opponent thinking, even though the computer has of course done the calculations in half a second, I do this for example:

#define wait 2000000000

int i = 0;
while (i < wait) {i++; if (i == 1) printf("\nComputer is thinking"); if (i == 100000000) printf(".");if (i == 300000000) printf(".");if (i == 600000000) printf(".");if (i == 900000000) printf(".\n"); }

is this bad and is there a better way?

thanks

Sponsor:

#2 Dragonsoulj   Crossbones+   -  Reputation: 2126

Like
0Likes
Like

Posted 07 April 2012 - 02:41 PM

The better way would be to set up a timer, since each computer would process the while loop at various speeds depending on the computer specs, particularly the CPU in this case. This could be incorporated into the game update loop.

For example (and this is pseudo-code):
timer myTimer;
while(gameIsRunning)
{
	 if(isPlayerTurn())
	 {
	 	 doPlayerTurn();
	 }
	 if(isComputerTurn())
	 {
	 	 print("Computer is thinking");
	 	 myTimer.start(); // Starts the timer "ticking"
	 	 for(int i = 0; i < 3; i++) // 3 dots
	 	 {
	 	 	 while(myTimer.elapsedTime() < 0.5){} // Just waiting for our timer to reach half a second
	 	 	 print(".");
	 	 	 myTimer.reset(); // Starts timer over
	 	 }
	 }
}

This gives the computer a total "thinking" time of roughly 1.5 seconds. It will vary depending on how fast it executes the rest of the code, but it will be at least 1.5 seconds (0.5 each wait, with 3 total waits = 0.5 * 3).

Granted this is just a simple example, you would have a lot more code to handle things.

Oh, and you can use the code tags for your code to make them more reader friendly. Posted Image

#3 falconmick   Members   -  Reputation: 80

Like
0Likes
Like

Posted 10 April 2012 - 11:47 AM

Ide recommend fist making a rock paper scissors game (example code here, ITS IN EVERY LANGUAGE U COULD IMAGINE :D) then you can move on...
first thing is to make yourself a basic game engine:
void main()
{
	  int continue = 1;
	  while(continue ) // game loop
	 {
		 //check for user input
		 // run AI
		 //update entities (things in the game)
		 //draw text
		 //play sounds
	 }
}

and fill it in

maybe look through this, ive had a brief read, I think It will help you.

#4 JonathanCCC   Members   -  Reputation: 158

Like
0Likes
Like

Posted 10 April 2012 - 06:33 PM

yes, that text based game tutorial in C does look good. Thanks for that, and thanks dragonsoulj for the better waiting code!

#5 Satharis   Members   -  Reputation: 1249

Like
0Likes
Like

Posted 10 April 2012 - 09:06 PM

Depends what you mean by text based, most people tend to start with console programs for text based. Problem with consoles is that they're blocking applications, they don't poll you for input, games like MUDs only work because they're standalone servers that can communicate with you. It's obviously possible to make a text based game in a win32 window or using SDL or something but that comes down to what you want to do.

It's entirely possible to make a text based console game, but you wouldn't have any sort of "timing" it'd just have to be back and forth, issue command, receive result.

#6 falconmick   Members   -  Reputation: 80

Like
0Likes
Like

Posted 10 April 2012 - 09:24 PM

yes, that text based game tutorial in C does look good. Thanks for that, and thanks dragonsoulj for the better waiting code!

hmm, well I supose mine was more a real time engine, not a turn based

#7 Dragonsoulj   Crossbones+   -  Reputation: 2126

Like
0Likes
Like

Posted 11 April 2012 - 01:13 AM

hmm, well I supose mine was more a real time engine, not a turn based

I was merely giving him a timespan across every system that will give similar results. I've had the issue of not thinking of how fast a computer runs a program.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS