Organizing\designing a mid-long AGS project: tips, suggestions, dos and dont's?

Started by LostTrainDude, Tue 31/05/2016 11:26:36

Previous topic - Next topic

LostTrainDude

Up until now I've always worked on small projects (both using AGS and other engines, but I'll try to stick with AGS here). The plan is to push the scope at least a little further, this time.

Plenty of AGSers have worked on relatively long games and I'm really curious to know what they suggest doing when working on a large project.

Being a not-so-expert programmer helps me to get things done but I often fail in motivation after I have to break the "flow" - for whatever reason - and get back to it afterwards. I think I could definitely use some tips on how to keep things tidy and easy to control and improve. Anybody can join this and\or ask for more, but for starters I'll ask some questions myself.

How do you design the puzzle structure (something I've been trying to study for a while, now) of your games?

Because of the kind of small projects I've worked on (mostly jam games) and also, I guess, because of the "scripted nature" of adventure games, I usually end up designing just an outline and then I "go with the flow". In other words: I know how things start, somehow know how things will end, but often I have little-to-no clue about what will happen in the middle. I found out that Jonathan Blow has a similar approach, so I felt less "stupid". Of course, this may work in his games' own contexts, not necessarily in everyone else's. EDIT: To me this applies when I create a room (or a set of rooms) with X objects in it and then ask myself what could be an interesting way to give those objects an actual purpose.

How do you organize your AGS projects?

The obvious downside of this approach is that I lose myself in countless lines. For instance: do you create specific script files for each cutscene then import it in the GlobalScript? Do you do the same for a group of Inventory Items or for each Character?

Even though I use the fabulous Dialog Designer by AJA, I also get lost in dialog branches quite a lot, which is ironic since I always enjoy trying to make realistic and interesting dialogs. Switching options off and on again, changing bool variables (e.g. didXaskYaboutZ), moving characters on screen to create a more "dramatic effect", etc. becomes difficult to test the more you get into it.


Thanks in advance to all those who will join this conversation, I hope that this will help me as well as others :D
"We do not stop playing because we grow old, we grow old because we stop playing."

NickyNyce

I wouldn't say do this yourself, but for me, I like to create BG's when I can't think of puzzles. I always keep myself busy doing something so there is no time lost. Usually when I string a bunch of BG's together, the puzzles seem to jump off the screen. I find it very hard to make puzzles if I don't see the rooms in front of me.

Playing other people's games can be a great inspiration while making your own game too. You might find ideas spread about in people games that relate to what you're currently making.

I like to fix and add dialog at the very end of my games. Trying to come up with the perfect lines to say in a game can waste tons of time when you can be creating other things. I noticed that when my games are finished, it's easier to go back and tighten up all the dialog so things make sense. This is a big help with character development. Because at this point, you can see most of the game in front you, and you'll know how fast to push the story you are trying to tell if you can see the game from start to finish.

LostTrainDude

Thanks for your answers Nicky :D

Quote from: NickyNyce on Tue 31/05/2016 12:46:33I find it very hard to make puzzles if I don't see the rooms in front of me.
This is something I can relate to as well. When I'm out of inspiration on a brand new idea I usually draw a bunch of stuff (using colors that that idea inspire me) until I have an epiphany :D

Quote from: NickyNyce on Tue 31/05/2016 12:46:33
Playing other people's games can be a great inspiration while making your own game too. You might find ideas spread about in people games that relate to what you're currently making.
Yes I'm very familiar with getting inspired by other games (especially those I like, but also those I don't), what I'm "sad" about is that I can't tell what's behind the scenes, even though in some cases you can somewhat figure out a certain design direction.

Quote from: NickyNyce on Tue 31/05/2016 12:46:33
I like to fix and add dialog at the very end of my games. Trying to come up with the perfect lines to say in a game can waste tons of time when you can be creating other things. I noticed that when my games are finished, it's easier to go back and tighten up all the dialog so things make sense. This is a big help with character development. Because at this point, you can see most of the game in front you, and you'll know how fast to push the story you are trying to tell if you can see the game from start to finish.
This is interesting. When I create dialog I usually don't draft - also because of the problem of keeping myself inspired by creating things - so coming back after I finished to improve the characters' development is something I've never thought about, mostly because I want those characters "developed" as soon as possible.




I have to say, though, that inspiration is not being a problem for me, lately. Organization is.

When I talk about dialog, I actually think about "conversations". Something more interactive than just question->answer.
For instance, I remember spending a lot of time when developing a specific conversation in A Landlord's Dream (light spoilers ahead).

Spoiler

Code: ags
@7  // The Airswayer
Ego: But why should I be The Airswayer?
Ego: I don't even know what it is!
Hari: Still, he seemed pretty sure about that.
Hari: Didn't you say you were a musician?
Ego: Yes, I did.
Hari: And you do agree that sound is a vibration that propagates through air, right?
Ego: ...
Ego: Yes.
  if (this.HasOptionBeenChosen(8)) {
Ego: Ok, fair enough.
  } else {
Ego: Wow, that's... Quite a way to define a musician...
Hari: It's not far from the truth, though.
Ego: I guess not.
  }
Hari: So hello, Airswayer!
  if (this.HasOptionBeenChosen(8)) {
option-on 9
  }
option-off-forever 7
return



@8  // The Keeper
Ego: And why should you be The Keeper?
Hari: Actually it's your idea that I am The Keeper, whatever it is.
Hari: I was not even there!
Ego: He said that The Keeper gave him the link that chased away the burning lights.
  if (this.HasOptionBeenChosen(7)) {
Ego: Now, do you agree that you used a cable to link my phone to his implant, right?
Hari: ...
Hari: Yes, fair enough.
Hari: What a twisted way to throw me into this!
  } else {
Ego: And you do agree that you used a cable to link my phone to his implant, right?
Hari: Are you telling me that this cable is "the link" he was talking about?
Ego: Well, maybe.
Hari: What a twisted way to throw me into this!
  }
  if (this.HasOptionBeenChosen(7)) {
option-on 9
  }
option-off-forever 8
return


In this conversation the two characters, Abel and Hari, try to explain themselves why are they being called respectively The Airswayer and The Keeper. Whenever i use this.HasOptionBeenChosen() is because, depending on which dialog option has been chosen, one of the two characters is going to "answer in kind" (check line 11 - "Ok, fair enough" and - line 34 - "Yes, fair anough.").

Also, in an attempt to make this conversation more realistic, I ended up using plenty of option-on\option-off\option-off-forever. So the structure of this conversation is something like this (don't mind the poor design of the branches (roll)):



While the end result is interesting and relatively simple, I remember spending a lot of time to make it work properly. Most of all, after that I didn't really come out with a solution for future conversations like this one.
[close]
"We do not stop playing because we grow old, we grow old because we stop playing."

SMF spam blocked by CleanTalk