It is my quest to complete Kick, Punch, Eat Meat and if fortune favors me, turn Robot Monkey Brain into a sustainable venture. Leave a comment if there is any other aspect of this game dev stuff that you are interested in keeping tabs on and I’ll include it in future logs. Here is what has been happening over the past 4 weeks:
Implemented Equipment as playable cards
Conducted multiple play tests, gathered a lot of quality feedback (thank you, friends!)
Removed Equipment as playable cards
Implemented Equipment as items added into Slots on the character. They provide passive effects.
Changed the map to a Hex map
Implemented Line Of Sight on the map
Added Ruins to the map, locations which present the player with special Events
Implemented multiple outcomes to events with probabilities used for selecting the outcome of the player’s Choice
Recongigering of the Combat UI elements
Much balancing of existing Cards, Enemies and abilities
Many bug fixes and performance tweaks
Progression towards making Robot Monkey Brain into an LLC
Researched the Photon plugin for Unity (for future projects)
Addressed a performance issue with Instantiating too many cards every time the deck changes
Added a number of new Poison card mechanics
An early version of the map with Hexes and their various Biomes. Chests represent Ruins for now and Mountains block movement and line of sight.
Side Quest
Eat all the food in my house before buying new stuff. I’m allowed to buy food that’ll go with something I’ve got an am trying to use up. For example, I have a bunch of granola, so I’m allowed to buy yogurt to eat it with. At this point, I’m getting pretty low on food stuffs and these pickle, salt and coffee ground sandwiches aren’t the best.
I’ve been on a break from further development for the past month. Various reasons for the break including just being busy, freelance design work and playing too much Civ 5, DOTA2, Card Hunter and Android:Netrunner.
The World
One thing that added to the stall was trying to come up with the right way to proceed with the World Generation. The current way the world is generated in Nano is not very apparent to the player. But here is a summary of how it works:
A player enters an x/y location, either through moving to that location or their initial spawning (which places them at 0x 0y.
The game checks to see if a terrain piece has already been set to that location.
If there IS a terrain piece saved to the player’s location, then that terrain piece is displayed to the player.
If there is NOT a terrain piece saved, the game randomly rolls to see which terrain piece to use out of all terrain pieces in the database. Then that terrain is saved to that location and any player entering that location will find that terrain piece.
While this was very easy to implement, it also is very rudimentary and does not allow for the inclusion of Biomes. Ideally, if a player was in a Thick Forestterrain, then they moved 1 position they would still be in a Forest biome and hence get another forest type terrain piece generated for them. This would continue until the player came to a transition piecewhich the game would place semi-randomly (it would take into account the adjacent terrain which would affect the probability of the player’s location being generated as a transition piece). Once a transition piece has been placed, adjacent, undefined locations could be from any other biome.
Basically, this would make it so a player wouldn’t be in a forest one second, a mountain the next and then a desert after that. Hopefully, implementing biomes would make the world of Nano seem more realistic, with various Forest terrains adjacent to each other, as with all other biomes.
This however is much harder to implement and there are many ways to achieve the desired effect. I looked into a variety of procedural generation techniques which use height maps or Perlin Noise. But these methods seemed a bit too complex for my needs and it would also mean more terrain would be generated than I needed, if I was to generate terrain only on a character’s movement.
Another option was to simply create the game world manually. This has the benefits of being easy (no programming needed) but would limit the size of the world and would make the world less dynamic.
So, my current plan is to do something similar to transition piece idea, mentioned above. I’ve yet to begin implementing it but I think that will achieve my goal best without being overly complicated.
The Art
I’ve got new card art! Ashley Kuros has been a friend of mine for a long time and she is a talented artist. She has been nice enough to offer her help with the art needed for my game! So far she’s provided a bunch of pieces to be used with the various cards you can find in Nano. Below are a few of the pieces provided by Ashley already implemented in Nano and I hope she’ll continue providing more!
Long story short, I got the Combat screen to display within the World view via ajax. What does this mean? Means the game looks like this when in combat now…
Featuring background scene art by Koishii Kitty.
This turned out to be easier than I expected when implementing, but took a while to plan out properly. The result is a smoother transition from Event to Combat. There are still a bunch of things I need to refactor now that this is how the combat screen will be displayed, but it’s a step in the right direction.
I still need to change the card’s ‘Use’ button to use ajax and the players stats in the top left need to update after each combat round.
I also ajax’d the close button for the inventory screen, meaning now, going from the World screen to your Inventory, using an item and then closing the inventory screen to return to the world screen is all seamless. I’m going to start looking into fancy javascript animations for the opening and closing of screens. While the current transition requires no full page refresh, the switch is somewhat startling. I think all it needs is a slight fade as it transitions.
I got a few pieces of art to use in Nano! Here are a few of the pieces that Koishii Kitty (check out her DeviantArt portfolio).
She’s been a friend of mine for years and I’ve always wanted to collaborate with her on a project, so I’m pumped that she was kind enough to provide some scenery art for Nano.
I’ve already added these scenes by Koishii along with a new others she provided. Updated screen shots of the scenes within the game itself are on the way. I’ve just been trying to make the game’s combat, inventory and world screens work with Ajax instead of full page refreshes. Doing that and crushing the bugs that pop up along the way have been keeping me busy.
UI improvements for the World screen. It still have a ways to go, but it’s a start.
Random Monster Encounters! Characters are now hurled into combat randomly when they enter a new location.
Probably going to need to reconjigger Cards and combat again to make room for more complex card interactions. I’d like to avoid making a separate method for each card, but I think some cards will require it.
Thinking about making more complex card interactions means I might have to step my AI’s game up. Perhaps that is where I can begin implementing the learning AI I’ve been wanting to experiment with.
I need to add a lot more content, more Cards, Enemies, Terrains, Items, etc. I’ll make a form that I can use to easily add those things to the database.
I hope to have a veeeeery early build “playable” in a few weeks, if anyone is interested in trying out what I have so far.
Here is a preview image of the “World” screen. As a player navigates the world they will be shown artwork for the terrain type they have come upon, as well as a text description.
You can also see the current implementation of the navigation buttons. Which are simply text links for now. As I begin working on the actual user interface these text links will change into buttons with graphics, just like a big boy game!