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 - Monsieur OUXX

#521
Quote from: abstauber on Fri 27/07/2018 14:35:25
All variables inside the CDG struct are accessible from everywhere, so you can modify the dialog GUI from every script below the dialog script.

Yes, but I don't want to change the global variables anywhere in the code. I want to pass the global variables to that module only once, and then change the variables defined in that module, only in my one custom script that initializes that module.
Moreover, that's only 1/4 of what my changes do :
Spoiler

1) they make the things accessible from outside (your answer addresses this, and I accept it)
2) they group the settings by category
3) they make them reflexive (accessible by index or name in the array of settings, allowing to tie them to an in-game console system)
4) they clarify the initialization sequence and keep the object in a consistent state (by letting you change a few settings and then calling the corresponding function in the module to apply them, instead of changing some variables values directly and then not being sure of what should be done for the change to be taken in account, or if something was broken).
[close]

More generally, I'd say that you guys have no mercy ;-D for people who build huge huge systems around your modules, because you don't perceive how much the smallest hesitations on the scripter's side ends adding up to lots of time wasted ("wait -- Did I change this setting myself or was it always like that? Should this module come before or after that other module? Damn there's an update. Is this new value meant to be overwritten by the custom value I used 2 years ago? I don't remember." etc.)
So anyways, at this stage I've explained why I went for those changes, that was my attempt at making your module more sealed from the rest of the code. So it's only my ego that keeps talking, there's no point in trying to convince you.
Thanks for taking the time of answering! See you around guys.
#522
Yes, the core reason was to expose stuff. The thing in abstauber's module that's most likely to be changed immediately after importing are the sprites and other settings. Thzrefore I exposed that part.
Ultimately that allows to set up your game around the module without having to modify the module's code (that would not be a problem with other languages, but with AGS it's a nightmare to have to re-import and re-modify an imported third-party module every time it's modified by its creator).

Quote from: abstauber on Fri 27/07/2018 13:27:46
for every other settings group you need to create a new array.
Well you need to do that only if you want to change the default settings. Otherwise that's zero extra code.
#523
Quote from: ManicMatt on Wed 25/07/2018 20:14:54
That sounds like a nightmare
I insist on the fact that with that strategy there will be a little bit of text description. You don't even see the main character walking around. You play the game as a text adventure. the descriptive text will be very short, but stimulate your imagination so that you (temporarily) don't need a drawing.

Quote from: Danvzare on Thu 26/07/2018 11:29:25
What you need to do is make some rough concept art and use that instead.
That's what everyone does.
That's step 2. We're not "skipping" that bit, and ultimately we do "like everyone else". But we push the industrial process further, by creating an extra step : the preliminary sketch of the preliminary sketch. ;)
I cannot stress enough that even a simple black and white wireframe is still a bottleneck. 100 wireframes take days of work. Plus it requires the "puzzle designer", "storywriter" and "director" to be the same person because the information is too raw to be shared efficiently at that point.
If you do sketches, it kind of settles your mind on the room's size and camera angle. Then it's harder to let go of what you've done (well-known cognitive issue). Plus, they distract you from the main task (story writing).  Not to mention, that's assuming that your GUI system works. We have a complex one (two available GUI systems + tap interface for mobiles) which makes it constantly broken.

Bottlenecks are our big problem. There's always a task waiting on another task, blocking contributors. We want to go industrial and push fast prototyping to the extreme.
The fact that we are a project based on contributors causes two unforeseen issues : 1) Free contributors don't wait. They have this sudden rush of creative energy, and if you wait too long they give up in the middle of the task. 2) Contributors hate to work on something if they're not sure it will be kept in the game. That's the ego kicking in, I don't blame them. As soon as they sense an hesitation on your end, they just step back 3) It's very hard to bring a new contributor up to speed, because the mass of information about the game (plot, puzzles, concepts, tools) is HUGE to absorb, and scattered all over the internal team forums. So, the less they need to start toying around, the better for them (and for their "trainer").

That said, the Sketchbook suggestion is welcomed open-heartedly. I usually use Paint.Net myself (set of black straight lines on top of a white background) + Sketchup when the scene's perspective is too risky.
#524
I think that I'll proceed as follows :


  • do a flow chart for the very general storyline. Only to have an indicator of the number of places and the story arcs where stuff happens in parallel or sequentially. Have this flowchart validated by the project's core team. There has always been a flowchart, but it was too detailed. It should be so abstract that the names of the places don't even matter.
  • Implement every room with just a black background (zero drawing) and the objects it contains (default blue cup sprite)
  • Create some basic console gui where the room is described as a very short text (temporarily skips the need for descriptive hotspots too) and you can interact with the objects through command line ("pick up key"). I'll implement the basic response to the actions, using the same script as the final game (if(...) { player.GiveItem(iKey); } ). This way the scripting can actually start. This interface also tells you the exits and you can take them.
  • This way you can play the entire game textually and have testers play it, while graphic designers do their thing in parallel. That allows you to measure how much time the players spent on each section, how much of the story they understand (or don't actually need to understand), etc.

Ultimately, the goal is to see if the game is well balanced.
But specifically, substituting the graphics with text, you can :
- See if the player is confused by too many locations or characters
- Predict and prototype a lot of things : number of inventory items, etc.
- Prototype different paths very quickly (fists, wit, team) and see if you have inconsistencies and softlocks. You have a better view of the many global variables needed to control the state machine of the game.
- (important for our project) NO BOTTLENECK :
   # the scripters are not blocked waiting for any piece of graphics AND same thing for the dialogs, which might be another big thing that might require a ton of rework separately.
   # graphic designers can start sketching the backgrounds roughly





#525
Quote from: Snarky on Wed 25/07/2018 12:08:42
allowing stuff to have happened off-screen.

Excellent point.

@Danvzare : the reason why it's hard is because in FoA the "parallel" areas can sometimes be tiny (Azores = only one screen!!!) while feeling large.

It's hard to draw a room:

  • where stuff happens, (unlike the first Iceland room that's only meant to show the landscape)
  • where that stuff is at the same time non-final enough that you can leave any time (Costa: "bring me an Atlantean artifact and I'll reveal stuff) but later so crucial that it marks the literal end of a chapter (Indy: "Costa just revealed that the Lost Dialog is in Barnett! Off we go for that new McGuffin!")
  • that is "complete" (gives the player an idea of the landscape set (moutains+sea+town), how the character arrived (plane in the distance), what vehicle he used (plane then car), and also depicts the set where he'll interact with the NPC (Costa's front door and small yard)) --> The Azores background shows all of that in one room and it doesn't even look artificial.
#526
EDIT : This reply was written at the same time as CaptainD's. Great tool suggestion, thanks.

I realize that I phrased my question poorly, and I made it sound like that indeed.
While writing it I drifted away from what I originally wanted to ask:

What's your take on a methodic approach to writing a game? Tools? Rules? Anything you have, apart from "I usually go for a stroll and ideas come by themselves".
#527
I'm currently analyzing in-depth what makes Fate of Atlantis so thrilling to play.
It relies on a few things that most wouldn't notice unless they pinned them down meticulously, but are essential.
Spoiler

Non-exhaustive list of technical tricks :
- Immediately starts with exciting credits ("Indiana Jones" written in large letters, fanfare music, Indy enters screen swinging from his whip)
- Immediately starts with a small, dumbed-down adventure (simply left-click on random stuff during intro). It's action-packed because Indy keeps falling (physical, non-point'n'click action) --> after that you can make the game as much of a walking simulator as you want, the player stays under the impression that the character can do offroad physical stuff.
- Immediate mystery (mysterious small statue)
- Physical threat (Kerner points gun + fistfight)
- CHARACTERS GET INTRODUCED : you see a close-up of Indy, Sophia, and Kerner's faces in the first 5 minutes ,and later on you see Ubermann's face)

And that's only the extended intro.
Later on, more stuff is packed in the first 20 minutes :
- Supernatural threat : Sophia's neckclace shines and shows ghost
- Feeling of exploring: Sophia sets the McGuffin for you and sets several places in the world to be explored (even though they're just one-room or two-rooms locations)
[close]

Additionally to that, the "parallel" puzzles are not as parralel as they seem, and yet the player feels like he/she can travel around. The backgrounds or the 3 paths (wits path, fists path and team path) are mostly recycling the same backgrounds very cleverly.

All of that to say : I'm struggling to pack that amount of information and thrill in the first 5 minutes of our game, while keeping it to only a handful of backgrounds, and I'm having trouble "breaking" our current script to make it possible for the player to come and go between places, instead of being stuck in 100% linear "corridors" (they go in, but they can only go out when you're finished with that set of rooms).

I need advice on all that. I'm worried that this community (AGS community) might not have the expertise on these story-development questions in full-length games; there are a few geniuses or pros in the forums who are able to produce such elements by following their intuition/guts/experience, but they're busy with their own games.
Alternatively, I'm sure that some writers or screenwriters forum would be packed with people who understand the issue, but then they would not understand the point-n-click side of it.

Would you have a community to recommend where there would be people focusing primarily on the story writing, but who can understand the point-n-click aspects (parallel puzzles and such)?
I've considered joining communities of text-based adventures (e.g. the community of "Quest" -- the editor for text-based adventure).
Any advice?
#528
I'm so confused right now. Wasn't there a new parameter added recently to DynamicSprite.Draw or .Resize or whatever where you could choose the scaling algorithm? Or am I mixing it up with the new parameter for transparency copy (legacy, additive...)? My bad then.

But anyways, even if imsomnia212 has to write the antialised method himself (which shouldn't be too hard because it doesn't have to be real-time, it can be super slow, just copy some bilinear code from wikipedia), it's only an extra step to the method I described to achieve his goal of antialised saved games screenshots.
#529
Reposting this : http://www.adventuregamestudio.co.uk/wiki/Fonts
The advice provided in previous posts is the right advice :
1) find a font (potentially TTF) that has all the characters (you can filter fonts on that criteria on free fonts sites).
2) convert it to bitmap, using any of the tools in the article. Keep only the relevant 256 characters and put them in the right slots, matching Windows-1252.
3) Import it into AGS, still using any of the methods from the article.
#530
My guts tell me that you made a mistake and uploaded a version of the game that has a bug (in your script), or that the bug was there all the time but you never noticed it before.
Alternatively, it might be because the version hosted on steam has its settings set to 32-bits and you were testing your game in 16-bits or something like that (different graphic settings between your test environment and the package hosted on steam). It would be worth running winsetup.exe and compare the settings. Also, are you running the games on the same computer?

I'm 99% sure Steam has nothing to do with it.
#531
I love that there's tons of rotoscoping <3

EDIT: Frasisco, have you ever considered using the "liquify" tool in Photoshop after scanning your drawings? I found that it helps a great deal fixing my sloppy perspectives in adventure games where they need to be absolutely perfect (in particular, stairs are a pain in the ass). In a click you discretly realign what needs to be realigned without altering the quality of the drawing. It's also very useful for portraits, whenever there is any kind of defect (asymetrical face, eyes with different sizes, mouth too low, etc.)
#532
imsomnia212 : What you can do is apply the anti-aliasing AFTER taking the screenshot.
I'm not detailing, but :
1) locate the place in the module where the screenshot is taken
2) Open the file from disk or start fiddling with the dynamic sprite directly (I haven't checked which of those two scenarios applies here)
2) Resize the sprite using the DynamicSprite and DrawingSurface scaling abilities -- apply the antialiasing at that time.
3) Save the sprite as a file where it should normally have been saved in the first place
#533
+1 for this organization

I would recommend highlighting some subjects that are often overlooked with AGS though :
- Localization
- Talkie games
#534
Quote from: quo_sp on Thu 05/07/2018 22:12:30
Of course I remember you Monsieur OUXX, my work is safe :wink:
By the way, Congratulations for the seven cities of gold, the team is doing a great job, really amazing and the Easy Mirrors Module and Indy Styled Travel Map Module are fantiastic, congratulations again ;)
Many of those modules were made by talented people outside of our team, BUT we're doing good at the moment, progress--wise. However I'm super jealous of your genuine 8-bit pixel art skills. I learnt to draw on computer with Deluxe Paint II so your speed paint video makes me feel nostalgic.
#535
EDIT : as expected it was some ridiculous copy and paste mistake.

Spoiler

Quote from: Crimson Wizard on Wed 04/07/2018 15:41:23
I know this is not what you are asking about, and TBH I am not using that module so that's just a passer-by's opinion, but using arrays with enums instead of distinct variables look so inconvenient...

Yup, but there's something that you don't know because I didn't explain my plan: These arrays can then be manipulated in an abstract manner through Ultravariables (or similar module), and each value can be given a name which can be displayed on screen at any time. More settings can be added without having to duplicate accessors many times. Simply think of it as a poor man's XML settings file, except it's flat (array). Since AGS script is not reflexive, that's my way of manipulating objects members in a weakly-typed manner, and add some dynamically, as you would do in Javascript or Powershell. I'm not going over the top though : I'm only doing it for settings, not for critical, internal values.
[close]
#536
EDIT: as expected it was a ridiculous copy and paste mistake
#537
Is the github repo up to date? 1.6.3 is from June 2018 but the repo shows last changes from 9 months ago.
#538
Right now I'm in a work environment where the firewall blocks the images. And I'm literally dying. DYING. I WANT TO SEE THOSE IMAGES!!#@?%%@#~!!! >:(>:(>:(>:( You think this is a game? You think this is a sick joke?

PS : quo_sp I'm delighted to see you re-appear. Remember those messages I sent you on Facebook about backuping the "Raiders" game files? I was terrified that you would simply disappear from the Internet, taking with you the unfinished game. :)
#539
Issue I had with git:
Spoiler

1) cloned repo locally
2) using Git's local client interface, created a branch called "objectified"
3) Made changes
4) Commited changes (to local)
5) Tried to push changes --> it prompts me for my git credentials --> OK --> then it prompts me for some "git.com" credentials
   --> KO : It says "remote: Permission to dkrey/ags_9verb-template.git denied to jeancallisti. fatal: unable to access 'https://github.com/dkrey/ags_9verb-template.git/';: The requested URL returned error: 403"

Note : 'jeancallisti' is my git account name.
[close]

EDIT: here is how I solved it :
Spoiler



- when I cloned abstauber's remote repo, I wasn't logged into git, I just took the URL as it appeared on the screen.
- because of that, the URL did not contain my username, but instead Abstauber's user name : https://github.com/dkrey/ags_9verb-template.git
- The clone and the first commit went perfect so I didn't even notice, but that url was still stored in .git/config
- I had to edit that file manually with the proper URL : https://github.com/jeancallisti/ags_9verb-template.git
- Now the push went fine and my fork is in my own remote repo.
- Off to the pull request!

https://stackoverflow.com/questions/7438313/pushing-to-git-returning-error-code-403-fatal-http-request-failed

(phew, git is the only software I've ever encountered that's at the same time very straightforward and yet causing neverending confusion and human mistakes)
[close]
#540
QuoteHmm yes, this is not right.

There's definitely a history on this in the forums, even if I can't fond it right now.
SMF spam blocked by CleanTalk