Taking in visual ideas

I’ve been frantically programming and working on no less than 5 projects in parallel in my non 8-5 day-job hours. The new games are coming fast and I’m having a blast trying out new ideas. But I’m always hitting the wall when it comes to assets or ui design. I’m great at proving a concept quickly, but then my attention can fizzle as the details drag out. Historically I’ve done all my own assets, (and it shows).

But recently I took a stab at UpWork and for one small project to ‘revamp’ my ui, a great UI/UX designer helped me really make the app stand out. This was on 8’s wild, he then helped me with 11s Up which is getting ready for a major refresh (Version 3) as well.

With the success of that, I now am not waiting til the end of a project and am trying out new ideas and working with more artists. I currently am working with 4 artists on 2 projects, so 2 for each goal. This is giving me a way to try people out and see different opinions for the same problem. I’m getting impressed with some of the interpretations of my ideas, but I’m also learning that I may need to provide more hints to them at the start of the project. But to be fair I wanted to see what they could do with limited input to see if they could come up with something beyond what I can imagine.

In the middle of this experiment, but so far I’m really happy with the opportunities UpWork has given me as a developer to free up my time focus on code and use a worldwide pool of talent to help me out at a budget I can set. It’s not a completely cheap exercise but it’s saving me a lot of time and the results 50% of the time are above and beyond and that’s worth it.

Some before / After views of the games above.

As well as those I have some new ideas that don’t even have games ready I have artists helping me flesh out. Very exciting. Now if I can get the ios 14.5 releases done this weekend I probably won’t be waking up at 2:30am to blog post.

Teaching kids to make games through stories (Text adventure Engine post #1)

Screenshot of Adventure Engine v .000001

Screenshot of Adventure Engine v .000001

I have been pulled apart for so long, it’s nice to get back into gaming!

My son turned 6 just recently, and I wanted to see how far we could go to make our first game together. I thought we’d start where I did, at adventure games. My first real game memory is ‘Adventure’ for the Apple ][. I’m sure there were many before that, but this game stuck in my head. It was so simple, but fun.

So I decided to see what we could do in a long weekend. I started with him drawing a maze on a 8×8 grid. He did this by drawing doors on the walls, and this would be a path. Then I asked him to find a dead end and draw a key in it. I explained the point of the game will be to walk through the maze going North, East, South, or West to find the key and get to the door and find the trophy.

What would be required from me:
* Some JSON data structure to hold the room information
* Keys to identify which doors were available
* Descriptions of the room

So I started with the basics of the JSON data, with that above.

Then I realized there should be some actions, (other buttons that the user could press, e.g. ‘look around’). So I fleshed out the json to take ‘actions’ these would generate buttons to be pressed. The default was ‘look around’, when that was pressed we’d display alternate text.

* Alt text if you looked around

I defined the Data structure, then called him over. The next step was to build out all the rooms. He first labeled each square from 0-0, to 5-5 for his grid, this would be the id in the json object per room. Then he read aloud the doors, ‘North, East, South’, etc for each room and I would enter ‘nes’, as they were called out for each room into the json. I then sent him on his way and piped in some clever text for the description and alt-text.

At this stage I got the game up and running within 4 hours. I then sat my son down, and he started to read and do a couple rooms then got bored, as he didn’t see any pictures. (* ok so he’s spoiled with modern gaming, my bad). So I added some simple graphic placeholder, then I worked on items. The idea is that kids slightly older could program this by hand, but better define tools later. Once again everything is text based, so I used tokens for items, e.g. $key is a token that looks up the item dictionary to get the appropriate item.

Here’s a sample item.
{ id: "$key", desc: "Red Key", type: "inv", value: "key_0001" }
The action is defined as:
'Take $key'

So the $key is detected on load, the text is swapped out with the ‘Red Key’ text, and displayed on screen. The item can then be taken, ‘Take Key’ and it’l be added to the inventory. This was some of the more clever code. So now I added tokens (simple variables), and then I needed to add conditions.

* Simple variables (such as a key) that could be added to an inventory and used.
* A way to stop people from going into rooms with conditions (such as a key)
* Verbs (Take, Use, Drop)

Now we had verbs, if you took an item, it would go in your inventory. If you dropped it, you’d lose it. If you used it, it’d be consumed (like use key on door).

So now to stop the user from going into rooms they don’t have the prerequisites done, I added that into the engine. So if a room has a preq of ‘$key’ they cannot go in unless that item is in the inventory. Also we need to express why, so if you have a preq, you have a preqdesc which is alt text that is displayed stating the condition you haven’t met.

The game is now fully playable, sitting at around 180 lines of code, 100 lines of html / css, + json / images.

Next I added some doors…

So now we get into dynamic doors, we already know the directions, and that enable / disables buttons. So I used that same logic to overlay images to draw doors for valid visible paths (North, East, West). And the game is now coming to life a bit. I still don’t have zombies, but they’ll come soon enough. Below is a screenshot of the engine and game in progress.

My long term goal is to make this actually an engine we can use to teach kids to make some games and learn story telling through games. The tools I aim to be simple and easy to use. Unfortunately my front-end skills are terrible, but the app design and data is beautiful. 😉

Til next update!