Jump to content

  • Log In with Google      Sign In   
  • Create Account

Interested in a FREE copy of HTML5 game maker Construct 2?

We'll be giving away three Personal Edition licences in next Tuesday's GDNet Direct email newsletter!

Sign up from the right-hand sidebar on our homepage and read Tuesday's newsletter for details!


We're also offering banner ads on our site from just $5! 1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


I'm trying to make my first game


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
4 replies to this topic

#1 Kripis   Members   -  Reputation: 132

Like
0Likes
Like

Posted 01 February 2013 - 03:59 PM

So I'm making this text adventure game where I have an array of events and every time you go north, east, south or west. the loop calls a random number which then calls an event in the array, now is this the best way to do it? I want to learn to make code efficient from the beginning  



Sponsor:

#2 frob   Moderators   -  Reputation: 22235

Like
5Likes
Like

Posted 01 February 2013 - 04:23 PM

Probably not, if you want to have an actual replayable game.

 

Consider running the game with several state machines.

 

It is basically a bunch of data tables that look like this:

  • Object name.  This could be "NorthRoom" or "Hallway37" or whatever
  • State.  For example a room could be "dark" or "bright"
  • Available Transitions and method to get there.  It will need to represent the pair of "west" means the new state "WestRoom", "east" means "Riverfront".
  • Inventory of stuff.  Maybe there is a rope, or a bottle, or a little spring.  Whatever it is, there should be an array of them here.
  • Description string.  This could be "You are standing in front of a beautiful mountain stream", or "You are in a maze of twisty little passages, all alike".
  • Assorted other goodness you want in your game.

 

Another set of tables for the objects in use.  You will note that it looks suspiciously like the one above.

  • Object name.  "rope", "bottle", "knife", "box", "water fountain"
  • State of the object.  "Full", "Empty", "Buttered"
  • Available transitions and method to get there.  "drink bottle" leads to the bottle's empty state.  "Eat rope" leads to somewhere exciting.
  • Inventory of stuff.  Maybe the box contains another box, and that box contains another box, and so on.
  • Description of the object in that state.  "A coiled rope"  or "An empty knife".
  • Assorted other goodness you want in your game.

 

A text adventure game is little more than a collection of small state machines and inventories.  I've seen them implemented in Excel with a set of macros and three sheets that look basically like the above items.  This type of games are a great learning exercise.


Edited by frob, 01 February 2013 - 04:27 PM.
Had to look up the reference to EAT ROPE.

Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I write about assorted stuff.


#3 Serapth   Crossbones+   -  Reputation: 5586

Like
7Likes
Like

Posted 01 February 2013 - 05:01 PM

I know you aren't going to like this answer, but don't worry about it.

 

What you want to do is do it the wrong way for now, then learn from your mistake on the next pass.  We can tell you a better way to implement what you want, like frob just did, but until you understand why one way is better than the other, there isn't much value.

 

In other words, you need to learn from your own mistakes.



#4 Dan Mayor   Crossbones+   -  Reputation: 1713

Like
0Likes
Like

Posted 01 February 2013 - 05:21 PM

I know you aren't going to like this answer, but don't worry about it.

 

What you want to do is do it the wrong way for now, then learn from your mistake on the next pass.  We can tell you a better way to implement what you want, like frob just did, but until you understand why one way is better than the other, there isn't much value.

 

In other words, you need to learn from your own mistakes.

 

 

Very nicely said Serapth and I have to agree 100%.  Programming is the art of understanding core features and functionality of a language and finding the best way to implement them into solving the issue at hand.  It is good to ask for and take advice on how you can better something but you should always try a few different approaches yourself before doing such.  We may be jumping to conclusions and you might have already experimented with a few different ways, if so and this is the best you have found so far, well most of us don't agree and Frob's idea of centralizing objects for re-usability is a good start.  Now it's up to you to take his suggestion and apply it to your game and find if it works better for you (and WHY).  The most important part is WHY.  Make sure when asking for help that you question the WHY every single time.  Not to challenge the suggester of the possibly better technique but to truly understand yourself WHY their method may or may not be better.  So like Serapth said you need to actually be learning why things make a difference not just being handed the proper answers.


Edited by Dan Mayor, 01 February 2013 - 05:23 PM.

Digivance Game Studios Founder:

Dan Mayor - Dan@Digivance.com
 www.Digivance.com


#5 frob   Moderators   -  Reputation: 22235

Like
1Likes
Like

Posted 01 February 2013 - 06:39 PM

Programming is the art of understanding core features and functionality of a language and finding the best way to implement them into solving the issue at hand.  It is good to ask for and take advice on how you can better something but you should always try a few different approaches yourself before doing such.  We may be jumping to conclusions and you might have already experimented with a few different ways, if so and this is the best you have found so far, well most of us don't agree and Frob's idea of centralizing objects for re-usability is a good start.  Now it's up to you to take his suggestion and apply it to your game and find if it works better for you (and WHY).

As this is the For Beginners forum...

 

Many beginners don't know what the options are.  Most are still in secondary school and have only a few weeks of experience where they have dabbled with programming.

 

It is very difficult to choose among different approaches when you have no clue what any options are.

 

If the question were related to a school assignment or a serious game project we could discuss the merits of proper selection.  But in a For Beginners post I feel it is generally best to offer up simple, robust solutions that are easy to understand and to implement.


Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I write about assorted stuff.





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