So I’ve been working on the creative mode. There you can just play with all the elements and other stuff as you please. In addition, at any point of your creation, you can save it and later load and continue.
Soon, it will be possible to create any puzzle levels using the creative mode itself.
I worked on Graina during weekend to implement some of the changes suggested by folks here and here. No screenshots this time, since most of the changes are not visible.
Completely changed the control scheme. Left-click collects the grain and right-click drops the grains to the scene. You can switch the grain (i.e. water, sand) by using mouse sheel or the keyboard. If you try to get a grain that’s not selected currently, it also switches to that. Nah, you better play it to see it 🙂
Added the much-missed pause button. Hit space to pause.
Also checked the game as a windows .exe with NW.JS, it works flawlessly in fullscreen in windows! Yay!
Now I have 4 things to do before coming closer to a pre-alpha:
Add creative mode, where you can save the level and actually share with others or play as a puzzle level.
Optimize the renderer to spit more frames per second, also add support for textures instead of colors for the grains.
Add menu to the level for replay, quit, music, sounds, etc..
Development of Graina continues and the core game mechanics begin to take shape. I made a very simple puzzle level using only sand as the interactable element and it’s really interesting that even with this you can still create a puzzle.
So I want to talk a little bit about how the game will shape up, what will be the theme and the core mechanics. Every thing is still mostly vague and can change in the future though.
I’m thinking to add 3 modes,
Creative: Where you have an infinite supply of all the elements and widgets in the game to play with. You can create pretty big worlds. The game engine is not limited in anyway but the processing power and therefore the FPS might become a problem for overly large worlds. At the moment the engine can handle a world like 2048×2048 grid and each grain is 4×4 pixels. This roughly translates to a “small” world in Terraria.
Story: Here you play through the levels, like Lemmings, to help the Gnomes reach safely to the exit door. In each level you have access to a limited number of tools, like the vacuum cleaner, the hammer, the pump. And you also have access to some grain containers like sand bucket, water barrel, lava lamp.
Design: This is like the creative mode but you can actually create puzzle levels. In the end, I can merge this with the creative mode, where you can save your creation to be played as a puzzle level.
So the current theme is based on Gnomes and their widgets that can manipulate the environment. For example you can suck the sand with a vacuum cleaner and store it in your sand bucket. In this case the player will assume the role of a “great gnome tinkerer” which should help the gnomes to continue their journey. Why the gnomes started this journey, where are they going and why are they so dumb they they fall into lava pits and so on are questions to be answered.
Core Game Mechanics
Core gameplay is a mixture of Lemmings combined with manipulation of the world like Terraria and having a dynamic environment like The Sandbox, falling sands or powder toy games.
There are different kinds of element that form the environment. Solids (sand, stone, glass, soil, gold) that fall down with gravity and pile up. Fixed solids that are uneffected from gravity and stay where they are (wall, steel, rock). Liquids that fall down and flow freely (water, lava, oil, acid). Gases that rise up (steam, smoke).
Player can get and put those in the game screen (how?, see below) and also these elements ract with each other. For example when water and lava meets, steam and stone forms.
The mechanics are related only to the story mode. Here I needed something to restrain the player from wrecking havoc on the level, so here is the solution I came up with:
At the moment I implemented on one tool, which is the vacuum cleaner. This can collect solid elements but you can’t collect liquids, gases or the fixed-solids.
In addition to the tools, there are containers for each element. For example, you can only collect sand, if you have a sand bucket. And if you collect and then pour some sand into the water, it will get wet, and you can’t collect it any more, if you don’t have a wet sand bucket (sounds silly, I know). Or you can’t collect water if you don’t have a water barrel.
I’ve made a deal with a freelancer artist using e-lance to bring some style and professionalism to the game. I’m also thinking about sound efects and the music but my extreme tight budget is limiting me.
For mechanics, I will implement three more tools to further enhance gameplay, that can manipulate the fixed-solids, liquids and the gases.
Added containers for the elements. Containers show the amount of collected element.
Entry door now opens when you click, with a nice animation.
Buttons are working as radio-buttons now, when you click a tool or a container, others get deselected (pretty obvious behavior but was hard to implement)
Added a fancy particle engine to show wich grains are collected and where they are stored.
Changed the ugly looking wand to a not so-nice vacuum cleaner
Added a second level: Sandy Business, most porbably will serve as tutorial level in the future.