Recent posts by dragon_of_celts on Kongregate

Flag Post

Topic: Collaborations / Need playtester and music

First off, dialogue that progresses at a set rate (and especially at a rate that doesn’t even take the length of text into account) is not a good idea, as some people read faster than others. Add to that that the dialogue changes positions so that you have to locate it before you can start reading. I managed to read most, but not all, of the intro dialogue, but english is my native language and I’m a fairly fast reader (on most days, anyway). You should definitely let the player choose when to advance the dialogue, or at worst give speed, pause, and rewind controls to them.

Also, the dialogue that appears when you kill something does not take into account its position in the game world. Being partially off screen is OK if I can move so that I can read it, but if I kill something close to the edge, the dialogue should make sure that its boundary is fully within the gaming environment.

Fighting the boss in “asktimes” (if I was doing anything to him, I couldn’t tell — there needs to be some recognizable indicator for it being damaged), I died. There is a “continue” button when you die that doesn’t seem to do anything. So I go back to the level select screen and choose “evol”, but I’m right back in the boss battle, as though I pressed “restart” (restart would normally make me think that I would start the whole level over).

One of your markers reads “I have write it down… Before I forget everything…” (missing “to” between “have” and “write”).

Dailogue bubble: “Movies, games, books, they are all seem so much more fun than life” (remove “are”).

If I go left from the start screen, there are a group of islands with creatures on them, but it doesn’t look like I can reach them. Is that intentional (that they are out of range)?

That’s it for now.

 
Flag Post

Topic: Game Programming / Problems with resetting

Originally posted by dragon_of_celts:

Gah…

Just to be clear, I was getting frustrated at myself for failing to realize I needed to mention that, not at you.

Originally posted by moynzy:

Done the getter and setter in the onGround class,

I’ll listen to your advice and listen to 953 and put the objects in to an array and loop through them and remove.

Thanks guys. Many thanks.

You’re welcome. Let us know if the invisible goblin issue has been resolved once you convert it.

 
Flag Post

Topic: Game Programming / Problems with resetting

Gah… No, it doesn’t like it because with testRemoved typed to DisplayObject, it doesn’t recognize “status” (since DisplayObject doesn’t have it)… As 953 said, if you just put them in an array, you can get around all of these problems, because you won’t need to type the object as DisplayObject in the first place (because you won’t need to use getChildAt). In order to access status with testRemove as a DisplayObject, you’ll need to cast testRemove to OnGround as so:

if ((testRemove as OnGround).status == OnGround.STATUS_REMOVE)   

It’s really convoluted and messy, and using arrays is so much better (and easier). You then won’t need to constantly use getChildAt calls, just index into the array (I see you’re using an array for Knife objects, so you must already know something about them).

If you are trying to access a var that is protected from outside the object itself, then it will throw an error. Use a getter/setter method(s), or the usual function pattern and call that:

public function getStatus():int
{
     return status;
}
 
Flag Post

Topic: Game Programming / Problems with resetting

Ah, well if OnGround extends MovieClip, then anything that extends OnGround is also a MovieClip.

Now that I think about it, though, getChild/getChildAt returns a DisplayObject (which MovieClip extends), so you have to change testRemove to that. Sorry, I should’ve realized that earlier.

Change it to this:


var testRemove:DisplayObject;

Edit: Ninja’d. I was initially going to say the same thing about arrays vs. getChild, but I thought it might be a bit too much. Also, I wasn’t sure if he was using childrenOnStage somewhere else, which is why I left it in… Ugh, I guess I should’ve taken a bit more time looking at it and responding (and not dividing my attention).

 
Flag Post

Topic: Game Programming / Problems with resetting

If all of the relevant classes extend from OnGround, you should make testRemove an OnGround reference variable (pointer) instead of MovieClip. Sorry, I had assumed your OnGround class extended MovieClip, and since I didn’t know what other classes might be using the function, I used MovieClip (also assuming any other classes using it were extended from MovieClip).

 
Flag Post

Topic: Game Programming / Problems with resetting

To make your removal code simpler, iterate the loop backwards instead:

var testRemove:MovieClip;
for (var b:int = childrenOnStage - 1; b >= 0; b--)
{
     testRemove = getChildAt(b);
     if (testRemove is Goblin || RedGoblin)     // * see note below
     {
          removeChild(testRemove);
          --childrenOnStage;
     }
}

* As far as I’m aware, the “is” operator is fairly heavy, and should be avoided when possible (not to mention it is inflexible and inelegant). Better to use a status variable (for example) and check that:

// in OnGround class global variable declaraction section (assuming OnGround is the superclass for all relevant classes)
public static const STATUS_REMOVE:int = -1;
public var status:int;     // better to use getter/setter functions, but I'll leave it public for simplicity
// in object removal code, change the following things:
// you'll need to change testRemove's data type to OnGround (or whatever the relevant superclass is):
var testRemove:OnGround;
// replacing the "is" line:
if (testRemove.status == OnGround.STATUS_REMOVE)

Then, if you have object types that you don’t want to remove for whatever reason, you can keep it from assigning STATUS_REMOVE to its status internally, and you won’t need to check for object types.

Originally posted by moynzy:

Because I remove everything at the end of the game, which is bad practice I know.

What I should do is

If(life == 0)//go to this frame, then removeChild(getChildAt(c)) and then update the numbChildren.

But this doesn’t reset it’s variables, so I don’t destroy it completely.

Um… What? If you remove it, since you don’t appear to have references to it (otherwise, why would you keep using “getChildAt()”?), it will be garbage collected and destroyed. In any event, any new Goblin/RedGoblin object you create would get initialized just like the first instance you create (except for static variables, which you don’t appear to be using).

Anyway, as to your original issue, try adding this to the init and reset functions (why do you have two functions that do exactly the same thing? If you’re planning on adding functionality to init that won’t be in reset, have init call reset to set the variables):

gotoAndStop(1);

As I’m not familiar with timeline coding, I don’t know if it will help (if you’re creating new objects, I would think their frame would already be set to 1 initially). I would recommend looking up sprite sheet animation on Google/Bing/whatever.

 
Flag Post

Topic: Game Programming / [AS 3]Some Advice about Accessing objects in an Array

Originally posted by Oboro_Moon:
for (var i:int=0; i<maxDice; i++) {
var die[i] = new Die1();

however this throws up mad syntax errors expecting semicolons and identifiers!

You are attempting to access an index in a Die object (die), not the dice array.
Also, your code is making a variable that exists only within the block of a single iteration of the for loop. In other words, your die object above expires and is re-created new every loop through.

// var declaration section
var dice:Array;
// init
dice = new Array();
for (var i:int = 0; i<maxDice; i++)
{
    var die = new Die();   // we can declare a local die var here because we won't need it outside the loop
    // set whatever die properties you want that you don't want to set through the constructor
    addChild(die);
    dice.push(die);
}
// accessing dice
for (var i:int = 0; i<maxDice; i++)
{
    dice[i].getFace();     // or whatever functions you need to call
}

I’ve kept the above code as close to yours as possible to avoid any possibly confusing detours, though I did change the name of the class from Die1 to just Die. I can’t help with the gotoAndStop stuff, because I don’t do timeline code.

 
Flag Post

Topic: Game Programming / Is self-promotion of games acceptable in this forum?

Exactly. Which is why “how do you like my game?” is a game design question (if anything). It is not asking for programming advice/tips, but for opinions on the game’s design. Thanks for coming over to the dark purple with blue paisley side.

 
Flag Post

Topic: Game Programming / Is self-promotion of games acceptable in this forum?

Originally posted by pugzy:

Because to be a game designer you don’t have to be a programmer at all. Game design in my opinion, is the ideas of how the game(s) you make can be made better or ideas of a new game in general. Where as programmers implement the logic and what not based of the ideas.

Game design from what I’ve seen is the ideas before programming, and is generally how the story, rules, etc are made and then the game designers work with programmers on making the game(s) they envisioned. But they don’t do the programming and game design has nothing to do with actual programming.

So “how should the character move?” (for example) is only a game design question before it is programmed. Once it is programmed, when asking “does the character move OK? How do you think it should move?”, it magically becomes a programming question.

Seems legit.

 
Flag Post

Topic: Game Programming / Is self-promotion of games acceptable in this forum?

Originally posted by saybox:
Originally posted by Ace_Blue:

2) GiTD is a programming contest. Pretending it is not is disingenuous at best. Cooking contests aren’t decided based on who has the spiffiest recipe, judges sample the final products and make their decision based on how they look, smell, feel, and taste. Likewise programming contests aren’t judged on who has the 1337est coding skills, but based on how the final product looks, feels and plays. In more algorithm-oriented programming contests it would be how fast and reliable the final product is, but still it’s not about what the source code looks like. To try to disqualify GiTD from the Game Programming forum because the entrants program games, or whatever your exact point is, makes no sense.

That’s a very compelling argument and therefore it’s only logical to conclude that when someone wants feedback on the game they’ve programmed, they’d post in the same place.

So why is there a Game Design forum (for games they have programmed or intend to program or are considering programming)? Or any other forum that can be, with some stretching, connected to programming?

 
Flag Post

Topic: Game Programming / Where to take prototype.

Wow, that was so hard. I almost lost.

But seriously, these two bombs walk into a bar…

Some suggestions:
.5) Show score for bombing things.
1) Speed up bombomb (at least when fuse is lit).
1.5) Have power-ups for speed, blast power, etc.
2) Add Mariobot to restack crates, but allow it to be stunned by blast.
3) Add an alarm that is conspicuously not easily within Mariobot’s reach, that when activated will summon Marioborg. Marioborg will chase bombomb, and upon capture, add “assimilated” bombomb to its arsenal. If bombomb gets hit by assimilated bombomb blast, it will automatically light fuse (or instantly detonate, depending on power/proximity).
3.14159) Number of bombombs should be limited (with possibility to gain more through score, achievements, etc).
4) Mariobot and Marioborg can be destroyed with enough blasts/blast power. Ghost of Mariobot should reassemble Mariobot over time. When a set number of Mariobots/Marioborgs are destroyed, summon the Termarionator.
5) ???
6) Profit.

All of the above suggestions are optional, but #5 is an absolute requirement.

By the way, this should be in Game Design, not Programming, in order to avoid ticking people off.

 
Flag Post

Topic: Game Design / feedback for my old arcade twist

Keyboard control is not very good (it seems to stop at set intervals, rather than when I let go of the key — if it is a momentum deceleration thing, it certainly doesn’t feel like it).

So is the twist that you don’t get to see what the power-ups are? That the bricks fall once they are hit (I’m not certain, but the falling bricks may be able to hit the balls, yes? I’ve seen balls get re-directed, but I was paying attention to other things)?

The paddle looks a bit too much like the bricks, and the power-ups could use a bit more… something. You have the balls as circles, so you aren’t going for an “everything is square” theme; therefore I’d suggest perhaps making the power-ups tumbling triangles. As for the paddle, maybe make it an isosceles trapezium (with the larger face on the top)?

Responds well (only tried with keyboard controls), nice special distractions effects…

Some ideas, if you like:
Halve the width of the paddles, but have two: one that goes in the opposite direction as the other.
Allow movement in the y direction, limited to the bottom third of the screen (this would make hitting a ball out of bounds possible. If you’re going to do this and use the two paddles suggestion, let the player catch a ball by squeezing it between the two — once the paddles squeeze enough that the ball is forced into one of the paddles, move the ball to the top paddle and let the player fire it at will).

 
Flag Post

Topic: Game Programming / Is self-promotion of games acceptable in this forum?

Originally posted by Ace_Blue:

This thread is now about giraffes.

Yay! Giraffes!

If the forum sections have any meaning at all, then “what do you think of my game?” should be in the Game Design forum (as the implied question is “what do you think could improve my game?”… At least it would seem so to me).

OTOH, wasn’t there a long-running thread (with no objections) called “post whatever you are working on” or something similar in the programming forum?

 
Flag Post

Topic: Game Programming / Enable to access nested movieclip

In AS2 a lot of things “worked” because it hid all errors from the coder, from what I understand. While that might seem desirable at first, when your programme doesn’t work or behaves improperly and you’ve no clue why (as in, no error messages or indicators), you’ll discover it’s actually better to have a strict language than a permissive one.

Since you are not attempting to access it through the display list there, but through its instance variable, whether or not it has been added to the display list is irrelevant (for the error message).

I am unfamiliar with timeline coding (thus saving what little sanity I occasionally pretend I have), so I can only guess that you are right about it not having access to it outside of the third frame.

Try this:

if (character.currentFrame == 3) 
{   // better not to use magic numbers, but I'll just do that for simplicity here
    // now check for collision
}

By the way, you appear to be using lance’s x coordinate twice (the second should be y).

Also, hitTestObject uses stage’s coordinate space, so keep that in mind.

 
Flag Post

Topic: Game Programming / Creating a side scrolling platformgame in As3

Heh, yeah, I was thinking about constants. Sorry about that. player_03 is correct.

Glutenfree4u, it does in fact do the same thing, just as unindented code will still function. Try to swim through large chunks of unindented code, though, and you’ll soon want to stab people that don’t indent in the eyes with a sharp pickle… or something. Naming conventions make it easier to tell at a glance the general type of data involved (var, const, class, etc). If you’re keeping your code to yourself, do whatever you like that works; but if you want help, making it easier for those that might try to help you is advised.

 
Flag Post

Topic: Game Programming / Creating a side scrolling platformgame in As3

Originally posted by moynzy:

Sorry, i’ll make things clear. this is the player class https://gist.github.com/anonymous/9931994. The main class just changes values and other things in the class.

(link fixed)

I’m assuming character is an instantiation of player, yes?
(Class names, by convention, start with upper case, so you can easily tell which are classes and which are instances (objects) — so it should be Player. Static variables, by convention, are all upper case, so “static var gravity:Boolean;” should be “static var GRAVITY:Boolean;”.)
Edit: as player_03 pointed out, this is wrong. I was thinking about constants, which are supposed to be all caps, not static vars.

I’m not sure why you’d want all of those as static vars. If you have more than one instance of Player, then changing the value of any one of them changes it for all instances. This does not seem desirable behaviour. Just to make certain I am clear, let’s say you have a character1 instance of Player and a character2 instance of Player. character1 has just walked off of a platform, while character2 is still standing on the ground. You set touchingGround to false for character1… but now character2 is falling, because he accesses the same Boolean to detemine if he’s falling (not a Boolean with the same name, but the exact same one). By contrast, instance variables (ie., non-static vars) may have the same name, but are contained wholly within that instance, so changing its value does not affect other instances of the same class. Do you understand (don’t say you do if you don’t)?

Aaaaaanyway….
Let’s say you instantiate the Player class like so (and add it to container):

// in variable declaration area:
var character:Player;               
// in init or game setup function:
character = new Player();        
container.addChild(character);

To move (using your (slightly renamed) class*):

if (Player.rightKey)
{
    character.x += stepSize;    // note that since I have a var for character, I don't need to "get by name"
    container.x -= stepSize;
}

* Ideally, controls would be kept separate from the Player object.

Also:

if (leftKey)
{
    this.x -= xSpeed;
    this.gotoAndStop("run");
    this.scaleX = -1;
}
if (attackKey)
{
    this.gotoAndStop("attack");
}
if (leftKey && attackKey)
{
    this.x -= xSpeed;
    this.gotoAndStop("attack");
}

You do realize that if leftKey and attackKey are true, then it will enter the first two if blocks above before entering the bottom one, yes? This will result in xSpeed being effectively doubled (apart from gotoAndStop("attack") being redundant, since that would already have been done).

 
Flag Post

Topic: Game Programming / Creating a side scrolling platformgame in As3

Originally posted by moynzy:

private function scrollwithPlayer():void
{
if (player.leftKey)
{
//player.leftKey and right key goes to animation and flips the image
container.getChildByName(“player”).x -= 3;
container.x += 3;
}
if (player.rightKey)
{
container.getChildByName(“player”).x += 3;
container.x -= 3;
}
}

The problem is that it affects the collision, my player falls of the ground too early since it changes the characters x position.

When the player is still on the ground, and moves it falls off, despite being on the ground.

 
	private function processCollision():void 
	{
		if (container.ground.hitTestPoint(character.x, character.y, true))
		{
			//trace("hits ground");
			player.yGravity = 0
			player.touchingGround = true;
			character.y -= 1;
		}
		else
		{
			player.touchingGround = false;
		}
	}

In some places you’re using “player”, and others “character”. Why? Are they pointing to the same object? Are you absolutely certain? Even if they are, what possible benefit could you derive from using each one in what appears to be a haphazard manner? Does the same problem occur if you use “player” in all cases?

On a side note, do you understand why you are supposed to move the player and then move the container in the opposite direction?

Originally posted by moynzy:

Wait, what do you mean it’s a bad idea?

I’m moving the the container, but not the player as you said.

When did he say that?

 
Flag Post

Topic: Game Programming / Creating a side scrolling platformgame in As3

Originally posted by moynzy:

You’re telling my to move the container, this still moves the player

That’s because you are using two different coordinate systems now: stage’s and the container’s. Since player is inside the container, it uses the container’s coordinate system. You are assigning half of stage’s width to player’s x coordinate, which, if the container is at -200 (for example), would put the player’s screen location as stageWidth/2 – 200.

Originally posted by NineFiveThree:


Move your player regularly within the container, then move the entire container (including the player) in the opposite direction.

In other words: when you move right 3 pixels, you would add 3 to player’s x then subtract 3 from container’s x.

 
Flag Post

Topic: Game Programming / Food Jam, a food-themed game jam announcement thread

I do have a somewhat food-themed game in my project queue, but it’s really big/involved, so I don’t know if I’d be able to do it in a month. I was planning on working on it later this year after I got some smaller projects done. If I find an insane artist, I might attempt it, but we shall see…

 
Flag Post

Topic: Game Programming / Haxe/OpenFL primer -- If Flash dies, this is your lifeboat

http://haxe.org/doc has language references and manuals and links to tutorials (including video tutorials (though I haven’t checked them out myself)) — it even has a link for “AS3 migration”. From what I understand, most HaXe code is basically AS3 code with a few syntactical changes. It should be less difficult to migrate to that than to any other language (or from any other language to AS3 — including AS2). Personally, I’d only use the forums if I just couldn’t figure something out on my own, but the forums do seem active, so I don’t think that that should be a problem if I need it. FlashDevelop 3 and up has HaXe support including autocomplete, so that should help, too.

 
Flag Post

Topic: Game Programming / GiTD #39 - Congratulations Zoib!

Originally posted by Zoib:

Right now rather than death, dehydration is set up so that your speed and ability to jump will decrease over time, but again I still don’t know if it’s a necessary feature for this game.

Unless there is a time factor, decreasing speed is merely frustration inducing (there is no practical in-game effect), and would seem to be something to try to avoid. And as jumping’s utility is very limited as is (and will be greatly reduced even further with totems we can use to view the map), decreasing that doesn’t seem like it would be worth it, either. If you add some kind of time constraint, both become much more viable options. Maybe parts of the maze change after a set amount of time (just a few simple 1-block additions/subtractions/moves)? Even with that, without an overall time factor, I could just go do something else while I wait for them to change back (assuming they all change at the same rate)… If you do change the maze, though, you should let the player know by sound and a small text or graphic symbol warning (or some other easily-noticeable visual cue).

Originally posted by Zoib:

Thanks again for all of your help Ace and Dragon, and of course everybody else who has provided feedback.

No problem. I look forward to playing it as a dungeon crawler.

 
Flag Post

Topic: Game Programming / GiTD #39 - Congratulations Zoib!

Most FPS games used to have a keyboard option to turn (I’d be surprised if they didn’t still have this). Strafing doesn’t serve much purpose in this game at the moment, but turning is essential. Even in games with enemies, turning is still much more important than strafing (you can go through entire games without strafing once, but none by not turning). Also, allowing keyboard turning means that you could play on a laptop (without having to use the touchpad), or any other device with a similarly awkward mouse substitute. The cost of adding keyboard turning is minimal, and the gain at worst offsets the cost.

Also, having a run toggle allows you to not have to hold down a key to run while still having control over whether or not you run (although, I agree that in this version, there is no reason not to run unless it affects jump height/distance).

As for dehydration, it really depends on how it is done. Getting dehydrated doesn’t necessarily mean instant death (though in this version, other than slowly lower health, I don’t know what you could affect much. With enemies, you could affect attack, defense, etc). Having shrines “too close together” only defeats them if their sole purpose is to provide a strict limitation on how far or where you can go. Since people can only “hold” so many thoughts in their mind at the same time, the minor distraction of having to be cognizant of dehydration levels and where the encountered shrines are is a mild diversion from keeping track of your position and finding a way through the maze. I’d rather it be a mild, more realistic diversion than those games that seem to think that if they have food consumption, one must therefore starve every other minute to make the mechanic “relevant”. YMMV. The shrines would not have to be perpetually full or instantly and permanently drained, they could be depleted by however much is needed to restore hydration and slowly refill. Meh. I don’t know why I’m arguing so much for the dehydration mechanic, as I’m fairly ambivalent toward it.

I thought the jumping was so you could see close parts of the maze. I can’t recall if I tried it or not.

Puzzles (excepting very simple ones, such as key to door) are a huge addition, as are enemies. I had assumed we were keeping suggestions to the realm of relatively minor alterations.

I like the idea of the ladders, though. You’d have to make sure that the player couldn’t then just jump across the top of the walls to the goal(s), so level design would be more complicated, as would how you deal with maps. Moon bridges and other raised areas would give nice visuals, allow distinguishing landmarks, and provide players with places that they can look down at parts of the maze.

 
Flag Post

Topic: Game Programming / GiTD #39 - Congratulations Zoib!

In most first-person action games [that allow a look up/down], there is a key for those, as well as a “centre view” key. If I were to suggest key mappings:

forward/reverse – S/X (Numpad 8/2), also cursor up/down
strafe right/left – Z/C (Numpad 4/6)
turn right/left – A/D (Numpad 7/9), also cursor left/right
jump – space (Numpad Enter)
interact – W (Numpad /… or maybe 5 would be better?)
look up/down/centre – (Numpad -/+/*)
run (as toggle) – F (Numpad .)
run (as augmenter) – left/right shift

I originally had space as interact, but as interacting would be done standing still and jumping may not, it is more important for the jump key to be easy to hit while still maintaining position on the movement keys. This configuration allows either left or right handed people to use a combination of the Numpad and alphabet keys, but they are grouped so that they should be fairly comfortable playing with either hand — assuming QWERTY keyboard and/or presence of a Numpad.

Anyway, the hardest part of a configurable input is the UI (which is more tedious than difficult), as you’re just assigning and checking input against variables instead of using hard-coded values. It’s quite a bit of tedious work, but once done should be fairly easy to pop into any future projects. I plan on doing this in any game I make that uses more than cursor keys and space (< sheepish grin>…when I get around to actually making something again…</sheepish grin>).

 
Flag Post

Topic: Game Programming / GiTD #39 - Congratulations Zoib!

Originally posted by Zoib:

Thank you, this is all very valuable advice. I like the idea of making it keyboard-only and I’m going to see how that feels. Either way, if I can get it working (should be very easy) I will add that as an option for the player. In response to your question about the clouds dragon_of_celts, those are supposed to be elemental guides that lead you to each crystal (clouds – yellow, fire – red, bubbles – blue, plants – green), which is something I need to make more clear to the player.

Based on your feedback Ace_Blue, and earlier comments by archipel, I definitely need to add things into the maze to make it more interesting and make different areas more distinguishable. Do you have any suggestions as to what this could be? My only thoughts are objects that are a bit taller than the walls so you can see them from a small radius in the area (but even then, what objects? Totems, monoliths, signs? Trees?), and also signs, markings, etc. on the walls. I think adding a map makes it too easy, but if I can figure out how to only reveal the areas that you’ve been in, I’ll add one that you can open up with a key press for sure. I could try to create a failure condition of dehydration over time, that would be an interesting thing to learn and probably not that difficult and then I could add water sources throughout the maze.

Thanks. I don’t know why mouseturn bugs me so much, since I don’t have a problem using the mouse in conjunction with the keyboard for other things. At least it will be playable on a laptop if you make it keyboard-only possible.

Were there instructions about the clouds that I just wasn’t paying attention to (I’m not where I can go see for myself right now)?

I’d suggest instead of having run as a shift + movement key combination (it was, wasn’t it? I didn’t use it, but I vaguely recall that it was…?), that it be a toggle instead. Might want to poll and see if others would find that preferable, too, though.

I like the dehydration idea, as long as it isn’t too harsh. You could make the on-the-wall distinguishing objects be small shrines where you can get some water…? Bonus if you make it so that you can light some incense at the shrines — that will give the player a way to adjust the visuals a small amount to aid in their path-finding, and give a nice added ambiance.

 
Flag Post

Topic: Game Programming / GiTD #39 - Congratulations Zoib!

Darkscanner – I laughed. I cried. Then I played this game. …Then I cried some more. But seriously, these two trolls walk into a bar… Not much play there (surprised, yes?). You should have selectable weapons that you have to choose the right one from to kill off the trolls: e.g., one could say “Just like Hitler!”, and you’d have to smack them with Godwin’s Law. And they should breed and threaten to take over the forums unless you keep their numbers down. Ooh, and bears with lasers! Yeah, it has to have bears with lasers.
2 stars. 1 is for just submitting something so there’s something to compete with Zoib. The other 1 is just because it functions.

Zoib – I didn’t play very long, mostly because I’m not fond of mouselook (when its not just an occasionally needed thing). Right now, there is no real reason to strafe, so the left/right keys should turn; when you expand it into a game with enemies, please either have turning keys along with the strafe keys or have strafing when player uses shift key plus a turn key. Looks nice and responds well, though. What were the gas clouds I walked through? Is it just visual effects, or is there something more to them? I look forward to seeing it as a rogue-like.
4 stars. -1 for forcing mouselook use to turn.