Here are glimpses of the new things I’ve been working on recently:
Still working on the creative mode. Now on the desktop version you can save/load the created level to your computer and soon upload to a server.
Current work is to make an inventory system similar to creative inventory of Minecraft. Why Minecraft? Well, I guess Graina shares -some- features and that inventory system is simple and fitting enough for me also.
At the moment I nearly finished the inventory. No screenshots yet because everything looks soo awful. So screenshot will follow as soon as I can work on some -at least simple- graphics.
- 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.
Made a first level as a proof of concept. Here there is a small lava pond in the gnomes way and you need to open a hole in the walls to make it flow to the bottom.
Changelog for this update, v0.04:
- Levels can have actual background art, not has to be plain back anymore.
- Camera doesn’t go beyond the level boundaries.
- Liquids and vapor (water, lava, steam, etc..) are now transparent.
So the game is shaping up. Inspired by this post on reddit, I added some Lemmings-like objective to the scene. Now in overall, you try to lead the poor gnomes to the safety by shaping the world with your “godly” powers. I’m not sure who are we playing actually, an old gnome-god or an all powerful gnome-wizard?
If there is anything you want to see in the game, feel free to comment 🙂
Today I added basic movement for our gnomes. They interact with the world, jumping over the grains and moving around. I also added a spawning door and an exit door to the scene. It actually is fun to play with. The addition of chracters to the game really increases the fun compared to a plain sandbox.
Here is a short gameplay video with a nice celtic music. In the next post, I’m planning to add an actual browser-playable version.
It’s really helpful to make prototyping before actually starting to polish and optimize. A hard to learn lesson but of utmost importance for gamedev (yes, I’m feeling poetic).
Anyways, playing around with Graina, I noticed that it’s, erm, boring. Yes you have the sands and water and lava and other stuff but it becomes boring after a few minutes of play. Maybe this is the reason that the original game (Falling Sands) never made it big, like for example minecraft, I don’t know.
Now after a few hours of coding, I added a controlable character to the scene. I’ll either make smt. like a sandbox-platformer or smt.like sandbox Lemmings. And here are some screen shots (Couldn’t made a decent video on my MacBook Air, any tips?)
First we have the proverbial sandbox, then add some sand, some water and some guys. I managed to use the particles as a collision map thanks to the great impact engine I’m using easily. What I have is now running and jumping fellas in a completely dynamic particle-based are.