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

Messages - Funkpanzer

#21
1. Cassiebsg
2. Klatuu
3. Tabata
#22
I was just tryna get this pixel party started! :-[
#23
After the success of Dubreq's Stylophone, creator Brian Jarvis got to work on what would be his only foray into the world of personal computing. Boasting a 6.5" plasma display, 58 key stylus operated keyboard, single-button cursor, stylish chrome faced chassis, and internal speakerâ€"the Stylocom stood apart from the personal computers of 1975. It's most impressive feature was a self-contained record lathe that could record user compositions onto 2.5" vinyl discs.


Unfortunately, due to it's limited functionality beyond eight bar compositions, misophonic tonal quality, and tendency to crash when looping back to the start of a piece, the Stylocom was recalled hours before it's release. Nothing is known of what became of the thousands of un-shipped units but computer historians still believe at least a dozen or so managed to leave store shelves and may still be out there...

e: wowza I didn't understand the challenge at all! :D
#24
I've spent the last while adding a new room and puzzle to the game. In the MAGS version the player is tasked with retrieving a toy from the vending machines for Ernie with change they obtain from inside a conch shell (woof). In it's place, you will be sent on a quest to write them a personalized love poem!

Here's my WIP of Jocelyn's apartment, where the bulk of the poem segment takes place :



I've repurposed the vending machines thoughâ€"I couldn't imaging parting with the silly backstories for all the Hoppy Pals and Creepazoid figures I've spent so much time on already. :-[
#25


I've only had time to make the base car models so expect some very non-aerodynamic additions to some of the competitor cars. :D

Especially Hemo's Murder Machine...
#26
I just spent the last few days figuring out how scoreboards work and have so much more respect for racing game devs. :~(



Up next is collision-detection (again...) and getting competitors to go around one another... oh, and figuring out why point-of-interest locations seem to be influenced by player acceleration rather than distance... ???
#27
I didn't want to post until this was actually a "game" and not just a bunch of whirling numbers but things seem to be going a bit slower than expected. I'm making a road-race game where you keep an eye obstacles, fuel, and exhaustion. So far the base for the driving mechanic and fatigue are in place and I finally got the road to move by the player without tearing!





I'm mainly using trial and error to get AGS to do what I want so no promises! Still no clue how competitor AI is going to work. :-D
#28
Yes, if I went into audio and moved the order of files, it would play whatever was now first in the list.
#29
I found the culprit! The TV animation (View73) had "Run the next loop after this..." checked on it's last loop. If anyone else is experiencing this problem that may be your issue. Thanks again, Khris!
#30
Thanks for taking a look, Khris. I checked all the frames for both the reflection and the TV view and there's unfortunately nothing in there.

The weirdest part is that it's grabbing whatever the first sound is in the game's audio list and it's only affecting my MusicChannel.


UPDATE: I removed View 73 from the scene and even though it appears that it's not trying to play any audio, it fixed it! Thank you so much for your suggestion! I still don't know why but at least I can move on! :P
#31
I have a weird issue that is only affecting one room of my game. When the player enters the room, whatever the 1st file in Audio/Music is starts playing every three seconds. When I try to cue up another song in the room, it gets instantly replaced as well. I also attempted to enter the room from a different starting room and the same thing happens.

I know I'm missing something obvious but after two weeks of searching I feel like things are making less and less sense and my next step might be to start the room over.

Please excuse the messy script. I included my rep_execs and anything relevant from both the room and my global and I searched my entire game for any other MusicChannel, or the word "Play" that might be conflicting so I imagine the culprit is somewhere here.

Room script:
Code: ags

// room script file
bool firstEnters, bookOnTable;

function room_FirstLoad()	{

}

function room_Load()	{
	Ambient1.Stop(); // REPLACE THESE WITH AMBIENT TRACKS
	Ambient2.Stop();
	oTVglow.SetView(73, 0, 0); // ANIMATE THE TELEVISION
	oTVglow.Animate(0, 5, eRepeat, eNoBlock);
}

function room_AfterFadeIn()	{
	player.Walk(399, 102, eBlock);
	player.Walk(399, 107, eBlock);
	if (firstEnters==false) {
		firstEnters=true;
		player.FaceDirection(eDirectionLeft, eBlock);
		// SCROLL SCREEN LEFT
		int viewX = GetViewportX();
                int holdViewX = GetViewportX();
		int viewY = GetViewportY();
		while (viewX > 158) { // CAMERA IS TO THE RIGHT OF THE DESIRED POSITION
			SetViewport(viewX, viewY);
			Wait(1);
			viewX--;
		}
		cJoce.Say("*snork* - Oh, hey %s.", player.Name);
		cJoce.Say("Thanks for waking me up, I almost slept through Hoppy Pals!");
		// JOCE TURNS ON TV
		cAndre.Say("I thought you were only watching it with Cassie?");
		cJoce.Say("I wish but she ends up watching with her mom during the week so I need to keep up!");
		
		MusicChannel = aHoppyPals.Play(eAudioPriorityNormal, eOnce); // Theme starts playing
		setMusicVolume = 30;
		
		cJoce.Say("Shh! It's starting!"); 
		// SCROLL SCREEN LEFT
		while (viewX < holdViewX) {
			SetViewport(viewX, viewY);
			Wait(1);
			viewX+=2;
		}
		ReleaseViewport();
	}
}

function room_RepExec()	{
	if (player.Loop==0) oReflection.SetView(75, 3); // Mirror is Andre's back
	if (player.Loop==1) oReflection.SetView(75, 1); // Mirror is Andre's left side
	if (player.Loop==2) oReflection.SetView(75, 2); // Mirror is Andre's right side
	if (player.Loop==3) oReflection.SetView(75, 0); // Mirror is Andre's front
}


GlobalScript:
Code: ags

function repeatedly_execute() {
	
	//if (player.ActiveInventory
	if (tipLatch==true) {
		tipLatch=false;
		tips_touch();
	}
	if (inFight==true) {
		fightLatch=true;
		d1_1 = 0; // MILLIE RESETS HER CUBBY DIAL
		btnCub1d1.Text=String.Format("%d",d1_1);
		d1_2 = 0;
		btnCub1d2.Text=String.Format("%d",d1_2);
		d1_3 = 0;
		btnCub1d3.Text=String.Format("%d",d1_3);
		d1_4 = 0;
		btnCub1d4.Text=String.Format("%d",d1_4);
	}
	if ((fightLatch==true) && (inFight==false)) { // END OF ACT I, RESETS EVERYTHING FOR ACT II
		fightLatch=false;
		FadeOut(2);
		Wait(30);
		Ambient1.Volume=0;
		Ambient2.Volume=0;
		MusicChannel.Volume=0;
		Wait(240);
		timeline=11;
		// Sandra on the beach, Kai away, Chris closer to water
		cSandra.ChangeRoom(1, 1151, 134, eDirectionRight); // Make her sit down
		cSandra.ChangeView(60);
		cKai.ChangeRoom(4);
		cChris.ChangeRoom(1, 1144, 124, eDirectionRight);
		// Remove napper
		cNapper.ChangeRoom(4);
		// Place tanner
		cTanner.ChangeRoom(1);
		// Sit Ernie on the crate
		cErnie.LockViewAligned(33, 1, eAlignCentre);
		cErnie.SpeechView=63;
		cErnie.ChangeRoom(3, 76, 126, eDirectionRight);
		// SET UP MILLIE
		cMillie.ChangeRoom(1, 1105, 108, eDirectionRight);
		// Set up Andre
		player.SpeechView=3;
		player.ChangeView(3);
		player.ChangeRoom(1, 876, 102);
	}
  relativeX = player.x -160; // Update coordinates for UI placement
	
  //PLAYER OCEAN BOB EFFECT
  if (player.Room==5) {
		if (IsTimerExpired(5)) {
			SetTimer(5, 15);
			if ((playerBob<2) || (playerBob>5)) player.y++;
			else player.y--;
			playerBob++;
      if (playerBob==3) player.x++;
			if (playerBob==8) {
        player.x++;
        playerBob=0;
      }
		}
	}
  
	// BRING UP SET NAME
  if (setName==true) {
    gSetname.Visible=true;
    setName=false;
  }
}

// Clear inspector and active inventory
function scrub_ui() {
	// clear the inspector and active inventory
}

function repeatedly_execute_always() {
	if (player.Room==1) { // CALCULATE CLOUD PLACEMENT
		float playerAdjust = IntToFloat(player.x);
		float cloudCalc = playerAdjust / 6.0;
		cloudPos = FloatToInt(cloudCalc, eRoundUp);
	}
	
	if (player.Room==5) wet=true; // Player is in the ocean
	
	// CHANGE CURSOR GRAPHIC
  LocationType loc_type = GetLocationType(mouse.x, mouse.y);
  if ((loc_type != eLocationNothing) && (player.ActiveInventory==null)) {
    if (loc_type == eLocationCharacter) Mouse.UseModeGraphic(eModeTalkto);
		else if ((loc_type == eLocationObject) && (lblInspector.Text == "Hotrod")) Mouse.UseModeGraphic(eModeTalkto);  //HOVER OVER GILDA'S CAR
  }
	
  // FIND A WAY TO MAKE THE GAME SHOW A DIALOG WHEN LOOKING AT THE HOTROD WHILE IT'S RUNNING
  else if (player.ActiveInventory==null) Mouse.UseModeGraphic(eModeInteract);
	// UI hiding
	if ((gPause.Visible==false) && (IsInterfaceEnabled())) hideUI=false;
	else hideUI=true;
	// UI HIDING & STATES
	// FANNYPACK
  if ((hideUI==false) && (gCubbies.Visible==false) && (gStartmenu.Visible==false) && (hideInv==false)) {
    if ((mouse.x>103) && (mouse.x<225) && (mouse.y>135)) {
			if (zipLatch==false) {
				aZipDown.Play();
				zipLatch=true;
			}
      gFanny.Visible=false;
      gInventory.Visible=true;
    }
    else if (game.in_cutscene==false) {
			if (zipLatch==true) {
				aZipUp.Play();
				zipLatch=false;
			}
      gInventory.Visible=false;
      gFanny.Visible=true;
    }
	}
	else {
		gFanny.Visible=false;
		gInventory.Visible=false;
  }
	// MENU BUTTON VISIBILITY
	if (hideUI==false) gMenubutton.Visible=true;
	else gMenubutton.Visible=false;
	
	// ANDRE FOOTSTEPS
	if (player.Moving==false) footLatch=false;
	if ((player.Moving==true) && (player.Room==5)) { // ANDRE IS IN THE OCEAN
		int foot = Random(2);
		if ((player.Frame==2) && (frameCheck==false)) {
			frameCheck=true;
			if (stroke==false) {
				if (foot==0) Swim1 = aSplash1.Play(eAudioPriorityNormal);
				if (foot==1) Swim1 = aSplash2.Play(eAudioPriorityNormal);
				if (foot==2) Swim1 = aSplash3.Play(eAudioPriorityNormal);
				stroke=true;
			}
			else {
				if (foot==0) Swim2 = aSplash1.Play(eAudioPriorityNormal);
				if (foot==1) Swim2 = aSplash2.Play(eAudioPriorityNormal);
				if (foot==2) Swim2 = aSplash3.Play(eAudioPriorityNormal);
				stroke=false;
			}
		}
		else if (player.Frame!=2) frameCheck=false;
		return;
	}
	if ((player.Moving==true) && (player.Frame==2) && (footLatch==false)) { // Left foot
		int foot = Random(2);
		footLatch=true;
		if (player.Room!=2) {
			if (foot==0) aLfoot1.Play(eAudioPriorityNormal);
			if (foot==1) aLfoot2.Play(eAudioPriorityNormal);
			if (foot==2) aLfoot3.Play(eAudioPriorityNormal);
		}
		else {
			if (foot==0) aLfoot1hut.Play(eAudioPriorityNormal);
			if (foot==1) aLfoot2hut.Play(eAudioPriorityNormal);
			if (foot==2) aLfoot3hut.Play(eAudioPriorityNormal);
		}
	}
	if ((player.Moving==true) && (player.Frame==7) && (footLatch==true)) { // Right foot
		int foot = Random(2);
		footLatch=false;
		if (player.Room!=2) {
			if (foot==0) aRfoot1.Play(eAudioPriorityNormal);
			if (foot==1) aRfoot2.Play(eAudioPriorityNormal);
			if (foot==2) aRfoot3.Play(eAudioPriorityNormal);
		}
		else { // Andre is inside the hut
			if (foot==0) aRfoot1hut.Play(eAudioPriorityNormal);
			if (foot==1) aRfoot2hut.Play(eAudioPriorityNormal);
			if (foot==2) aRfoot3hut.Play(eAudioPriorityNormal);
		}
	}

	// SOUND MIX
	
	// Volume adjusters *THESE SEEM TO BE WORKING FINE*
	if (setMusicVolume!=MusicChannel.Volume) {
		if (setMusicVolume>MusicChannel.Volume) MusicChannel.Volume ++;
		else if (setMusicVolume<MusicChannel.Volume) MusicChannel.Volume --;
		else if (setMusicVolume<=1) {
			MusicChannel.Stop();
			setMusicVolume=saveUserMusicVol;
		}
	}
	if ((nGameLatch==true) && (player.Room==1) && (MusicChannel.IsPlaying==true)) { // THIS IS USEFUL!
		MusicChannel.Volume--;
		if (MusicChannel.Volume==1) {
			MusicChannel.Stop();
			nGameLatch=false;
		}
	}
	// AMBIENT CHANNEL 1
	if (player.Room!=4) {
		if (player.Room==1) { // Is playing ocean ambient, mix based on distance
			// RC plane mixer
			RCx=oRCplane.x;
			if (RCx!=0) {
				int RCcalc;
				int RCpancalc;
				if (RCx<player.x) {
					RCcalc=player.x-RCx;
					RCpancalc=RCx-player.x;
					if (RCpancalc<-100) RCpancalc=-100;
					if (RCpancalc>100) RCpancalc=100;
					RCchannel.Panning=RCpancalc; // PAN LEFT
				}
				if (RCx>player.x) {
					RCcalc=RCx-player.x;
					RCchannel.Panning=RCpancalc; // PAN RIGHT
				}
				if (RCcalc>98) RCcalc=98;
				if (RCcalc<1) RCcalc=1;
				if (RCchannel.IsPlaying==true) RCchannel.Volume=100-RCcalc;
			}
			// Ocean ambient
			// PAN THE OCEAN LOOP
			int Amb1PanCalc = 1297 - player.x;
			float Amb1PanHold = IntToFloat(Amb1PanCalc / 2);
			Amb1PanCalc = FloatToInt(Amb1PanHold, eRoundUp);
			if (player.x<1097) Ambient1.Panning=98;
			else if (player.x>1297) Ambient1.Panning=0;
			else Ambient1.Panning=Amb1PanCalc;
			
			// Mix the ocean loop
			if (player.x<333) Amb1Mixer=1570-333;
			else if (player.x<1570) Amb1Mixer=1570-player.x;
			else Amb1Mixer=1570;
			AmbCalc=IntToFloat(Amb1Mixer)*0.1034;
			Amb1Mixer=FloatToInt(AmbCalc, eRoundDown);
			if (Amb1Mixer>99) Amb1Mixer=99;
			Ambient1.Volume=100-Amb1Mixer;
		}
		else if (Ambient1.Volume!=2) {
			Ambient1.Volume=6; // Player is not on beach
			if (player.Room==2) Ambient1.Panning=-98;
			else if (player.Room==3) Ambient1.Panning=60;
		}
		// AMBIENT CHANNEL 2
		if (timeline<6) Amb2Adjust = 390; // Hot rod ambient
		if (timeline>6) Amb2Adjust = 330; // Food truck ambient
		if (player.Room==1) { // Is playing truck area ambient
			if (player.x>Amb2Adjust) { // East of the food truc
				Amb2Mixer=player.x-Amb2Adjust;
				float Amb2IntFlo = IntToFloat(Amb2Mixer / 3);
				Amb2Mixer = FloatToInt(Amb2IntFlo, eRoundUp);
				if (Amb2Mixer>90) Amb2Mixer=90; // 0 = Loud, 100 = Quiet
				if (Amb2Mixer<1) Amb2Mixer= 1; // Stand in front of sound 
				Ambient2.Volume=100-Amb2Mixer;
			}
			else { // West of the food truck
				Amb2Mixer=Amb2Adjust-player.x;
				float Amb2IntFlo = IntToFloat(Amb2Mixer / 13);
				Amb2Mixer = FloatToInt(Amb2IntFlo, eRoundUp);
				if (Amb2Mixer>65) Amb2Mixer=65; // 0 = Loud, 100 = Quiet
				if (Amb2Mixer<1) Amb2Mixer=1;
				Ambient2.Volume=100-Amb2Mixer;
			}
			
			// Pan the hot-rod		
			int Amb2PanCalc = Amb2Adjust - player.x;
			float Amb2PanHold = IntToFloat(Amb2PanCalc / 2);
			Amb2PanCalc = FloatToInt(Amb2PanHold, eRoundUp);
			if (player.x< Amb2Adjust - 194) Ambient2.Panning=98;
			else if (player.x> Amb2Adjust + 194) Ambient2.Panning=-98;
			else Ambient2.Panning=Amb2PanCalc;
		}
		else Ambient2.Volume=100;  // Player is not on beach
	}
	//
  if (player.Room!=2) player.Baseline=player.y;
  /* DEBUG SHITS */
  lblPlayerX.Text=String.Format("x: %d",player.x);
  lblPlayerY.Text=String.Format("y: %d",player.y);
  lblTime.Text=String.Format("%d",timeline);
  if (blowing==true) lblDblow.Text=String.Format("blowing = 1");
  else lblDblow.Text=String.Format("blowing = 0");
  if (nearCar==true) lblDcar.Text=String.Format("nearCar = 1");
  else lblDcar.Text=String.Format("nearCar = 0");
  if (gildaTalking==true) lblDgil.Text=String.Format("gildaTalking = 1");
  else lblDgil.Text=String.Format("gildaTalking = 0");
}


:(
#32
@Pilchard Glad you dig the vibe!

Thanks for the feedback, I too felt like something was wrong but pushed forward anyways! I'm glad to see some of you liked the original.

I centered the text and moved everything away from the middle:


- and with the buttons visible:


I need to take a couple of days away from it but I'm thinking something in between the two designs would work better; maybe dropping the lifeguard hut, making the radio smaller, and moving the chair further out? There is also a very big part of me that wants to make the intro screen a short panning animation that has the hut to the left of the chair so it's not a problem anymore...

@Mandle: In the first version clicking "New Game" and it cutting to the big empty beach felt really redundant. You saw the chair in the menu already so it just felt like it moved over a few pixels. I wanted to establish how isolated Andre is by cutting from a busy, forced perspective collage with upbeat music to this flat shot of him reading.

@selmiak: It could look good with a straight up gothic font.


#33
The main menu got a more appropriate overhaul. Throughout the game, a lot of the music comes from a small portable radio that Ernie has with him. In the MAGS version I had this weird brick that was based off a 70's portable radio but it always felt out of place and I couldn't find a good way to implement it into the game.

Old main menu:


New main menu WIP:


It's still not quite finished but I think it's a nice, busy contrast to the stark beach in the opening scene.

Here's the new menu music: https://soundcloud.com/charlietwitch/menu-theme/s-9IGCL

Let me know what you think!
#34
I was taking a break from my crazy life with some sweet, sweet Cuphead and remembered I wanted to release this before the end of the August! So while this strange, 24°C October rain pours down and before climate change or nuclear winter makes computers, and more specifically interactive fiction, a thing of the past I'm going pour myself a drink and hammer out what's left!



In the last few weeks the main beach area got a big overhaul and a lot of non-essential items and NPC's have been added. There is also a complete soundtrack now, including a big thumping dance version of the game's theme for closing scene.

I'm really looking forward to sharing the complete version with ya'll, hopefully sooner rather than later!
#35


We're past games needing to be fun, right? (wtf)
#36
Thanks guys!

@Hobo: Working in 8 colours started as a nightmare but I learned so many new things about colour theory and shading that I can't look back!

Mildly spoilery...



This was the first water scene I attempted but I think it turned out the best! Shoutout to mid-summer me who thought the ocean was made out of balls. :cool:



#37
Thanks AnasAbdin!

I had time to go in and finish all the backgrounds last week and add some water animations.




#38
Quote from: Eggie on Tue 18/07/2017 23:37:56I don't know if everyone else is having this thought a lot as a result of this contest but this game engine and community we like... it's still pretty hecking good, right???
Damn right! :-D

Congrats Tycho and Brane! This is the second time I got to take part in a massive MAGS and it was so fun to see all the amazing work trickle into the thread. My only regret is not voting for Bustin' the Bastille because that gem definitely deserved more love!
#39
The overwhelming level of positivity and thoughtful criticism you're all so willing to provide is beyong humbling. Thank you. :-[
#40
I thought I'd share a little progress update! The final "puzzle" is fully scripted now and I had time to put in all the background junk I had planned! Here are some details from the lifeguard handbook:


The bugs and dead-ends you guys found have been dealt with but I still have a big chunk of animation left and to script the final scene. I'm not quite sure how to roll out the beta for testing, but I'm thinking of doing a private one to avoid more people trying the unfinished game. If anyone has any advice it's more than welcome! :-D
SMF spam blocked by CleanTalk