RSS
 

Archive for the ‘Development’ Category

Attractor fail!

27 Apr

It’s funny that some things that look well on paper turn out to be terrible when implemented… Case in point: the attractors…

Just added attractors to the game, which behave as the mouse and can attract and repulse elements:

screen06

The result is terrible, from a gameplay perspective… Either they’re too strong (and they bypass our own attraction on the mouse cursor), or they’re too weak (and do nothing to help or hinder the player)… The behavior was different from what I was expecting (I was expecting a kind of “negation zone”), but it is actually correct, although not fun at all…

I might use them anyway to impede some paths (although I can use just walls for that, to be honest, no difference).

I have also implemented moving attractors, to see if they could be salvaged… although they’re a bit better, adding a measure of challenge in some sections, they’re still very weak as a gameplay mechanism:

screen07

Problem is that I don’t know if I can make a compelling game with just walls and blocks… My wife seemed to have fun with just those elements, but I don’t know how fun that actually can be in the long run… Maybe I’ll have some new idea in the meantime, since I’m still on schedule… I still have to consider the attraction change issue (keypress vs environment control) anyway, and if I decide to go for the environment control, the attractors might be a good element again (although I doubt it)…

Current schedule:

Schedule07

 

Options galore…

27 Apr

Colored walls now!

screen05

Colored walls don’t affect particles of the same color… Same applies to blocks!

Still not sure what’s the best option for changing the attraction type… Currently, it’s keypress driven (as you can see in the lower right corner), but I still think that having areas on the screen that change the color of the particles or the cursor (really the same, it’s just a matter of duration of the effect) might open new options for the gameplay… Probably will have to code it to try it out, which will mean less one hour or so of polish-time (especially because I’ll have to be social tonight, so no late night coding for me!) Smile

Anyway, this is going fine… If I’m lucky, I can finish all the gameplay elements today, which means I have all the day tomorrow for the polish (levels, menus, sound, music, etc)…

Schedule06

 

Ahead of schedule, nice!

27 Apr

I’m 1h40 ahead of schedule, incredible! Smile

Schedule05

Interaction between the particles and the level end block was easier than expected…

The game is also shaping up a bit, I’m starting to have a lot of ideas on extra elements for the game, although I’m still not sure on how to get them all together in a fun, level-based design.

Now, complete with moving blocks:

screen04

Next up, one of the new elements: colored walls that only let pass certain colors… of course, for that to make sense, I need to have control on the type of color I’m attracting with the mouse. I have two choices: I can base it on keypresses (which kind of defeat a bit my idea of minimalist gameplay, but might lead to a game that’s more fun), or there might be elements that either change the color of the cursor (changing what it attracts) or changes the color of the particles for a certain time (or forever, not sure).

These are the small decisions that I usually have a lot of fun with when I have more time, but when I have so little time to develop a game, I’d like to have a magic ball that gives me the answer right away! Smile

 

Is this fun? Dunno…

27 Apr

Still don’t know if my idea with result in any fun whatsoever, but I have the level loader already working, from a text file:

screen02

This one is ugly even for my standards, but it’s also minimalistic, which was the goal… I’m really no good in building “small” stuff… My dreams are always so much larger than what I can build (either in compos because of time-constraints, or outside of them because of too big of a scope and an obsession with “perfect” code)…

Anyway, still on schedule (only by 10 mins, but it’s something!):

Schedule04

If I had a clear idea on what I’m aiming to build, I might have a more comprehensive schedule, which was my idea on the start, instead of just having the next few tasks defined…

 

Still not sure where I’m going…

27 Apr

Progress has been steady and on schedule so far:

Schedule03

Currently, there’s particles, and they follow the mouse cursor (or any attractors I define, the code is general)… It took me some measure of tweaking the parameters until I got something similar to the behavior I wanted… Ended up by defining the force applied to the particles as “force=delta_v/sqrt(dist)”, instead of the classical gravity-like “force=delta_v/sqr(dist)”… The particles are more reactive this way… Also added a “drag coeficient” to the particles, so they lose about 25% their energy each animation iteration… This will avoid them just shooting off screen in some fringe cases…

screen01

I can setup the attractors to affect only some colors (currently it’s just a RGB mask, but that might change).

Although it’s fun moving the particles around, I’m not sure if this will make an actually fun game… But to test that, I need to add the “level”, in a form of a maze of sorts… I expect I’ll have some other attractors and moving walls on that, but everything’s open at the moment…

I never thought how “minimal” is the complete opposite of what I usually think of in terms of game design (although I guess it’s a good way to design things: start with something big and subtract until you’re left with just some core mechanics, then you can add stuff back… I think it might avoid excessive padding in the game)…

 

Simple idea…

27 Apr

I was thinking about an idea that I could implement with a terribly simple input mechanism… I’ve decided on only using the mouse position (can’t be much more simple than that, I guess)…

The idea is that the player attracts some particles (pixels, so keeping with the minimalist approach) with the mouse cursor… The behavior of the particles is physically correct, so if we don’t move the mouse cursor carefully, we will force the particles to overshoot and hit the walls of the level…

The level is comprised of a maze like structure (keeping it simple for now, but I might extend that with other attractors and moving walls). If a particle hits a wall, it’s lost…

The objective is for the player to reach the end of the level only losing a certain percentage of the particles… Seems simples, but with the addition of a time limit, it might be enough to make a simple fun game…

I don’t have a name for the game yet, but it will come to me… Smile

Anyway, here’s the revised schedule:

Schedule02

 

So, minimalism…

27 Apr

So, there’s the theme… As a lot of people have pointed out, almost all LD games are minimalist by nature, being time constrained…

I’ve already made a schedule in Excel, considering break and sleep times… I need to figure out an idea to be able to fill in the blanks:

Schedule01

I’m thinking on an idea around gameplay minimalism and do it with minimalist graphics and sound…

First thought was a “one-button-game”, but I think that may take more effort than I have available (even with minimalist graphics, it’s still a lot of stuff to draw with my puny art skills).

So, I’m thinking puzzle game… One simple mechanic, one simple set of graphics, lose my time building levels and such…

I still have 40 mins remaining on my schedule to have an idea…

 

It’s been so long…

30 Jan

Hi everyone!

It’s been ages since I wrote here, but I’m not dead… My time during Christmas break is usually terribly busy, and afterwards work hit again like a brick wall (was hoping the mad rhythm from last months was gone, but I was wrong).

Anyway, I’ve been doing some things related to Grey and my Indie Speed Run unfinished entry, but you can read about it on Spellcaster Studios’ website…

Here, I want to talk about the games I’ve been trying out lately… Besides the usual Christmas binge on new Triple-A games (Assassin’s Creed III was pretty good, with some flaws, but still a lot of fun… The naval battles rock), I’ve been working through my Steam collection, looking at games I haven’t really tried. Here’s my impressions on some:

 

“The Binding of Isaac” is a procedural Zelda-like game… That said, I should have liked it, but to be completely honest… I didn’t… The controls were cumbersome for my taste, and there was too little storyline to keep me entertained; this is the problem with most rogue-likes out there (not only indie, but also Triple-A, like Diablo 3); I‘m not the type of person that walks around doing the same thing over and over again without anything to drive me forward (usually story)… Exception to this is probably “World of Warcraft”, where I raid over and over again, but there we have the social component as well.

Anyway, “The Binding of Isaac” is a well made game, with a very cool aesthetics (both visual and thematic), so if you enjoy roguelikes, give it a whirl!

 

“Closure” is a puzzle platformer whose main mechanic is easy to understand if you see it, but kind of hard to put into words… Basically only things in range of light have any physical substance (or are visible at all)… That means that if you see a wall in front of you (using a source of light), you’ll collide with it, but if you don’t have a light shinning on it, you’ll just pass through it.

This mechanic works making very nasty puzzles that remind me of “Portal”: puzzles that look very hard, but when you finally overcome them, you think: “Damn, this was so obvious!”… So, the game gives you a pretty good sense of accomplishment and I had tons of fun playing this one… the music gets on the nerves eventually, specially when you’re swimming around (music plays at a slower rate, which means it becomes just very very vey annoying, albeit atmospheric).

 

I didn’t spend much time on this one, to be honest, too little story going around… But the execution is top notch, has a good tutorial (which does a good job of converting an immense amount of instruction into something more manageable) and the overall feel is fun enough, if you’re into this sort of thing…

I’d like someone to make a Tower Defense game where you’d feel more “story" on it, but I’m guessing it’s kind of hard.

One of my complains about most of the strategy indie games is that how heavy they are from the start. Although this one has a good tutorial, after 2 or 3 levels I’d already have too much to do… so, I didn’t have enough time to absorb the previous concepts and I would be already buried in new ones…

On that front, Blizzard games are the best… They introduce everything slowly enough in their games so that me, as a player, never feel overwhelmed by new concepts and ideas. Of course, what I’m complaining about here is the inverse that most people complain (“tutorial was dragging on for ages”), but I think there’s a balance in between.

For me, when choosing a new game to play, I don’t want to spend much time mastering some ground rules… I just want to get into the action/story as fast as possible and spend one hour in the game without feeling overwhelmed, trying to figure out if I actually think I’m going to have fun in the game if I commit enough time to it…

Ok, this post is big enough already, more to follow!

 

No title, really…

18 Dec

This is one of those posts that have a bit of everything, so no decent title for it… Smile

Anyway, as you might have seen in the Spellcaster Studios blog, me and Rincewind gave up on the Indie Speed Run, mainly because of scope issues… We went a little wild with it, Rincewind because of lack of 48-hour compo experience, and me because I thought that without needing to do graphics I could do much more…

Anyway, it was a good exercise, and I’m definitely finishing this one, not because it is brilliant, but it’s great to figure out bugs on SurgeEd and SurgePlayer, which I used for the game. Already figured out some nasty bugs which would have taken a lot of time to fix on the “Grey” scripts, specially one that only seems to manifest in specific conditions…

If you’ve been following this blog, you know I’m using Lua to drive the game logic, and specifically LuaJIT, and I found an odd behavior…

The offending piece of code was something that tested a condition and acted on that:

function do_something(param)
   if (ffi.C.test(param)) then
      change_object()    end end

test is a function declared on the FFI, that returned a bool:

ffi = require("ffi")
ffi.cdef[[

bool test(const char* str);

]]

Which had a C counterpart like:

extern "C"
{    bool __declspec(dllexport) test(const char* str) {
        bool b=do_some_test();

return b;
}
}


 

Simple enough…

Problem is, “change_object” was never reached… First I thought it was the “do_some_test” function that was failing, and I added some tracing to it (writing to the logger) with the output, and it turned true eventually…

Then I added some tracing in the “do_something” function, and mysteriously, it started working properly… After a lot of tests, I found that if I used any function that called normally bound functions before the “ffi.C.test” call, the system worked properly… But if I added FFI based functions, it wouldn’t work!

This was driving me crazy… then I had a silly idea… “bool” is a C++ type, not C type, so I changed the declaration of the C function (not the FFI declaration) to “int __declspec(dllexport) test(const char* str)”, returning 1 if “do_some_test” was true, and 0 otherwise… And now the system worked properly!

So, I arrived to the conclusion that you can’t output “bool” directly from the C code (although you can declare it that way on the FFI declaration, to get a proper bool and not an int). I imagine the problem was the size of a bool and the stack manipulation of LuaJIT, which caused the system to access corrupted memory (that was probably zeroed before being used, and that’s why the function apparentely always returned “false”, although the C output was “true”).

Anyway, 2 hours of my life getting to the bottom of this… Had to change all the functions that return a bool to return an int instead…

Anyway, on other news, take a look at this Hamnasya game… It’s a cross-media kind of game, where you’re reading a book, but you can affect the outcome and fight battles à lá RPG… Very cool stuff indeed, and has an excellent trailer:

 

I haven’t picked it up (I had too many pending games at the moment), but it looks pretty good…

If I don’t write anything in the meantime (highly likely), Merry Christmas and a Happy New Year! Smile

 

Some links

30 Nov

Hi guys!

I’ve been absent, but so you all know that I’m still alive, I’d like to share some links I’ve found around the interwebz!

First off, something awesome: A link to a Gallifreyan translator! For those that don’t know, Gallifreyan is the language of Gallifrey, Doctor Who’s home world… Yep, this is a geek as you can get… Gallifreyan looks pretty cool… Here’s my name:

Diogo de Andrade Gallifrey

Awesome, isn’t it?! Smile

I know the language is basic alphabet substitution, arranged with some mathematical logic inside a circle, but it just looks gorgeous!

Link number 2, a game: Skrillexquest. It is endorsed by the dubstep artist Skrillex (which I quite enjoy, I admit), and it features his music mashed up with a 3d Zelda concept, in a corrupted 8-bit world… I actually like the aesthetics more than the music (although I like Skrillex, I don’t think the music fits that world). It’s a quite short game, and you can play it on the browser, so go for it!

Finally, me and Rincewind are probably going to take part in the Indie Speed Run 48-hour competition. While similar to the Ludum Dare competitions, it has some differences that are interesting (you can use previous code, you can choose the 48-hours you’re going to work on the game which prevents scheduling issues), but best of all, it’s going to be judged by the likes of Ron Gilbert (Monkey Island), Markus Persson (Minecraft) and Ben Croshaw (Zero Punctuation), amongst others I don’t know that well… So I’m excited about that, and I’m trying to clear 48 hours of my life for this…

Catch you guys later!