## My Adventure Game Engine - Making Way For Adventure Engine 2

TechnoCat
Inner party member
Posts: 1611
Joined: Thu Jul 30, 2009 12:31 am
Location: Denver, CO
Contact:

Jasoco wrote:
TechnoCat wrote:That menu looks very sexy The animations indeed did look smooth. Reminds me of a Zune for some reason.
Ew... I hope not.
It is the thin serif font and the sliding menu items. Youtube - Hands-on with the Zune HD

Jasoco
Inner party member
Posts: 3650
Joined: Mon Jun 22, 2009 9:35 am
Location: Pennsylvania, USA
Contact:

I'll admit, the Zune's new UI is nice, but it's been done before all over which is what I am preferring to emulate. I hope to do some really awesome effects with my menus when the game is finished even having some of those effects in the game itself maybe in the Inventory screen. I'll be adding scaling and rotating effects to the animations too. I just wish I could use the font calls with scaled and rotated placement while still keeping the width and alignment parameters.

Will 0.6.0 do this?

Also, I love the thin font. It's called Helvetica Neue (Arial is for posers. Helvetica is the original Arial and has been around waaaaay longer than Arial.) on the UltraLight setting. It's really nice for GUI's and I really like the black on white with the subtle shadow. I wish we had a way to blur an image so I could blur the shadow font slightly. I'd love a hardware accelerated blur option for images and rectangles/shapes that would blur anything behind its transparency. Think the Vista and Windows 7 and Snow Leopard Dock menu and Stacks and the menubar. They place a colored shape over the background then blur the contents behind it to keep the focus on the front window. This is doable via OpenGL and would be an awesome feature if LÖVE took advantage of it. It'd be a setting.

Code: Select all

love.graphics.setBlur(number with 0 being no blur/default.)
--For blurring the image/imagefont/object.

love.graphics.setBackgroundBlur(number with 0 being no blur/default.)
--For blurring the background behind the image/imagefont/object.
Would be so useful in menus where we'd have an overlaying transparent background blurring out the background objects. It would really wow players.

Oh, and I wish I could figure a way to get mouse input into the interface, but it just doesn't fit. I mean the game is only playable via the keyboard anyway. Mouse controls would be out of place. So I won't be using it at all unless I can figure out a gimmick that uses it. I could go the Phantom Hourglass route and have the mouse control the player's moving and attacking but that's soooo much work.

Jasoco
Inner party member
Posts: 3650
Joined: Mon Jun 22, 2009 9:35 am
Location: Pennsylvania, USA
Contact:

I have a fully working Scripting system in place. Based on Lua now. But it will still need work obviously. While you can use inline if/then/else's at runtime they all depend on the state of the game when the script is loaded rather than as it is being run. Because it loads it all in at once.

So I will still need to get a working inline if/then/else method in place especially when I get Query style dialogs in place. (Ones that ask questions and require input from the player then take action based on their answer) I guess if I can get a system in place that allows the engine to load/append more script lines while still in a script I could do that. This will take some work.

An example script:

Code: Select all

table.insert(script, {c = "DIALOG", p1 = "0", p2 = "Hello! I am a test dialog and I am awesome!\n\nAm I not?", p3 = "", p4 = "", d = false})
table.insert(script, {c = "WARP", p1 = "2", p2 = "5", p3 = "5", p4 = "D", d = false})
if playerMoney < 1000 then
table.insert(script, {c = "DIALOG", p1 = "0", p2 = "You like moneys??", p3 = "", p4 = "", d = false})
table.insert(script, {c = "GIVEMONEY", p1 = "1000", p2 = "", p3 = "", p4 = "", d = false})
end
If you have less than 1000 monies it will give you 1000 monies. Else it won't. It also warps the player to another map.

Next I have to work on hotzones and switches and activating scripts when talking to NPC's. Once I have those working I will upload a demo to play with. Providing you all behave.

bmelts
Party member
Posts: 380
Joined: Fri Jan 30, 2009 3:16 am
Location: Wiscönsin
Contact:

/me behaves

Seriously, I'm really looking forward to checking this out. And to receiving free monies .

Jasoco
Inner party member
Posts: 3650
Joined: Mon Jun 22, 2009 9:35 am
Location: Pennsylvania, USA
Contact:

Tests are going well. I created a long "Cutscene" style intro script where one NPC will wander around talking about her plans, then another runs up and they have a conversation ending with the second one running into the little house.

The whole time I had Kefka in my head as he was the inspiration.

I just need to put in some camera controlling scripts. Where the camera is locked to either the player, an NPC, an enemy or a fixed location. I write my own "camera" stuff. Controlling the camera will give me better control over the flow of cutscenes and stuff.

napco
Party member
Posts: 129
Joined: Fri Jun 12, 2009 9:28 pm
Location: Ital... ehm...

I was using lua too as a scripting system, but i've run into the same problem. I avoided it by leaving lua and using a multidimensional tables-reading algorithm that allows me to include all map data (tiles, npcs and scripts) in a single file with a clean syntax. In this way (simple to implement, but difficult to explain, i can easily use IF/ELSE and LOOP/BREAK LOOP control structures). If you are interested i could explain/post it.

Jasoco
Inner party member
Posts: 3650
Joined: Mon Jun 22, 2009 9:35 am
Location: Pennsylvania, USA
Contact:

Maps and scripts need to be kept separate. Since scripts can be used on multiple maps. I'm against putting everything in one file as it makes it difficult to edit just one file. I'd rather have all my maps in separate files, all my scripts numbered in separate files, and all my images in separate PNG's. NPC's are also created separately as they can go on any map you specify. (Even ones that don't exist if you just want them out of the way for a while. Exit, stage left.)

I have a basic camera locking function in place. Where you can lock the camera to the player, an NPC or a specific point at any time. Using this will allow me cinematic freedom when it comes time for a real game and story. It doesn't pan yet, but that's a simple bit to code and an extension of my Animation algorithm.

Gonna work on that now. Then maybe hotzones and switches later.

napco
Party member
Posts: 129
Joined: Fri Jun 12, 2009 9:28 pm
Location: Ital... ehm...

Uh, with script i mean a set of instruction attached to a map object (npc, chest, door etc...) to be executed in certain conditions (keypress etc...)... It's difficult to find two npc in different maps that say the same thing, so i prefer to keep it in the map file.

Jasoco
Inner party member
Posts: 3650
Joined: Mon Jun 22, 2009 9:35 am
Location: Pennsylvania, USA
Contact:

NPC's should be treated as actors. One per game. That can move around. Scripts can be created to include every single line of dialog they will say when you talk to them by using if/then/else's and variables (Flags)

The only time a duplicate NPC will be used is if it is an alternate form of the original, like someone who was promoted and now wears a new uniform.

Otherwise it's the same NPC so it can be moved around from map to map freely like a real person.

This is the way it is done in other games. And the way I do it.

And switches are what control conditional scripts anyways. Switches are also like NPC's in my world, in that they exist once, and can be turned on or off or only on or only off and can run scripts based on how they are activated, either through a toggle key or a push like the push switches in Zelda.

Hotzones will be used as switches that activate when the player enters an area.

You must treat your game world objects like real world objects. This is my credo. Motto. Whatever. My belief. Treat your game world objects like real world objects and they will surprise you.

Jasoco
Inner party member
Posts: 3650
Joined: Mon Jun 22, 2009 9:35 am
Location: Pennsylvania, USA
Contact: