Show Posts

You can view here all posts made by this member. Note that you can only see posts made in areas to which you currently have access.

Messages - Technocrat

Pages: [1] 2 3 ... 33
I've had a couple of months of fiddling with Adventure Creator, and I have to say it's quite a good entry into Unity. Plus, it finally gives me something to do with all of those 3D models I've got!

It still does the 2D things (not as intuitively as AGS though, I must say), but the big draw for me is being able to get things like Technobabylon working on Android. And the 3D.

I shall see you all there! Since I now actually live in London, maybe I should consider being hospitable, or something.

So if I had to pick one serious criticism it'd be this:
Spoiler: ShowHide
The game lets you side with Nina but not with Galatea despite Galatea's idea sounding kind of much more reasonable and generally arguably pretty good, the sacrifices aside. And since those had already been irreversibly made, there was no reason not to genuinely consider her option. Even if it still required sacrificing Latha, it could be a decision she could possibly make herself. But that's just how I feel anyway, I still respect the author's judgment of what the characters would be willing to do in a given situation.

Spoiler: ShowHide
I had originally considered allowing the player to go along with Galatea's plan. The problem with this, I shortly realised, is that this would mean Regis would be condoning not only the murders of all of the Mindjacker's victims, but also one of his daughters. A lot of games have an "evil" ending, but I don't personally care for "evil for evil's sake" in terms of characters, and it didn't seem to reflect how I thought Regis would have handled the situation.

Gave it a whirl last night, loving it so far.  Also fun to hear my voice on one of the answerphone messages - that was a great idea!  (Have to ask - sounded like the Knight of the door's defensive system was probably voiced by you James, was it or was it someone else?)

The only character I played was myself in the commentary. From the Noo Yawkers, we managed to get some excellent British accents though!

I'm glad it's been getting a positive response so far! Looks like I'd better get on to making a sequel. :-D

A jobless agoraphobe, addicted to the man-made worlds of a distant descendant of the internet, has become targeted for assassination by forces beyond her understanding. With nobody she could really call an enemy or a friend, she must face the dangers of "meatspace", and survive a conspiracy that has invisibly ruled her entire life.

An agent of the city's all-seeing secret police finds himself blackmailed with the lives of the unborn children of his long-dead wife. Pushed to the limits by his deceit and his past, how far is he willing to go to save his legacy?

Follow their lives as a string of catastrophes threatens not only themselves, but everything they think they know about the city!

Buy now at Wadjet Eye!


Based upon several of Technocrat Games' early projects, Technobabylon is a science-fiction mystery, inspired by the classics of speculative literature.  Both a remake of the original three parts released in 2010/2011, and a continuation of the story over eight further chapters, the art talents of Ben Chandler (ThreeOhFour) and Ivan Ulyanov (Ilyich) illustrate a world coming to terms with cyberpunk lifestyles redefining what it means to be human. Nathan Pinard, audio artist for Gemini Rue, lends his musical talent to the project for a suitably atmospheric score.

The completed project will be commercial, and we have a delightful arrangement with Dave Gilbert and Wadjet Eye!

Follow us for updates on the project, or little bits of extra background about the world of Technobabylon:
 - Development Blog
 - Twitter: @technocratgames


AGS Games in Production / Re: Technobabylon
« on: 30 Apr 2015, 00:02 »

Preorders now open at Wadjet Eye!

Three weeks to go...gotta keep working...

Aahh, perfect - that's sorted it out. Many thanks!

So, as you might have guessed, I'm engineering a floating label to follow the cursor around. To prevent the text running off the edge of the screen, I started to cobble up this script:

Code: Adventure Game Studio
  1.     gHovertext.X=mouse.x-600;
  2.     String lblTxt = LabelHoverText.Text;
  3.     int TxWidth = lblTxt.Length*10;
  5.     if(gHovertext.X<(lblTxt.Length*10)-600)gHovertext.X=-600+TxWidth;
  8.     gHovertext.Y=mouse.y-20;
  9., the plan is that, as the length of the text in the label gets longer, the GUI's x is pushed over to the right by ten pixels per letter.

HOWEVER, I noticed that every single time, it was coming up as 13 characters long, no matter the actual length of the text. This is when I realised that it was going by @OVERHOTSPOT@, which has 13 characters!

Is there some way to get the text produced by this (or the length of the string, at least)?


Wow, this solution has been extremely successful so far! I moved one topic from one dialogue (granted, a big one) into its own script, and the game's compiling properly!

If we didn't only have a month before release, I'd probably go for 3.4, but this is working brilliantly for the moment! Many thanks!

Well you still need to keep the function in the global script. But from that function, call your module's function.

There would be a way of getting rid of the global script's interaction functions altogether by intercepting the clicks in your module's repeatedly_execute, but that's overkill if you're currently just working around a compiler limitation.

It is a most frustrating limitation. Adding one more sound effect will stop the game working!

Based on what you've said, it might be more sensible for me to take the functions that are particularly silly-complicated, and move them into another module, rather than just saying, blanket, "all inventory functions".

Hello! Lately I've been having issues compiling the game (dialog table overflow, but that's for another topic), and one of the proposed solutions is to split the globalscript up across other modules. This aspect of it is what I'd like some help with, if that's alright!

So, if I decide to move all of the functions relating to the inventory to their own module (lookats, interacts, etc). I have:
- Created a new module, InvFuncs
- Find function iHand_LookAt
- Cut function from Globalscript, paste it into InvFuncs

Aaaaannnd, that's where I'm stuck. My knowledge of the way modules interact with each other is limited, and based mostly on cargo-cult copying of what others have done before!
From what I understand, the item now no longer knows how/where to find this function anymore. So, if I try to "Look at" the hand, nothing will happen in-game. How can I get the module to communicate with the things that would normally happen in globalscript?

With sprites in the editor, I can choose to "replace sprite from source", refreshing the in-game sprite with the contents of the .png from which it came.

With audio, I can see that it remembers where the sound file came from originally (Sourcefilename), but it appears to me that in order to change the sound in-game, I'll need to delete the existing sound from the editor, then re-import it. Is this correct, or is there a way to "replace audio from source" that I'm missing?

Ah thank you! I feel educated now.

I'm sure I can probably keep pruning until the next public release.

Lately, I've been getting a technical issue with compiling my current project. The compilation process won't succeed, and presents me with the error:

__DialogScripts.asc: symbol table overflow - too many symbols defined

Once I delete a few scripts, GUIs and functions, it will compile again. I've found only two other references to an issue like this on the forums, and from what I can tell it seems to be related to just how darned big the game is getting; the globalscript is over 12000 lines long now, after all.

I'd like to know if there's a more long-term solution to this issue, as I'm running out of things that can be pruned to allow it to compile. Would it help to move some functions to another script? Will things like GUI buttons work if they're not in the globalscript? Where is this dialogscripts.asc, and is there something I can do to enlarge this "symbol table"?

Indeed, I'm using 3.3.2.

Managed to get it working - Turns out that the "transparency" value in the function wasn't being helpful; 0 would make it opaque, and anything higher made it completely invisible. So, I took the other approach, and imported the sprite with its own alpha-transparency. Now, it works perfectly!

Thank you for your help!

The game is definitely 32-bit, and as far as I know, the sprite's been imported as a 32-bit one. I've not seen any means to import them any other ways?

I'm fairly terrible with drawing surfaces, but as far as I can tell, this is the script that creates which the background is drawn. Should I be using a dynamic sprite separately?

Code: Adventure Game Studio
  1. function dialog_options_get_dimensions(DialogOptionsRenderingInfo *info)
  2. {
  3.   // Create a 400x120 dialog options area at (0,66)
  4.   info.X = 0;
  5.   info.Y = 66;
  6.   info.Width = 640;
  7.   info.Height = 120;
  8.   // Enable alpha channel for the drawing surface
  9.   info.HasAlphaChannel = true;
  11. }

Hello! I've been attempting to engineer a customised dialogue-selection system using instructions from the manual, and am about half-way to succeeding. It will create the GUI in the right place on the screen.

Code: Adventure Game Studio
  1. function dialog_options_render(DialogOptionsRenderingInfo *info)
  2. {
  3.   // Clear the area black
  4.   //info.Surface.Clear(32);
  5.   int i = 1,  ypos = 0;
  6.   // Render all the options that are enabled
  7.   while (i <= info.DialogToRender.OptionCount)
  8.   {
  9.     if (info.DialogToRender.GetOptionState(i) == eOptionOn)
  10.     {
  11.       if (info.ActiveOptionID == i) info.Surface.DrawingColor = 46911;
  12.       else info.Surface.DrawingColor = 782;
  13.       info.Surface.DrawStringWrapped(5, ypos, info.Width - 10,
  14.                          eFontFont0, eAlignLeft, info.DialogToRender.GetOptionText(i));
  15.       ypos += GetTextHeight(info.DialogToRender.GetOptionText(i), eFontFont0, info.Width - 10);
  16.     }
  17.     i++;
  18.   }
  19. }

I want to make the blackness transparent. In order to accomplish this, I've created a sprite to use as the background for it, but when I change the script to use it, nothing appears.

Code: Adventure Game Studio
  1. function dialog_options_render(DialogOptionsRenderingInfo *info)
  2. {
  3.   info.Surface.Clear(COLOR_TRANSPARENT);
  4.   info.Surface.DrawImage(0, 66, 115, 15, 640, 120);
  5.   int i = 1,  ypos = 0;
  6.   // Render all the options that are enabled
  7.   while (i <= info.DialogToRender.OptionCount)
  8.   {
  9.     if (info.DialogToRender.GetOptionState(i) == eOptionOn)
  10.     {
  11.       if (info.ActiveOptionID == i) info.Surface.DrawingColor = 46911;
  12.       else info.Surface.DrawingColor = 782;
  13.       info.Surface.DrawStringWrapped(5, ypos, info.Width - 10,
  14.                          eFontFont0, eAlignLeft, info.DialogToRender.GetOptionText(i));
  15.       ypos += GetTextHeight(info.DialogToRender.GetOptionText(i), eFontFont0, info.Width - 10);
  16.     }
  17.     i++;
  18.   }
  19. }

The effect *should*, as far as I can tell, create a transparent version of that black bar. I've tried using other sprites as well, but nothing appears on the screen. Is there something I'm missing? Alternatively, is there a means by which to make the black background drawn on the surface partially transparent?

Many thanks!

AGS Games in Production / Re: Star Commander - Remake
« on: 27 Jan 2015, 21:28 »
Long live 3D modelling!

AGS Games in Production / Re: Technobabylon
« on: 12 Jan 2015, 20:20 »
Great trailer! Does that mean that you guys have also settled on an official release date?

Not yet, I'm afraid. Still just floating around with "Spring"!

So... much... neon...

It wouldn't be cyberpunk without neon, would it? That's, like, the definition of it.

Pages: [1] 2 3 ... 33