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 - artium

#1
Recruitment / Looking for MAGS May Partners
Fri 03/05/2019 22:13:27
UPDATE: Hey, we are now a team of two. Programmer and writer. We have an interesting idea for a game and looking for an artist to join us.

Hi, I am looking for partners for developing a game for May's MAGS.

I was thinking of developing something modest in scale and to focus on quality and polishing:


  • 1 room (1 background)
  • 1-2 characters
  • <5 inventory objects
  • 1 "closeup puzzle" (pool levers, turn valves, decode encryption etc)
  • <10 minutes of game play
  • No voice acting
  • No music or use a public domain asset
  • As basic UI as possible or even use public domain assets

I am not locked on a particular idea. The exact script/theme details could be brainstormed between all the participants.
As I mentioned already, what I do want to get at the end is a really polished product.

What I bring to the table

  • I can't start working before 13/05
  • I can dedicate 15-20 hours a week after that date.
  • I am great with programming can code custom stuff for the project (see my spline and hints modules)
  • I can take responsibility on:

    • Writing the code and doing all the in-engine configuration (defining walk behinds, hotspots, properties etc)
    • Integrating all the parts
    • Organizing the work, defining the tasks that needs to be done, building a plan
    • Testing and finding testers
  • I have experience with managing projects
  • I have experience with doing little hack-a-thon style projects (see list) although never over long distance, so this will be challenging.

What I am looking for

  • Someone who will take responsibility over the graphics: sprites, UI, backgrounds.
  • Someone who will work on the script: create a storyboard graph and write dialogues.

Responsibility does not mean doing all the work. It means leading it.
We will help each other and work together as much as working over the internet can allow.

Requirements

  • Any experience in the above fields. Looking for someone who can produce work of reasonable quality.
  • Commitment (it is only a couple of weeks long project that you work in the spare time as a hobby)
  • Getting things done attitude.
  • Psychological ability to cope with cutting half done features in the benefit of the overall quality or finishing the game on time.
  • Knowledge of working with git or willingness to learn.
#2


This module provides two related functions:


  • The ability to draw splines.
  • The ability to create a spline path that can be used for animations.

It can be used creatively for puzzles, complex movement animations, drawing ropes, drawing roller coaster rails etc.
If you have interesting ideas of what can be done with splines or used it in your project, I would be really happy to hear about it :)




#3
I noticed that there are many modules in the module's section of the forum. Some can substantially enhance a game with little effort. The problem is that there is no convenient way to "shop" for modules and many users are not aware that something really useful can be in hand's reach.

Many game engines and software in general has plugin managers built in.

If something like this would exist for AGS, it would look like a a in-editor form that pulls a list of modules from the server along with links, version, description, screenshots and maybe even user rating. With a press of button, the selected module will be added into the game itself.

What do you think, could the community benefit from something like this?
#4


Latest version: 3.0.0 (released on 20/05/2025)

Did you ever play an adventure game and got frustrated by not being able to find the next clue of a puzzle?

You try every item and click on every location, but there is no success...

So you open the walk-through and what is written there disappoints you.

It turns out that it was not something clever that you missed, but you did not notice that little pixel sized, not so outstanding, brick at the corner of the screen.

No more frustration for you players!

As part of learning to work with AGS, I developed a module that allows displaying hints.

After the easy integration (simply download and add it into your game), pressing an "SPACE" key (actually this is configurable) will highlight all the enabled hotspots/characters/objects on the screen.



It has several other configurable options that are explained in the "asc" file. Of course you can modify it as you wish, for example making the highlight visual style fit you game's theme.

If you find bugs or have suggestions or improvement requests, feel free to write me :)
#5
I searched a bit, but could not find an answer for this.

Suppose I have a custom property "X" that some hotspots have and others does not.

I iterate over every hotspot and do "h.GetProperty("X");" the game will crash because some do not have this property set.

Is it possible to provide default value for properties or to test if a hotspot have this property set before accessing it?
#6
How is it possible to actually display the overlay on the screen?

Code: ags


function Bubble::Render(int x, int y)
{
  int radius = 10;
  
  DynamicSprite* sprite = DynamicSprite.Create(radius, radius, true);
  DrawingSurface* surface = sprite.GetDrawingSurface(); 

  surface.DrawingColor = 100;
  surface.DrawCircle(radius, radius, radius);  
  surface.Release();

  Overlay* myOverlay = Overlay.CreateGraphical(x, y,  sprite.Graphic,   false);

  // what now?  
  
  sprite.Delete();
}



The only way I found that worked displaying a dynamic sprite on the screen was to draw on the "Room.GetDrawingSurfaceForBackground()" surface:
Code: ags


  DrawingSurface *roomSurface = Room.GetDrawingSurfaceForBackground();
  roomSurface.DrawImage(x, y, sprite.Graphic);
  roomSurface.Release();


But the problem with this approach is that it is not possible to delete the sprite afterwards.

The goal is to create random bubbles that will slowly raise to the to the top of the screen.
The creation process of the bubbles should be dynamic.


#7
Is it possible to assign a function as OnClick event to a bunch of buttons through script (at runtime)?
#8
This happens in AGS 3.4.1, on a project that was created from a 3.4.0 default template.

When the game is in "blocking" mode, such as if a dialog is open or the character is saying something, then button's image will look distorted.

Is this a bug or could have I done something wrong?

Button parameters:


How it looks normally:


How it looks with distortion:

#9
If I want a character to walk to a specific location in the room using script, I need to use the mouse pointer to find the coordinates, then I can write a script command similar to:

Code: ags

cEgo.Walk(14, 22);


or better:

Code: ags

int ladderX = 14;
int ladderY = 22;
cEgo.Walk(ladderX, ladderY);


To demonstrate that this is not just my noobish ignorance of a better way, here is an example from Dave Gilbert's Unavowed devstream #4 - Doors doors doors doors doors:



(the culprit is "player.placeAt(382,294);" )

I think that it would be nice if one could mark a coordinate on the screen, give it a name and use the name in script, similar to how regions, walk able areas etc. work.



This will be more intuitive, more maintainable and possibly prevent some mistakes.

Code: ags

cEgo.Walk(coordLadder.x, coordLadder.y);


or even

Code: ags

cEgo.Walk(coordLadder);
#10


Is it possible to add a keyboard shortcut to the "stop" command?

Something like "SHIFT + F5" would be nice.
#11
If a WalkToPoint of a hot-spot is set, every interaction with that hot-spot will automatically make the player walk to that point.

I do not see similar property for characters. Interacting with characters will make the interaction immidiate, without walking the player first to face the character.

It is of course possible to add some code:

Code: ags

function cNPC_Look()
{
  // Walking and orientation boilerplate
  cPlayer.Walk(cNPC.x, cNPC.y + 15, eBlock, eWalkableAreas);
  cPlayer.FaceCharacter(cNPC);
  cNPC.FaceCharacter(cPlayer);

  // What I actually want to happen
  cPlayer.Say("I have no idea who is this");
}


This approach has problems:

  • Every interaction (look, talk, interact etc) type of every character needs to have this boilerplate code.
  • The "15" magic number needs to be separate for each character and updated after every change to the position of the character.
  • If a mistake is made, there is no way to catch it before testing. Even indirect changes can have effect. For example a walk area can be reduced to exclude this point.
  • If the character can move during the game, it requires "15" to be calculated dynamically (how?)

Is there a better way doing the same thing?
#12
When is it preferable to use room messages instead of simply using a string?

It seems to me that
Code: ags

cChar.Say(Room.Messages[1]);


is much less maintainable than
Code: ags

cChar.Say("Hi!");


so I guess there are specific use cases that room messages are required.
SMF spam blocked by CleanTalk