Running Title: The Test. An Experimental Tile-Based Ron Game.

Started by Scarab, Sun 04/10/2009 07:34:32

Previous topic - Next topic

Scarab

My first game (not the first one I started, but the first one I will finish)

Plot Synopsis:
Davy has a test tomorow, and he has not studied. At all.
The only solution he can think of is to steal a copy of the test paper from his teacher's house, and study it all throughout the night.
But how will he get the teacher away from his house...?

The goal of this game is mainly to create the tile engine which I have been trying to implement, but I have tried to make the storyline and gameplay as good as possible.

There will be no mouse use in this game, just arrow keys and 'z' to interact with what is in front of you, and 'x' to cancel the current action/ close menu screens etc.

A lot of the tiles are ripped from various rpg's on Spriter's Resource (mostly the Pokémon games, beacuse they are abundant and so the graphics 'flow' from tile to tile), this is because drawing my own would severely increase production time, and this game is more about the code anyway.

Screenshots:
These may not be the final product, but they're quite close.
There are no backgrounds and walkable areas in this game, and these backgrounds are drawn entirely using the DawingSurface functions.

This is the right hand side of the town square, with Davy standing outside of YahtzeeBrand Store

Davy out at the farm

Production:
Story                                100%
Puzzles                            100%
Dialog                              100%
Character art           65%  97%
Room art                              2%
Sound/Music                        0%
Scripting:
    Tile Engine Mechanics    70%
    Interactions                   10%

Your comments/opinions are appreciated
Peace 8)
Scarab

ThreeOhFour


Shane 'ProgZmax' Stevens

I hope you see this through.  I love cutesy tile art.

Khris

Looking and sounding really good, I'm motivated to continue working on my own tile engine now :=

A small request though, if I may: I'd include a way to change the keyboard controls. Sure, there's JoyToKey, but not everybody is going to know that (or has a gamepad).
And I myself greatly prefer WASD to the arrow keys, and having a german keyboard, my Z isn't even close to my X.
So while people can always use JoyToKey or switch their keyboard layout to US, most will wanna play this without much screwing around first, and I'm sure those with different keyboards or WASD preference would greatly appreciate a remap function.


Scarab

@Ben304:   Thanks!  :D Glad you think so
@ProgZ: I will be sure to, as progress is being slowed atm bym exams :(
@Khris & Mr Matti:
I would like the game to be accessible, and will look into making an alternate set of controls, (I can definitely see wasd being a possibility) but I'm afraid that a key editor is, at this stage at least, out of my reach in terms of scripting. If I do end up following through with the tile module though, I guess I will have to come up with something... (in my naivety I completely forgot to consider foreign keyboards *slaps head*)
In the meantime, would you consider wasd and, say, nm, as an acceptable alternative?

Peace
Scarab

Crimson Wizard

I guess there could be a way to script controls setting for keyboard, like the one that asks you to "press a key for *** action" and stores key pressed to compare with keys in game and start corresponding actions.

NsMn

The problem would probably be that there is no way to get the name of a key, unless you make a beastly-long if-construction!

Scarab

Quote from: NsMn on Mon 05/10/2009 18:32:22
The problem would probably be that there is no way to get the name of a key, unless you make a beastly-long if-construction!

My thoughts exactly

ShiverMeSideways

x = StoreKeyFunctionScriptForWalking;
y = StoreKeyFunctionScriptForSmiling;
z = StoreKeyFunctionScriptForFlippingOff;
if KeyPressed = x then WalkScript;
if KeyPressed = y then Smile;
if KeyPressed = z then FlipOffPlayer;

Yay or nay?

Crimson Wizard

Quote from: NsMn on Mon 05/10/2009 18:32:22
The problem would probably be that there is no way to get the name of a key, unless you make a beastly-long if-construction!

There's no need for "beastly-long" if construction, if there's a way to just get pressed key code, you store it in a global variable, and when a key pressed in game you check if one of these stored keys is pressed.

Quote
x = StoreKeyFunctionScriptForWalking;
y = StoreKeyFunctionScriptForSmiling;
z = StoreKeyFunctionScriptForFlippingOff;
if KeyPressed = x then WalkScript;
if KeyPressed = y then Smile;
if KeyPressed = z then FlipOffPlayer;

Yay or nay?

Yeah, something in that style.


NsMn

Quote from: Crimson Wizard on Mon 05/10/2009 19:21:43
There's no need for if construction, if there's a way to just get pressed key code, you store it in a global variable, and when a key pressed in game you check if one of these stored keys is pressed.

Of course there is - the player wouldn't know what keys he chose otherwise.

Crimson Wizard

Consider this:

Code: ags

function on_key_press(eKeyCode keycode) 
{
    if ( we are in the key-setting mode )
    {
         if ( we are currently setting key for walking left )
         {
              WalkLeftKeyCode = keycode;
         }
         <... etc ...>
    }

   <... etc ...>

    if ( we are currently in game )
    {
        if (keycode == WalkLeftKeyCode)
        {
             do walk left
        }
         <... etc ...>
    }
}

Khris

Exactly, keycodes are ints so all you need to do is store them into variables.
A full-fledged key editor would be nice but isn't necessary, just read them all like this:

Code: ags
int noloopcheck GetKey(String which) {
  int i = 0;
  int k;
  lblKey.Text = String.Format("Press key for %s", which);
  Wait(1);
  while (i < 435) {
    if (IsKeyPressed(i)) {
      k = i;
      i = 436;
    }
    i++;
    if (i == 435) i = 0;
  }
  while (IsKeyPressed(k)) {
    Wait(1);
  }
  lblKey.Text = "";
  return k;
}

  ...
  left_key = GetKey("moving left");
  ...


Edit: too late

Crimson Wizard

Quote from: Khris on Mon 05/10/2009 19:31:03
Edit: too late
Heh, well, I should admit that your variant is easier to insert in game, since mine requires adding flags for modes/states.

NsMn

I get more and more the feeling you don't have a clue what Scarab and me are talking about.

Crimson Wizard

Quote from: NsMn on Mon 05/10/2009 20:01:03
I get more and more the feeling you don't have a clue what Scarab and me are talking about.
Maybe... :) elaborate then please?

NsMn

In every game where you can  choose the key you want to use, the NAME of that key is displayed somewhere. Imagine you set a new key, but forgot what it was... and setting the key again is kind of annoying.

Crimson Wizard

Quote from: NsMn on Mon 05/10/2009 20:03:05
In every game where you can  choose the key you want to use, the NAME of that key is displayed somewhere. Imagine you set a new key, but forgot what it was... and setting the key again is kind of annoying.

Hmmm... right... what about key names array then?


EDIT: Hey, check this, I found in String Formatting help article:

%c  Character (displays the ASCII character of the supplied value)

can this help?

Khris

NsMn:
First of all, we very much DO know what you are talking about. The thing is, with a mere two buttons besides four directional keys, it shouldn't be THAT hard to remember them, right...?
Secondly, like Crimson Wizard pointed out, the selected keys can be displayed easily using %c.

SMF spam blocked by CleanTalk