tag:jungletasty.com,2013:/posts Jungle Tasty 2016-05-18T11:02:31Z tag:jungletasty.com,2013:Post/1052583 2016-05-18T11:02:30Z 2016-05-18T11:02:31Z The new project, it is Match Three
For my latest project I’ve been working on building a basic match three game - I’ve never built one, so it seems like good practice (and it’s a nice, well-documented idea that I can iterate on).

I focused at the start on building something that looked basic but still decent, and then adding as much juice as possible to animations and sequences - I think the results have already paid off, and I’m excited to see how it all pans out once the project is done.

It’s not quite ready for primetime, so I’ve only got some gifs to show off.

This is what it looks like when you try to make a non-scoring (no matches) move:

Originally the idea was to procedurally generate challenges for you to play, so the sidebar of the game was information about your challenge as well as a timer for you to complete it. The game has changed a little bit, but this is what that used to look like:

There was going to be a screen where you got to choose how you wanted to play:
 
The next version is going to be a lot better, though.

This is actually a bug in my match removal code - it’s too aggressive, and you can see it removing the orange tile underneath the yellow match:
(I’m working on fixing it right now).

And lastly, here’s a little shot of the “you lost” screen, which is full of swoops and fades.
  

Looking forward to having a finished build of this soon! But for now, just gifs.
]]>
tag:jungletasty.com,2013:Post/1040132 2016-04-24T21:36:12Z 2016-04-24T21:36:13Z Leaves and bezier curves
I came across this natural icon set and decided to spend a little bit of time seeing if I could animate leaves falling. I’m pretty happy with how this turned out for only an hour spent, although we’ll see what I end up using it in.

 
(Click to add another leaf in the SWF)
]]>
tag:jungletasty.com,2013:Post/949300 2015-12-13T23:36:52Z 2015-12-13T23:41:02Z Spacefight has an itch.io page now!

This actually got set up a little while ago, but it's got a description of the game, downloadable links for all the final builds, AND a gameplay video. You can check it out at https://lukehut.itch.io/spacefight.

]]>
tag:jungletasty.com,2013:Post/925045 2015-10-30T23:01:07Z 2015-10-30T23:01:28Z The (just about) final build

This is my pretty-much-finished final build. I had to cut down a lot of scope to get this finished, and there might still be some art coming for it soon - but for now, this is it. Spacefight.

I'll write a post-mortem later.

]]>
tag:jungletasty.com,2013:Post/920666 2015-10-22T03:50:39Z 2015-10-22T03:50:40Z Playtest Iteration 2

It's 2 because I forgot to upload iteration 1 (although the only change there was the minimap, which you also get here).

Other things that have changed:

- Ships now start at least 20% away from the edges of the map, instead of being able to spawn right at the corner and instantly die.

- A sound plays when you score a hit on the other ship

- Controller axis now have deadzones, so that movement feels a little better (I hope).

- There's a pause screen! Start/space to pause. Start/space to unpause. I hope this was not surprising.

The UI still looks pretty bad, but I'll get back to that later.

]]>
tag:jungletasty.com,2013:Post/915656 2015-10-12T01:31:01Z 2015-10-12T01:32:00Z Finally playtestable

It sort of feels like reaching the end of a very long tunnel, but this is a build of spacefight that's feature complete. I added keyboard controls, as well as a way for you to select whether you were playing one player or two player. There are a lot of parts of the UI that could use polish, but - I've got something I can get people to play and give feedback on now.

]]>
tag:jungletasty.com,2013:Post/899074 2015-08-29T23:24:25Z 2015-08-29T23:24:26Z Afterburners and Turrets

It's been a while! This build has a functioning afterburner, as well as turrets that will try to help the other player take you out (right now they just shoot at whatever is closest to them and looks like a ship).

All the old bugs are still there, and it's becoming pretty clear that I need to rework some of the UI and make it clearer that the screens are split; there used to be a black divider line, but that appears to have gotten lost in the transition to a black background. More work to do, there.

]]>
tag:jungletasty.com,2013:Post/872154 2015-06-22T02:50:52Z 2015-06-22T03:10:41Z A wild build appears!

I've made a lot of progress on Spacefight, so it seemed like time to do up another build (it looks drastically different from the build before). While I haven't had time to add any props to give you more to focus on than the other player and there's a really ugly UI, it's still much different from before. Here's everything I can think of that's changed:

1. The background stars are now colorful.

2. The background now has parallax.

3. Another weapon has been added (you can swap weapons with the triangle button)

4. Screen dimensions changed so that the play area is square for both players.

5. Ships are a little smaller now (maybe too small?)

6. Really bad programmer UI (only some of it works - more will come).

7. Players are now randomly placed, instead of being directly diagonal from each other.

8. The compass is a lot worse.

9. There is no ninth thing.

10. Bullets now properly come from the center of your ship, instead of being offset to the right.

11. Ships now have health and don't die instantly when they get hit (this is important for some of the props I have in mind).

Known issues:

1. The machine gun sounds like a lawnmower.

2. There is a noticeable slow-down when the garbage collector kicks in.

3. The afterburner part of the UI does nothing!

4. There is no out-of-bounds notification; you can fly out of bounds and then the background gets very boring.

]]>
tag:jungletasty.com,2013:Post/857544 2015-05-18T15:31:48Z 2015-05-24T17:20:01Z Now ready for testing!

This weekend I bit the bullet and learned how to build my games on windows.

Why? Because the first, earliest, prototypicalest pass of the game is DONE, and ready for testing. You'll need:

1) At least one controller (ideally two).

2) A willing friend, if playing with two controllers.

Controls are:

1) Left stick, to rotate ship

2) Right trigger to accelerate

3) Right bumper to shoot


]]>
tag:jungletasty.com,2013:Post/854193 2015-05-11T00:42:11Z 2015-05-11T00:42:12Z Taking shape
It's been a while! This build has:

- Programmer art
- Better feeling ship acceleration/inertia
- A theoretically-working second player
- A super terrible AI if there's only one controller attached
- Sounds
- Particles
- A lot less random squares

Next on the list is polishing up the bullets, tweaking the AI, and finding a way to prepare a windows build so that I can have folks test this out.

]]>
tag:jungletasty.com,2013:Post/847899 2015-04-28T02:10:08Z 2015-04-28T02:10:09Z Basic lasers and collision detection

If you're the left ship, you can now shoot the other guy. If you're the right ship - maybe you can be the left ship next time.

Controls:

Left Ship

Left stick angles ship

Right trigger accelerates

Right bumper or X button fire


Right ship

Arrow keys

]]>
tag:jungletasty.com,2013:Post/843829 2015-04-22T21:51:51Z 2015-04-22T21:51:51Z Swoop swoop
After a little bit of time fighting with rotation math, I managed to get basic controller support for the left ship. That led to this little demo of what it looks like to swoop around the other player when they're standing still.
Controls:
- WASD to move left ship
- arrow keys to move right ship
- Gamepad 1 left stick to rotate left ship
- Gamepad 2 left stick to rotate right ship
- Gamepad 1 right trigger to accelerate left ship
]]>
tag:jungletasty.com,2013:Post/843202 2015-04-19T20:55:44Z 2015-04-19T22:47:46Z Splitting hairs

For this next project, I've decided to build something that's two player split-screen.

The idea of split-screen has been around for a while, so I thought - how hard can it be? As it turns out - pretty hard. In order to get split screen working I had to sort of step back from all of Flash's DisplayList abstractions/help and go back to drawing things myself. After some finagling I managed to pull it off though, and now I have working two player split-screen. WASD to control the left player, arrow keys to control the right.

]]>
tag:jungletasty.com,2013:Post/824929 2015-03-15T22:28:15Z 2015-03-15T22:28:15Z Dungeon final build

Well - it's deadline time, and I wasn't able to scrape out the time to make the sword work the way I intended to. This is the final build of Dungeon, with a terrible name, and it's a stealth game.

What went well:

Doing my own art

I floundered a lot at first, but eventually managed to buckle down and just draw some things (and they're all fairly identifiable as the things I set out for them to be, so - success). This is something I'm going to continue doing for other projects in order to help myself grow - I don't know that I'll ever get good at art, but I can at least get decent enough that it won't slow me down.

Improving tooling

At the start of the project, I was compiling and running using a shell script I'd cobbled together by hand. By the end, I had a nice Makefile I was using that could generate debug builds, package up release builds, and (assuming it was a mobile project) share builds to TestFlight for me to test. All of those tooling improvements continue to pay dividends as I work on more projects.

Just Finishing

By working to make sure that play mode was almost always playable, I was able to easily cut down scope and trim things out when it became clear that I wouldn't have the time to get them in before my (arbitrarily defined) deadline. Even though this project took (much) longer than I expected it to, I ground it out and I finished it. 

What didn't go well:

Poorly planned level editor

I didn't put a lot of thought into my level editor, and that began to show through the cracks fairly early on - I had designed it around editing a single level on the screen, without giving any thought to the overworld. This led to a structure that was fairly brittle to work with/around and probably cost me more hassle than it was worth - but by the time I realized it, I had already sunk enough time into working around it that I didn't want to go back. In hindsight I think I made the right decision in terms of just getting the project finished, but next time I build a level editor I'll definitely give more thought to how it integrates with the greater scope of the project.

Not enough thought about distribution

In some of the earlier builds, you can see there's a downloadable Dungeon.app as well as a rooms.xml file - and if you don't load room1.xml when you first start it up, Things Break. This was pure laziness on my part - that's how I built it for debugging, so that's how it was distributed. After thinking it over I realized that kind of sucked for distributing it, so I sat down and hacked out a good-enough level loader - but I think that could have gone a lot better if I'd given it more thought upfront.

Shoehorned Play Mode

The play mode was built right on top of the level editor, and both codepaths still exist within the app (although I don't think it's possible for you to build + play a new dungeon layout anymore because of the embedded levels); this caused problems because the level editor needed a lot less chrome than Play Mode did, and as a result I ended up punting on adding any chrome to Play Mode. It still works, and you still know when you have keys and things, but - that could have been handled better, if I'd been clearer about my plans for what Play Mode would look like upfront.

Collision Detection

At first I did tile-based collision detection, which worked...okay. I ran into problems while I was filling in the enemy behaviors though; now that there were things on the screen that moved and didn't move tile-to-tile, none of my collision detection work made sense. I ended up having to rip out and replace it at the eleventh hour, which was a good learning exercise but would have been unnecessary if I'd done it right the first time. I'm going to give more thought to what's required in terms of collisions on the next project right at the start, so that I can avoid having to do that again.

Closing thoughts

I'm glad that this is finished and I was able to finish something and wrap it up in a way that's maybe not the most polished, but is  complete. While I didn't do as much with the game as I wanted to - I still learned a lot, added techniques to my repertoire for the next project, and came out of this with a finished project that's completely self-contained and ready to be distributed. Overall, I'd say this was a good experience.

But I am pretty excited to work on the next project.
]]>
tag:jungletasty.com,2013:Post/817881 2015-03-03T02:45:09Z 2015-03-03T02:45:09Z A little more polish

In the interests of keeping this project as distributable as possible, I worked out a way to embed the level files into the executable - now when you launch it, you'll instantly get the start screen and be able to interact with the dungeon that's included. You can also get into editor mode to build your own levels, although I don't think that Play Mode works with custom levels anymore because of what I had to do to get embedded levels working.

I also spent a little bit of time polishing up the panels that you see throughout the game; they're a bit easier to read now (but still nice and chunky).

I'd still like to work on making your sword work so that you can take out enemies as you encounter them, instead of playing the stealth game you are now - but the deadline for this project is March 15th, and if I don't finish that part by then - this will just be a stealth game.

]]>
tag:jungletasty.com,2013:Post/816774 2015-02-28T17:34:46Z 2015-02-28T17:40:23Z Collision detection: still the worst

I was well on my way to wrapping things up - I just needed to finish enemy collisions. That's when I realized that because they move, my existing collision detection code wouldn't work (it was based on a constrained grid, and didn't handle things moving from position to position) - so instead of wrapping things up and having enemies that work, I had to rewrite that.

This is a development build that includes the collision-checking rectangle; I made it a little smaller than the tiles so that your character colliding with doors and pushables works a little better (and also because when it's the full size of the tile, you snag on edges too easily). It's not super well constrained, but - it works, and I'm pretty okay with that.

]]>
tag:jungletasty.com,2013:Post/805572 2015-02-01T15:21:15Z 2015-02-01T15:22:01Z Collision detection is the worst.

After getting room transitions working last week, I realized as I transitioned to the next room that my collision detection was only working for walls and doors - not blocks or anything that was actually IN the rooms. You can see a little white square that drifts around in front of the player character now, to show where I'm checking for collisions - it took a while, but I managed to get it so that when you run into something you're supposed to collide with, you can't walk through it anymore.

Room #2 added a pushable block though, so I needed to add handling for that - so I did.

(You can also go back into edit mode now, using cmd+O while in play mode)
]]>
tag:jungletasty.com,2013:Post/802480 2015-01-25T22:51:39Z 2015-01-25T22:54:55Z Now transitioning between rooms

I now have the player character successfully transitioning between rooms as you wander the map - the game starts up in “Play” mode now, and you have to pick a level to get started (I’ve attached two rooms - pick room1.xml to start). WASD moves the character around, and bumping into doors transitions you through them.

Building the room transitions exposed some rough spots in my original design; it was heavily focused around there being only the one screen to manage, so getting the new rooms loading and transitioning took more work than I'd like. It works now, though!



]]>
tag:jungletasty.com,2013:Post/797519 2015-01-17T05:47:38Z 2015-01-17T05:49:19Z Controller tank test
I took a short break and spent a little bit of time hammering out a basic project that uses a PS3 controller - the left stick rotates your tank and moves you around (poorly), and the right stick rotates your tank’s barrel.

 
]]>
tag:jungletasty.com,2013:Post/794586 2015-01-12T02:51:41Z 2015-01-12T02:54:07Z Level editing, done
It’s taken a bit to get back into the post-holiday routine, but I’m getting there. I’ve completed the “edit levels” side of the editor, and now I just have to make it so that you can toggle into play mode.

New additions in this build:
- cmd+r resets the room
- clicking on doors lets you pick the room file that the door should exit to
- You can only place the player and goal tiles once

I spent a lot of time trying to come up with the best UI pattern for door exits, which was frustrating - after giving it a lot of thought it turned out that the best pattern was just to have it be a file select dialog (no extra UI chrome needed). Oh well - I know for next time, at least.
]]>
tag:jungletasty.com,2013:Post/783361 2014-12-15T03:45:10Z 2014-12-15T03:47:31Z Now with more sensible controls
I’ve updated my level editor - the controls make a lot more sense now, and it’s a little better to use on a touchpad.

W, S - change tile under mouse
Number keys - select specific tile under mouse (useful for drawing lines of water, for example)
cmd+o - open room
cmd+s - save room

 
]]>
tag:jungletasty.com,2013:Post/780004 2014-12-07T21:04:02Z 2014-12-07T21:04:02Z Levels - Editing!
This week I took my programmer art and I rigged up my level editor to actually…edit levels. I need to refine the tiles that are selected for each area, and the controls could use some polish (it’s basically impossible to use with a trackpad), but - here it is:

 
Controls:
- Up/Down arrow: change tile underneath mouse
- S: save room XML
- L: load room XML
]]>
tag:jungletasty.com,2013:Post/773982 2014-11-23T03:21:27Z 2014-11-23T03:21:27Z Programmer art
I've spent the last couple weeks trying to do art for my current project. Things I tried:

1) Pixel art - painstakingly slow, and I don't get the results I want.
2) Buying a tablet and drawing by hand - I'd still like to get better at this; but for now - I am bad. Terribad.
3) Fiddling around in Illustrator/iDraw, sometimes with the tablet (also bad)

After getting frustrated I decided to do some research/procrastinating and I stumbled across this post about game art for programmers. I was pretty sure I was interested in doing vector style graphics (at least for now), and then I stumbled across the fact that you could use Flash for that and had an epiphany.

10 years ago, I spent an entire summer teaching myself ActionScript 2 and basic drawing with Flash. I don't recall getting much farther than drawing cubes and stick fingers and maybe animating them, but - it's a toolset I was comfortable with. I downloaded a trial copy, dredged up those skills, and … proceeded to crank out some programmer-quality-but-workable art.

Which I then used.

 
That screenshot is just a rendering test for the different tiles I did, but - progress.
]]>
tag:jungletasty.com,2013:Post/767521 2014-11-10T01:23:23Z 2014-11-10T01:27:42Z LASER PONG
As a basic exercise, I made Pong again but tried to stay as close as possible to how it was originally.

This is also my first project where I added sound effects! I got to play around with cfxr for the blips and bloops - it's great for quickly generating sounds that are Good Enough For Now (although it exports wavs, so you need to convert them to mp3s for Flash to play nicely with them).
(Disclaimer: there are no lasers in this pong)
]]>
tag:jungletasty.com,2013:Post/767271 2014-11-09T06:29:17Z 2014-11-09T06:29:18Z Always back up your work
I'm attaching this as a small, sad reminder to always back up your work. It's the only artifact left from this micro project after an ill-timed git reset blew away the source code it was generated from.
]]>
tag:jungletasty.com,2013:Post/764669 2014-11-03T20:03:57Z 2014-11-03T20:14:15Z Lonely Bear Trap
I took the grid drawing logic from Just The Socks, and then expanded it a bit and built out a game kind of similar to Explorer, but on a flat grid instead of hex this time.

When I hit the point where I realized that I was just doing the same thing as I did with Explorer, I stopped - I'm putting this one on hold, for now. It was still a good excuse to produce some sample code for the next project though; now I have samples for parsing tmx files, stitching textures together, and working with scrollable containers.
]]>
tag:jungletasty.com,2013:Post/758208 2014-10-21T11:54:59Z 2014-10-21T12:05:26Z Just the socks
I spent the weekend building a really basic game about sock matching - but I don't have any good sock graphics, so instead you're just matching coloured squares.

I probably spent more time on the grid animations than I needed to - but the game will continue to draw the grid and add more pairs infinitely.
]]>
tag:jungletasty.com,2013:Post/735348 2014-09-02T11:57:12Z 2014-09-02T11:57:12Z Actually connected worlds
More progress has been made - you can now encounter Algol 4601, as well as choose new destinations to head towards afterwards. Choosing a new destination after Algol will cause a crash though, because I haven't filled anything else in yet.
]]>
tag:jungletasty.com,2013:Post/731809 2014-08-25T02:16:16Z 2014-08-25T02:16:16Z New projects
The theme for this weekend's Ludum Dare was 'Connected Worlds' - I watched it happen, but I didn't have any luck coming up with a good idea I wanted to run with (or at least, I don't think I did).

However, I did have *one* small spark of an idea, which has started to take shape…you can see the early results below.
]]>
tag:jungletasty.com,2013:Post/728735 2014-08-18T03:02:07Z 2014-08-18T03:02:07Z I am not an illustrator
But maybe if I cultivate this, I can just say "it's my style"?

 
]]>