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 - Calin Leafshade

#1
That's very sad.

While he was sometimes an abrasive personality, he was always passionate and sincere which are rare qualities.
His talent was also undeniable. The world is worse off.

Cancer is a cruel thing.
#2
General Discussion / Re: Where`s m0ds?
Wed 10/10/2018 17:18:06
m0ds, I'm disappointed.

This is pure cookie-cutter stuff.

"I didn't get my deserved fame and glory because the evil SJWs took it away from me with their professional victim hood."

This is like bigotry fuel 101.

Dude, you *scammed* this community out of a couple of grand to make a game *years ago* that you didn't. How can you possibly expect to have any good will left?
And you expect people to believe that the charity money "took a little time" to get there. How long does it take to write a cheque my good fellow?

You're grasping at straws, pal.
#3
Forgive my ignorance but what is the "Thimbleweed mode"?

It looks the same to me.
#4
The money issue has kinda already been answered.

Dave Gilbert tried to pay several people to work on AGS, including myself. All refused.
CW himself said that he doesn't want money.

I mean, show me *anyone* who would work on AGS for a reasonable sum who has the skills to do so.
#5
We could start an indiegogo and then never deliver a product, eh m0ds?

The point is that you couldn't pay me enough money to put up with supporting that code base.
It has to be a labour of love or you just won't get the commitment you need.

Professional programmers just don't go into open source projects to get rich.. there are better ways of doing that.
#6
Well I mean, to be clear, none of my work is dependent on AGS in any way. It's an entirely new engine that borrows some of AGSs concepts because they are good.

This is really how software gets developed. I try something with a unique perspective, so does Tzachs, so does scotch and then the best one "wins" so to speak. My "no-editor" approach is faster and easier for power users but less friendly for newbies and that's ok. The people who don't want the complexities of an editor can use Adore and the people who think the editor provides a good point of reference can use Tzachs'.

I'm certainly not forking AGS in any sense and AGS developed games would not work in Adore.
#7
If we're sharing adventure game engines:

Adore is at a stage now where it is "usable" with caveats.

It's not a direct reimplmentation of AGS like Scotch's but it shares lots of similarity with the AGS design.

- Lua based scripting
- No IDE, all edited with text files and folder structures which, instinctively, seems faster than using AGS
- Build script based so I provide things like raw Photoshop files and a script extracts hotspots and stuff from it. Why reinvent the bitmap editor when better tools exist?
- Live reload of assets by pressing a key. One of AGS's bottlenecks is the slow compile speed and getting back into the game to test. In adore you can just press F9 and it reloads all the animations, rooms, script code and so on while keeping the game state ocnstant
- Resolution independent rendering. This allows you to render all your "game" stuff at the game res but UI/text at native resolution. This is becoming more acceptable as low res becomes as aesthetic choice rather than a limitation (like The Last Door)
- Two parallel threads similar to AGS's rendering/scripting dichotomy. Mine uses Lua coroutines to accomplish it.
- Animations are spritesheet based with some configuration. I rarely found that I reused sprites in lots of different views so it seemed like a complication.
- Pixel shader support with some effects built in (Black and white, bloom, saturation boost etc)

Some code to show how coding generally looks in Adore:

Code: lua

-- A room
local room = adore.scenes.new("maintenance")
room.ambientLight = {110,110,130}
room.bloom = true
room.scaling = {0.45,0.6}

function room:afterFadeIn() -- Room events
	
	aKass:say("I'm in! Man this place reeks of smoke. Someone's been taking breaks in here.")
	aRepro:infolink("This room's not supposed to be in use, Kass. Be careful.")
	aKass:say("When am I not?")
	aRepro:infolink("Well...")
	aKass:walk(1496, 930, true):face("right")
	aKass:say("Damn it. The door's locked.")
	aRepro:infolink("Turn back now! The virus will keep.")
	aKass:say("No, I said I'd do it today, I even brought this sweet card reader.")
	aRepro:infolink("That's not going to help you in here, is it? You were gonna steal a pass from someone in the lobby. Turn back.")
	aKass:say("No, if I wuss out I'll never impress anyone. If you're not going to help, stop blabbering so I can max my bandwidth. I'm sure there's something in here I can use.")
	
end

room.hAccessPanel = room:newHotspot({ -- Room hotspots
	name = "Access Panel",
	clickable = true,
	interact = function()
		if not room.openPanel.visible then
			aKass:walk(1670, 940, true):face("right")
			adore.wait(20)
			room.openPanel.visible = true
			aKass:say("Just pops right off!")
		else
			aKass:face("right")
			aKass:say("The security circuitry for the door. I need to overload it somehow.")
		end
	end,
	useInv = {
		cigfoil = function() -- When the "cigfoil" inventory item is used on the hotspot
			if not room.openPanel.visible then
				aKass:say("I need to take the casing off first.")
			else
				aKass:walk(1670, 940, true):face("right")
				aKass:say("I should be able to override the door's security circuitry by connecting these two terminals. Thankfully this little bit of foil should work...")
				Latency.activeInventory = nil -- Custom inventory implementation
				aKass.inventory:removeItem(iCigFoil)
				TODO("Animation of kass shorting the panel")
				TODO("Sound indicating door has unlocked")
				room.hDoor.unlocked = true -- Custom local state
				aKass:say("...and there we go!")
			end
		end
	},
	wiki = { -- Custom data for a hotspot
		source = "Free//Net Security News",
		text = "After getting locked in the university copy room with his co-worker Dr John Foster, Dr Kevin Schriebmen (UCL) demonstrated it was possible to bypass the S37 electronic lock by bridging two connections in the security panel."
	}
})


Code: lua

--A module script

adore.event("on_mouse_press", function(x,y,b) -- Event based
		local scene = adore.scenes.getCurrent()
		local sx,sy = adore.camera.toRoom(x,y) -- Dynamic camera rather than viewport, can be rotated, zoomed, translated
		if scene:onClick(sx,sy,b) then -- Allows a scene to "catch" a click
			return
		end
		local hit = scene:query(sx,sy) -- Query a scene at a location to get all the stuff there
		if b == "l" then
			if Latency.activeInventory then
				if hit and hit.clickable then
					if hit.useInv then
						local fn = hit.useInv[Latency.activeInventory.uniqueName]
						if type(fn) == "function" then
							fn(hit, Latency.activeInventory)
						elseif type(fn) == "table" then
							for i,v in ipairs(fn) do
								aKass:say(v)
							end
						elseif fn then
							aKass:say(fn)
						else
							aKass:faceMouse()
							aKass:say("That won't work")
							Latency.activeInventory = nil
						end
					end
				end
			elseif not hit then
				aKass:walk(sx,sy)
			elseif hit.clickable then
				sayOrDo(hit, "interact")
			end
		elseif b == "r" then
			if Latency.activeInventory then
				Latency.activeInventory = nil
			elseif hit then
				Latency.wiki.show(hit,x,y) -- Custom functionality
			end
		end
	end)
#8
I know I haven't been around for a while but the main reason I come back to AGS every so often is simply the speed I can get results.

Adventure Creator has the same problems every other unity frankenstein has: butchered concepts to fit a use case.
Scripting in adventure game engines is always hard because you essentially have two threads of execution, the game logic and the engine logic.
AGS's solution to this is just so damn easy to work with.

You want that in Love2D? you need coroutines.
Want that in Unity? Coroutines or threads.

In AGS you just chain your commands and you're golden. If you want some concurrency you can use rep_ex_always. It's just so fucking easy.

There are people who have made good games with AGS who don't know their arse from their elbow when it comes to programming and there is just no other engine in which that is possible.

The strength of AGS doesn't lie in its antique codebase, it lies in the fundamental design choices.

What you need is AGS4. (4GS?)
#9
you tried to "pick up" a cloth? I don't even understand what that would entail.

What absurd nonsense.
#10
The snow is a fullscreen animation made in after effects. It's only really possible at low resolutions because of AGS's restrictive sprite cache.
#11
It's nearly June, guys.
#12
The game was something of a test of the format, yea. I'm surprised at how well it's done considering how niche it is (even for adventure games).

So yea, expect something else in this format with a bit more meat.
#13
The game is part of Adventure Jam so rating the game and voting for it is very much appreciated if you enjoyed it!

http://gamejolt.com/games/him/150136
#14
General Discussion / Re: Alternative Knowledge
Sat 21/05/2016 14:47:33
Anything is toxic in high doses. That's why we call them "high doses".
#15
Quote from: Cassiebsg on Sat 21/05/2016 09:27:46
Can you provide a mirror, please? :)

Added a direct download mirror : http://users.sanctuary-interactive.com/~steve/Him-v1.1.zip

Quote from: Haggis on Sat 21/05/2016 10:31:23
Do you plan on expanding it at all - the UI has lots of possible interactions but I don't think I used some of them. Such as 'strike'! Maybe I missed some secrets?

Probably won't expand this particular story since it's kinda done but we do plan to use this UI for further stories that aren't built under such tight time constraints
#16
Him - A Horror Adventure

A good old fashioned haunted house story.

Made by:
Calin Leafshade (@CalinLeafshade) - Words and code
Sookie Sock (@SookieSock) - Graphics

http://www.adventuregamestudio.co.uk/site/games/game/2055/

#17
You need to find the acwin.exe file, right click, properties, unblock.
#18
General Discussion / Re: Alternative Knowledge
Mon 07/03/2016 10:19:51
#19
Quote from: Dave Gilbert on Thu 04/02/2016 11:34:13
Calin Leafshade's spritefont renderer is something I am also looking into, but it doesn't appear to be able to render fonts to a GUI.

Does.
#20
HTC phones have been my favourite for about a decade now. The HTC One is a beautiful phone.
SMF spam blocked by CleanTalk