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

#1
This project started off as many do: someone in a chatroom asking a question about how to do something. Someone asked about how to make text scroll in AGS for a parser game, and something about the question got me thinking about how I might do it.



Four days later, I've managed to hack together a working prototype of the module, dusted it off, and named it Promptly.
Promptly can do a couple of unique things, and it's all based on hacks on top of hacks. This text parser can:

  • Print out and parse dialog options, and then run them.
  • Check inventory items, and interact with them.
  • Provides context fallbacks, so that you don't get gummed up switching from, say, working with items, to talking to people.
  • Lets you show and hide images for things like dialogue and inspecting items
  • Provides scrollback, but lets you take it away in moments that the player needs to focus on just one thing.

There are still a few things I'd like to do with this, such as theme customization / palette swap support for 8-bit projects. Some of the code is a bit messy and requires clean-up, but I'm really happy with what I've managed to accomplish so far. Big shout out to CrimsonWizard for helping me figure out how to split up strings from the parser!

> SOURCE CODE
> DOCUMENTATION
#2
With everything going on with Twitter these days, there's been an increased interest in alternative spaces for people to congregate. One of these spaces is Mastodon, which in some aspects is very similar to Twitter due to being designed around microblogging. One fundamental difference, though, is that the network is not just on one website, but many sites that can all talk to each other.

Over the past few months, Mastodon has increased by roughly 2.5 million people, across a staggering 9,000+ servers (called "instances"). With all that being said, Mastodon is part of an even bigger network, though: the fediverse. It's kind of like a modern incarnation of Usenet, but with the conveniences of web interfaces and mobile apps. There are replacements for many different kinds of services: YouTube, Instagram, GoodReads, Reddit, MeetUp, GrooveShark, and Apple Podcasts. WordPress blogs and Drupal sites can integrate with it, and Tumblr and Flickr are mulling over native integrations to the network, too. All of these things are capable of talking to each other through a common protocol: a Mastodon user can follow someone from Pixelfed and see their photos in the stream, or do the same with a PeerTube user and see their videos. The Mastodon user's replies show up as native comments at the post's point of origin.

Anyway, with that explainer out of the way, I wanted to ask: are you on the network somewhere? I've noticed a handful of notable current and former AGS'ers on there so far, many of whom are on GameDev Place. Here are a couple of cool people I've found from the community:


Along with a couple of famous gamedevs:

Those are all of the ones I've managed to find so far. There are tons of indie game devs outside of the AGS Community, and in fact, lots of people from all walks of life on the network. Anyway, if you're interested in joining, or already on here, feel free to drop your link in th replies, and I'll update the list!
#3
I wasn't 100% sure whether this fell on the side of the AGS Editor, or the Engine itself - however, I figured that since such a feature would technically be part of a runtime, it might be better to start off here.

Historically, Adventure Game Studio has shipped with support for two types of input: mouse, and keyboard. This makes sense, given that the form factor of most AGS games follow the traditional "point-and-click" form factor that we all know and love.

However, in recent years, it has been possible to port AGS titles to:
  • Android
  • iOS
  • PSP (maybe even Vita?)
Another consideration is that some games have received special ports, such as Unavowed coming to the Nintendo Switch.

My point is: it's technically possible for Adventure Game Studio to support a lot of different form factors, including devices with game controllers as well as tablets that have multitouch.
It's already possible, through the inclusion of DualName's excellent Controller plugin (via SDL), to have an AGS game that supports just about any USB game controller that the host OS can interface with.

The problem is, adapting games to use different types of input is actually pretty hard. The controller plugin works great in principle, but adapting my code to it requires a lot of thoughtful workarounds and trial and error...for example, it currently isn't possible to treat a gamepad button as a left click that can dismiss messages in the game, and trying to make arrow buttons on a pad imitate key presses has its own set of issues.

What would be really amazing, given that AGS is shifting towards being based on SDL, would be for the engine and Script API to consider native support for input types supported by gamepads and touch inputs. Here's a non-exhaustive set of examples of the kind of interactions that we could theoretically support:

Multitouch:
  • Tap
  • Tap and Hold
  • Pinch to zoom
  • Drag and Drop

Gamepad
  • Button Press
  • Button Hold
  • Menu Item Selection
  • Axis tracking
#4
I've been doing game development on and off for almost 15 years now (I took a long break for about 8 years after my last major failure). I've had a lot of failed projects, some of which actually got pretty far along. But, I've released almost no actual games. The stuff that remains online is often not anything to be proud of, and my efforts to actually make things just takes longer and longer and longer.

And you know what? In principle, that's fine - because for me, the process of making games is the hobby. I'd love to have actually tangible results that I could share with people, and maybe one day I'll get there. There's nothing like having an idea in your head, a pencil sketch, and thoughts that follow you around all day long on how to approach a particular problem. That is to say, there's nothing like making those things real.

But, it's such a maddening hobby. Game development is a fucking nightmare. It's right up there with writing a book, composing an album, directing a TV series, and making a board game. Maybe it's all of those things mashed together, except you're both the executive producer as well as the unpaid intern who gets the producer coffee. And, for giggles, you're the artist and the programmer too!

To me, the real kicker here (and it's something I've come to appreciate very much about completed games) is that everything takes a huge amount of effort. Even small things take insane amounts of time, especially if you're doing everything yourself. Developing a good story with believable dialog and amazing plot points is insanely hard. Sometimes, it's easy to go deep into developing UIs and game mechanics, and realize that in all practicality, your protagonist can still only go to the grocery store to pick up his paycheck. Sometimes I'll spend an hour or three trying to teach myself how to do sprite animation, going through all the steps (har har) of making a character walk, only to realize by the end of it that something is horribly wrong with how a character's legs move. Or, I'll develop a whole concept and realize that actually building out the core mechanic (say, writing tons and tons of dialog for infinitely many options) is absolutely exhausting.

I feel like I'm going crazy, but I also can't stop. The euphoric high I get from turning ideas into reality, and crafting a unique story told in my own voice, is overpowering. But often, I feel myself banging my head into the wall, getting burned out, and wanting to cry my eyes out from playing the same shitty unfinished game over and over again. (I take lots of breaks, and switch off between 2-3 projects now). I've grown a lot as both an artist and a programmer (hell, even as a musician!), but oh my god, I feel like Sisyphus pushing a boulder.

Am I alone in this feeling? Regardless of the answer to that question, how do you keep soldiering on with this? How do you keep showing up every day and not give up on your dreams of making a game?

#5
GET THE SOURCE CODE HERE

Hi friends,

I've been doing a lot of custom interface development in AGS for upcoming game projects. It's a lot of fun! To save me some time, I decided to take some stuff that I feel good about, and turn it into a template that I can easily use. I wanted to share it with the AGS community as an Open Source (MIT Licensed) contribution.

What is this?
TL;DR - I made an interface that looks like Sierra and LucasArts had a lovechild in the mid-90's. It's designed to save screen real estate, reduce the amount of travel a user has to do with the mouse cursor, and provide some visually neat integration between separate visual components. I've had a lot of ideas about how this could work, and I'm pretty happy with the results!

Demo
Included is the bog-standard demo game we all know and love. Here's some demonstrations:

[imgzoom]https://raw.githubusercontent.com/DeadSuperHero/ActionWheel/main/Screenshots/pick-up-items.gif[/imgzoom]
Picking up an item...

[imgzoom]https://raw.githubusercontent.com/DeadSuperHero/ActionWheel/main/Screenshots/inv-open-2.gif[/imgzoom]
A UI that follows where the player right-clicks

[imgzoom]https://raw.githubusercontent.com/DeadSuperHero/ActionWheel/main/Screenshots/multi-context.gif[/imgzoom]
Context labels that change interaction descriptions, based on what the thing is!

Typical Disclaimer
My code's a little bit messy, and I'm still kind of a noob when it comes to AGS. There's probably a bunch of stuff I've done ass-backwards, dirty hacks abound, that could probably be done in a more sophisticated and eloquent way. A lot of the design work is based purely on loose assumptions, there might be stuff like this that already exists that's better, I may have jumped the shark by even starting this thing. That said, I hope to regularly make updates to it, and make ActionWheel better. I
really just made this because I figured it'd make my life easier with spinning up game projects, and I figure other people might like it, too.
#6
Howdy y'all,

It's been a while since I've tried one of these. This is a project that's pretty personal to me. It started out as an attempt to do AdvX Jam, but missed the deadline. I decided to keep working on it because I liked the idea, and it's starting to take shape into something I think I might be really proud of. I'm planning on the game itself to be relatively short, but one of the central design goals is replayability. Many of the underlying themes are based on real experiences, and so making this game is serving to be an odd form of therapy.

This game is based on a simple idea: a friend you grew up with moved away, and you two drifted apart after a major incident. Now, years later, he's back...and to make amends, he's inviting you to a party. He even hyped you up to a bunch of people that are probably way cooler than you are!

It's up to YOU to rock the party. But you're a nerdy introvert that's normally playing Dungeons and Dragons with like two other people on a Friday night. You don't know about anything these party folk like! Somehow, you're going to have to have a good time, even though your desperately afraid to.

Key Game Mechanics
The game heavily revolves around dialogue interactions with other people, and deals with trying to be sociable while being terrified of other human beings. Our hero, Paul, thinks he needs to impress people. It's worth mentioning that the protagonist's point of view and the player's point of view are meant to be subtly out of sync with one another: Paul is an unreliable narrator who has a warped view of himself and other people. Therefore, the goal of the game is not necessarily "BE THE MOST POPULAR PERSON (even though Paul thinks it is)", but rather, try to figure out what you would do in this situation. Are you going to try to be cool? Or will you take a greater risk by being your real, lovable, vulnerable self?


  • The Anxiety Meter - your character suffers from anxiety attacks. As your character's anxiety stat increases, it becomes more difficult for him to properly engage in dialogue with other people. The more he messes up, the more aggressive the meter becomes...and the more likely the hero will automatically start picking. You can decrease the anxiety in a number of ways: increasing confidence through positive interactions, ingesting various substances, or running off to an isolated space to calm down (just like you do at REAL PARTIES)
  • The Memory Journal - Paul has an amazing memory, and can recall fragments of information that other people have told him. This allows him to bluff in conversations about subjects he's not actually familiar with at all. One type of puzzle in this game allows Paul to use fragments of his fake knowledge to get other fragments, which will allow him to bluff even more. The only problem is that Paul is at a party getting progressively more and more drunk, which will cause the journal to become increasingly muddled to the point of incoherence.
  • The Heat Map - Paul has some assumptions about what he should say. Dialog trees get a colored heat map: Green options are assumed to be safe, and ostensibly cause Paul very little anxiety, whereas red options are assumed to be dangerous, which makes him nervous to even ask.
  • Followers - in his quest to be popular, Paul is going to try and earn clout by impressing people. The more people you impress, the more confident Paul becomes, leading to more outgoing types of actions.

Now, for some screenshots (note: the art in this game is still in the rough stages, so a lot of it looks half-finished right now. Also, the resolution that these were captured at, and the resizing within the post make them look shittier than they actually are. Click that 2x button to get a better idea of what the screenshots entail!)

[imgzoom]https://i.imgur.com/akRvutg.png[/imgzoom]
Introducing the Action Wheel! A bastardized hybrid of the Sierra GUI and Verbcoin.

[imgzoom]https://i.imgur.com/eIuX6O5.png[/imgzoom]
Hide in the bathroom to get your anxiety levels down...JUST LIKE YOU WOULD AT A REAL PARTY

[imgzoom]https://i.imgur.com/yVyIRJO.png[/imgzoom]
A visual dialog system, which refer to many different pieces of visual context

[imgzoom]https://i.imgur.com/Gyixs0w.png[/imgzoom]
Win approval from your new friends...or, lose it just as quickly

[imgzoom]https://i.imgur.com/oL8ZYuT.png[/imgzoom]
The Memory Journal - a visual, local Wikipedia that's in your head, that gets less reliable as you get more drunk

[imgzoom]https://i.imgur.com/rAHyRl6.png[/imgzoom]
Learn all the juicy details about your peers!

I'm basically using this game to teach myself how to make better sprites, draw better backgrounds, and write better AGS code. A lot of this is about cultivating my own techniques, along with my own style. Right now, I'm having a lot of fun learning to do animations.

Kevin from Los Angeles, one of the many party-goers.

My hope is that, once this game is done, I'll be releasing the source code under an Open Source license, with the art assets under the Creative Commons. I hope to donate all of the art assets to the OpenGameArt project.  :-D

Edit: I had to change the name for the title due to the fact that a Visual Novel already exists called Euphoria...and, uh, it's kind of a bit much. This project isn't related to that one at all.
#7
I wasn't 100% sure where to put this, but I figured this might be a good spot.

I have a couple of AGS projects going on right now that are, more than anything, an exploration in doing new things with art and code. I currently have full-time employment secured, and don't really have any concern for money as a consequence. I'm a huge fan of Free Software / Open Source, use Linux as a daily driver, and like the idea of enriching the digital commons by releasing whatever I make for people to use, to the fullest extent possible, for free.

I have some projects in the prototyping stage right now, and I'm interested in releasing the code under a Free Software license (with credit and license provisions for any of the Public Domain script modules I use), and I'm interested in releasing all of the art assets under a Creative Commons license.

The biggest question mark for me, at this point, is what license makes the most sense? I was thinking of going with the GNU GPL for the code part, but I'm not 100% sure how compatible that is with the engine's use of the Artistic License. I think they're compatible (in the way that MIT / BSD is compatible with GNU), but I'm not super well-versed in what the most appropriate thing might be. I'm also not totally sure what the best option is when I might also want to sell binaries on app stores such as Steam for like 99 cents, for the hell of it.

Does anyone have an opinion of what a good path forward might look like for releasing Open Source AGS games?
#8
I have this game mechanic that I want to try.
In a nutshell, the player character has anxiety. Various interactions cause the character's anxiety level to increase, and I want to render that anxiety on a graph, like this one:



Effectively, the graph is just a button with a view set. If a character property is set to a certain level, a specific loop gets loaded and played continuously.

Code: ags

    function getAnxiety() {
      int anxiety_level = cEgo.GetProperty("anxiety_level");
          // Animate the anxiety meter independent of blocking
          if (anxiety_level == 0) {
        checkMeter.Animate(6, 0, 0, eRepeat);
      }
        else if (anxiety_level == 1) {
        checkMeter.Animate(6, 2, 3, eRepeat);
        }
    }


Unfortunately, we have the problem of blocking...I want this "graph" to render while things such as dialog are happening, as it gives the player and idea of what things trigger the player character.

I tried calling this function from inside of repeatedly_execute_always, and unfortunately this seems to cause some pretty big problems. A separate thread here suggested that the animation is being called 40 times a second or something.
I'm basically stuck in a situation where I can either:
1. Have a working function that gets blocked every time a message is rendered (since those pause the game)
2. Leave the function inside of repeatedly_execute_always and try to figure out some other way to do the rendering (if possible)

Initially, I went down the rabbit hole of simply using views because I wasn't sure whether I could just get the game engine to draw the line on top of the button using DynamicSprite.

So...I guess this all boils down to two questions:

1. Is there a way to animate buttons inside of repeatedly_execute_always?
2. If no, is there a way to render Dynamic Sprites inside of repeatedly_execute_always instead?
#9
(forgive me, I didn't quite know what to call this, as far as descriptive thread titles go)

Hey all,

I've been scratching my head at some of the challenges in building a quest system. Before I dive back into that monstrosity, I wanted to ask a simpler question that would clean up a lot of my code.

TL;DR - Structs and Arrays are fun and very, very powerful. However, creating a new instance of a struct object that lives inside of an array forces me to do somewhat gross stuff like this:

Code: ags
task[1].complete


Ostensibly, it's fine as-is. If I wanted to manually make calls like that every time a task gets marked as Completed, it would work. But it's ugly, kind of goes against the concept of "Don't Repeat Yourself", and makes it difficult to reference in generic functions. It can also potentially cause off-by-one errors if, say, I somehow create tasks in a non-linear order./

So, let's say every task object has a unique identifier, like an ID. Maybe this task has an ID of 4, but it was created with an array index of [3].
How might I go about referencing this without causing an off-by-one error? Is it possible to refer to a task by a related variable, rather than the index itself? Otherwise, is there some magic index variable I can use like task[task.array_number].complete?
#10
Edit: This has been solved. Check out the solution!

I'm in the process of building out an adventure RPG in Adventure Game Studio, and over the past few months I've been making some pretty good progress.
Recently, though, I've wanted to implement a quest system, as a sort of visual way to assign things to the player and give them the opportunity to track things they have left to do.

In the process of building this, I've come across a few constaints, and haven't totally worked out the bugs yet. I'd like to touch upon what I've gotten working so far, along with a few ideas I've had.

Creating a Quest
Currently, Quest creation is little more than adding a new String to a ListBox. It looks like this:

Code: ags

function createQuest(const string questTitle,  const string questDesc) {
  questList.AddItem(questTitle);
  qDesc.Text = questDesc;
}


What we end up with looks like this:

https://i.imgur.com/YwdvbGu.png

The Description Problem
Anyone with experience in AGS will immediately realize there's a bit of a problem with doing things this way: the description is not actually being stored! The UI label just gets updated every single time a new quest gets assigned.

I've looked through the forums a couple of times to determine how exactly I'm supposed to update the label upon selecting a particular ListBox element. Thankfully, SelectedIndex is a thing, so we can at the very least update the label based on what the description is, like so...

Code: ags

function questList_OnSelectionChanged(GUIControl *control)
{
  if (questList.Items[questList.SelectedIndex] == "Sample Quest") {
    qDesc.Text = "The interface should update when selecting this";
  }
  
   if (questList.Items[questList.SelectedIndex] == "Get Ready for Work") {
     qDesc.Text = "You need to get ready to go to the office. Don't be late!";
  }

  else {
    qDesc.Text = "No description. Please select a quest.";
  }
}


Unfortunately, this is kind of unwieldy, and goes against the principle of DRY (Don't Repeat Yourself) in programming. It might not be a problem if I only have a dozen or so quests, but it doesn't exactly scale up if I want a game with 60+ quests or something. It also kind of goes against the initial function pattern I was hoping to follow.

Another headache that I've noticed is that SelectedIndex appears to only work on matching results against an exact title. One thing I'd love to figure out is whether or not it's possible to use some other kind of value, like an ID or something. My thought is that, if I could somehow store the description somewhere, and associate that with the title, I might be able to update certain elements through that association.

A Possible Solution - Structs!
So, I've been banging my head against the wall, trying to figure out how to store Quests as a type of Script Object that can be referenced in the UI. I came across the AGS Documentation on Structs, and it almost seems perfect...

So, in the global script header, I defined my Quest struct like so:

Code: ags

struct Quest {
  String title;
  String desc;
  int ID;
  bool complete;
  import function Create(int questID, const string questTitle, const string questDesc);
};


I also have this function in the Global Script:

Code: ags

function Quest::Create(int questID, const string questTitle, const string questDesc) {
  this.title = questTitle;
  this.desc = questDesc;
  this.ID = questID;
  this.complete = false;
  questList.AddItem(this.title);
}


The editor compiles with no problems, and this seems to be a semantically better way to generate quests. Now, whenever I try to create a new quest, I define an ID, the title, and the description, and it should get added to the Quest UI.

Let's try this with a Sample Quest...

Code: ags

  // Generate fake quest
 Quest.Create(1,  "Sample Quest", "The interface should update when selecting this");


This is unfortunately where I hit my first serious snag with Structs. Upon attempting to compile, the editor gives me an error:

Code: ags

GlobalScript.asc(198): Error (line 198): must have an instance of the struct to access a non-static member


At this point, I'm not really sure about what I need to do to move forward. This is the first time I've tried to work with Structs, and it's not 100% clear how I'm supposed to make them accessible to global or local scripts. Unfortunately, many of the examples I've seen of Structs being used are fairly abstract, or fit use-cases that are put together quite differently.

Goals and Questions
Ideally, what I'd like to do is successfully generate a Quest struct, and update the Quest UI so that the ListBox gets populated and the Label gets changed in a more efficient way.
Here are my questions on "How do I...?"


  • What am I doing wrong in creating the struct from the function?
  • Can SelectedIndex use something other than the Quest Title for setting the label? Such as an ID?
  • If I have to use the Quest Title for SelectedIndex, how might I be able to parse out other values of an existing Quest struct and update the UI accordingly?
  • Given that ListBox has a relatively limited API, is there a way to include sprites inside of the ListBox to represent completion state?
#11
I've been thinking recently about introducing wandering NPCs into my game world, and would love to have circumstances where they can wander into shops, sit down and eat, go to work, etc. Having characters follow a specific agenda is part of a higher-level thing I want to explore, but to get to it, I first have to ask about this low-level foundational thing:

Is there a way to write functions which apply to all characters universally, not just specific ones?

For example, if I make my character walk off the side of the screen, I would call cEgo.Walk prior to changing the room cEgo is in.
But what if I wanted to apply the same thing to any character that did that, regardless of whether cEgo did it or not?

Is there something like a script name that can universally apply to all characters, or can I perhaps write some kind of wrapper function that plops in a character's script name into a Walk / ChangeRoom function?
#12
Hey all!

I've gotten back into playing with AGS regularly after a long hiatus. It's been a lot of fun learning how to work with a newer release of the engine, digging into features I had never bothered with before.
One thing that I'm working with for my new game involves opening and closing doors - in the past, I'd just move a character to a coordinate and change rooms, but I wanted to go with something a little more advanced.

Here's a script that I wrote that allows the player character to open and close the door on a building:

Code: ags

// Note: this example assumes that you have a door object in your room with the ID of 0, or name of oDoor.
// Another assumption is that the WalkableArea value that connects the indoors and outdoors has an ID of 3
// Effectively, all this script does is checks and sets states based on when the player steps on a given region.

// Keep in mind that the Object Properties are prepared outside of this script. The properties are:
// "open", and "inside_building", both boolean values.

// These properties are set based on which region the player steps on. 
// It's assumed that region 1 is inside the doorway, region 2 is outside it.
// Each region, upon being stepped on, switches itself off and turns on the other one
// while setting the "inside_building" state.

// One last assumption: Currently, the "animations" only consist of a single initial frame, so no actual animation
// is done in this example. I may update this later as I add animation into my own game to better demonstrate the
// "correct" way to animate door objects.


function openDoor()
// Sets the Door object to a specific loop in a set view, then sets an object propery of Open to True, and adjusts the baseline for the new door height
// Turns on a Walkable area that bridges indoors and outdoors
{
  object[0].SetView(6,  1,  0);
  oDoor.SetProperty("open", true);
  object[0].Baseline = 160;
  RestoreWalkableArea(3);
}

function closeDoor()
// Same thing as last function, but in reverse
// This time, we set the view to a closed door picture, set the value to false, adjust the baseline, and turn the walkable area off.
{
  object[0].SetView(6, 0,  0);
  oDoor.SetProperty("open", false);
  object[0].Baseline = 145;
  RemoveWalkableArea(3);
}

function oDoor_Interact()

// Checks the state of the Door object. If the "open" value is false, we'll set a view for an open door, set the "open" property to "true",
// Then we run the openDoor function!
{
  
  if (object[0].GetProperty("open") == false) {
 
 // The inside_building check is to determine whether or not the player character is outside or indoors, so that we know where to correctly move him to.
    
    if (object[0].GetProperty("inside_building") == false) {
    cEgo.Walk(49, 157,  eBlock, eWalkableAreas);
    cEgo.FaceObject(oDoor, eBlock);
    openDoor();
    cEgo.Walk(68,  138, eBlock, eWalkableAreas);
    }
    
    else {
    cEgo.FaceObject(oDoor, eBlock);
    openDoor();
    cEgo.Walk(52,  145, eBlock, eWalkableAreas);
    }
  }
  
// Do the same thing as before, but backwards.
// Run the closeDoor function!
  
  else {
   closeDoor();
  }
    
}

function region1_WalksOnto()
// We use a region to act as a switch; when the player steps onto it, the game registers the player as being inside the building

{
  closeDoor();
  oDoor.SetProperty("inside_building", true);
  region[1].Enabled = false;
  region[2].Enabled = true;
}

function region2_WalksOnto()
// Same idea, this time we denote the player as being outside instead.
{
  oDoor.SetProperty("inside_building", false);
  region[1].Enabled = true;
  region[2].Enabled = false;
  closeDoor();
}


Sorry for the wall of text. Effectively, my current setup is a switch system based on regions and the evaluation of the door's state, as well as whether the player is indoors or not. I have two semantic questions, with which I can try to make my script better:

1. Currently, the Properties are assigned to the Door object itself: "open" and "inside_building". However, the second property would seem to pertain more towards the player character than the door. Would it make more sense to instead apply that that property and value to the player character instead?

2. While everything I've already written works, it currently only works for the player character, cEgo, and it only works on one specific door. Is there a good way to further abstract this code into a generic function that works for every character, on every door? My thought here is that maybe it would be possible to pass a character's script name as a variable, so that walk coordinate instructions and "inside_building" states could be set individually on any character.
#13
Hey all!

I'm getting back into AGS, after many years of being away. One thing I'm curious about: I'm exploring making a game with a ScuMM-style dialog system, and want the characters to make different expressions as various lines of dialogue comes up.

One way of doing this would be to draw different sprites for different views, and switch to those views when certain lines come up in a scene. However, creating entirely different sprite sets and views just to get an expression change in creates some extra work.

So, my question is, is there a known way within AGS to composite one view on top of another view? For example, maybe EGO is in a conversation, and suddenly another character says something that annoys him. Would I be able to composite an annoyed face on top of the character's existing sprite?
#14
It's been a while since I've had anything to post here. Recently, I purchased the very-excellent Aseprite program, and it has rekindled my interest in making pixel art.

When it comes to dialogue portraits, my old technique relied on a process like this:
1. Draw a character on paper
2. After adjusting features, ink it
3. Scan the drawing in
4. Color it
5. Resize it to adventure game dimensions (something native to 320x200)

Aside from taking a lot of extra time, this process leads to some significant loss in quality. I used to think that the general logic should dictate that you should color and shade a character at a high resolution, then resize them to something much smaller.

This new technique throws that out the window by instead attempting to draw a face from scratch at a lower resolution, directly in a sprite editor itself.

Here's how that looks:

1x:


2x:


Obviously, this is a first attempt. There are some small imperfections in the line work and the shading, and I'm sure adjustments could be made to the general shape of the face. With that being said, I'm pretty happy with this new technique, and since most of the elements are in different layers, animation is much easier than you would expect.
#15
Critics' Lounge / Emo Kid
Wed 11/02/2015 19:12:32
So I've recently decided to take a stab at making sprites again, and thought it would be fun to try doing things in a higher resolution. After looking through a few tutorials, I decided to sketch out a character, scan it, and turn it into a sprite in GIMP.

A long time ago, I was working on an AGS game called No One Likes You (NOLY). The data all got lost in a hard drive crash, so I ended up giving up for a very long time. Every now and then, I'll take another stab at developing the main character and visual style. In the past, the main character has looked like this:



Now, the main character looks like this, in a much higher resolution. I feel that the style is a lot more unique. I ended up experimenting with dithering,shading techniques, and venturing into a visual style that I haven't tried before. His arms need a little tweaking, and his pants might need some lighter shading, but overall, I'm happy about how Peter turned out.

1x


Zoomed in:


My next goals will involve adding some finishing polish, and figuring out how to animate this guy!
#16
The Disreality Collection is my first collection of works centered around related themes. I wanted to focus on portraying various aspects of the human mind through surreal and abstract imagery. Many of my works contain creative representations of human emotions, plagues of the human condition, and ideas about reality and identity.

Since March, I've been inspired to pursue creating surreal and abstract art, practically making up every picture as I go. As a side effect, I learn something new about my technique each time I draw and color one of my works. This has caused me to develop and refine much of my own artistic style. I'm still adding more to the collection, but I would absolutely love to have some critiques from other artists on my work.

Here's a few below to start you off:









You can check it the entire collection here: http://deadsuperhero.deviantart.com/gallery/42878843

All of my art is licensed under CC-BY-SA 3.0 Unported License, meaning you can share and remix my work as long as you give me credit for doing the original. Go crazy!
#17
Hey folks,

I just wanted to say that a team of people that I work with in the open source community is launching a new social networking service, with the central focus being on creating and remixing content. It's kind of a different approach to social, and currently new changes are being implemented in the codebase everyday.

The AGS community is full of creative people that make awesome things everyday, and as someone that's frequented these boards for quite some time, I thought you guys might want to try it out. The focus of this network is largely on content and being able to express an idea aesthetically in different ways. There are different templates for posts, and some upcoming features will focus on being able to actually remix existing content to make it your own.

"What does it look like?" you ask suspiciously.

This is what my profile looks like. I can configure the sizes of the tiles, which automatically adjusts the layouts of every other post.

This is a full post I made, a comment bar flips open on the bottom.

Here's a screenshot of the stream.

You can sign up here.

If anyone would like to post thoughts on this, let me know what you think of it.
#18
Check this out.

So, an organization dedicated to the Open Web, an organization dedicated to Remix culture, and an organization dedicated to the sharing of software as a form of information all decided to team up together to have this contest to make games that encourage the things that they stand for as far as culture and technology are concerned. I seriously think this is awesome.
#19
----------------------------------------------------

MODERATOR NOTE (12/10/2016):

Hello!

This thread is an archive of offers made prior to 2016, which will continue to exist for legacy's sake. Some of the later offers may still stand, but many of the earlier ones probably don't.

For current offers, please see the Offer Your Services! 2016/2017 thread.

Thank you. :)


----------------------------------------------------



It seems you've cleaned out the old entries, so here's mine. :)

Web Designer

I specialize in Drupal sites, and can give you a totally integrated forum, series of galleries, community blog posts, you name it. I can build websites to custom-fit a use case. I'm looking at expanding my portfolio, so the first couple of people that contact me here will get my services and consultations for absolutely free. You don't even have to bribe me with one of your games.  ;)

"Well now," you say casually, "what all can you make with a Drupal site?"

You can have:

-A news site
-A site with reviews of things
-Galleries
-Built-in forums (comes with private messaging, possibly even group functionality if needed)
-An events site.
-A podcasting site
-Something to showcase your game team or company
-A portfolio
-Some kind of user-generated-content thing, like "Texts from Last Night"
-A video portal featuring videos you've done.

Check out my website here.

Please note that I do have to feed myself at some point, so I can only keep this going for so long.

So wait, what do you do?
I build and design websites.

What does that entail?
Graphic design, coding, and CSS work. I can also put some jQuery and HTML5 magic into your site. ;)

Can you do Wordpress?
I really don't like Wordpress very much, but I am competent enough to put sites together in it. However, I'll always argue to use Drupal over it, for a multitude of reasons.

If that promotional thing is over, how much do you charge?
The initial consultation is always, always free. Just private message me, and we'll set up a Skype chat or something to further discuss it. I can't realistically give a price without evaluating the scale of a project. So let's talk about it!
#20
Critics' Lounge / Roger Wilco, Reinvented
Tue 10/01/2012 00:24:45
This is a concept sprite I've been working on for the past few hours. I wanted to try and redesign the "traditional" Roger Wilco (usually of the SQ4 variety) into a somewhat different character design.

Roger has always been depicted as something of an airhead, and a dork. The earlier Space Quest games actually showed Roger in a far more favorable light, while the later games seemed to treat Roger as a socially-inept character with only momentary bursts of higher thought.

I wanted to take a stab at creating a somewhat different idea behind who Roger Wilco is. Rather than make Roger stupid, I figured he'd be more fun as a character that is simply lazy and careless.

We have to ask ourselves: why is it that Roger ended up as a janitor? It's always assumed that Roger was stupid and only capable of cleaning tasks, but suppose it were for a different reason? Suppose Xenon was going through a recession by the time Roger got out of school, and Roger had chosen a Master's degree in Philosophy? Maybe he's only a janitor as a result of past mistakes, and doesn't have a way out.

So, without further ado, this is a re-imagining of Roger Wilco. He's clever, devilishly handsome, and a total smartass. He's also something of a slob.



2X


I have some cosmetic things to fix here and there (such as the far leg), but so far I really like how this came out. What do you guys think?
SMF spam blocked by CleanTalk