Allegro.cc - Online Community

Allegro.cc Forums » Off-Topic Ordeals » Who Needs Direction?

This thread is locked; no one can reply to it. rss feed Print
Who Needs Direction?
Thomas Fjellstrom
Member #476
June 2000
avatar

Quote:

If you've decided to allot time to gaming would you want to spend that time troubleshooting your computer's video card or gaming? People are willing to spend the time with the game development, but trying to figure out dependencies for a beta (alpha?) library themselves or figuring out build tools they've never used probably wasn't what they had in mind. They want to skip past that to the actual game design, development, and testing.

Then why aren't they using GameMaker?

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

OnlineCop
Member #7,919
October 2006
avatar

Some of us have never heard of GameMaker :)

Hey, since there are more people now who are able to compile Monday on Windows due to Trent's allegro5.org site, let's have the Leaders start deciding what needs to be done.

Some suggestions:

1) We need maps. If all you can do is run a precompiled "monday" binary, that's all you need since the maps are all text files for now (just edit the level, and re-run the game to see your results).

2) We need (more) tiles for the background for the new maps.

3) We need more Entities. The "gryphon" placeholder is a good start, and if we could get more Entities to use in the various maps, we can know when we're attacking an NPC or a monster :)

There's still a lot left to do in the source code, of course, but these suggestions can be implemented all data-side and not even require someone to have a compiler on their system to help out... they just need to be able to run the binary.

Evert
Member #794
November 2000
avatar

Quote:

but trying to figure out dependencies for a beta (alpha?) library

It's neither of those. It's a work-in-progress release. Either way, dependencies aren't going to be different for Allegro 5 when it comes out; it should have better documentation though.

OnlineCop
Member #7,919
October 2006
avatar

What is the format for documenting code again?

/**
 * This function will do something, and this comment will be auto-parsed...
 *
 * @param a The first input in the function
 * @param b The second input in the function
 *
 * @return true if the return value is non-0, false if it's 0.
 */
bool function1(int a, char b)
{
  return 3;
}

Or is there a different one? Having in-line comments would help with some of the documentation...

Don Freeman
Member #5,110
October 2004
avatar

Have you checked out the rawdata folder in the svn? It has all kinds of sprites and stuff we could use for the world and backgrounds, also several weapons sounds, and fonts! ::)

--
"Everyone tells me I should forget about you, you don’t deserve me. They’re right, you don’t deserve me, but I deserve you."
"It’s so simple to be wise. Just think of something stupid to say and then don’t say it."

OnlineCop
Member #7,919
October 2006
avatar

Ooooh!

Now, by "stuff we could use"... does that mean that these are more placeholder images/backgrounds that we can use as they are owned by some company that'll get pissed if they ever catch wind that we ripped out their sprite sheets and used them in our own creation, or does it mean that they are freely available for "anyone who wants to use them" (like on the terms that, if the game is not going to be sold, we're free to use them)?

Otherwise, I'd be worried about ripping something off and forgetting that we had them until somewhere down the road when the project gets canned because of an upset copyright holder.

Trezker
Member #1,739
December 2001
avatar

The format for documenting code is all around my headers.

And on the naturaldocs website. http://www.naturaldocs.org/documenting.html

OnlineCop
Member #7,919
October 2006
avatar

Changing the <entity> tags to have "tile_x" and "tile_y" support (in addition to absolute "x" and "y" coordinates), I've set one trigger at tile_[xy] = 6 and the other at tile_[xy] = 7.

http://www.allegro.cc/files/attachment/597245

These two "entities" are actually the triggers in the bottom-right corner of the map.

As you can see, "x,y" or "tile_x,tile_y" set the center of the entities at the coordinates specified, not their top-left corner.

Should tile_x and tile_y compensate for this 'centering' effect and actually try to align it more closely to the top-left of the tiles instead?

Trezker
Member #1,739
December 2001
avatar

Yes I'd say tile_x = 3 should mean the center of the fourth tile. As all entities are circles...
Or should we start at 1 so tile_x = 3 means third tile?
It's just a matter of plus or minus half a tile.

Don Freeman
Member #5,110
October 2004
avatar

Quote:

Now, by "stuff we could use"... does that mean that these are more placeholder images/backgrounds that we can use as they are owned by some company that'll get pissed if they ever catch wind that we ripped out their sprite sheets and used them in our own creation, or does it mean that they are freely available for "anyone who wants to use them" (like on the terms that, if the game is not going to be sold, we're free to use them)?

Otherwise, I'd be worried about ripping something off and forgetting that we had them until somewhere down the road when the project gets canned because of an upset copyright holder.

I got most of them from charas-project, so you may have to look at each one to tell...I am no lawyer and all, so I am not sure about these really. Most come from RPG maker...I don't know if you can use them in whatever...but I imagine you could, since you can make a game and distribute it anyways. ::)

--
"Everyone tells me I should forget about you, you don’t deserve me. They’re right, you don’t deserve me, but I deserve you."
"It’s so simple to be wise. Just think of something stupid to say and then don’t say it."

bamccaig
Member #7,536
July 2006
avatar

Last night OnlineCop, myself, and a few others were discussing Monday on IRC. Anyway, I guess I've decided to give it a shot creating a developer console for Monday. Essentially, I would like for it to be like a command-line interface that drops down from the top of the screen (like in other game engines; i.e, Source engine) to the Lua scripting engine. This way, you can check the values of variables, make changes to the game world, etc., all while playing the game. The plan is to have it drawn overtop of the game and provide simple text-entry and output. The "commands" will actually be any valid Lua code (though it may be limited to a single line, you could at worst still execute a script with multiline code in it -- such as declaring a function when the game loads so a single-line command will do what you need).

We discussed the abstraction of user input as well so it was completely configurable. Perhaps something like:

struct KeyBinding
{
    int key1;  /* Might include non-keyboard input as well... */
    int key2;
    const char *command;
} KeyBinding;

The idea is that KeyBinding::command would be a Lua "statement" (i.e. any valid Lua code, including a block of code, though the UI for the developer console may only permit single-line entry). All of the in-game stuff would be wrapped with Lua (i.e. a map function to change maps, a fire function to fire the weapon, etc.) and then a keybinding would be made for each of the default actions (movement, interaction, etc.). This could even be done with a simple default script that is run on startup, making it easy to add things to this script and have them persist every time you run the game.

Of course, this is still open to revision, etc., so feel free to put your two cents in on it.

From there, users (with access to the developer console -- or that script) could also create arbitrary keybindings to execute Lua code with the press of a button (from a statement, to a function call, to executing an entire script). For example, with a bind function in Lua.

I think it would make certain testing and debugging tasks easier because you could control everything from in-game and all of the scripting engine's output would be accessible from in-game as well (so when a non-fatal error occurred you could easily open the developer console and see what happened).

It may be a little extreme for this project, but I'm not working on anything anyway and figure this is something I've been interested in doing anyway. And it's something I can work on without holding up the rest of the project development.

For now, it won't mean much to the rest of the contributors. Go on with what you're doing, etc., and when I get something somewhat functional we can start binding game functionality into Lua and trying to merge it into the trunk code.

Objections, suggestions, feedback, etc.?

It'll probably take me a few days (or a week :P) to figure out how the scripting engine, user input, and drawing is all being done and come up with a design for the developer console. I'd like to get it somewhat functional on the command line or something before worrying about implementing the GUI front-end for it so I'll probably start with interfacing the scripting engine. I can proceed with user input and UI when I get the scripting interface functioning.

Is it possible to work from the command line with an Allegro program (i.e. read input from stdin)? Otherwise, is there a message box with a text input on it in Allegro? This so I can easily enter test commands before implementing a GUI front-end. :-X

Thomas Fjellstrom
Member #476
June 2000
avatar

Allegro doesn't block stdin or stdout, just make sure the game is compiled with the console enabled (-mconsole/-Wl,-subsystem,console/Console Project in msvc), and things'll work out.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

bamccaig
Member #7,536
July 2006
avatar

Thomas Fjellstrom said:

Allegro doesn't block stdin or stdout, just make sure the game is compiled with the console enabled (-mconsole/-Wl,-subsystem,console/Console Project in msvc), and things'll work out.

Excellent, thanks.

OnlineCop
Member #7,919
October 2006
avatar

I'm taking a look at some other, older code that we may be able to use to keep track of screens.

bamccaig's developer console (as well as in-game menus, dialog boxes, etc.) will probably require that inputs be captured and not passed up to background processes.

Therefore, a Commander needs to keep track of which window is on top and has focus, and whether or not it's modal (meaning that it doesn't pass inputs up to its parents, nor do parents respond if one of their children have isModal defined).

I'll probably be working slowly on this, since I don't want to break anything, and since I haven't fully wrapped my head around how it works myself (it's my old company's code that I'm looking through that does this).

...unless there's something else our Leaders would like me to be doing...

Don Freeman
Member #5,110
October 2004
avatar

Keep it ALIVE!!!;D:D

--
"Everyone tells me I should forget about you, you don’t deserve me. They’re right, you don’t deserve me, but I deserve you."
"It’s so simple to be wise. Just think of something stupid to say and then don’t say it."

OnlineCop
Member #7,919
October 2006
avatar

Actually, just getting ready to post that I just pushed up a few more SVN updates.

Leaders, if we are to start working with collisions and picking up items, etc., we're going to need several maps drawn.

1) We need about 2-3 maps that move "room to room". Will transitions occur when you simply "get to the edge of the map" or will it only occur when you click "activate" on a door?

2) If we have some maps that hold "friendly" NPCs, and others that hold "enemy" NPCs, we could start working on implementing conversations (with friendlies) and fighting (with non-friendlies).

We need more, but we need at least these so we can make sure everything code- and data-wise is set up correctly to handle what we need.

Also, for those keeping track of the SVN, Don has uploaded some tilemaps to start using. Personally, I found some that I like (if nothing else, they can be temp placeholders until we draw our own):

1- T cavewall iso.zip
2- T soulstones.zip
3- T steel barrels-crystals.zip
4- T ug fence.zip
5- T_ani_water.zip
6- T_bushes.zip
7- T_creekbridges.zip
8- T_horse_blackhair.zip
9- T_horse_lighthair.zip // (though I don't know whether we'll use horses...)
10- T_horse_saddle.zip
11- T_inside_wall_blue_tiles.zip
12- T_inside_wall_brick.zip
13- T_inside_wall_cream.zip
14- T_inside_wall_steel.zip
15- T_inside_wall_stone_blue.zip
16- T_inside_wall_stone_yellow.zip
17- T_pickup_armor_iso.zip
18- T_pickup_weapon_iso.zip

If someone wants to start on a few maps, those are available under the "./rawdata/Free" directory. Many of these are for animations, but the ones for walls and things can be useful as tilesheets.

Leaders! Read the ./docsrc/*_todo.txt files and let us know what needs to be done next, and who should do them!

Thomas Fjellstrom
Member #476
June 2000
avatar

Quote:

Will transitions occur when you simply "get to the edge of the map" or will it only occur when you click "activate" on a door?

If its anything like zelda (lttp?), As you walk through. If you get to a locked door, opening the door is a separate action, and you're not quite at the opening till its open.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

OnlineCop
Member #7,919
October 2006
avatar

Do we wish to implement this as a trigger that activates when you walk onto it, or an event that is fired when you reach the "edge of the map"?

Thomas Fjellstrom
Member #476
June 2000
avatar

I'm not sure. There could both doors and edge based transitioning. I suppose it couldn't hurt to have both.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Evert
Member #794
November 2000
avatar

This was discussed in a post by 23; I think the conclusion was you wouldn't scroll, but I don't remember why.

bamccaig
Member #7,536
July 2006
avatar

OnlineCop said:

1) We need about 2-3 maps that move "room to room". Will transitions occur when you simply "get to the edge of the map" or will it only occur when you click "activate" on a door?

I prefer the interactive method (though testing may be required to make sure it's smooth enough to not be a hassle). It should immerse the player more into the game. And allow them more freedom to explore a room without fear of transitioning into another room. Obviously if there is no door this wouldn't make much sense so it could be automatic in that case.

23yrold3yrold
Member #1,134
March 2001
avatar

A thousand apologies; stuff's been happening at work and with job hunting and other things that are cropping up. Suffice to say, I'm in a bad mood. :P

Quote:

If its anything like zelda (lttp?), As you walk through. If you get to a locked door, opening the door is a separate action, and you're not quite at the opening till its open.

Basically. And yes, no scrolling, just because it complicates things. I want to be able to adjust room sizes as I see fit and there's no reason it has to adhere to the same grid-pattern Zelda does; as far as I'm concerned, the only reason Zelda even still does it is because it's part of the "style" of the Zelda series, going all the way back to the original. We're just doing a fade-out/fade-in, like your typical Final Fantasy game.

I haven't had a chance to armwrestle with Allegro 5.0 in a few days; what are the chances of a binary with some simple map-switching, since that seems to be the current topic? I'd like to see if I can start editing those maps ....

--
Software Development == Church Development
Step 1. Build it.
Step 2. Pray.

Thomas Fjellstrom
Member #476
June 2000
avatar

The current binary that the current makefile builds will load a map that if you get to the bottom rect and hit the activation key (which I forget), you switch to another map.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

OnlineCop
Member #7,919
October 2006
avatar

23yrold3yrold: If you can use the files from allegro5.org, you can use the "makefile.new" that's found in the trunk. It creates a binary as "bin/run_me.exe". Run that from the base directory (and optionally turn on debugging with a "-d" switch).

You should see the screens I posted earlier.

Right now, my next objective is to get some triggers that activate when you step on them, though I need to know how we're going to handle the collision detection with them: Since we're not bound to 32x32 pixel tiles in our movement (it's more free-flowing), at what point do you activate the triggers?

  • Is it when your sprite barely grazes the outside border of the trigger?

  • Is it when at least 50% of your character overlaps the trigger?

  • Is it when you're between 75% and 100% on top of the center of the trigger?

50% may work fine, but developers may notice that things start activating a little prematurely if the character "kinda" bumps into a trigger-activated spot when they're actually just walking "around" the tile. I'm more apt to go with the 75%-100% because you know that you're intentionally standing on the tile/trigger.

Ideas? Feedback?

Thomas Fjellstrom
Member #476
June 2000
avatar

Two ideas, when you're 75% or greater into the tile, or if that doesn't feel right, have the trigger specify it.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730



Go to: