Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1075762 Posts in 44140 Topics- by 36112 Members - Latest Member: Nbohlsen

December 29, 2014, 12:51:09 AM
TIGSource ForumsFeedbackDevLogsThe furnace engine
Pages: [1]
Print
Author Topic: The furnace engine  (Read 2711 times)
madflame991
Level 0
***



View Profile WWW
« on: February 02, 2014, 12:08:48 PM »



Hi! You know how in life you see something, you really like it and the next thing that pops in your head is "I think I can make that too, but I would add this and that..."?
...one day I saw PuzzleScript - and it seemed amazing how increpare managed to make an accessible game specification language with which you can cover a pretty wide variety of (puzzle) games. That's how the furnace engine started: use a DSL similar to puzzle script, but offer mechanics (rules if you wish) for other types of games. While PuzzleScript is based on rewriting rules and interaction consists mainly in stuff around the furnace engine revolves around a USE function (and using stuff on other stuff).

What's possible in the furnace engine?
You can USE swords on monsters.
You can USE pickaxes on rock. (yes, you can write a subset of Minecraft only in USE rules)
You can USE keys on doors.
You can USE fire on iron to obtain gold (alchemy rules!).

You can also transform the world by just walking over stuff which opens up possibilities for puzzles (the whole of Whir can be specified in the furnace engine).

Stop repeating USE! NO! it's a function!
USE: (TerrainItems x InventoryItems) -> (TerrainItems x InventoryItems x HealthDelta)

Some other features I should mention are:
  • Animations!
  • Sprites of ANY SIZE (sample game has 5x5 sprites out of convenience)
  • Teleportation
  • An inventory

And here's a few notable additions I'd like to include in the future:
  • Improved hints/error messages
  • A health system (done)
  • Volumetric lighting a la Minecraft
  • Bigger, more complex inventory system

Github link --> https://github.com/madflame991/furnace-engine
And a sample playable, editable world --> http://madflame991.github.io/furnace-engine/src/

P.S. Thanks increpare for PuzzleScript and all the deliciously weird games you've made throughout the years!
« Last Edit: November 17, 2014, 12:25:17 PM by madflame991 » Logged

madflame991
Level 0
***



View Profile WWW
« Reply #1 on: February 09, 2014, 08:16:13 AM »

Progress report 9 feb 2014
  • added PARAM section
  • can now select the size of the camera
  • can now set the scale factor
  • can now set the starting position and level
  • editor is hidden by default
Logged

Suedeash
Level 0
***


That guy.


View Profile Email
« Reply #2 on: February 12, 2014, 11:03:53 AM »

Progress report 9 feb 2014
  • added PARAM section
  • can now select the size of the camera
  • can now set the scale factor
  • can now set the starting position and level
  • editor is hidden by default
This looks cool. Following.
Logged
madflame991
Level 0
***



View Profile WWW
« Reply #3 on: February 18, 2014, 10:50:24 PM »

Progress report 19 feb 2014
  • added NEARRULES that get evaluated when the player is near a block - this will allow for a larger class of puzzle games
  • NEAR/LEAVE/ENTER rules sections are now optional

Not really visible changes, but still important
  • I'm slowly switching from javascript to coffeescript
  • the game source files are now minified and packed in one file to make loading times smaller. This is of course optional
Logged

madflame991
Level 0
***



View Profile WWW
« Reply #4 on: February 26, 2014, 12:29:24 PM »

Status Update 26.02.2014
There were no new features added as during the past weekend I've been working on a game for the miniLD competition, using the engine. It was a bliss not having to code anything and focus only on the content. At the same time, as the engine had not been properly battle-tested before,during these two days I've identified several bottlenecks in the development process (defining sprites using letters is tedious and boring)and I will address them as soon as possible.

Here's a link to the LD entry (which became the default example game): http://madflame991.github.io/furnace-engine/src/
It's a minecraft-like adventure game with crafting, mining, smelting, chopping down trees, swording down enemies, exploring and matching keys with doors!
Logged

Gimym JIMBERT
Level 10
*****


NOTGAMER ludophile


View Profile Email
« Reply #5 on: February 27, 2014, 05:13:53 AM »

keeping an eye
Logged


ILLOGICAL, random guy on internet, do not trust (lelebĉcülo dum borobürükiss) ! GЮЯЦ TФ ДЯSTӨTZҚД!
sonic the heidegger (Überall Geschwindigkeit)
madflame991
Level 0
***



View Profile WWW
« Reply #6 on: March 04, 2014, 12:11:01 PM »

Update 04.03.2014
As promised, I've started to address the issues I've noticed while making the LD entry. It seemed that building the sprites in an image-editing software and then encoding them manually as characters was the biggest bottleneck, so I've made an automatic importer. You just have to drag your pretty spritesheet and the importer will magically create all the color bindings and object sprites. Here's a link if you want to try: http://madflame991.github.io/furnace-engine/src/conv.html.

Keep in mind that it's just the fist iteration and it will become better - in the future it will also remove white/unused space from the spritesheet. Right now it outputs in the Furnace Engine format, but I'll add support for the PuzzleScript format too.
Logged

madflame991
Level 0
***



View Profile WWW
« Reply #7 on: March 11, 2014, 12:13:42 PM »

Status update 11.03.2014
  • enhanced the sprite sheet importer
  • use the sprite sheet importer to finally have font support
  • use-rules and enter-rules can now print messages
Logged

madflame991
Level 0
***



View Profile WWW
« Reply #8 on: April 01, 2014, 10:47:37 AM »

Status update 01.04.2014

After a two week break (hey, I work on other projects* as well (and I have a regular job**)) I took the time to implement some goodies:

  • you can now use the alpha channel when binding colors! - with "rgba"
  • the sprite sheet importer can output in the PuzzleScript format! - this is a tribute feature

* An S-expression parser: href="https://github.com/madflame991/espace.js"
** I am a developer of the Goo Engine - a WebGL 3d engine
Logged

mike_w
Level 0
***


Hi


View Profile WWW Email
« Reply #9 on: April 01, 2014, 12:18:56 PM »

This looks neat-o. I really like the idea of a sort of expanded-scope puzzlescript.

Sort of odd question, but will the engine keep the format "move one tile instantly" or are you planning to add more real-time movement. Not necessarily that you can bust out of the grid and go whereever, but just an animation when moving between tiles kind of like how Pokemon does it. Not make-or-break, just curious.
Logged

madflame991
Level 0
***



View Profile WWW
« Reply #10 on: April 18, 2014, 10:21:51 PM »

@mike_w
Both "grid-locked tweened movement" and "grid-free movement" are on my list. They will, of course, be optional of course as there's no _best_ movement style for all games.

Status update 19.04.2014

  • checkpoints! yes, now your progress is saved
  • a health system - you can get hurt and heal
  • better inventory
Logged

madflame991
Level 0
***



View Profile WWW
« Reply #11 on: May 01, 2014, 02:11:47 AM »

Status update 01.05.2014

There have been no new features added this week, but guess what?! The Ludum Dare compo was on this week-end and that means... I got to make a new game in the Furance Engine. It didn't turn on to be the prettyest game in town, but it was fun and user-testing is very useful (I get to play-pretend a user).

Here's the link to the LD entry and a screenshot.
http://www.ludumdare.com/compo/ludum-dare-29/?action=preview&uid=5035

Logged

madflame991
Level 0
***



View Profile WWW
« Reply #12 on: May 28, 2014, 11:01:58 AM »

Status update 28.05.2014

  • added a way to import and export game specifications as PNG images (which are tiny and look like noise)
  • added a way to import game specifications from external text files
  • added a way to view sample games (little furnace and under the snow)

In the next period I'd like to focus on the vallidator and parser (better parsing, more useful messages)
Logged

madflame991
Level 0
***



View Profile WWW
« Reply #13 on: June 28, 2014, 09:36:01 AM »

Status update 28.6.2014

Writing a game spec validator is taking more time than first anticipated. I managed to cover a lot of ground: wrote unit tests, converted a bunch of js files to coffee and have validation working for some sections of the spec... however, there's still a lot left.

After the validator is finished and the code is nice and tidy, I anticipate I will be working on more features (ARROWRULES maybe?)
Logged

madflame991
Level 0
***



View Profile WWW
« Reply #14 on: July 13, 2014, 09:58:08 PM »

Status update 14.07.2014

I'm continuing to work on the validator. SETS and LEVELS should be fully covered now. Only the *RULE sections remain now. I'll post as soon as I'm done and then I can bump the version up to 0.5
Logged

madflame991
Level 0
***



View Profile WWW
« Reply #15 on: September 19, 2014, 11:19:43 PM »

Status update 20.09.2014

Validator is COMPLETE. That means there are safety checks and descriptive error messages whenever a game spec is not valid. I'm also very happy that now the Parser and Validator have plenty of tests in place - this makes further development much easier.
Development will continue, but at the same slow pace. I'm aiming to add sounds and more rule types.
« Last Edit: September 19, 2014, 11:26:00 PM by madflame991 » Logged

madflame991
Level 0
***



View Profile WWW
« Reply #16 on: November 17, 2014, 12:23:17 PM »

Status update 17.11.2014

  • the editor now sits in its own window - that should give you the freedom to place it anywhere (even on a second screen)
  • SOUNDS - there are 5 sound synths available that generate small sound samples, ideal for this sort of minimal games
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic