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

#1
We made it! It seems like only yesterday we were demoing the game at Adventure X with half-finished voice-over and a tonne of weird bugs.
Thanks for everyone's support along the way, and I hope you enjoy the game, whether you had a hand in its making or not!

I'll keep this post updated with new storefronts (and press/reviews) as they approve the game, so if you don't see a marketplace that you're comfortable with please make sure you check back later!








"Astroloco: Worst Contact is a fun, charming point and click game with clever writing and absurd situations. If you're a fan of classic point and click adventure games, then you'll have a great time with this." 8.5 / 10 - BrutalGamer.com


Buy it now!
FireFlower Games - €4.99
Get Games - £3.99
Desura - £3.99
Green Man Gaming - £3.99
Amazon US - $5.99
More stores to be added very soon. We're just waiting for the files to be approved!

Try the demo:
Direct download (23.5MB)

Summary:
In the far future, humans explore and colonise space using ridiculously deadly, moon-sized trains - 'Astro Locomotives'. They're operated by enormous, competing railroad companies and train vs. train combat is (expensively) common.
Take control of a mistreated mechanic and a swashbuckling pilot as you try to save Gilbert Station from destruction at the hands of an alien death fleet!

Features:
* Classic 1990s adventure gameplay! Inspired by genre classics such as Space Quest, Monkey Island and Day of the Tentacle.
* Trains. In space. That's worth the entry price, right there.
* The funniest writing in an adventure game this side of the millenium. That might be a positive or a negative, depending on how much you enjoy laughing until you dribble.
* Two playable characters for the price of one.
* Fully voiced (including some members of the AGS community)! You'll also be able to turn the voice-over off, since we know some of you like to do that. Just know that every time someone ticks that particular box in the game settings, we'll kill one of our voice actors.
* Fully soundtracked! Features music from internet megastar Brad Turcotte (aka Brad Sucks).
* The 'unique' graphical style of subAtomic and Plan M (both of which are included as a bundle if you purchase A:WC)!
* Interesting puzzles and minigames! We know a lot of you adventure gamers out there like to actually have some challenge in your games. For everyone else, just curl up tight, hold down your Escape key, and hope it ends soon.
* 20 in-game achievements to be unlocked, if you have nothing better to do.
* Optional Developers' Commentary mode, so you can have a worrying insight into our strange little minds.

Media:

[embed=420,315]<object width="420" height="315"><param name="movie" value="http://www.youtube-nocookie.com/v/lcc5RjDfaSU?version=3&amp;hl=en_US&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/lcc5RjDfaSU?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="420" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object>[/embed]







Contact us:
* Official website
* Twitter: @HungryPlanetGS, or my personal account @GameDevIdeas
* Facebook
#2
Can someone please explain the difference between these two variable declarations?

Code: AGS

Character *myCharacter = cEgo;
// and
AudioChannel* myChannel = aSound1.Play();


What is the effect of the asterisk being before the variable name as opposed to after the type, and vice versa?
#3
We're getting super-close to release with Astroloco: Worst Contact, but there are still a few characters that need voicing! They're (mostly) minor characters, so it'd be great if you can do more than one.

Here's a list of what's up for grabs, and a brief description of what we're after:














NameDescription# of lines
R4-LPHR4-LPH, or Ralph, is Arianne's AI engineer. He's responsible for keeping the train in good, running order, and always defers to the orders of his driver. He's known Arianne for years, and is very wary of her impulsive personality. He tries his best to give her good advice, but always remains respectful. Something like a computerised butler.69
Shady JimShady Jim is an old school friend fo Ronald's, turned to a life of (not very exciting) crime. He makes out that he is part of a global conspiracy/criminal underworld, but barely even qualifies as a small-time crook. Gravelly voice (although he's only putting it on to sound 'cool').60
Safety AttendantThe attendant is a picky, annoying health & safety officer. His only job is to make sure that proper procedures are observed, even if it means inconveniencing everyone else. Despite his existence being almost entirely pointless, he smugly believes he is one of the most important people on Gilbert Station. He has the kind of annoying, always-faux-happy voices which makes everyone want to punch him.43
Crewman SmytheSmythe is a simple pirate with barely two brain cells to knock together. The other pirates laugh at him behind his back, and give him menial tasks like swabbing the decks and guarding the prisoners. He speaks with naive honesty, and a worried temperament. His voice should be something like Frank Spencer.30
Pirate GuardA simple, stereotypical pirate type.23
Security GuardThe second of only two members of the Gilbert Station security force, the guard is willingly subservient to Chief Shepherd. He knows the rules off-by-heart, and will never go against the letter of the law.21
Unhealthy PirateAn irate pirate.13
Dr. HubrisGilbert Station's resident doctor. If he is required more than once, he gets increasingly resentful of having to babysit the player.13
First Mate HawkinsCaptain Smallbeard's First Mate. Hawkins is a natural pirate, and loves the idea of flying around space doing as he pleases. He is growing tired of Smallbeard's small-time piracy, and is thinking of starting a mutiny.12
Convoy CaptainThe captain of a civilian convoy being escorted by Arianne. He's very wary of her reputation, and terrified that he and his crew won't make it back alive.11
Evil Laughing PirateAn evil pirate who loves to shoot at people.1

Reply to this thread or PM me if you're interested. We can't guarantee amazing rates of pay, but we can certainly arrange things like free copies of the game (and, of course, your name in the credits).

For more info on the game, check out the Astroloco: Worst Contact production thread here.
#4
Is there an easy way to get the current room name ('Description' property in the editor) via script? I'd like to append it to save game names.

This may be a really obvious question, but I couldn't find anything on a quick glance through the manual. :-\
#5
I'm all but ready to auto-number the speech files in Astroloco now, but I've got a quick question before I do so.

If I run the auto-number wizard, and then add a new character later to add developer's commentary nodes, will it keep the old speech numbers for everything else? I don't want to have to re-number all the voice files!

On a similar note, if I add more lines to a character will they be added to the end of the current numbering, or will it all get jumbled up again?
#6
Just got around to taking a look at this niggling little bug in one of my cutscenes...

Is there anything in AGS that would be causing a character to walk when I haven't told them to?

In one room I do this:
Code: AGS

cPilot.LockViewFrame(9, 0, 9);
cPilot.ChangeRoom(3, 100, 285); // This is the player character


Then room_AfterFadeIn() in room 3 picks up some variables and starts a cutscene:
Code: AGS

teleportToggle(false, cPilot);
// The problematic movement occurs between these two lines of code
cPilot.Say("Hey, I saw a train leaving in a hurry as I pulled in and-");


teleportToggle is an imported function from the global script and looks like this:
Code: AGS

function teleportToggle(bool dir,  Character* teleportee){
	if(dir){ // Enter the teleporter
		gPoRT.Visible=false;
		teleportee.LockView(9);
		teleportee.Animate(0, 3, eOnce, eBlock, eForwards);
	}else{ // Exit the teleporter
		teleportee.Frame=9;
		teleportee.Animate(0, 3, eOnce, eBlock, eBackwards);
		teleportee.UnlockView();
		
		// Face towards the furthest edge
		if(teleportee.x<320){
			teleportee.FaceLocation(640, 200, eBlock);
		}else{
			teleportee.FaceLocation(0, 200, eBlock);
		}
	}
}


Now, for some reason, between the two lines of code I showed above in the room 3 cutscene, cPilot faces left and walks on the spot for around a second. The cutscene then continues as normal.
I can't find any code that would be causing this behaviour, and it's driving me mad! (wtf)
#7
I've got some random problems with on-screen overlays that are really confusing me!

Whenever a player character gets a new inventory item, I display the name of the item as an overlay (which is then shown for a few seconds and then shuffled off-screen). This was working fine, but in a newer build I'm testing, the overlay doesn't display. I should stress that I haven't touched any script to do with the overlays - it just stopped working today.

The overlays are created initially in game_start() to avoid null pointer errors:

Code: AGS

// invOverlay1 and 2 have already been declared at the top of globalscript.asc
invOverlay1 = invOverlay1.CreateTextual(20, 20, 400, Game.SpeechFont, 10, "");
invOverlay2 = invOverlay2.CreateTextual(20, 40, 400, Game.SpeechFont, 12, "");


Here's my event handler function from the global script:
Code: AGS

function on_event(EventType event, int data){
	if(event==eEventAddInventory){
		if(!invOverlay1.Valid){ // Check if the first overlay is free or not
			Display("Setting overlay 1");
			invOverlay1 = invOverlay1.CreateTextual(20, 20, 400, Game.SpeechFont, 10, "+ %s", inventory[data].Name);
			SetTimer(19, 120);
		}else if(!invOverlay2.Valid){
			Display("Setting overlay 2");
			invOverlay2 = invOverlay2.CreateTextual(20, 40, 400, Game.SpeechFont, 10, "+ %s", inventory[data].Name);
			SetTimer(19, 120);
		}/*else{ // Force overlay 1 to be used, even if it's already in use (overwrites existing text)
			invOverlay1 = invOverlay1.CreateTextual(20, 20, 400, Game.SpeechFont, 10, "+ %s", inventory[data].Name);
			SetTimer(19, 120);
		}*/
	}
}


The overlays are then modified by repeatedly_execute_always thusly:
Code: AGS

if(IsTimerExpired(19)){ // Initial timer has expired - start moving the overlay off-screen
	if(invOverlay1.Valid && invOverlay1.X == 20){
		invOverlay1.X --;
	}
	
	if(invOverlay2.Valid  && invOverlay2.X == 20){
		invOverlay2.X --;
	}
}

if(invOverlay1.Valid && invOverlay1.X < 20){ // Overlay is valid and has started moving off-screen
	if(invOverlay1.X > -100){
		invOverlay1.X -=2; // Not off-screen yet - keep moving
	}else{
		invOverlay1.Remove(); // Overlay.X is <= -100, so remove it
	}
}

if(invOverlay2.Valid && invOverlay2.X < 20){
	if(invOverlay2.X > -100){
		invOverlay2.X -=2;
	}else{
		invOverlay2.Remove();
	}
}


With the above code, the overlay does not appear at all when picking up an item.
If, however, I un-comment the 'else' condition in on_event ('// Force overlay 1 to be used'), it shows up.

It works, then, but I have no idea why it suddenly didn't until I added the else condition. As I said, it was working absolutely fine when I started the game in an earlier build, and I hadn't touched the overlay code until it stopped working today.

Any ideas to set my mind at ease?
#8
Is there any easy/quick way to cast a boolean variable as an integer (0 or 1)?

I've got a series of hotspots that can be switched on/off, and I'd like to be able to use their state to also modify their sprite number (hotspot.Graphic -= hotspotState).

I could just store their state as a 0/1 integer, but it seems more efficient to store it as a boolean if possible.
#9
I've been playing The Longest Journey lately (this is actually my first play-through!) and I've noticed a lot of people saying it has 'amazing' or 'excellent' voice acting, and that the voice-over work is one of the key things that make it such a great game. What I haven't seen, though, is anyone explaining why it's so excellent. No-one goes into any detail about what makes it brilliant, they just say that it is.

We're shooting for a fully-voiced release of Astroloco: Worst Contact when it comes out (see our In Development thread here), and I want to know what you think makes voice-acting great.

If you've done VO for adventure games before, what are the major pitfalls, and things to aim for?
#10






Get the demo (23.5MB):
AGS DatabaseDownload
Official Hungry Planet Games SiteDownload

[embed=640,480]<object width="640" height="480"><param name="movie" value="http://www.youtube-nocookie.com/v/ubX7MBA1_wg?version=3&amp;hl=en_US&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/ubX7MBA1_wg?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="640" height="480" allowscriptaccess="always" allowfullscreen="true"></embed></object>[/embed]

'Astroloco: Worst Contact' is my latest endeavour into the world of point & click adventure games. This time, a love letter to my favourite genre of all - science fiction. As with my previous games, which you may be familiar with (subAtomic and Plan M), I have my buddy Dave along to help me with development.
He's mostly been busy poking pixels into small spaces to make the character art. This time around, however, we're also bringing to bear the full force of our new development house 'Hungry Planet Games'.

Synopsis:
In the far future, humans explore and colonise space using ridiculously deadly, moon-sized trains - the titular 'Astro Locomotives'. They are operated by enormous, competing railroad companies and train vs. train combat is expensively common.

You play as two characters, both trying to uncover a galactic conspiracy and keep their jobs.
* Ronald, the dependable mechanic: Responsible for keeping Gilbert station running smoothly.
* Arianne, the roguish pilot: Driver of The Comet, and the best train driver in the company (if she could only stay out of trouble).

Lies Features:
* Trains. In space. That's worth the entry price, right there.
* More of my writing. That might be a positive or a negative, depending on how much you enjoy laughing until you dribble.
* Fully voiced! You'll also be able to turn the voice-over off, since I know some of you like to do that. Just know that every time someone ticks that particular box in the game settings, we'll execute one of our voice actors.
* Fully music-ed(?)! You won't be able to turn the music off. In fact, the volume slider starts at 100% and it only goes up from there.
* The 'unique' graphical style of subAtomic and Plan M!
* Interesting puzzles and minigames! I know a lot of you adventure gamers out there like to actually have some challenge in your games. For everyone else, just hold down your Escape key and hope it ends soon.
* An entirely reasonable retail price!

Pretty Pictures:
(Click 'em for full sized goodness)

















The full game will be coming out this winter. We'll be appearing on Steam Greenlight shortly, and are also in talks with other online distribution platforms.

Keep updated by following me on Twitter @GameDevIdeas, Hungry Planet Games @HungryPlanetGS, and also liking our page on Facebook!

We're also going to be at Adventure X 2012 this year, so come and say "hi" if you're going to be there! We promise we aren't all insane.
#11
One of the guys I'm working with has just told me that all compiled AGS games (or, at least, all 3.2.1 games we've made recently) are now coming up with a flag from Avast! Antivirus. This was on his computer, and on another person's, so it may well be across all PCs with Avast! installed. It only started happening today.

First they get this message:

(The file prevalence/reputation is low)

Then it says it couldnt find enough evidence to class it as malware but that [the user] should use extreme caution. The same error occurs with the game exe and winsetup.exe.

As a precaution, I uploaded the game exe to VirusTotal, but all 43 tests returned negative.

Something we should be aware of? This might mean Avast! is flagging all current AGS games as suspicious for some reason.
#12
Completed Game Announcements / Plan M
Sun 02/09/2012 14:07:28
My buddy, Dave, and I finished a new game for the Ludum Dare (you may remember our previous release, subAtomic). It's in the same vein of comedy sci-fi adventuring, but bigger and better!

Plan M






The arbitrarily evil Dr. M uses a nefarious machine (The Simianthesiser) to devolve everyone into apes, so he and Señor Banana can become supreme masters!
Fortunately for the human race, he didn't count on Detectives Vandall and Hopkirk - two survivors who will stop at nothing to put things back the way they were.

Features:
* Full-length point & click adventure!
* A story so packed with comedy it's liable to explode at any minute, covering you and anyone watching in a disgusting-yet-amusing goo!
* Stephen Hawking gives a conference from the ceiling!
* Meet a monkey pretending to be the president!
* Electrocute a small child!
* A working save/load system! (well, subAtomic didn't have one)
* 17 music tracks and almost 50 sound FX!
* And much, much more!



The game is substantially longer than subAtomic, and will probably take an hour or so of your time. That is, of course, a complete guess - your mileage may vary.
Almost all content was created within 3 days, and the entire AGS project was put together in Day 3 (also known as 'Oh-god-why Day').

What you're looking at here is the 'Enhanced Edition' which features the soundtrack/SFX, new/revamped scenes and a laundry-list of bug-fixes and tweaks based on community feedback.

Download:
The AGS game page with download link can be found here.
Note: If you entered the Ludum Dare #24 Compo/Jam you can find our page here! We'd love to hear what you think, and other LD48 entrants can submit a rating.
#13
I have a room in which there are no walkable areas, but I need to scale a character sprite. In other rooms, I've been able to use the built-in walkable area scaling property to set scaling factors of, for instance, 500%. Unfortunately, it seems that the Character.Scaling property is limited to a maximum of 200.

I was hoping someone could let me know if there's any reason for this limit, and if there's a way around it?

Thanks in advance!
#14
I'm aiming to integrate some achievement-style unlocks in an AGS game, but they need to be separate from game save files. I read in a different topic that static variables in AGS are persistent between game saves, but I doubt they are also persistent between launches of the game itself.

Is there any easy way to have a set of static, globally accessible variables (int and bool would suffice) which can be made persistent between save files and game launches?

As an example, a boolean which stores whether or not the player has ever unlocked DoorX in the game. Once it has been unlocked once in a playthrough, the variable is set to true. Even if the player quit the application, opened it up again and started a new game, the boolean would still show that they, at some point in the past, unlocked DoorX.
#15
Completed Game Announcements / subAtomic
Fri 27/04/2012 17:33:34
Well, my friend and I finished a new game in 72 hours (actually closer to 40 once you factor in sleep, eating and other priorities) which you can now download and play on your very own home computer entertainment system device PCs!
Without further ado, I present to you:

subAtomic





A dysfunctional family are miniaturised in their misguided search for a holiday, thanks to the scientific minds at S.H.A.T. (Space Holidays via Accelerated Transport).

Features:
* Visceral point-and-click action!
* Literally tens of hilarious jokes.
* Experience the beginning, middle, and end of a story. The decisions you make will completely shape your experience and the final outcome of the game.
* The lack of a save-game feature means your actions have real-world consequences.
* Witness the epic development of more than one character as you control some of their actions.
* subAtomic plunges you into the scene at the deep end, with more than 10 different, immersive sound effects!
* A rousing, all-original musical score.
* Features unofficial cameo appearances by Albert Einstein and Carl Sagan!



You can expect the game to last about 30 minutes on your first play-through (although some story paths are shorter). All(!) content was made within that very short time period (graphics, dialogue, AGS scripting, music, SFX). There are naturally a few things missing which I'd like to add to a Special Edition if reception is good; particularly full voice recordings and a GUI.

Download:
The AGS game page with download link can be found here.
Note: If you entered the Ludum Dare #23 Compo/Jam you can find our page here! We'd love to hear what you think, and other LD48 entrants can submit a rating.
#16
Is there a quick way to convert an ASCII KeyCode to a Char?

i.e.

Code: ags

keycodeToChar(65); //returns "A"


If not, what would be the easiest way of doing this?
I only really need to be able to do it for the alphabetical keys (65-90) if that makes things simpler.

This is for the purpose of generating random letters, so if there's another way of doing this please do let me know!
#17
Beginners' Technical Questions / Array length
Sat 27/08/2011 18:31:49
Hi guys,

Sorry if this has been asked before; it's a pretty simple question but the forum search function has fallen over.

How can I find out the length of an array in AGS?
Normally I'd expect an array.length() function, but I'm not seeing anything like that in the editor prompts or help files.
#18
Hi guys,

I'd like to do an effect whereby words float above the player's head (like thoughts) to allow them to interact with a computer (the words roughly outline what will be typed by the character).

I know that I could do this using objects with hotspots set on them and make them visible when necessary. I intend for the effect to be used several times during the game (in the same location), so I would end up with a sea of invisible objects.

I'm not sure how flexible GUIs are, as I've not done a huge amount with them thus far, but they don't seem to be quite as suitable as the above method.

The text to be displayed will be set, so there's no problem in creating sprites with the text on, but if I can make a dynamic version that makes less clutter in the editor then obviously that would be better.

Is there an easier way of doing this?
#19
Hey guys, quick question;

I have an inventory bar across the top of the screen, and every time the mouse moves over it the cursor changes to the regular pointer sprite (and back again when you move out of the GUI area).

How do I make it keep whatever action cursor was in use?
#20
Hey guys,

Some of you may know that I'm making a pretty big game at the moment. The background art is 1024x768 and all the sprites are full colour and alpha-blended.

I have barely 1/10th of my graphics in the editor at the moment (perhaps not even that) and the compiled .exe is already over 50MB in size!
The actual source graphics folder (and I mean ALL of the graphics for the game; including stuff that isn't even in AGS yet) is only 40MB, but every new sprite I import seemingly adds another megabyte or so; why is AGS hugely inflating everything?

I haven't even begun to add sound or music yet, and if there isn't a way to make AGS play nice then my game is going to end up being 1GB or more.  :-X

I have tried using the compress sprites option, but it made no difference at all.
SMF spam blocked by CleanTalk