Showing posts with label Random. Show all posts
Showing posts with label Random. Show all posts

2014-04-01

Where did March go?

So much for Plan G. After 10 months of working on this as a side side project, I think it's time to elevate it to full side project status to get it done. First step is to pin down a name for the system. I'm thinking 'Naught' could be pretty decent. Runners up are 'Rue' and 'Darkness'. 'Regret' might work too, since that matches the result of most of my decisions. Before I go getting overly positive, here is a feature list for the system along with my progress.
  • Works with Win, Mac, Android, iOS (pretty much implemented in that order)
Unity does the heavy lifting for this one. Unity also has Linux export which I'll try out. There are some platform issues on mobile that I have to figure out so as of now I'd say I'm 50% on this one.
  • Games from this system should look a lot like the stuff I was doing in Twine
This is not that difficult because I wasn't exactly doing all that much unique stuff in Twine. I recently decided to take a saw to the interface code that I had working, so now I'm at 30% on this one. It is my primary focus right now out of all the features in this list.
  • Non-parser world exploration along side of choose your own adventure options
I'd like to create games that are like bastard children of parsers and cyoa. I have no idea how well this will work, but that hasn't stopped me before. After experimenting with environment exploring in chapters 2 and 4 of Midnight Room, I found that it was fun but difficult to implement. I ran into issues with something I wanted to do in chapter 4 and that was around the point that I lost hope in using Twine. Anyway, I'm ignoring adding a parser in this system for now so instead the world is explorable via buttons. I know what is lost without a parser but I'm not entirely convinced that it is worth it to me to have one.

Part of the interface redesign I'm working on is to see how an infinitely scrollable list of nouns and another for verbs works for exploration. This is currently around 60% given the interface construction.
  • Easily handles lots of text and variables without needing hacky source code
This is a super important thing and it's working very well. I've spent the majority of development time getting this part of the system running so it's at 90%. This feature just means that I can store variables for anything and change them based on what happens in the game.
  • System allows state driven responses based on rules with criteria
This is tied to the previous feature and is also at 90%. What this basically means is that there are potentially lots of responses to a given command, but only the response that most closely matches the state of the world will be displayed.
  • Requires no coding to build games aside from any special functionality
Currently building a game means setting up a scene in Unity by dragging in prefabs that represent the different objects of the world and the various responses that result from selecting actions on those objects. After giving up the horrible editor script route I was on, this has become much simpler to implement and making games is actually very fun this way. There are some more ease of use things to do like creating context menus in the scene view that create preloaded prefab sets for objects. Those types of things aren't needed to just get the system working, so I'd put my progress at about 80% on this one.
  • Designing games is done in the Unity editor and using one or many txt files for writing
This is tied to the previous feature and is also at 80% Once the world is setup you click bake then get back a text file that you can use to write stuff. Then you import the text back in and repeat as needed.
  • Games support Undo/Redo/Saving/Loading
This one is a requirement because people like to change their minds during games and of course save and load progress. The functionality is mostly there, but the interface for saving and loading is up in the air during the interface overhaul, so I'd put this at 60%. I'm really also interested in being able to load saves across games so that for example something that you did in one game could matter in another. Another neat thing is that saves are shareable files.
  • Games can be modded by me or others (who are brave)
This is the last feature I'll list and it's probably the most important. I think that games should be changeable by players if they really want. I envisioned it would be cool to have the ability to write entirely new branches to stories, add new characters and add new environments without needing Unity at all. The nature of Unity games makes it difficult for modding without planning for it, but for a text based game I figured the barriers should be a lot easier to overcome. To make this possible in my system the text that makes up the story and the world structure of the game are both loaded from txt files at runtime. I plan on having a directory set out for where these files could be placed and then loaded in along with the default game when it's run.

The biggest problem here is that the structure of these files is very specific and any typos would just crash the whole thing. Also a lot of things in the system are represented numerically so it would be a mess to edit by hand. I'll have to write out a lot of guides to make the world system and dialogue systems make sense. This entire thing is still in heavy development so I haven't even begun any documentation for this kind of stuff. This is all assuming that there is any interest in modding anything I make in the first place, so I'll see about it later on. As it stands I'll put this at 80% because it does work, but is undocumented.


And there you have it. Without checking the percentages above, I'd optimistically say I'm around 95% done. I'm reluctant to set another monthly deadline even for just a small game test because this is turning into a huge endeavor. I have no shortage of games I'd like to build, but until this system is ready I can't do a thing. Well not entirely true, I've been writing a bunch of random stuff for 3 different games because focusing on one thing at a time is for squares.

2014-03-22

I've wasted my week, how about you?

I've been torturing myself with making thousands of lines of Unity Editor GUI code for this past week and I just realized how much of a waste it was. I don't even feel like describing how horrible it's been writing this stuff, so I'll skip that part and get to the solution that I've been ignoring. I was brainstorming about solving one of the random problems when I had this epiphany to just delete all the code! I can use the editor as is to create a hierarchy of the objects that I need for a game. Using placeholder objects, I can create an entire visual structure of both the game world and the text. Then once I'm ready I can use a build function to analyze the scene, convert GameObjects into data and write that data to txt files for run time. I should be up an running with this solution by Monday if I'm right.

Unity users might be thinking 'well duh', but hear me out. I'm using Unity for text based games so I had no reason to consider the scene view/hierarchy for design time work. Unity users might then wonder why use Unity for text based games anyway. Uhh... I don't know, stop pestering me hypothetical Unity User!

2014-03-16

Plan G

Just a small update.

A few days back I stopped writing to work on building the world for Burn and I realized that it was really hard to do. Everything in the world has a displayed name and a unique identifier that is used for all kinds of stuff within the system. There are some simple checks done in the code to make sure that these identifiers don't intersect, but the corrective code also liked to change the identifiers while the displayed names were being edited. The end result was corruption of the data so I started to just manually edit identifiers in json. Managing hundreds of these identifiers for each person, place and verb becomes impossible after a while. So I've taken a step back to think about what the hell I'm doing.

The identifier doesn't need to be known by the player, but it also doesn't need to be known by the developer. The corrective code was there to prevent data issues, but it was a solution to a problem that shouldn't exist anyway. I was certain that other systems don't require any kind of management of identifiers like this but I hadn't really looked into any of them. I've been kind of stubborn about trying different game engines and I've even passed on working on projects that don't use Unity. Since I am basically trying to do things that have been done before I decided to look into how rooms are made in Inform, Adrift and Tads.

2014-01-16

Why

I've been thinking about what the point of all of this is. There are lots of useful ways to spend time, but making text based games is a strange thing to do. Adult text based games are a niche in a niche and it seems like the audience for them is super small. Why should I work on these projects anyway? The only reason I can think of is that I want to expand the boundaries of what games are. More specifically, I believe games can be much more than what they are perceived to be right now.


One of the estimations of computing in the future is that it will mostly be done via mobile devices. People are using phones and tablets over desktop computers at a rising rate. So this means mobile devices are becoming increasingly important places to discover and consume content via default marketplaces like Google play or Apple's App Store. It's important that these marketplaces create an environment where consumers can discover content, but also that content creators can deliver their products to these stores.

2013-11-27

Overload

I recently noticed one of the game developers that I follow made a come back. They were working on a really interesting concept for over perhaps a year, then disappeared for months. It is a fairly popular game and the dev had quite a large number of users eagerly awaiting updates. There were lots of posts on multiple forums and most everyone assumed the dev abandoned the project, if not suffered serious issues in real life.

Then the dev made a post, after months of being away. The dev reassured the masses and commited him/herself to working on the game again, with much more frequent updates. Some rejoiced, others are more skeptical, me among them, just wanting to see an update rather than a promise.

Well if your wondering, that dev isn't me :P

2013-07-19

I'm thinking up a pen name

I've been thinking of committing to a good old fashioned pen name. prayForPlague is an alright username, but it looks kind of strange generally. I need a good name to use for my writings, something cheesy but not too overboard ... like Vin Diesel. My current brainstorming has lead to this: