Sparky - Possible Blender 2012 Summer Competition (DEMO UP)

Hey. So here’s what could be my entry for the Blender 2012 Summer Competition. I’m not sure if I’ll finish it in time, but I’ll try. It’s just a few weeks in, but I like it. :slight_smile:

Sparky’s a 2D action game about momentum, speed, radioactive dogs, and aliens.

… Yeah. Perhaps I should show you.

It’s going to be fast-paced, to be sure.

I’ve got a very, very, very early alpha demo for Windows if anyone’s interested. It can be found here.

Will there be radioactive packets for the dog to collect to allow him to become ionized?

It might also be neat to have packets or boxes containing different radioactive elements for different levels of capability. (like uranium, plutonium, ect…)

Wow, all of your contents great! Shame you can’t use Soldier Of. I like the trails, they add a nice feel, but aren’t nyan cat. :slight_smile:

Radioactive dog food

ha… great first video solarlune!
I really like the idea. The glow looks neat already!

This one is pinned :slight_smile:

This looks like fun Gameplay!
I hope the Controls stay simple.

@Ace - Interesting idea. Perhaps that would be a good idea - maybe different packets could grant different behaviors… Or perhaps there are ‘good’ packets and ‘bad’ packets.
@RossBlenderArt - Yeah. I didn’t really want to use Soldier Of, anyway - I wanted something brand new for the competition.
@ndee - Thanks.
@C.A. - Yeah, so far’s it’s just the D-Pad and two buttons. It shouldn’t require many more buttons.

Welp, I fixed a couple of game-breaking bugs - the one in the devlog, as well as one that caused Sparky to go through the ground. XD Fortunately, it wasn’t that hard to fix (took a few hours). Unfortunately, it was kind of a random thing, so I can’t be 100% sure it won’t appear again. I’ll have to keep an eye on it, I guess (the fix was to step up the Physics Substep and modify the size of the sensor objects I had to detect the ground).

I’m also working on the graphics a bit - trying to get a feel for the base that I’m making, as well as trying to understand how the background should be drawn.

I also switched the camera view from orthographic to perspective. The difference is slight for the plane that Sparky and the tiles are on, but it will come in handy to have a full 3D environment to work with… I think. It’s easy to switch back if I ever need to, though.

I added a breakable alarm light that will give you Ions, once I implement the gauge. Right now the light just spins. :slight_smile: Also, to the right, there’s a pipe that’s in the foreground, obscuring the view a bit. Maybe I’ll make it smaller.


So, I did actually get the background fixed up a bit.

It’s probably too busy. Maybe I’ll darken it, too.

EDIT: Oh, yeah. I also did some coding to make it so that Sparky’ll fall off a wall or ceiling if he stands still too long or stops being Ionized. An extra incentive to keep moving.

Hey SolarLune the movement is awesome. Looks like really fun to play. I also like the name of the dog

Only suggestion, I would make the ionized power limited. Because then what’s the point of being normal Sparky? Usually, people would like to save the power for when they really need it, it also increases difficultly… In a good way.

Unless you are planning something else that will make the unlimited use of ionized power have a side effect.

But that’s it! It’s looking really cool

Edit: Oh sorry, I didn’t hear the first part of the video! I saw it, I just didn’t hear it :stuck_out_tongue: haha

So, I found and squashed another bug caused by careless coding. This one caused the collision detection to be less than accurate. In other news, I added a bloom shader that I had already prepared. I know that Bloom’s kinda overused and shouldn’t be added unless it adds something to the project, so I’ll leave that up for consideration (like everything else).

And that’s about all that I did so fa-OHMYGOSH.

(By the way, the lava’s coded in kinda hamfist-ish, so I might need to go back to optimize it a bit more).

Great job so far SolarLune. I like the lava though. But that is a taste thing, I believe.

While the Bloom looks very smooth (Lots of Samples?) it has a somehow weird Distribution. (On Purpose?)
The Lava Glow looks bizarr, very unreal – actually likable, but maybe make the Glow less opaque (as right now it looks quite as strong as the actual Lava itself).

@strub - Yeah, maybe I’ll change it.
@C.A.ligari - The bloom is pretty high quality - 32 samples, I think. I basically did all of the samples myself, which seems to run a lot faster than a for-loop. The distribution’s on purpose - it’s a cross-shaped bloom. I like the lava’s glow, too, but I think you’re right that it’s kind of heavy.

Its beautifull Solar lune I really liked it, this kinds of game are great I love each time that you create something new, for me its perfect!
I hope that you finish the other project too that was great too, aniway, good luck with your new project.

I certainly plan to finish Soldier Of, as well as this. Thanks a lot, leonnn.

Hey SolarLune!

I’m planning to make a game in 8bits, and I’ve followed all your tutorial videos on YouTube, but I’m new in this topic… You can tell me how to make the texture changes in the character? I have the textures of my 8bits men moving at the left, at the right, running, etc. But I don’t have any idea on how to make the texture change, with you press LEFT the texture change to “char_left.png” or similar… but how?

Not trying to advertise here, but I hope my two part tutorial series is helpful to you:
Part I:
Part II:
It goes over walking and jumping, as well as walking animations, jumping animations, and idle animations.

I love the bloom effect, it’s really unique and works well with the game.

Lax’s method doesn’t use scripts, which might be useful if you’re new to Python. There are two methods that I usually use when it comes to animating sprites - both use Python. You use them from the Sprites Python module that I made earlier.

  1. Alter the UV coordinates of the plane that your sprite is on. This works pretty well, and it’s pretty simple to set up. It’s supported by my Sprites module. You use an array to state which columns your animations are in, and which FPS to play them at (e.g. obj[‘spranim’] = [0, 0, 1, 2, 3]). The first number is the column that the sprite’s in, and the numbers following are the frames. The downside of this method is that objects that share meshes (like instances or objects added in-game), and so they all will share sprites.

  2. Swap out the mesh of the sprite with other sprite meshes to achieve animation. This works well, too. It’s a bit more complex to set up than the first method, but instanced objects share the individual mesh frames, which means that duplicate objects (like several NPCs or enemies in a game) can all have their own animations playing at the correct times. You create a plane for each sprite frame that you need in Blender, displayed correctly, and then, again, use Python and a list to swap out the object’s current sprite mesh for another sprite mesh.

It sounds to me like you’re trying to do this over separate files - generally, you want a sprite sheet, in which the frames of an animation are all on one sheet. This may or may not be possible, depending on the complexity of the object or character. The good thing about the second method mentioned above is that each mesh frame (plane) that you create in Blender automatically gets its own material and texture, so you don’t have to worry about switching textures. Simply switching the meshes does it for you.

@LaxWolf - Thanks - I like the effect, too.

Well, back to working on Sparky. I’ve changed the movement code from using a Sensor object and a raycast function to just using raycast functions. The sensor object affords you more size to check for collisions against, but it doesn’t return points of intersection. The ray cast function does return said points, but has an infinitely small width. So, several rayCast functions are now used to check for the different positions under the dog (center, left, and right). It’s very smooth, and much less prone to error than before, which is good.

I also took out that same sensor for colliding with breakable objects - just using the (same) raycast function calls to check to see if you smash against breakable objects while attacking downward (diving). It works well.

Ultra high-quality GIF, GOOOO!

LOL - the GUI’s working a little - your Ion bar drops when you Ionize, and builds up slowly over time. It will take a lot of time, though, which is why it’s best to smash into things (like enemies) to build up your bar. :slight_smile: