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

Topics - Dusk

#1
Hi!
I'd like to fix a couple things - including the broken download link - in the page of a game I worked on a long time ago (https://www.adventuregamestudio.co.uk/site/games/game/485/).
I'm logged and registered as one of the authors, but if I understood correctly from other messages on the forum, there's a "main" author that is the only one allowed to edit the page, and it looks like it's not me.
Can somebody help me about it? AGA? :)

Thanks,
D.
#2
Hi AGS community!
I miss hanging out here more often :) - someone might remember me for Star Wars:SOTE (yeah, someday we're going to finish that, I promise!).

But today I'm here as client programmer of the Zodiac digital distribution system, that distinguishes from the others for being aimed specifically towards adventure games.

There are already a few commercial AGS games on Zodiac, by Midian Design (Quantumnauts, Odissea, Doc Apocalypse...), and we just added a free one (The Infinity String). So i thought of posting here about it: if anyone is interested in seeing how an AGS game looks in Zodiac, he can try the software by just registering an account and adding "The Infinity String" to its account. There are other free games too, but TIS is the first made with AGS.

We have in our plans integrating scummvm and dosbox (in fact, they are integrated, but there aren't games using them publicly available yet), and my software in written in C++ with QT, so Linux/Mac versions will follow easily when the catalogue widens to those platforms. In fact, I already have succesfully tested a Linux build on my development machine.

So, in which way all this could interest you?

1) someone could be interested in publishing its game as freeware on our platform, like "The Infinity String".

2) someone could be interested in selling its AGS game on our platform, like the Midian Design games

Games can be published either DRM-free or with our custom software protection, that anyway is thought to be user friendly: just one time online activation before the first play, possibility to play offline, no limits on download and installation.

Of course, choosing what can published (free or paid) or not is up to the staff: we need to propose quality games.
But, if you know what I mean, we're not Steam, so lower profile indie adventures could find their place on Zodiac
:)

If you have questions/considerations about the platform, feel free to reply here.
If you want to propose your game, please contact business@zodiac-store.com

Thanks!

D.

ps: here's a screenshot of the client running TIS
http://client.zodiac-store.com/_helpdesk/screenshots/zodiacTis.png

pps: we're open to suggestions and criticism, but please keep in mind that the platform is still young and in beta!
#3
I'm very happy to see the dialog-system related improvements in the recent versions.
I found particularly useful Dialog.DisplayOptions(), and I think I'll try soon the custom rendering functions added in the last beta.

While scripting the logic for a dialog using DisplayOptions, I thought that it would have been nice being able to specify the dialog options in the script too, and not to be forced to use the "Dialog" tab of the editor and its textboxes. If I'm not forgetting anything, it's the last dialog-related thing that you can't do by scripting...

So I was wondering if would it be easy to add a
Code: ags

SetOptionText(int option, String text, optional bool show = true, optional bool say = true)

function, that could solve the issue and help who wants to implements his custom dialog system on top of AGS.
For example, using a single dummy dialog and this function, combined with arrays/structs/Strings, I think that we could implement some nice stuff related to complex dialogues.
#4
Hi, this is the first module I post. I Hope that someone will find it useful. :)
A related question: I got a warnings.log because the dynamic sprites of the shadows cache aren't freed. I know that this isn't a memory leak, because it's a prefixed amount of sprites created once and never cleared.
To avoid the warnings I thought of adding a clear_cache function, but the user should manually call it before quit (AFAIK there's no game_quit handler like game_start, or anything similar).
By the way, I suppose that we can just ignore the warnings and be happy, 'cause the OS will free itself all the game memory when you quit it.
Of course I'm open to suggestions to improve the module :)

Get it here (demo game included, documentation in the script header):
http://www.duskzone.it/works/ags/EpicShadows.zip

From the script header:

What did I change from the original 'Shadow' module by SSH?

The wonderful thing of the original Shadow module was that you just had to
import it and all your characters had cleverly drawn shadows
(with caching, scaling and depending on character dimensions).
By the way it had some major issues, pointed by the author itself:

-   Animated background frames mess it up.
-   Walkbehinds don't work on the shadow.

I managed to solve these issues drawing shadows to a DynamicSprite and
assigning it to a "dummy object".
Walkbehinds and animated backgrounds work (shadows are by default drawn
behind other stuff, the dummy object is set with Baseline 1), but the
drawback is that you have to put an object in every room where
you want shadows to make the module work.

So, if you don't have walkbehinds or animated backgrounds, go for the
original module. :)
If you have them, placing the dummy object in each room is boring, but
less boring and more functional (IMHO) that the other approaches to the
problem (like the one of the dummy shadow character with Follow_Exactly...
if you can have 5 characters in a room).

I did also another minor change: I scaled the shadow respect to the Character.Z.
I needed this with a flying character, to make the shadow gradually disappear
when he starts to float and gradually appear when he approaches the ground.

Another little improvement is the Shadow.SetScale function, to adjust the
dynamically calculated width of the shadow on a per character basis.

Warning: having a room-wide dynamic sprite was SLOW, so I optimized a bit
letting you define the "shadowable area" of a room when you put the
"dummy object".
In short, drag it such that its Y is above the walkable areas: no shadows
will be drawn above it.

This should work in the most common case of the walkable areas in the lower
part of the screen...
if you're coding a SpiderMan adventure and he walks on the ceiling, you might
need to change some lines of code to have better performances :)

The module scans for an object called "ModShadows" when you enter a room.
If he finds it, he creates the sprite and draws the shadows. If he doesn't,
nothing is done.

Letting the user disable shadows to have better performances is reasonable,
maybe from a "game settings" GUI, so you can toggle the feature on/off
with Shadow.SetActive(bool trueFalse). If you call Shadow.SetActive(false),
the "ModShadows" objects will be ignored (and made invisible, of course) and
no shadows will be drawn.

Other features should work exactly as in the original module.

Thankyou SSH!

  Dusk
#5
Hi there people.

During the SOTE Tech Demo beta 1 testing one grave bug emerged, and I'm here to investigate and solve it before the final release.

Basically, a crash occurs:

---------------------------
Illegal exception
---------------------------
An exception 0xC0000005 occured in ACWIN.EXE at EIP = 0x004CA3E4 ;
program pointer is +5, ACI version 2.62.772, gtags (2,2)

This happens IF:
- the game is running in 640x480
- you are in the only scrolling room of the demo
- you stay with an inventory item selected for some seconds somewhere

...the screen starts distorting around the inventory-cursor, like an area of the screen is replicating in loop, and after some seconds the game will CRASH.
If you're quick and you know it, you can release the inventory item (right click in our GUI) before the crash and continue playing, but this isnt's something that can go in a public release.

This is definitely not machine-dependant, because it has been replicated on every system we tried to, and many tester reported it too.

The game is compiled with AGS 2.62 AGS.

Help us Chris Jones, you're our only hope. [cit]

Additionally, we've got a strange segfault running the game on linux,
in two defined points of the game that run correctly under Windows.
I hope EvilTypeGuy can help us in solving this. The segfault message is a not so explicative signal from Allegro.

If you want to see/try the beta to test the bugs, just say it and I'll send you privately a link for downloading the archive.

Thanks in advance from Death Star Games :)
#6
Is AnimateCharacterEx supposed to work with long loops (you know, the "checkbox" ones), when called in "reverse play" mode?

I'm having trouble with it, but maybe its due to other errors.... by the way if I change the function call from AnimateCharacterEx(c,0,0,0,1,0); to AnimateCharacterEx(c,0,0,0,0,0);   
the animation performs, so I'm posting this :)

Bye and thankyou
#7
We checked that to have smooth animations of a character, due to scaling approximations, it's not always sufficient to center sprites on the y axis: you must import views with the same width. So, you have to choose as width the largest one, that usually involves having some views with a quite large transparent area.
I can imagine that implementing pixel perfect detection on scaled sprites is not easy, and probably not many users need it.
But I was thinking: what about providing each view with two properties activation_x/activation_y, better if graphically (as the baselines) that would form a virtual rectangle easy to check for "mouse over" purposes? I suppose that the actual code to check interaction on a scaled sprite uses a rectangle formed by sprite.width*getScalingAt(sprite.x,sprite.y)/100 and sprite.height*getScalingAt(sprite.x,sprite.y)/100.
To mitigate the transparent area detection problem, at this point the sprite.activation_x and sprite.activation_y would substitute sprite.width and sprite.height.

How many stupid things have I written? :)
Bye,
D.
#8
[03/08/2012 - Hunting the Hunter prologue gameplay video on YT]
It's been a long time, isn't it?
Well, just to show that we're still alive and the project is paused but not dead (we've put too much time and energies to just abandon it - we *have* to complete and release it someday), we uploaded on YT a gameplay video: it's the beginning of "Hunting the Hunter".
It's a small part of what we released to Italian beta testers around three years ago.
We hope that you enjoy it!

So, click here to watch the video on YT!

[05/08/2009 - Hunting the Hunter portion given to italian beta testers]

About a year after the last update of this post, I'm here to tell you that the first part of our game has been released to italian beta testers.




It's our first "big" release, after the old tech demo and the prologue (to italian testers) about a year ago.
We are now waiting for feedback and of course we would appreciate any of you AGS guys (able to understand italian, of course) joining the beta testing, so if interested just step here.

If you want, you can support our recently opened facebook page, we'll post some minor news and background material there, at least until we go for a site renewal.

So, SOTE is *alive*, slowly approaching the complete public release.
Trust us: we worked too long and hard to abandon the project, so, someday, the complete, international release will happen. :)

Dusk & Hexence
(yeah, we changed "Death Star Games" to something less fan-boyish... :))

[08/08/2008 - Hunting the Hunter screenshots]
Isn't 08/08/08 a nice date to show you a pair of screenshots from Hunting the Hunter?

Hunting the Hunter screenshot 1
Hunting the Hunter screenshot 2

I hope that you like it as I do! :)
Well, since more three years are passed from the Tech Demo release, just a few words about the state of our project:
first, SOTE is *not* dead as often they ask us. We had many work/studying slow downs in the past years, but we're not gonna let the project die. And in this August we're working passionately to complete the first episode of the full game, that we named "Hunting the Hunter".
While it covers just part of the SOTE storyline, it should feature some hours of gameplay (with a pair of little surprises).

We hope to start the beta testing/translation phase in a few weeks, so if you're interested in helping just step into our forums and let us know.  ;)

I hope to post some other news in the near feature!

Bye,
Dusk & DSgames

[26/05/2005 - Tech Demo 1.1 online]
So, did you like Episode III? We did :)
By the way, a quick update to announce that the Tech Demo 1.1 is online for download... http://dsgames.guerrestellari.net/sotedownload.php

the website hasn't been updated yet because BobaFonts is busy with Episode III stuff for guerrestellari.net ... by the way, the archive in online (a tar.bz2 one, use winrar on windows and "tar xjf sote_adventure_tech_demo_1.1.tar.bz2" on linux).

Who should really download it?
- Linux users, because it contains fixed scripts and the updated engine by EvilTypeGuy, and the game doesn't crash anymore.
- German players,  thanks to Dennis "Hurrican" Pauler translation :)

We're a bit busy with work/university at this time, but work on SOTE (slowly) goes on.
Bye! Thanks for the 6000 and more downloads of the SOTE Tech Demo!

[01/01/2005 - Tech Demo released!]

Finally, the SOTE tech demo download. The site hasn't been updated yet, but the archive is there, ready to be downloaded!

http://dsgames.guerrestellari.net/sotedownload.php

Epic new year from Death Star Games - we hope you enjoy the game! : )

Mods: the tech demo is in practice a complete short-game... can we insert it in the AGS Games page?

[18/12/2004 - Tech Demo beta ready]
Ok people, we (almost) did it. :)
We released a first italian-only beta of the SOTE Tech Demo to a limited number of testers a few days ago, and we plan to upload a new beta as soon as the English translation will be complete. We fixed what we could, but we still have a pair of problems, maybe engine related (we'll ask in the Tech Forum as soon as the beta2 is uploaded).

We won't publish a download link here on the forums because we'd like to have a bugfree public release, I hope you understand us. By the way, if anyone of you wants to be added to the tester mailing list to help us, this is a good moment to ask.

Two updated screen shots for you:
(I remove the old ones to keep the page loading quick.)
Bye ;)

tech demo screenshot 1
tech demo screenshot 2

[03/09/2004 - first announcement]
I'm very happy to finally introduce on the AGS Forums "Star Wars Shadows of the Empire: Graphic Adventure".

We're working on it since April and now we have enough stuff to introduce our work, including about 40 backgrounds and a working multi-character personalized interface that required many hours and many hundred lines of code.
Today we've opened the SOTE:GA website, that I hope you'll give a look, where you can find more info.
I hope we'll release a tech demo soon and a game playable demo around Christmas, but nothing is sure at the moment.
The plot is an expansion to the union of the Shadows of the Empire book/comic book/action videogame, and in our plans it will be a really long game.
In the future (and on the Critics Lounge forum, of course) I'd really appreciate the help of the AGS community regarding any critics, ideas, suggestions about the game and, as the AGS scripter of the project, discussion about improving the code (I'll post some stuff soon, on the Tech Forum). Help with eventual poor english on the website (writing from Italy :)) is also really appreciated. Thankyou :)

Here you are two screenshots, we don't put them on the website because characters and objects you see in it in are temporary/incomplete... and may change completely, but.. better that nothing :)

[old screenshots removed]
#9
Hi all,
I was starting to code a dialog subsystem/extension using globalInts and
dialog_request... I thought that using #define and some tricks I could get a readable and powerful generic system to handle particular dialog situations. The game I'm working on with my team is getting big and we need an easy way to implement complex dialogs...

I explain my idea... I set a bunch of
Code: ags

#define DLG_CONDITION 1 
#define DLG_ACTION 2
#define DLG_WHAT_ROOM 3
// 1,2,3... free globalints
...

to store "parameters"
and others costants like
Code: ags

#define DLG_BEEN_IN_ROOM_CONDITIONAL 1
#define DLG_PLAYERHASGOTOBJECT_CONDITIONAL 2
#define DLG_GOT_OBJECT1 3
#define DLG_ADDPHRASE 4
...


and I insert a generical dialog_request working this way:

Code: ags

function dialog_request(int what) {
  int ok = 0;
  int action = GetGlobalInt(DLG_ACTION);
 //check what condition
 if (what==DLG_BEEN_IN_ROOM_CONDITIONAL) {
	if (HasPlayerBeenInRoom(GetGlobalInt(DLG_WHAT_ROOM))) ok = 1;
 } else if (what==DLG_PLAYERHASGOTOBJECT_CONDITIONAL)
	...
 } else if (what==...) {
	...
 }
 //end conditions
 if  (ok!=1) return; //condition not satisfied, do nothing
 // else check what action is requested and perform it
 if (action==DLG_ADDPHRASE) {
 	...
 } else if (action==DLG_GIVEOBJECT) {
	...
 }
}


The idea was that this way I could have written in the dialog scripts something like

Code: ags

set-globalint DLG_ACTION DLG_ADDPHRASE
set-globalint DLG_WHATPHRASE 12
set-globalint DLG_WHATROOM 14
run-script DLG_BEEN_IN_ROOM_CONDITIONAL


and I think that's not so bad in reading/writing and once written a good set of condition/actions it would be useful (and of course released here :)).

By the way, I just began to try a basic action and immediately got stuck: it seems that in dialog scripts #defines are ignored.

I tried to put #defines in the script header, and also to copy them in the dialog script... no errors, but not working. Replacing with numbers in the dialog scripts works, so I concluded that #defines aren't supported in the dialog scripts. But I hope that I'm wrong... any ideas? :(

Obviously, writing something like
Code: ags

set-globalint 1 4
set-globalint 2 12
set-globalint 4 14
run-script 1


is not really readeable/useful.

As usual, sorry for my terrible english and goodbye! :)

Dusk

#10
I have a set of room properties that define dinamically a graphic overlay that will move parallax-scrolling style...

Code: ags

int overlay,overlayX,overlayY,overlayZ;

function setParallaxObj() {  
  int startx;
  overlay = GetRoomProperty("ParallaxObj");  
  if (overlay>0) {
    overlayX = GetRoomProperty("ParallaxObjX");
    overlayY = GetRoomProperty("ParallaxObjY");
    overlayZ = GetRoomProperty("ParallaxObjZ");    
    startx = overlayX-(GetViewportX()/overlayZ);
    overlay = CreateGraphicOverlay (startx,overlayY, overlay, 1);    
   // MoveOverlay (overlay, startx, overlayY);	
  }  
}
 
function clearParallaxObj() {
  if (overlay>0) RemoveOverlay(overlay);
  overlay = 0;
}

function ParallaxScroll() {
  if(overlay>0) {	  
   MoveOverlay (overlay, overlayX-(GetViewportX()/overlayZ), overlayY);	
  }
}

function on_event(int event, int data) {
  if (event==ENTER_ROOM) { 
       //... other stuff
       setParallaxObj(); 
       //... other stuff
  }
       //... other stuff
}

function repeatedly_execute() {
 //...lots of things
 ParallaxScroll();
}


I hope the code is clear: now, the problem.
If I enter a large room from right, I have a little horrible delay before the overlay goes into the right screen position. I've tried unsuccesfully to debug it... only one idea: does createGraphicOverlay allow me to specify negative coordinates? I obviouvlsy need it because entering from right some overlays are partially offscreen... moveOverlay does the job, but it's too late. I tried to put a moveOverlay immediately after the creation (you see it commented out), but nothing. Where am I wrong? Any known walkaround/suggestion?

Thankyou for reading  ;)
#11
Hello everybody - I hope this question is not too dumb for this forum, because I'm quite new to AGS and maybe there's a simple solution.

I can't find a not-really-dirty way to re-order inventory items. I'm making a personalized inventory window (hope to show you soon) that needs a "filler" item in its "n" first position. So i display mulptiple items multiple times, and that's ok... I "lose" a filler adding new items, and it works... but if I had to lose item and wanna insert a filler in the first inventory position? If I AddInventory(FILLER) it goes to the last position, I need it in the first.
How to specify the position? I've read many docs and found that the inventory is in practice an array where the key is the item number and the value is the amount of that item the player has.
So I tried character[GetPlayerCharacter()].inv[FILLERNUMBER]++ , but the problem remains, the new filler goes in the last position.
So the question is: where does AGS store the inventory items order? I hope it's not an hardcoded thing, maybe a not documented one, or maybe I simply didn't  search enough well.
Any links/suggestion/functions/reference to old post appreciated, help me or I will "backup" the real inventory items somewhere, place a right number of fillers in the inventory and then "restore" the saved "real" items. It should work, but it's REALLY DIRTY... :)

Sorry for poor English, writing from Italy - first written post - great community, great software (thanks CJ)
Bye :)

SMF spam blocked by CleanTalk