I had an idea for a project a little while ago that I’ve been slowly working on in bits and pieces at a time amongst other stuff. It’s slowly growing and I’m at a point whereby I’m trying to decide whether to cut it back down to basics or park it until I have more free time to work on it.
I always intend to not get carried away but think of improvements and want to try and make things better and then…
The thing I’m working on is using Ink and was supposed to be just a small narrative thing, but then thought about expanding it out to be like a linguistic RPG with a GBA Pokémon kind of aesthetic, but obviously that takes greater time to do.
As well as this I’m working on a project with some friends and I am still trying to figure out how to balance these with my part-time job, other commitments and trying to do stuff that will ultimately lead to some kind of career so that I won’t need the part-time work.
I’ve spent most of my weekend trying to sort out a system for parsing text from an Ink script to display paragraph-by-paragraph when the user presses a button. Easy enough in itself as the Unity integration allows you to call each individual line that makes up the body of the current ‘continue’ (i.e. all text before the start of the next choice list). However, it becomes more problematic if the text is longer than the text view area.
What I essentially wanted was the following:
If the line of text is shorter than a defined length (a variable found through trial and error) display that
If not then split it into smaller chunks…
If the text has a defined punctuation (. ? or !) then split it there
If there’s a comma roughly halfway through replace the comma with ellipses and split there
If there’s not, do the same but with a space
Again, doesn’t sound particularly problematic but had issues with trying to get it to work. Such as:
For some reason I went through this whole process of taking the text Unity/Ink automatically supplies and split it up myself initially, which took a fair while figuring that out. It’s only when I started writing this I realised I could take the Unity/Ink currentText call and dump that into the string list instead.
It took a while to figure out how to break up longer text based on punctuation and keep that punctuation in place (the Split function I was using was removing the character it was splitting on).
Likewise, figuring out how to break long strings into shorter ones using ellipses took a while
Had to figure out how to work around ‘unwanted’ punctuation. The one that cropped up in my example text (entirely coincidental it was in there in the first place) was an e.g. which it was reading as being a full stop. Similarly, don’t want it picking up duplicate or mixed punctuation (??, !! or !?!?). Turns out the easiest way is to temporarily replace it with some dummy text and replace it back again.
When I write it down like that it makes me realise how little I know as that seems simple yet took me a fair while!
There’s still more to do though:
Get the flow working as per the user input. At the moment any non-broken line is printing when you hit enter, but anything broken up prints all the parts at once (mostly for me to test it is breaking up correctly)
Currently doesn’t account for if a broken piece of text using ellipses is longer than two screens (for the purpose of testing I’ve just split it into two chunks, but in reality it could be more if its a very long piece of text with no sentences).
Need to test with different text. I set up a test text script, but want to check it is working properly using some more test scripts.
Allow flexibility of the line length value depending on language
Need to allow for a dictionary of sorts for the temporary text replacements and have Unity run through that and replace as/when it finds them, rather than just a series of hand-written replace functions at the moment.
Ideally also have some way of knowing if punctuation is strung together (!?!?!) without having to write each possible variation
I’m sure there’s probably an asset or something I could have downloaded to do all this, although having a quick look most of the things I could find seem to predate Unity’s new(ish) UI system. Although I didn’t look too hard. Plus they’re not designed for Ink (although undoubtedly I would have been able to middleware it myself).
However, it was educational (if at times painful) so I’m happy I stuck with it. Just need to finish it off, preferably before I go back home for Christmas.
Been a while. I went on holiday for two weeks and have been fighting a cold for the last week or so. Been trying to do a few things but I’m exhausted most of the day. Fun times.
However, trying to figure out where I’m going next.
Working on a project with some others and they’re focusing on the creative side and I’m trying to set up some Unity Editor scripts which is an interesting challenge (read: confusing and not as documented as I’d like) but not getting that creative itch scratched quite as much.
Considering doing a NaNoWriMo maybe using something like Ink. That might occupy me and maybe I’ll finally finish one. Who knows.
Also considering doing a series of small self-jams on occasional weekends to work on a side project. Got an idea for one and just trying to figure out scope and requirements at the moment. This is where I wished I was working with others in the same room as I have conflicting ideas and I’m trying to work through them so I’ve ended up here, obviously.
It’s amazing how days can go by without you really noticing. Think it’s been a few weeks since I posted anything here and I told myself I’d keep this updated more than that.
Started working on a new project with some people. It was agreed that the other ‘main’ project will slow down a bit because it is quite ambitious and it relies a lot on various people that are doing it in their free time (and work full-time) so it is not going to move fast and be good, so decided to make it a slow burn.
I’m also conscious of the fact I’m still learning the programming side of things. In an ideal world someone else would be doing it but I don’t know anyone else willing to. Some things are fine, but sometimes I come across something that really stops me for long periods of time and it’s frustrating. I wish I had someone I knew in real life I could pester about it. The internet is a great resource, but would be good to have someone (or several someones) to ask. Oh well, it’s a learning exercise.
That’s part of the reason why we’re working on this other thing. The project is smaller in scope and I want to do various things like this to gradually build up my skills. Or find a time machine and start learning this kind of stuff about a decade ago!
I don’t know if its “the wise” thing to do having these various projects on the go, but it’s what I’m doing!
Decided to just play around with low poly models and terrain stuff for a bit this afternoon in Unity3D.
Most of what I’ve done in Unity has been 2D based so I thought I’d give it a quick bash. As you can tell, when it came to the terrain stuff I didn’t even bother adding a text. It’s a snow scene, okay? Or maybe clouds…or who knows. Just trying something different.
My very first completed game is now available to purchase!
A year ago I posted on Facebook “Oh screw this. Who wants to set up a studio?” I can’t recall what drove me to that, but the outcome has been good! A lot of people seemed interested and that’s still ticking away, but in the mean time I’ve been working on my own stuff and after some last minute crunch I managed to get Robbing HUD available for today to mark the anniversary.
It was always meant to be just a little project to try out some stuff but hopefully it’s at least fun and entertaining in some capacity. I’ve learnt a lot along the way so that’s all that really matters eh?
Hoping to do a few more little projects (even smaller than this) to try out a few ideas and get to grips on some stuff.
You can find out more about the game and download it from the Robbing HUD page. Price is completely up to you.
If you give the game a chance let me know what you think. Would love to hear any feedback you have.
It’s great to finally have something out though. All those years of playing games and now I made one! That’s kind of weird, but really cool and exciting. Hopefully the start of many more 🙂
Got some feedback on Robbing HUD from two of the people that agreed to test it.
There was some really useful feedback on the balance as that was one area I really wanted to get some feedback on as I was very much just playing to test if things broke when I played it.
There was also useful feedback on the overall difficulty. I always wanted it to be challenging, but seems it might be unfairly challenging. The difficulty apparently ramps up too quickly and the maths quizzes become undoable in the allocated time. In addition to this information wasn’t clear (such as which jobs would earn more/less money).
Now I’m trying to decide where to go with this. I intended the game to be a quick simple project just for the sake of having something out there and I could tidy up a few bits and get it out quickly. I always ended to release it as a set your own price kind of game so I wasn’t too concerned about it being ‘perfect’ (or near), but perhaps I should consider spending a bit more time just tidying up a few bits so at least it plays better.
On the one hand I don’t want to labour too much over what was intended to be a rough quick project, but on the other I don’t want to ignore the possibility of improving things after dedicating a bit more time. Think I may try and do a half-way between those two things, just need to figure out what that half-way would contain.
Just gone through and listed 12 changes I would consider (others are worthwhile, just not in the scope of this project). Seven of them are small changes that will be implemented and now I’m just trying to figure out how much time the other five would take and what exactly they would entail (as they’re not simple “change this to this” kind of things but additions of features or significant changes of existing ones).
While working I’ve been musing on ‘microdecisions’. With this current project I’ve tried to really think it out in advance – plan each stage, possible action, script needed etc but of course as you go through you realise something you hadn’t fully considered, or something doesn’t work as planned and all that.
I do like just grabbing a scrap of paper and scribbling it out and resolving it, just a shame not everything is document. I would like a project one day to be fully documented so I can look back at the history and hopefully learn from it. Or I may never want to look at it again!
Trying to get enemy AI working is proving to be a huge headache.
Trying to piece together different states and get them all working is more complicated than I thought it would be! Re-wrote it and that helped a bit, but still having problems with the pathfinding system. If there’s more than one enemy the target point goes off and I can’t figure out why.
Wish Unity had a 2D navmesh system built in. Looked around and tried some assets but not having much look.
After a few weeks off (because of working overtime and holiday) I’m back to working on my game.
Currently trying to get an enemy patrol system working and while I’m sure with perseverance I’d be able to get it, questioning whether I should just buy something from the Asset Store. On the one hand its good to learn, on the other hand perhaps I can learn from picking apart. Part of me is always worried I’ll find something coincidentally without really knowing what it does.