Tuesday, 8 September 2020

JS13k Day 22 - Mage Duel is sort of Playable

 I've had a bad few weeks in programming with varied problems across work, life and the world threatening my JS13k Project but have managed to put some long hours into it in the last few days.

I have got a lot of the game system working including the turn based resolutions required for a complex game like this. 

I have also built a graphics system that draws brush-stroke like lines which are beginning to look more like the oriental ink brush on rough paper look that I am hoping for. 

Time is very short and the game has a long way to go but I am hoping to make a fairly complete entry.


This version is playable sort of and a pretty good demo of the graphics.

Tuesday, 18 August 2020

js13K Day 4 - Curve Editor

 I've been doing a bit of work on the js13k mage dueling game.

I've got a paper prototype and am working on some formal rules for the game, still in progress but looks like it could be fun.

On the code side I still haven't started any actual tight game code but I have built a very simple svg editor which I needed to trace predictable svg from my art work samples. You can see this editor here https://elementalsystems.github.io/MageDuel/day3/svgedit/ which displays a SVG path (d attribute) in a edit box and draws the curve on the demo below. You can position the red circle on a point by clicking on the text representation of it. Clikcing on the diagram moves this point. 

I build this little toy because have a very specific requirement for my avatar paths - that each path has exactly the same number of points as any other which represent similar parts of the curve. Using this feature I can interpolate between two curves very efficiently and smoothly (and without byte costs).

This https://elementalsystems.github.io/MageDuel/day3/svgedit/test is a sample of this technology working in practice. Additionally there are two cool features I'm working on here: the 'paper' background is generated with svg filters and a noise function; and the fuzzyness of the lines supposed to look like chalk or charcoal which is generated using a displacement filter. I'm not really happy with either but I'm beginning to understand how to do what I want with filter effects.



Saturday, 15 August 2020

JS13K 2020 Day 1

 It's that time of year again and in a few days the js13kgames competition will begin. (js13kgames: a contest to write a game in <13kb in 30 days that runs in a browser).

I have decided to complete an entry despite various time pressures mostly because I have taken part every year for the last 5 years and in this difficult covid time I should be part of the global fun. 

I have (as always) ambitious goals:
* I plan to enter into the desktop, mobile and server categories of the contest with a game that  will adapt to available interface and graphics effects. I've never written a multiplayer networked game before or entered the server side of the contest.
* I would also like the ability to play solo vs an AI; against another human player online (using the js13k sandbox server side); or against another human on one device (pass and play).
* Use a hand drawn look with super smooth animations. I really enjoyed using SVG last year and I want to take it out for a broader artistic spin.
* Include sounds! I never make good sounds in my entries - this year!

At the moment I'm not really sure what I will make but I'm very inspired by Onitama's card system and am considering a deck based combat duel of some sort.

The contest theme for this year is '404' which is a bit difficult for me but I'll find a way to fit it or just ignore it.


Saturday, 21 September 2019

Sopwith Back - js13kgames - Retrospective

The js13k contest ended last week and my final project can be found here on the js13k site .

I am really happy with my final game - I think it plays well and is a elegant little art piece that reflects my history and interests.

My decision to use SVG for all the game elements turned out very well. The various graphics efforts and transitions between them depend entirely on SVG/CSS facilities: control line butts and line joins; to animate stroke widths and fill colours; animate opacity of individual strokes or fills; highly customised gradients and patterns. I had no performance issues with SVG - I expected to have to mess around optimising the scrolling and setting CSS will-change values but in the end the game was side scrolling the terrain (which in 1984 mode is made from hundreds of tiny line segments to be pixellated) with tens of animated objects on the screen and still holding 50fps .SVG provides the blur and offset filters for some of the modern 2009 era effects.

Additionally, because SVG uses of an arbitrary unit system, the 'minimap' was extremely easy to implement with almost no new code.

My final product was only 10kb of the available 13kb. I wished I had a bit more time, I would have loved to implement a few more things:

  • Sound Effects: I planned to do the same tricks across the eras with the sound effects - from 1984's drones and beeps to 2004's polyphonic stereo sounds. 
  • Music: Some cute chip tunes would have been nice.
  • Better 2004 graphics: A very better implementations of the 2004 look - using the gradients with more subtlety; using transparency more; sexier control panel for the 2004 look with some text effects..
Overall I am very happy with my final product (and I got a mail from the original author of Sopwith!).



Wednesday, 11 September 2019

Sopwith - Play Testing Results

A few folk have played the game in the last few days; thanks to all those who did and their very useful feedback.

The general consensus was that the game was fun and the idea exciting. However ALL the players reported that the game was just too hard - even at its novice level. A clear UX problem. At least the AI must be less relentless especially when the player's plane is on the ground, and in general less aggressive and a much worse shot.

One player remembered (correctly) that the original had a 'No enemy' mode where you could play without enemy planes just to practice flying and bombing - this is an excellent idea and I can easily build such a 'CADET' mode.

They also expressed a general feeling that the game could be more forgiving - stall less damaging and/or less easily; make is easier to launch your bombs without dying on them and similar ideas.

Everyone noticed the changes of theme but didn't really associate them with different generations of video technology. I think I want to do something more explicit on screen for this.

A few bugs were reported:

  • a way to clock up the score without any effort by messing with the AI pilots. 
  • no one liked the bullets and bombs and smoke graphics - this is fine as these were just place holders at the time of the testing - I got cool graphics for them (now),
  • some issues with corner case collision detection (destroyed building / plane hits plane)
  • issues with the rules around planes on the ground and plane crash sites and how they affect the game play
My play testers also had a few interesting ideas I didn't expect: a change of name: Is 'Sopwith 2019' a good joke? 'Sopwith Returns' is maybe cooler?

I have quite of lot of bytes but not a lot of time - just a few refinements...




Monday, 9 September 2019

Sopwith - Play Test Time

My Sopwith homage is playable and needs to be completed in the next few days. I think it is time for real players to try it out.

 A fully playable version with three modes is available here. (requires a keyboard)

Although there is help text to assist you the keys are: Left/right arrow to steer plane; down arrow to flip; A and Z to change speed; Space to fire and B to drop a bomb.

So go play it if you want and comment below on what you think:
- Is it easy enough to understand and pick up
- Was it fun to play? Too hard? Too Fast?
- Did you notice the back in time changes in graphics?
- General overview; any bugs you noticed?

My high score on BRUTAL mode is about 4000 - but I'm not much of a game player.




Friday, 6 September 2019

Sopwith - Video Modes

With just a week left to go in js13kgames my game is mostly working and playable (and kind if fun) like the original game.

I've made a little video showing how the appearance can move smoothly from a circa 1990 256 VGA colour look to the most basic 1984 4 colour CGA display modes.

Watch this video which demonstrates the overlay, terrain and objects shifting between modes.
Got a few more tasks especially intro, tutorial and finishing screens still to do - then to concentrate on the appearance a bit more.