Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Alynn

#81
I only mentioned GUI's to differenciate them from sprites. I didn't mention rooms because since they are, for all intents and purposes, static. I just singled out those 3 items because they are drawn over top of the backgrounds. So what I meant to say was, neither Rooms nor GUI's need to change. Using the upper left corner is a programming standard, and I see no reason to change that.

As far as the get and set commands, yes, personal opinion, it just seems right to me, probably because I've been programming that way longer than I've used AGS. It's safer for the data, and keeps people from writing when they should have be reading. Makes them really think about what they are doing. You can't accidently type player.SetX().

It's mostly about being consistant, and organizing everything onto base Casses to making finding what you want a bit easier. If I type "player." a whole list of everything I can do with the player Class pops up. With this, if I type "Media." everythiing I can do with music and sound appears letting me know everything I can do with music and sound. "Screen." will show me everything I can do with the screen. Fading, rawdrawing, so on and so forth. To me, it becomes more intuitive, and all you really have to memorize is the main Parent Classes, you then don't have to memorize everything that falls underneath it. It's a starting point. A reference. The same is true for Set and Get commands. Typing in "player.Set" will give me everything I can set on the character, while "player.Get" will give me everything I can get from the character.

What serialization does, in essense, is take the Class state (the instanciated object, and all data marked for serialization in that object) and saves it, this can be compressed. Yes, it will perhaps make the saves bigger, but using this will also allow for saving room data for over 300 rooms, currently the only real work around for the 300 room state save limit, is to use a global variables, and to me it seems silly to use a global variable for something that should be kept local. As you should always keep variables at the lowest scope needed for that variable. But since I really don't know exactly what the current save algo does, it was more of "have you considered this?" type of suggestion.

Now that you mention the two paths to reference things (both global and using room variables) it may in fact, be better to make the internal vectors private. Honestly, accessing the pointers though the rooms was an after thought that I tacked on, when I realized that it would indeed allow two paths to access, and isn't really needed since characters and objects would be global anyway. So I pull back that statement. However, to answer your question Khris, it would either return cEgo, or Null if cEgo wasn't in the room.

Gilbot... I actually already use something like this. Currently I have 45 seperate sounds. In order to work around the whole not able to label sounds. When I put a new sound in my sound folder, I add the sound to an enum in my Util module so I don't have to figure out what sound is what, espeically the sounds that I use over and over, such as the doors opening, and the rimshot. Similar to this:
Code: ags

enum Sound {
  sAxeHit = 1, 
  sDoorOpen = 2, 
  sRimshot = 3, 
  sExplosion = 4, 
  sSplash = 5
};


Scotch: Regarding Sound.Play(id) this is also viable. I was just thinking of a way to keep the current commands as is, and just organizing them under a larger parent class.

And finally KhrisMUC, honestly though, any suggestion that is ever made is because someone has a personal need for it. Nobody would ever suggest anything unless they personally thought they needed it (or the engine needs it). Suggestions are all about personal opinions. So I honestly don't see what is very different from what I put up, than from what anyone else typed up.

After all, this is "Just things as I see it" and anybody and everybody is entitled to love it, hate it, or find a way to improve it. Howver, if I never mentioned it, then none of the above could even happen.

And finally (phew), Out of everything up there, the items I think are the most vital are the vector based storage. And I'll admit that most of the suggestions are based off of ignorance of how CJ actually implemented the engine, only he knows for sure exactly how things are done now, so I can only guess. So maybe I should change it from SUGGESTION to HAVE YOU CONSIDERED but that goes back to typing more than needed ;).
#82
Yes, but I didn't get nominated... I should have just nominated it myself, but it was against my palidin code.

Damn you Lawful Good alignment!!!

Erm... Nothing to see here. Move along.
#83
I'm sure some of this is in the tracker, but with CJ's graphical upgrade to the editor, and the migration to .NET I thought of a few things to completely objectize the rest of the engine. These aren't all my suggestions, there are some in here that have come from other sources, however as I don't remember who made the suggestion I will just repost them here with my own take on what they should be. This will probably get very long. So please bare with me. Also, I have tons of notes I wrote up for this, and my son convieniently decided to destroy many of them, so I will probably forget something, so feel free to add :).

These are the Objects (note, Objects with a capital O refers to the classes (Not sure if .NET uses the same terminology as Java, but since I know java better, so I'm using it's terms) while objects is the name for the items normally found in the editor. In other words capital O is Object in the programming sense, and lower o is an object in the AGS sense. So if you see a capital letter, I'm refering to an Object name, and lowercase I am not.

Vector Based instead of Array Based: For those of you that don't know, a Vector is a dynamic Array. It resizes itself to fit the current contents of the Objects stored in it. They are much more flexable than Arrays. The advantage to this is, those that use way less than the (current) maximum limits will get the benefit of having a smaller memory footprint and game size. On the other end, those that need way more than the engine's current limits will no longer be limited to a certain size Array, and can make their game as big as they want.

Seperate Data Structures (Classes): Currently, certain things like objects, are assigned to a certain room that they are created in in the engine. While I believe that objects should be their own Object and placed in a room by code. This provides objects having the same functionality as characters, so characters can pick up and drop objects in any room (if coded to do so). This brings me to the next suggestion.

Global Structures: Much of AGS is already OO, but not all of it, there are still some methods out there that belong to no parent object. Trying to keep with what AGS already has I'd like to add a few other Parent classes

Screen - Handles Screen rendering methods, such as getViewportX, and Rawdraw.
Room - Handles Room Calls
Character - placement and animation, of characters
Object - placement and animation of objects.
Media - Handles Sound, Music, and Video.
Inventory - Handles Inventory Item calls.
Mouse - Handles Mouse placement, mode, and so on
Game - Handles everything else, such as click and keypress handling.

Now Game holds a Vector of Room. Room holds a Vector of Object pointers and Character Objects pointers that currently exist in it (that is to say, it doesn't actually hold the Object, but a pointer to the Object). This would mean that like Characters, Objects would become global, and could therefore exist anywhere in the game. I'd also like to be able to assign rooms script names as you can with characters and objects, such as rNorthHallway. Also, assigning script names to Views, so I could have cEgo and vEgo one of course is the character script name, while the other is the view script name for that character. Walkable Areas, Regions, and Hotspots will still remain as Vectors in Room, as there is no reason to have those global. However making those vectors as well will make them virtually unlimited (save memory requirements), and make the memory size smaller if they aren't being used.

Now if both the Character and Object Vectors are made public within the rooms, this gives 2 ways to access the data within, by globally calling (such as cEgo.Say) or through room Calls (rHallway.GetCharacter(cEgo)). However, I think the best bet would to make the Vectors protected, so they can not be directly written from the rooms, perhaps only read from.

Consistency: Some of you may have noticed that some things like Character.x and Character.y while everything else is Thing.X and Thing.Y. The naming convention should be consistant across the board. This is personal preference on my part. Now you may have noticed the Media class above, I added this class to add some consistancy as well. For instance, PlaySound() PlayMusic() are script commands that are just straight typed in. Not consistant at all with the OO approach AGS is going for. The Media class will now be the parent class for these types of methods. So now we have Media.PlaySound() and Media.PlayMusic, Screen.GetViewportX, Screen.GetViewportY. Also, consistancy for sprites, right now characters are referenced by the bottom center pixel, but rooms are not. For all sprites on screen, including characters and objects, the same reference point (such as the bottom center pixel) should be used. GUI's are fine using the upper left corner as their reference point, as that is normal with most programming.

More OO Approach: Currently there is alot of directly accessing data inside of the Objects. Such as able to set Character.x. In most OO, it's bad practice to directly manipulate primitives. Instead, use Get and Set type methods. player.GetX(), player.SetX(int XValue).

Serialize For Saves: When saving, the current instance of the game can be serialized (Java term, don't know the .NET name for it, however it may very well be a universial term). And when loaded deserialized. This may make the save games smaller. I can't say for sure, since I currently don't know exactly what AGS saves currently.

I probably forgot a few things, but from the notes I had these are the ones I can remember, and the fact that I have to leave for work, so I was rushed in typing all this up, so I may have missed a detail or two. Now don't get me wrong. I'm not saying that these changes should be done by yesterday. But it's something I'd like CJ to consider for AGS 3.0.
#84
Yes, music... loud, and annoying

AND WHO KEEPS WHISTLING???!
#86
probably the easiest way, would be to put it in the game rep_ex or rep_ex_always to check what view the character is in and change the speech view accordingly. Since it is checked every game loop it should be fast enough that you won't have those problems.
#87
General Discussion / Re: Blood donors?
Sun 21/01/2007 02:30:51
I used to give blood,then I couldn't for a number of years (including now)

1 Year because of a new tattoo
3 years because of a deployment to Kosovo
1 Year because of another tattoo
3 Years because of a deployment to Iraq
1 Year because of ANOTHER tattoo

So I've pretty much given up on the thought of ever giving blood again, even with my next giving blood window is open (2009) I'll probably end up getting another tattoo by then
#88
Or why not just create yourself a region and if the character is on that region set a variable, when they walk off unset the variable

Player Walks off region
isOnRegion = true;

Player Walks off region
isOnRegion = false;


Then in the interaction

if (isOnRegion) {
//I'm close enough to see stuff code.
}
else {
// I'm not close enough to see stuff code.
}
#89
I don't see why
Code: ags

player.ChangeRoom(Random(5) + 1); //Changes room to a random room between 1 and 6


wouldn't work.

However if you want it to go to specific X Y coords then you will have to do something like

Code: ags

int rndRoom = Random(5) + 1;
int playX;
int playY;

if (rndRoom == 1) {
    playX = newXValue;
    playY = newYValue;
}
else if

..........

}

player.ChangeRoom(rndRoom, playX, playY);
#90
ok fine I'll do its

For your consideration:

Skytower Rescue Demo

Best Dialogue Writing (Really, it's good, and funny too!)
Best Puzzles (Pun based buzzles FTW!)
Best Player Character (c'mon he's just cool)
Best Non-Player Character (any of them really, but Flame n00b the most)
Best Animation (bother the horse too much before feeding him)
Best Programming (sure why not, I did some nifty technical stuff that you can't see)
Best Demo (Well it is a demo)
The P3N1S Award (Worst AGS Game) (Because it very well may be)
#91
General Discussion / Re: Saddam Hussein
Fri 05/01/2007 02:37:29
Just to follow up on your post  Ikari...

The thing is, every one of us in the US military signed a contract knowing that exact fact, that if we are ordered into war, we will go, regardless of our personal feelings on the matter. So even if we don't agree with the reasoning, we do agree to follow what the government says. It's a volunteer army, everyone in the US military chose to be there.

So if a soldier complains about not agreeing with the war and therefore they shouldn't have to go, I have a simple answer.

You never should have signed up.

I'm sure there are millions that are against it, just like there are millions for it, after all, estimated 26,783,383 people in the country in 2006 (source: 2006 estimate/United States Census International Programs) it's easy to have millions on both sides of the issue.
#92
General Discussion / Re: Saddam Hussein
Thu 04/01/2007 23:13:39
I really tried to avoid this thread, I really really did.

First off, the US military isn't a bunch of pawns. We as soldiers have the right to refuse any unlawful order given to us. Ã, What does this mean, it means that if given the order to fire on unarmed civilians, the individual soldier can refuse to do so, and do so without punitive action against them. However this only applies to unlawful orders.

We are not mindless drones that follow orders without any moral compass to guide us. We are all individuals, we are all granted certain rights as individuals.


Next, I was there, I know what was going down on the ground. If you just watch the news and things like that, sure you will have a biased opinion of what is happening there. After all, the news is a business, the business of information, it just so happens that people are more interested in the bad than the good, therefore the bad news wins out.

Things the news doesn't show, and the things I know are happening, because I've taken part in them:

Building and rebuilding of infrastructure (I took part in a school, however, powerstations, bridges and others have been rebuilt).
Taking food and clothing into local villiages and distributed among the villiagers there.
Hiring Iraqis to work on the bases, paying them VERY good money compared to the national average, I've seen those we hired go from having not much more than the clothes on their back, to having new clothes, and enough money to support multiple wives (technically, I can only truely vouch for the clothing, they just like to tell us when they get married, and how many wives they have).
Long conversations with Iraqi civilians, ones that wish the insurgency would end, they like the fact that Saddam isn't threatening them anymore, but as Haki (our translator) once said "[The insurgents] are so stupid. They keep saying America go home, as they fire their guns at them. They don't realize that if they just stop shooting and let the government be created, you will go home."
Soldiers avoiding contact in populated areas, to the point of taking casulties themselves, unless you can see, identify, and verify it is a legitimate target, you don't fire.

this is really just the tip of the iceberg...

Now, for those that have never been in a combat situation I would like to tell you a few things. First off, it's chaos, when the bullets are flying around you, the human animal natually goes into fight or flight mode, only tons of training helps keep the flight mode from taking over and causing panic... But it is highly stressful, and many things are happening at once. Because of these two factors, mistakes happen. If an unarmed civilian pops their head up in a firefight, there is a high chance they will be shot, especially in the heat of battle. They aren't intentional, but when 17 people are poping up firing a weapon at you and it's your life on the line, you can't always have the luxury of the time needed to verify that a target is indeed legitimate. It's the nature of things.


Bottom line, the average Iraqi isn't an extremist, they are just people that want to get up, go to work, make some money, and go home to their families, most that I talked to DO want a democratic government, or at least, not a dictatorship. They want our help, and the government, which the Iraqi people elected, wants us there, because they know without our presence, they are sitting ducks for a coup, an insurgant uprising, or even the possibility of an invasion.

I honestly believe we are doing more good there than harm, because without us there, that coutry would be in worse chaos than it already is.


So, all in all, since I am an Iraqi War veteran, let me say this. I don't believe we were intentionally lied to, I believe that the intel community looked at what evidence they had, and then presented that evidence to the Congress and Bush. Congress decided to allow Bush to declare war believing that Saddam, with access to these sorts of weapons, and the current terrorist climate, could easily sell these arms to these groups. Negotiations with Saddam have failed over and over again, so violent politics was used. Even though there were plenty of mobile weapons vans found, no actual WMD's were discovered. But here is the thing, because of the stability in the regon is vital to the US because of oil, it is in the best interest of the country for us to continue to be there, to stabilize the region. I believe we did a good thing by getting Saddam out of power, I believe we are continuing doing a good thing by training Iraqi soldiers the disipline and training needed to be an army, I believe we are doing good things by helping the country rebuild.

To be honest, this is just what I think, formed by my experiences in that country. Is it possible that Bush orchastrated the whole thing including the world trade center... Sure, he could have, he could also secret run around the white house in the middle of the night wearing his wife's underwear. But nobody really knows for sure (except maybe his wife), and to say that "He knew exactly what he was doing when he invaded," is pure speculation, and shouldn't be stated as fact.

So anyway there it is. Say what you will, as I said, I've been avoiding posting in this topic for quite some time, but I just had to speak up.
#93
Hints & Tips / Re: Skytower Rescue
Mon 01/01/2007 22:42:07
Spoiler
Did you use the handle to crank the bucket up the well?
[close]

Apologies for being gone... You know familiy and stuff for the holidays.
#94
AGS Games in Production / Re: Skytower Rescue
Mon 11/12/2006 17:49:07
Ok... I put up the final demo... I fixed the walking death problem, and increased the upstairs and downstairs hotspots to make them a bit more obvious on how to move upstairs and downstairs inside Alynn's house. I've also done some art upgrades on a few things, and added a bit of code here and there...

Anyway this seems to have fixed anything and everything anyone has found so far, so anyway, there it is, your update...

As far as the further chapters, things at school are winding down for the holidays, so I should have more time to work on the game. However, this year I'll get to see my son again (who I haven't seen in 2 years) so I will most likely be spending time with him than working on my game...

Backgrounds are the slowest part of my development cycle, so once I get all those designed and drawn things will start moving much quicking on the second chapter, and then will slow down again for the 3rd...

Anyway I hope everyone that has played enjoys the game.

And for those that thing why should we play a game based on some forum we've never heard of... Honestly, knowledge of the website isn't needed, there are no inside jokes, it just so happens the skytower can be visioned as a real place, and it seemed to make sense with the context of the story, so don't let the fact that its from another website throw you off :).

Thanks.
#95
Hints & Tips / Re: Skytower Rescue
Thu 07/12/2006 17:13:48
Soft Hint
Spoiler
It only takes 17 button presses, that hint is given during the intro
[close]
And for the complete answer
Spoiler
1,5,20,25,1,3,5,7,9,11,13,15, 17, 19, 21, 23, 25

Numbers are from left to right, top to bottom.
[close]
#96
Chicky, it's too bad that I will be stuck in the states this Christmas, (if you didn't know I'm a US soldier stationed in the UK)but I tell you what, it would probably be cheaper for me to get it on post and send it the royal mail, so keep me in mind for next year.
#97
Auto numbering based on the highest number in the folder the sprite is being imported into.

For instance, all my gui sprites are numbered from 1000-1999 I have all my gui sprites in their own folder. Currently any sprites imported is given the lowest number available. With this change it will look at the current folder and auto number the sprite the next highest number available in the folder. So if the largest sprite imported is 1324, the next sprite to be imported into that folder is 1325, or allow for giving the sprite a number at import time. In other words, 2 radio buttons, one for auto numbering (the default, or how it works now) or another radio button and a text box so you can tell the editor what sprite number the imported sprite should be.

The most difficult part of this type of implimentation, as far as I can see, it how to make sure that sprite number isn't already in use, which could be checked using the already existing code that checks if the sprite already exists when you manually change sprite numbers.
#98
Hints & Tips / Re: Skytower Rescue
Wed 06/12/2006 09:46:58
It depends on what upstairs you mean...

But yes, in the house you can, there is a hotspot at the top of the stairs, click walk on it. Just the opposite to go back down.
#99
Quote from: BaRoN on Mon 04/12/2006 18:25:38
He he......yeah. It's from back in my treeplanting days -I had this crewboss named Charlie and he called us Charlie's Foxtrots, mostly for his own personal amusement. It was only afterwards that I discovered the military meaning of Charlie Foxtrot.... Of course, it's also a play on another military term, Roger Wilco.

EDIT: For anyone wondering wtf we're talking about see this

Technically speaking we don't use Roger Wilco, as it's redundant. Saying ROGER means you understand, which in turn means you will comply. WILCO means WILl COmply, which in turn means that you understood.

So Roger works, and Wilco works, but never Roger Wilco. Similar with over and out, which is paradoxal, as over means I'm done speaking, it's your turn to talk, and out which means I'm done speaking, and don't want a reply.

Sorry for the OT.
#100
I'm just curious if the Charlie Foxtrot has anything to do with the US Army acronym Charlie Foxtrot...
SMF spam blocked by CleanTalk