Thursday 24 August 2017

JS13k - Day 10 - 3d pretty and a 'real' level!

Got a lot further visually in the last couple of days - I have set-up the 3d transforms the way I have always envisioned them and at least on desktop they look very nice.

My new demo has a whole slew of new features:  a very different white backdrop; the 3d tilt and associated spark animations; pretty time control buttons; responsive layouts.

My new demo level is a lot more complex (think it may be approx level 6) and has multiple solutions of varying complexity some of which are 'quicker' than others - I really like this property in puzzle games - multiple solutions lead a player to explore the problem space more.

I'm also developing a more complex tileset for the upcoming levels.

Current size is very nearly 6kb ... I think it would be great to release the 13k games including a level editor but I just don't think it's going to fit.


Sunday 20 August 2017

Js13k Day 7 - Level 1 Demo and Progress Analysis

So one week in into js13k I have this demo which might sort of look like level 1 of the game  which is cool. the demo has audio effects; detailed (if not pretty) graphics and currently weighs in at 4.73kb (about 33% of the 13k).

In italics, the original feature list I posted on this blog:
  • Elegant, minimal meta-game interfacing with access to all levels: No work on this yet and I wonder if I want it more cute than elegant,
  • Persistent local storage of progress and achievements: Not yet implemented but I'm getting ideas for how to give awards for the levels.
  • Very elegant, abstract representation of the game play with minimal interface.- think my current display demo is pleasing and clear, so I'm winning here.
  • Unique appearance for each level - algorithmic backgrounds and feature generation. Each little spark is unique and the general engine I'm using to draw tiles is very configurable on a per tile basis; so I've got good tools for this but am not using them yet.
  • Playable without external instructions - tutorials if needed.Seems like I;m going to need a little text to explain things but the interface should be easy enough that players can figure it out by poking it,
  • Simple but varied audio effects for events and UI responses. Got a few different sounds in the demo and the sparks chirp a bit at random - I am pretty happy with the ideas here and the code works nicely but need to introduce more variation.
  • Game play that extends over 20+ levels which might take several hours to consume and at its hardest will be challenging to most adult players. I've got a good level editor which is easy to design with so it should be easy enough to design 20 or so levels. I'm not sure I'll get a couple of hours of play - that would imply the average levels takes 5-7 minutes to master which is quite a long time. The final criteria (challenging to adults) I am currently quite confident about - I think the puzzle system is going to be complex enough to be quite interesting.
  • Playable/usable on all screens and devices: I think my current demo works universally although I haven't tested it. The basic square puzzle space (which is big enough on the smallest device) and some flex box magic is going to make this all work without much cost in effort of bytes,

So one week in, using a third of the bytes, and still mostly seeing my goals as achievable - so far so good.



Thursday 17 August 2017

JS13k - Day 4 - a Level Editor!

A few more hours work on my puzzle game and I've got the hex-grid layout code working - so now I can draw entire boards of the puzzle system (although I am missing some key tiles at this point).

I also created the capacity to set some tiles so that they rotate 60 degrees when clicked - this 60 degree rotation on hex tiles is central dynamic of the puzzles.

I have also created a level editor of sorts which you can look at here which accepts tile indexes from tile cheatsheet. and an orientation/action character for each tile. This editor outputs a 60 character string which should entirely define a single level: 20 levels x 60 bytes = 1.2kb - which is a number I can live with especially as the  repetitive nature of these strings makes them a good target for zip compression at the end of the process.

Current release game size: 3.47kb


Monday 14 August 2017

JS13k - Day 1 - Lost at the beginning.

The js13k contest started yesterday around lunchtime in my time zone - the theme for 2017 is 'Lost'. I was quite focused on a maze-like puzzle in many recent sketches 'Lost' seems to suit my ideas well and I think a lot of other competitors are going to have some good fun with it.

I have made a little bit of graphics code that draws something like the tiles I have been sketching on the blog - the first page I have created is designed as a cheat-sheet to use when designing levels and displays all the possible tiles. I think they look rather smart and will certainly do for working pieces as I go forward with more of the code.

I really like the way I can write a cheatsheet like this and will be able to put a lot of code to run a level editor but grunt can still build me side by side versions: a debugable dev version with all the tools; and a zipped release of the game minus any dev code.

Speaking of which, current size of release version 2.93kb - all it does is draw tiles!

I have opened a git repo for my development which you might want to look at for inspiration or out of curiosity.

Monday 7 August 2017

JS13k2017 - Tooling up!

I spent a few minutes this weekend setting up some boilerplate and tools for the upcoming js13k contest.

I am planning to implement using atom and chrome with grunt for the heavy lifting. This repository https://github.com/ElementalSystems/js13kinit is a basic empty project set up for a mobile js13k entry.

The html is very minimal; striped down to the bare minimum that will play well with the mobile devices and won't throw any console warnings. I intend to work in scss and use sass to minify the CSS.

Grunt and npm show off their flexibility with a develop mode that can custom rebuild any changes and locally serve a commented well formatted version; and a release mode that minifies both css and javascript and compresses the result into a zip file as required by the js13k rules (and shows you how close you are to the zipped 13k limit)