About snake5 (twitter: @snake5creator)

Entries

snake5's Trophies

snake5's Archive

Synthwave Ride (from miniLD 73) is now on Google Play

Posted by (twitter: @snake5creator)
Friday, April 14th, 2017 10:13 am

link to game

A day or so ago I’ve finally managed to add a bit more content and fix some of the bugs, and now it’s available for Android devices.

Link to miniLD 73 entry.

The game is free because it’s always been that way and I don’t think the current amount of content justifies any price tag. If you wish to support it, feel free to buy the soundtrack instead. :)

And as always, any feedback is welcome.

P.S. During the development of Android version I’ve encountered my fair share of Unity oddities and glitches. If anyone’s interested, I could sum all that up in a blog post to help people avoid those issues (some of which were quite confusing in the beginning).

Synthwave Ride – my “music” game for miniLD 73

Posted by (twitter: @snake5creator)
Monday, April 10th, 2017 4:27 pm

link to game

So I’ve finally finished this game I’ve been working on for ~2 days now. It’s not 100% done but still quite close (80-90% maybe?), much closer to completion than is usual for me, which is a nice change from my usual 20-30% completion level.

Having released a music album recently, it was rather exciting to see that the theme for this miniLD is “music”, so in part this is a chance to expand on existing artwork to produce something new. And on the other hand, I found this to be an opportunity to develop a game from A to Z, which I hadn’t done for quite some time.

The concept was initially meant to be a bit more complicated (2+ different waves to use) but I though it would be harder to play as well as harder to adapt this idea for phones. Hopefully that’s where the game will end up in a few days or so.

Among concepts I skipped before starting to make this one was a racing game and physics based downhill game where the player could shape the mountain. For all their promise, it was hard to imagine them working (development time, increasing difficulty, gameplay simplicity) so I chose something much more easy to imagine and thus design – indirect control for obstacle avoidance.

I hope you’ll enjoy the game and have at least as much fun playing it as I had making it.

game over

SynthMatch is ~finished

Posted by (twitter: @snake5creator)
Sunday, August 28th, 2016 4:25 pm

Found some time to create a little game about changing parameters to match patterns, based on some core algorithms of sound generation.

As usual, of the original concept I had time to implement less than 10%, and I’ve never seen this done before so I’m not sure what to expect. Still, I hope you like it and hopefully it could even interest someone in learning more about sound generation.

I didn’t have time to write this before as I wasn’t even sure what I’d make before yesterday so this is the tech I used:

 

Imposition – finally finished

Posted by (twitter: @snake5creator)
Sunday, September 27th, 2015 5:53 pm

The game is finally somewhat finished. Didn’t quite get to implement all I wanted but the boss fight seems to be scary enough, and hopefully I’ve improved on my game-player communication skills. But I’ll let you be the judge of that.

3

mLD62 – progress report 1

Posted by (twitter: @snake5creator)
Wednesday, September 23rd, 2015 3:10 am

Implemented character controller, weapon basics and 3D-ish HUD, fixed some bugs.

Also I’ve designed one enemy so there should be some basic shooting gameplay implemented soon.

2015-09-23_enemy1

The idea is to create a warm-up/tutorial section and the boss fight would come right after it.

miniLD62: started

Posted by (twitter: @snake5creator)
Monday, September 21st, 2015 4:06 am

I’ve started working on level design and intend to work on weapon/enemy design soon enough. Hopefully this time I’ll learn from my mistakes and ignore tech development for the purpose of allocating more art/design time.

Some level design

Intelligence incoming

Posted by (twitter: @snake5creator)
Sunday, August 23rd, 2015 9:41 am

Core gameplay was done a few hours ago, so I started to build the AI.

It’s using the wrong character model for now but it’s possible to see patrol behavior in action.

The foundations are set

Posted by (twitter: @snake5creator)
Saturday, August 22nd, 2015 7:02 am

Created a basic test level, going to add the gameplay now. Here’s a screenshot from the current state:

08-22--1451-otgame

Not sure how far I’m going to get with this but at least I have a somewhat decent idea now on what exactly I should make.

Hint: it’s going to be a first person stealth action game (no combat).

Near-fatal uncertainty

Posted by (twitter: @snake5creator)
Sunday, April 19th, 2015 1:36 pm

Not sure if I’ll be able to finish this project but the idea is to create a rather basic stealth puzzle game. The “unconventional weapon” in this case would be a hacking device that can provide various distractions using whatever the enemies are wearing or whatever is available in the room.

Here’s a screenshot from what I have now:

NAILER – Native Application Installer / Launcher

Posted by (twitter: @snake5creator)
Tuesday, September 9th, 2014 3:10 am

I’ve been working on some software that is meant to reduce the effort it takes to test native applications. I’m sure many of you know how most native games here are released – they’re packaged together in an archive that has to be opened and fully extracted before running the game. Many people are possibly turned off by the amount of work it takes to run a simple game, some might even avoid testing such games.

To tip the scale towards native games (in the name of the undisputedly superior experience and technological variety such games can provide), I’ve developed an application that can generate a self-extracting archive. But it’s one that supports building custom user interfaces and doing background extraction of game files so that games can be opened with just one click.

This is how the interface can look (it’s fully customizable):

First game package ever built (Windows version of my LD30 game: Connected Worlds – The Adventure) (Dropbox mirror)

More info (source, SDK, backstory) at blog.sgscript.org.

Post-Jam update – added checkpoints

Posted by (twitter: @snake5creator)
Thursday, August 28th, 2014 11:37 pm

I’ve added one of the most requested features – checkpoints – to the post-jam version of my game.

The process was described here. The full script source is, as always, included with the game, so you can see how it works.

After the LD release

Posted by (twitter: @snake5creator)
Wednesday, August 27th, 2014 12:00 pm

This is a cross-post from the SGScript blog.

Before I proceed with the review, I’d just like to mention – this is the game I made. You might want to have a look at it before reading further to have some context when I talk about the specifics.

What went right: development estimates, luck and controlling chaos & unfinished code.
What went wrong: lack of a fully developed engine / editor combo, deployment process.

Development estimates and luck – there’s not much to say about those. I always had spare time on my hands to fix whatever popped up, there was no stress to get something done in time, no major feature cutting. Might be partly related to the lack of a fully developed initial plan. I just went in with my tech and hoped I could get an idea of the gameplay halfway in the process. And that did happen.

Controlling chaos & unfinished code – what I had at the beginning was a completely unfinished engine. No working physics, not even fixed-key input handling or cursor locking/relative mouse movement, no pause screen, no 3D-related entities (sprites, lights, meshes), no character physics, no cutscene system. Things so many people take for granted to be working and polished when they begin working on a Unity or Unreal Engine based project.

It was very easy to write all that, provided that there was (as in my case) some previous experience with all of those things. It was also easy to add game action hooks to the engine (like non-entity tick/input events). I also dropped the original entity system in favor of a much simpler one (each entity is defined by a creation function), fixed some bugs in the engine too.

A note regarding code simplification: Every dynamic language takes a lot of weight off your hands with dynamic (re-)binding, runtime (re-)evaluation, first-class functions. My advice: trust those systems. It will save you a lot of code generally spent on the premise that any such system could fail to be robust enough. They almost never do.


Lack of a fully developed engine / editor combo – as much as I liked to write Bullet Physics wrapper code and fix bugs in my engine, I would prefer to spend that time somewhere else. Or maybe not, but others definitely would. People would also prefer (and here I join them) to use an editor to add things to scene, not copy & paste coordinates out of Blender. It’s what I did for the position data. Writing any other non-spatial/visual data is just fine, though. I would in fact prefer writing to fancy controls. But not things that need immediate visual feedback.

Here’s a few more things that should’ve been available to me:

  • Specular lighting – regardless of the type, it requires strong visual control. I have lights from far away leaking reflections through walls. I like unattenuated (by distance) specular because it’s the only kind that looks good and real. But it’s much harder to control in large scenes without shadows.
  • Occlusion culling – it was actually in development but not quite finished yet. It would probably help control those lights as well as improve frame rate and allow to increase levels of detail a lot.
  • Environment lighting generation – lightmaps and (blurred) environment maps would help a lot here.
  • Mesh data extraction from the exported file format – I actually had to write this one while working on the game, otherwise there would’ve been no physics, and no game.
  • Last but not least – support for other platforms. I really wanted to get more people to play this. Right now, it’s not happening.

Deployment process – there’s no errors like the ones you don’t get on your machine. The release started off with a “missing libgcc_s_dw2-1.dll” error. GCC was nice enough to screw with me at some point and didn’t let me know exactly when that happened. These things should be statically linked by default, though I should’ve checked all DLLs myself. It’s always too easy to forget that.

What followed was a silent failure. Most likely something simply wasn’t extracted from the archive but the engine should’ve notified the user. So that’s a bug, and it’s fixed now. Someone else couldn’t start the game without any explanation, that could’ve been the same bug. Or another one…

I received another report about a “variable of type ‘null’ cannot be called” error. Classic, means that the function doesn’t exist or the variable is not a function. Checked the file at the specified line – SS3D_CreateRenderer – SS3D addon silently wasn’t loaded. I’m going to upgrade all `include` messages to errors (SGS_ERROR) to fix that. Optional includes will be possible with either `pcall` or `@include(“…”)` (error suppression on function call). I should’ve handled such errors manually, though.

if( !@include("ss3d") )
	ERROR("Please install DirectX to run the game");

^ this is all that’s required to fix it. Yeah, a missing d3dx9_**.dll triggered that obscure error. Dependency errors vs. me – 2:0.

Edit: In fact, it would be best to not link optionally available DLLs statically. When I finally get to making multiple renderers for SS3D, it should be possible to run the OpenGL renderer if the Direct3D one isn’t available or at least notify the user about the action to take automatically.


So, what we can conclude from all that? Dependency issues are generally one-off (with some recurrence) so there isn’t really any need for automated tools. As for the rest – the value of a language strongly depends on the amount and value of bindings it has.

And that’s all I need to know to determine the direction of development.

I’ve got stealth, action & adventure

Posted by (twitter: @snake5creator)
Monday, August 25th, 2014 2:29 pm

Took some time to finish the level but it was definitely worth it.

House of Turrets

House of Turrets

The game can be found here.

Connected Worlds Intro

Cutscenes and other things

Posted by (twitter: @snake5creator)
Sunday, August 24th, 2014 2:05 pm

Looks like I might not be able to finish my game today but that’s alright since I’m going for the jam deadline.

This is the ending from the intro cutscene:

Connected Worlds Intro

 

Core of the gameplay is done though, so all that’s left is making the content. It’s nice to be able to give a full day to the content. The objective will be to avoid getting shot like that:

Connected Worlds - Turret Action

The soundtrack is done too, so I should find some time to put that in the game.

Gameplay incoming…

Posted by (twitter: @snake5creator)
Sunday, August 24th, 2014 3:31 am

So I’m finally working on the gameplay code. Proper physics, tunnels between worlds, turrets, that kind of stuff.

Those fiery things are portals/tunnels between worlds. When all else fails, you’ll be able to use those to move around obstacles. Posing as a part-time turret, part-time rushed 3D model, we have this supposedly metallic object planted right in front of the camera. It should be able to shoot bullets or something else soon enough, acting as a fearless opponent for the player.

So the game is basically going to be a sightline/stealth puzzle.

I B Jammin’

Posted by (twitter: @snake5creator)
Saturday, August 23rd, 2014 3:17 am

 

So I’ve been working on the foundations and a bit of level design over the past few hours. I sure hope I haven’t picked too big of a scope, I’ll have to figure out how to make the most of what I have.

I’ve also decided to go for the jam. Didn’t want to re-do all kinds of important stuff at the last moment.

 

[cache: storing page]