Green Orb Quest

by LordAndrew
Collect orbs of the green variety.
ID:1145244
 
Navigate a deadly maze and collect all of the sparkling green orbs. Or, be the fastest and race to the end! Maybe even survive without perishing once.

Great game!
Nice work, AWESOME GRAPHICS LA! YOU A BEAST.

Simple yet fun, great work :D
Hmm, its a little annoying that if I'm pressing down and right, and my character could move right, he doesn't. When you're switching between movement keys (like pressing left, then switching to down), if both keys are held down at the same time, even for just a split second, the movement operation doesn't happen (when one direction is denied).
In response to FIREking
@Kaiochao and Fushimi: Thanks! :) Also I see you beat my record Kaio, I only managed to do it with 15 deaths.

@FIREking: I'm not really seeing what you're talking about I'm afraid. Moving and turning seems very responsive to me.
In response to LordAndrew
If I knew it was keeping track, I wouldn't have hopped off the edges to get back to the checkpoint faster.
Lol, I hope you can resist this year-wide contest. 11 games left, good luck lol.
In response to LordAndrew
LordAndrew wrote:
@Kaiochao and Fushimi: Thanks! :) Also I see you beat my record Kaio, I only managed to do it with 15 deaths.

@FIREking: I'm not really seeing what you're talking about I'm afraid. Moving and turning seems very responsive to me.

You must be completely lifting your finger off of the key before you press the next one, which actually is not what I do. There is a period of time where my finger is still on the last key pressed (milliseconds), and unless the key down at the right time, it won't move.

Here's how you can test it... right in the beginning, move all the way right until you hit the wall, then move all the way up until you hit the wall (you're now in a corner). Hold the right key, while tapping down every few seconds. There are times when your character will just do nothing but should actually respond to the down key press.
In response to FIREking
Fushimi wrote:
Lol, I hope you can resist this year-wide contest. 11 games left, good luck lol.

Thanks. It's definitely going to be a challenge pumping out eleven more games; I barely finished this one!

FIREking wrote:
You must be completely lifting your finger off of the key before you press the next one, which actually is not what I do. There is a period of time where my finger is still on the last key pressed (milliseconds), and unless the key down at the right time, it won't move.

Here's how you can test it... right in the beginning, move all the way right until you hit the wall, then move all the way up until you hit the wall (you're now in a corner). Hold the right key, while tapping down every few seconds. There are times when your character will just do nothing but should actually respond to the down key press.

Ah, I see what you mean now. Not entirely sure why that would be happening unless something in Smooth Tile Movement is causing that, as I don't do much with Move() myself at all.

If anyone is interested in messing around with the game or building their own map or anything, I've published the source code on GitHub. Be forewarned there is some nasty code in there as I clobbered this game together over the period of the last two days.
In response to LordAndrew
LordAndrew wrote:
Fushimi wrote:
Lol, I hope you can resist this year-wide contest. 11 games left, good luck lol.

Thanks. It's definitely going to be a challenge pumping out eleven more games; I barely finished this one!

FIREking wrote:
You must be completely lifting your finger off of the key before you press the next one, which actually is not what I do. There is a period of time where my finger is still on the last key pressed (milliseconds), and unless the key down at the right time, it won't move.

Here's how you can test it... right in the beginning, move all the way right until you hit the wall, then move all the way up until you hit the wall (you're now in a corner). Hold the right key, while tapping down every few seconds. There are times when your character will just do nothing but should actually respond to the down key press.

Ah, I see what you mean now. Not entirely sure why that would be happening unless something in Smooth Tile Movement is causing that, as I don't do much with Move() myself at all.

If anyone is interested in messing around with the game or building their own map or anything, I've published the source code on GitHub. Be forewarned there is some nasty code in there as I clobbered this game together over the period of the last two days.

It just depends on how you grab the keyboard. Some people use a loop, which is wrong. You need to use events that set values to 1 or 0 on up or down. Then you loop to check these values. If you use byond's built in mechanism for obtaining key presses, you'll get delays. Forum_Account's keyboard library is the only one that does this right.
In response to FIREking
Here's my keyboard library, which is very heavily influenced by Forum_account's...

/*
Written by: FIREking
*/


datum/proc/key_down(k, client/c)
datum/proc/key_up(k, client/c)
datum/proc/key_repeat(k, client/c)
datum/proc/focus_lost(client/c)
datum/proc/focus_gained(client/c)

client/proc/key_down(k, client/c)
client/proc/key_up(k, client/c)
client/proc/key_repeat(k, client/c)
client/proc/focus_lost(client/c)
client/proc/focus_gained(client/c)

var/list/keys_list = list(\
"w",
"a",
"s",
"d",
"q",
"e",
"space",
"escape",
"tab",
"shift",
"y",
"north"
)

client
var/tmp
focus = null
last_focus = null
input_locked = 0
list/keys = list()

North()
South()
East()
West()
Northeast()
Northwest()
Southeast()
Southwest()

verb/KeyDown(k as text)
set hidden = 1
set instant = 1
if(input_locked) return
keys[k] = 1
if(focus) if(hascall(focus, "key_down")) focus:key_down(k, src)

verb/KeyUp(k as text)
set hidden = 1
set instant = 1
keys[k] = 0
if(input_locked) return
if(focus) if(hascall(focus, "key_up")) focus:key_up(k, src)

verb/KeyRepeat(k as text)
set hidden = 1
set instant = 1
if(input_locked) return
if(focus) if(hascall(focus, "key_repeat")) focus:key_repeat(k, src)

proc/add_key(k)
winset(src, "macro[k]Down", "parent=macro;name=[k];command=KeyDown+[k]")
winset(src, "macro[k]Up", "parent=macro;name=[k]+UP;command=KeyUp+[k]")
winset(src, "macro[k]Repeat", "parent=macro;name=[k]+REP;command=KeyRepeat+[k]")
keys[k] = 0

proc/add_keys()
for(var/k in keys_list)
add_key(k)

proc/lock_input()
input_locked = 1

proc/unlock_input()
input_locked = 0

proc/clear_input()
unlock_input()
for(var/v in keys)
keys[v] = 0

proc/set_focus(x)
clear_input()
last_focus = focus
if(hascall(focus, "focus_lost")) focus:focus_lost(src)
focus = x
if(hascall(focus, "focus_gained")) focus:focus_gained(src)

proc/return_focus()
set_focus(last_focus)


to use:
mob
Login()
..()
src.client.add_keys()
src.client.set_focus(src)
key_down(k, client/c)
if(k == "north")
//character wants to move north
In response to FIREking
FIREking wrote:
If you use byond's built in mechanism for obtaining key presses, you'll get delays. Forum_Account's keyboard library is the only one that does this right.

What built-in mechanism are you talking about that isn't what Forum_account uses?
For the record, I used a keyboard handling system (and pixel movement) like Forum_account's long before his library came out :) (see: shootah). Mine was influenced slightly by Kakashi24142's K_KeyHandling, and all three define macros in the interface for key-up and key-down events. However, the "instant" verb setting wasn't around for Kakashi's library.
In response to Kaiochao
Kaiochao wrote:
FIREking wrote:
If you use byond's built in mechanism for obtaining key presses, you'll get delays. Forum_Account's keyboard library is the only one that does this right.

What built-in mechanism are you talking about that isn't what Forum_account uses?
For the record, I used a keyboard handling system (and pixel movement) like Forum_account's long before his library came out :) (see: shootah). Mine was influenced slightly by Kakashi24142's K_KeyHandling, and all three define macros in the interface for key-up and key-down events. However, the "instant" verb setting wasn't around for Kakashi's library.

If you rely on things like +REP, your events will be spaced apart at the keyboard repeat delay value reported by windows (users can change this). If you use built-in direction functions (North()), your response time is slower and the default implementation is clunky (if you try to move southwest but can only move south, it won't try to move you south, it will just return 0).
In response to FIREking
Right. The way you worded it was slightly misleading, as everything Forum_account's library uses is built-in, and it doesn't actually contain any movement loops... except for his library's movement-demo.
That was fun :)

I don't like the smooth tile movement however. I would prefer non-animated movement, but that's just me :)

For such a small game this had some memorable moments, like when you see the key surrounded by holes, or when you get to that big section of slidey-death-things all next to each other
Added some music to the game, lowered the volume of the "get orb" sound effect, fixed a few mapping goofs.
Yut Put wrote:
This game could have been made in half an hour. If you really spent a month making this, which is what the description implies and what the competition is more about, then you are either an illegal immigrant working 15 hours a day or you just have zero motivation or drive whatsoever to make games.

In all honesty, I probably put about fifteen hours into making this game. I had spent the whole month trying to come up with something, but none of my other ideas really panned out. I didn't start development on this particular game until mid-day on the 29th.

As for the competition's goal: the way I read into it was that you just created a game at your own pace a month, with no other real guidelines or restrictions to the challenge. I know a lot of games produced as part of 1GAM were recently done as part of the Global Game Jam, which only lasted two or so days.

Yut Put wrote:
On top of that, you've posted this game before on the forums. So this isn't new, it's just a tiny add-on to a tiny demo.

While there's not really any way I can prove this, this rendition was written from scratch, though it still retained most of the art assets and the concept. My programming style changed considerably in the last eight months, and I prefer to just start over instead of trying to build upon older projects of mine that use different code conventions and styles.

Yut Put wrote:
I'm not upset about this or with you, because I really don't mind having another game produced on the site, but coming from someone who I would have thought to be intelligent and creative, this is a bad joke. It's the embodiment of the BYOND elitist attitude, demonstrating the exact reason why none of the smarter community members ever get anything done. It's a lazy, poorly done extension to an existing demo. It's an excuse to publish a hub.

I will admit that this game was hastily put together and not the best thing I could do; I was extremely pressed for time and wanted to produce something to get in a January entry. I chose the concept from that earlier demo and wanted to flesh it out a bit more, though not so much that the scope of the game would have grown past what I would be able to accomplish in a small timeframe.

It was definitely never my intention for this to come off as a joke or something elitist, so if anyone saw it that way then I apologize.

Yut Put wrote:
But most of all, this is Green Orb Quest. So like it, or die from spikes and annoying controls.

Could you elaborate more on what you mean by annoying controls? Is it related to what FIREking was mentioning earlier?
Yut Put wrote:
The tile sliding was really annoying, because it was difficult to tell when your character would stop moving. It would also cause me to frequently run into pits.

Ah. I'll look into changing this (or adding an option to toggle it, if people are into that sort of thing.)

Yut Put wrote:
I tried not to imply that you were elitist, but instead imply that this is the kind of stuff the so-called "elitists" of the community often put out. I've got a decent amount of respect for you, and I'm just saying this is a bit disappointing.

I see. I do plan to add new things to the game and update it, since there's a lot more I could do with it.
Very good game.
It's actually pretty intense when you're high.
Page: 1 2