Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411508 Posts in 69374 Topics- by 58429 Members - Latest Member: Alternalo

April 26, 2024, 09:36:09 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsJack Move. A cyberpunk JRPG
Pages: 1 ... 7 8 [9] 10 11 ... 15
Print
Author Topic: Jack Move. A cyberpunk JRPG  (Read 49456 times)
empika
Level 1
*



View Profile WWW
« Reply #160 on: September 23, 2017, 10:08:43 AM »

Just seeing this game again after awhile. I feel like the environments have come a long way, I still remember in the beginning they seemed a bit flat and now I really get a sense of depth, texture, and lighting with them.  Toast Right

Cheers Toast Left I've been working hard on improving my pixeling for the background stuff (still got a long way to go). Turning on FSAO has certainly helped give everything a bit more depth though Smiley
Logged

empika
Level 1
*



View Profile WWW
« Reply #161 on: September 26, 2017, 09:27:04 AM »

Hey there folks!

I've been messing round with particles a bit today and yesterday because I wanted to try and make a fancy fountain. On thing that has always scuppered me is getting particles to look pixel perfect in Unity. I've gotten close just by fudging numbers by they've never been "perfect". I'm happy to say that I solved that today, so here's how...

First, a demo...

Here's the not-perfect version I was messing with yesterday. You can see that it looks ok, but not "perfect", a bunch of the pixels look like 2px clumps etc.



And here's the pixel perfect version:





You can see in this static shot that the pixel of the particles match the pixel grid of the rest of the game.

So how do we achieve that result? Firstly, make sure you have your pixel perfect camera set up, this is super complicated in itself but here's a real quick rundown of how I do it:

* Import all your textures at 1 pixel per unit.
* Create a render texture the size you would like to render at (in my case 320x240).
* Point your main camera at your render texture (Target texture).
* Set your main camera to orthographic.
* Set you main camera orthorgraphic size to half your target resolution (in my case 120). (Ortho size is half the screen size).
* Create a UI canvas.
* Se the canvas to "Screen space - overlay".
* Add a raw image element to the canvas.
* Set the image to be centered and have the same dimensions as your target resolution (anchors all 0.5, position 0, size 320x240).
* Create a new material.
* Use the "Unlit/Texture" shader.
* Set the render texture as the base image on the material.

Errr, that should do it. My set up is a bit more complicated than that as I dynamically set the orthographic size depending on the size of the actual window we're rendering in, and also find the next camera when we change scenes etc. There are a million posts and articles on pixel perfect cameras out there so worth checking those out if you have problems. The major way mine differs is using a canvas and raw image to display our render texture, seems better than positioning/sizing it ourselfs. As it's a raw image it shouldn't have any performance overheads. Shout if you have any questions though.

Ok, on to particles!

I'm not going to go through the particle system bits in top down order. So let's start at the bottom in the renderer section:

* Render mode: Mesh. This was the big revelation for me, we now have a predictable thing we're working with.
* Mesh: Quad
* Material: Create your material with your particle in it. I'm just using the Sprites-Default shader.

Main particle system section:

* Start size: 32 (in my case). This is the size of your sprites in pixels (as we already set our sprites to use 1ppu).
* 3D start rotation: Yup
* x: -90, y: 0, z:0. I had to set x to -90 to get the particles to face the camera rather than face up.
* Simulation space: local
* Scaling mode: Hierarchy. I had to set this as I scale my whole world, without setting this, particles would not get scaled along with that.

That's about it! The important things are using mesh renderers and setting the start size to the size of your sprites. I have no idea how performant using meshes is vs using billboards, but it's fine for my purposes of 20-30 particles.

Don't forget you can use the Texture Sheet Animation module too. My spritesheet (set in the material) is 4x4 32px sprites so the module is set to use...

* Tiles x: 4, y: 4
* Animation: Whole sheet.

...so even though the texture being used is 128x128px, each sprite being chopped out for the animation is 32px and this so is my start size.

I hope that helps some folks. It's not really that difficult, just took a bit of poking at unity and experimenting with stuff that I'm often not certain of. Apologies if my technical writing is a bit all over the place, I'm open to feedback Smiley

Thanks!  Smiley


Logged

empika
Level 1
*



View Profile WWW
« Reply #162 on: October 04, 2017, 07:15:21 AM »

Hey folks,

First of all here is a great guide on how to set up a pixel perfect camera in basically the same way I described (badly) in my last post:

http://www.returnofthebrain.co.uk/pixel-perfect-virtual-camera-unity3d/

I've been up to lot's this week. I had some great feedback from a couple of people so am slowly working my way through that.

The first big thing I worked on was getting dialog portraits working. Here's a little test:



Even just using stick men placeholders it adds a whole bunch of depth to conversations. I've shied away from wanting to implement this previously as it add a whole load more assets to the pile. But having looked at how other games have done it in the past, I've come to the compromise of ignoring portraits for npc's unless they are important. The upside, way fewer portraits to get done. The downside is that it might give away which characters are important later on, although I can tweak this as I go I think, only revealing portraits when necessary.

My initial implementation uses a bunch of scriptable objects with lists of sprites & expressions. However, I'm going to rewrite this and use a single image with a Unity mecanim animator on it, then I can just reference animation trigger names in my dialog. This will be much cleaner code and also give me the added benefit of being able to do a lot more with the portraits such as animating them (of course!) and adding effects or overlays for different situations.

The next big chunk of work has been another big UI overhaul. I've been trying to block out the feedback that the UI is way too green and hard to understand. I'm kinda sad that I was unable to stick to my guns on this one, purely because old green computer interfaces look rad, but those are all 30 years old and a lot weren't great then. I think the result is better for it though Smiley







You'll notice a few more colours to break things up a bit, and a bit of texture in the background.

New fonts! I needed to replace the main font I was using anyway (from an old website, and I was unable to find the author to ask permission to use it) so created a new one. I also replace the teeny tiny 4px font, increasing it to the much more legible 5px!

I've also tightened up a lot of the spacing and making everything much more consistent across the board. Let me know if there's any other improvements you think might be good Smiley

I've been reworking a bunch of the script too, giving our heroine a bit more motivation etc. My previous dialog was pretty goofy and didn't set the tone very well.

Lot's more to crack on with, a few more bits of UI work, more script stuff, and the overhaul of the dialog portraits Smiley

Cheers!
Logged

empika
Level 1
*



View Profile WWW
« Reply #163 on: October 07, 2017, 08:03:48 AM »

Hey folks!

Been trying to work out a better way of how to show which "preset" is currently active. Presets are different loadouts of software your have loaded in your cyberspace deck, they are useful for switching "jobs" quickly during battle.

Here's my first attempt at something better:



And here's another revision:



Previously I had a little star next to the currently active preset (you can see in the previous post), but this wasn't particularly indicative of being the current preset. I also tried changing the active preset button to white, but this wasn't great either, I think it was too much of a colour change from the rest. I think the new version is a lot better and removes any ambiguity, whilst retaining the ability to see which preset is active at a glance.

You might notice that I also updated the RAM icons. This was to show how much RAM it is possible to have, and also helps fill up that area as it was feeling a bit empty Smiley

I'm not a UI/UX expert but try to approach these problems with a sense of what problems the user might have with an interface and what information is important. If anyone has any thoughts for improvement, I'd love to hear them Smiley

Cheers!
Logged

empika
Level 1
*



View Profile WWW
« Reply #164 on: October 08, 2017, 09:47:41 AM »

Here's yet another revision!



A friend suggested moving the "active preset" text inline with the buttons. I'd tried this yesterday but didn't like the result, it looked a bit weird with the joining line out on it's own (I didn't manage to get a screengrab of that unfortunately).

My friend also suggested that I could remove the "preset" text from the buttons themselves, I then I realised I could then just shrink them right down and move them up next to the RAM. It's a little more cramped but I think it's actually a little cleaner and give more room for the main thing, the list of software.

Smiley
Logged

flex$
Level 2
**



View Profile
« Reply #165 on: October 08, 2017, 02:32:08 PM »

all of the interfaces shown here look incredibly tight and polished. the atmosphere of this entire project is set very well. keep at it.
Logged

Jovu
Level 0
**



View Profile WWW
« Reply #166 on: October 08, 2017, 03:16:49 PM »

Yo, I don't know how I haven't seen this earlier. But I def agree with flex that the atmosphere shown here is top-notch. Gentleman

Cyberpunk is my favorite genre. And while I'm mostly meh on JRPGs, any potentially good cyberpunk story will get me intrigued. So that's where you've grabbed my attention and interest in this game. Please make it as gritty as possible, and don't pull any punches. This looks super fun. Not sure if there ever has been a cyberpunk JRPG before, and now that those two things have been said I can't get them out of my head.

I will for sure follow this project closely. Good luck! Beer!
Logged

empika
Level 1
*



View Profile WWW
« Reply #167 on: October 09, 2017, 02:21:25 AM »

all of the interfaces shown here look incredibly tight and polished. the atmosphere of this entire project is set very well. keep at it.

Thanks!

Yo, I don't know how I haven't seen this earlier. But I def agree with flex that the atmosphere shown here is top-notch. Gentleman

Cyberpunk is my favorite genre. And while I'm mostly meh on JRPGs, any potentially good cyberpunk story will get me intrigued. So that's where you've grabbed my attention and interest in this game. Please make it as gritty as possible, and don't pull any punches. This looks super fun. Not sure if there ever has been a cyberpunk JRPG before, and now that those two things have been said I can't get them out of my head.

I will for sure follow this project closely. Good luck! Beer!

Thanks a lot!! Some people would say that Final Fantasy 7 is cyberpunk, not sure I wholeheartedly agree though Smiley

Last (I hope) revision of this software install screen. Another friend suggested that I use a dotted line for the active preset. I think it works quite well. I wasn't sure if Unity would do a tiled + sliced image, but it does it handles the slicing just fine when you set the image type to tiled Smiley



Smiley
Logged

empika
Level 1
*



View Profile WWW
« Reply #168 on: October 14, 2017, 06:11:10 AM »

Hey folks,

This week I finished of that UI stuff which is good, then I went and saw Blade Runner 2049, two days in a row. I am absolutely in love with that film. The look, the feel, the story *chefs kiss*! It's not without it's issues though. How women are treated and it's lack of racial diversity to name a couple... but then again maybe that's commentary on the current climate (although that theory is a bit of a stretch). Despite those flaws it is a mesmerising piece of film, go and see it!! The best thing is that it has really invigorated and inspired me.

Sooo, I spent a lot of the week doing an art pass on a lot of my tiles. Firstly simplifying them, there were too many colours, they were too busy and in a bunch of places this was really inconsistent (eg, I've stripped all that ceramic tiling down to just two colours). So I went through, redrew a lot of them and also create a bunch more in order to make things a bit more sci-fi.

I wish I had before and after shots. (Also they're a bit dark :s)







I've also been working with Gary to get some dialog portraits. He's been feeling out the style but we're not quite there yet, so I'm not ready to show those bits yet, hopefully soon though Smiley
Logged

Ishi
Pixelhead
Level 10
******


coffee&coding


View Profile WWW
« Reply #169 on: October 15, 2017, 07:23:49 AM »

Fantastic progress! Battles especially look incredible compared to what I remember of the original screens/gifs. Good job and keep it up  Coffee
Logged

empika
Level 1
*



View Profile WWW
« Reply #170 on: October 16, 2017, 03:47:06 AM »

Fantastic progress! Battles especially look incredible compared to what I remember of the original screens/gifs. Good job and keep it up  Coffee

Thanks dude! Progress feels a bit slow at the moment, but looking back at these devlogs is a good reminder that things are getting done Smiley
Logged

empika
Level 1
*



View Profile WWW
« Reply #171 on: October 16, 2017, 04:02:01 AM »

Oh, I should probably say what I'm gonna do this week. (Writing it down helps me actually do stuff, rather than just do whatever is the most fun hehe).

So this week I'm concentrating on rewriting a bunch of dialog, getting it up to speed with the revised version of the story. Once that's done I'll go in an reimport all the strings and rework the cutscenes to add or remove dialog and actions as needed.

I've had some fantastic help with the story from an old colleague, Ed Fear, which has been great. Ed has really helped shape the plot and characters, their motivations , why stuff happens etc, and asking some really hard questions making me actually think about things properly rather than just blindly writing junk.

We've got the basic outline down, I think it's now a case of going in and filling in the gaps and fleshing it out. Once it's in a bit better shape I'll share a synopsis Smiley
Logged

empika
Level 1
*



View Profile WWW
« Reply #172 on: November 03, 2017, 06:23:17 AM »

Hey folks!

Been a couple of weeks since I last updated. I had a week off in sunny (rainy) Cornwall, spent some time with my family and got some well needed fresh sea air!

Since the last update I've been working more on that art pass, trying to get things a bit more consistent. I won't show a ton of things, but the thing I'm most happy with is the cars in the scrapyard.



And here they are in game...



You can see the silver car still looks crappy there. The sprites are too noisy, that dither doesn't look great and doesn't match the rest of the game.

The other big thing I've worked on is adding distortion maps to the rain drops on the ground. It's a simple effect but looks really cool.

Here is my first attempt. It looks ok but the rain pools are super dark and the animation isn't great:



Here's the revised version. I added a brightness control to the shader and reworked the animation to make the pools a bit smaller.



There's not much to distort in the city, so heres a gif of the town where you can see it better on the tiled roof and around the yellow lines on the road...



I used the same shader I used for the heat distortion on the burning barrels. It was created by the excellent Minions Art (https://www.patreon.com/posts/quick-game-art-8172058).

Other bit's I've been working on include a screenshot button (much easier to grab a proper shot from within the unity editor window now), some dialog, reworking the battle tutorial text and refactoring my rain particles just to use unity's default particle system stuff now that I figured out how to do pixel perfect particles (still fun to say!).. see this post for more details on that.

I also did a little play testing at the local indie dev meetup I help run on Wednesday. I got some super useful feedback and found some good bugs so will be trying to implement/fix those bits over the next week.

Have a good weekend everyone! Smiley
Logged

empika
Level 1
*



View Profile WWW
« Reply #173 on: November 12, 2017, 05:55:23 AM »

Hey everyone, time for another update!

This week was a bit of a funny one. Last Sunday I sat down with a friend to work out why I was getting a little frame hitching and she helped walk me through the unity profiler and frame debugger, which was super useful. I kinda knew how to use them, but didn't exactly know what I was looking at and what the numbers should be doing. Another reason for wanting to do this was because I'd like to know how easy it would be to port the game to consoles.

Soooo, I've been a long optimisation journey, trying to get the damn thing running on my phone at a decent framerate. I'll go over the issues I had and the steps that I've taken to get that kinda working, specifically with regard to drawcalls and garbage collection. Apologies for the wall of text!

Firstly garbage collection. Here are some things you shouldn't be doing every frame:

Concatenating strings in any way! In Jack Move I store calculate the direction the player is facing and store that in an enum that I then convert into a string/trigger for use with the animation system. For whatever dumb reason this was happening every frame, so I fixed that code to only fire if the animation state should change. I also pre-cached all the animation triggers in a big list that I could then use to lookup via the enum and get the actual trigger string, no more concatenation.

StartCoroutine also creates garbage, so don't do that a whole bunch. I had some really old code for flickering lights that does this, where the code should really just be in the coroutine itself.

Drawcalls were my main concern, initially I was somewhere around 3000 calls in a well lit area. The main things I've done to combat this are turning off SSAO Sad, baking the lighting,  converting all my tiles to meshes rather than SpriteRenderers, and then batching them myself. I think I'll be able to turn SSAO back on at some point with a few more tweaks. Each of these things is not the greatest on it's own, but when combined has given me a huge boost. I'm down to 380 calls in a well lit place (without SSAO), and that's without having lightmapped and batched all the scenery objects yet Smiley

Lightmapping should be a pretty easy one, you turn it on, mark some stuff to be lightmapped and set your lights to be baked, then press the button and unity generates a bunch of textures that get overlaid over everything, instead of having to calculate the effect of lights in realtime. For example, a single tile with 2 lights would generate 3 drawcalls for realtime lights. 1 for the tile and then 1 for each light. Using lightmapping would result in just a single drawcall! So I have a million lights and a million tiles which results in a lot of drawcalls, lightmapping is going to save me a ton of work here.
However, we have a problem, the sprite renderer I use for my tiles does not support lightmaps. Well, kinda, the stuff for lightmaps is there, it's just not exposed for easy use. Some kinda soul has figured this out though, and posted it up on github (https://github.com/lassade/Sprite2DBakedLighting). This worked super great, although I had one issue where the textures would disappear in the editor, but this was quickly fixed (https://github.com/lassade/Sprite2DBakedLighting/issues/2).

So next up is batching all the tiles. Unity can be good at batching drawcalls dynamically, but it can also be pretty bad. So for every tile I had displayed unity was not batching them, resulting in many more calls than necessary. I wrote a little thing that took the meshes lassade's Sprite2DBakedLighting generates and combined them in to chunks of up to 16 (4x4) for each layer of floors or walls. The only problem I had here is that I'm still using materials in the same way as sprite renderers do, using a MaterialPropertyBlock to set the texture on a material used in multiple places. This would result in textures disappearing in play mode. So I just added a bit of code to my tilemap importer to reset the texture on the MaterialPropertyBlock at Start.

Oh, the other main gotcha I had with combining meshes for use with lightmaps is that you need to call Unwrapping.GenerateSecondaryUVSet(mesh) on the new mesh after you create it, otherwise the lightmap looks bonkers.

Turning off SSAO should be pretty obvious, fullscreen effects can be pretty intensive. If I turn it on now it brings my calls in that lit scene up to about 740, around double than without it. Which leads me to the last thing I need to do... optimise all the scenery items in the scene. All my objects are just made of multiple 32px tiles, eg a lampost is 3 tiles stacked on top of each other. These can all be way more optimised if I split the sprites into 1 big 32x96px sprite for example, but that's just a pain, I like to work with a grid of 32px as it's easy to slice them and work with (even if the tools in unity are there to slice them a bit nicer). So instead I'm going to take the mesh batching approach and to the same thing I did with tiles. Once an object is created and finalised, I'll just bake it into a single mesh, then it too can be nicely lightmapped and use fewer draw calls Smiley

I'm by no means an expert in this stuff, but feel I've got a pretty good handle now on doing wacky stuff with unity 2d it wasn't really designed for, so happy to answer any questions.

This coming week Joe is back on the project to finish the character portraits that Gary has started. Hopefully I'll be able to share those next week :D

Cheers


Logged

empika
Level 1
*



View Profile WWW
« Reply #174 on: November 17, 2017, 04:40:25 AM »

Hey folks,

It's been another busy week on Jack Move. Some more optimisation stuff and some cool new bits to show. It's a big post! :D

On the optimisation side, I knocked up a script that builds meshes for items and then combines and saves them. Here's a bunch of code for that, you might have to edit a bunch of stuff to get it working and I've not had time to clean it up. Hopefully it's self evident what everything does though. https://gist.github.com/empika/f1ec6735b1959738e79c30c6d88088ae

After combining a ton of objects in my test scene I've managed to get the draw calls down from ~3000 to about 150 or 330 with ambient occlusion turned on, which is pretty awesome. I've had Jack Move running on my iphone 5s at a pretty solid 30fps :D

Gary has been doing a few days on and off over the past month, working on some dialog portraits. This past week Joe had some free time to finish those off with all the expressions needed. They've turned out suuuuuper good <3 <3 <3



It's been really fun getting them in game and deciding which portrait to use for each line of dialog. I have a certain tone of voice in my head when I write stuff, but given a limited amount of emotes to accent the lines with has made me change the way I thought certain lines read. I'll be expanding the amount of portraits in the future, so can hopefully cover all eventualities Smiley

Here's an in game gif:



Lastly I've been working on setting stuff up ready for Joe to do some work on the battle backgrounds. Originally I was just going to remove the top section of the grid and replace it with a static image



A few months ago Joe had suggested doing something a little fancier involving adding some items around to give the battles a bit more depth. He brought this up again earlier this week and sent over a quick mockup. So I spent a bunch of time working out how to translate that mockup in to an actual workable system Smiley



Uh huh. That UI is awesome, but no time for that right now! Hopefully in the future Wink

The main issue with something like this is that I have to deal with varying screen widths, from tiny 320x240 (smallest) to super wide 688x310 (biggest). The obvious answer is to anchor things in the UI to certain percentages across the screen. This is something I already do with the player and enemy positions, so that was what I tried for my first attempt.



It looks pretty good, but it was quite difficult to easily see how this would look at different resolutions, bar iterations of playing the game and adjusting things little by little. So I rolled up my sleeves and got to work on some tools that would allow me to do that.

Battle scenes are composed from a number of layers:

* The backdrop, which is a worldspace canvas. This allows me to place things on screen using RectTransforms, rather than just normal transforms, and still shakes everything with any screenshake.
* The world. Noa, our player character and the enemies.
* UI, a screenspace canvas.

(There's actually a bunch of other stuff for rendering the background grid floating in the scene too. This is just a ton of animated line renderers and some cameras that render to render textures.)



(Ignore the "no cameras rendering", I just turned off the main fullscreen rendering UI (which takes the 1x size output and displays it at the full display resolution) so it didn't get in the way).

The main problem with testing within this set up is that the worldspace canvas just has an arbitrary size. In order for it to layout correctly we need to set the same size as the UI screenspace canvas that gets automatically updated when you change the size of the game window. Surprisingly the way to do this is not call Screen.width/height from your editor script (because that obviously returns the width/height of your inspector window!!), but to call Camera.pixelWidth and Camera.pixelHeight on our main camera. Once this was figured out, setting the canvas size was pretty trivial and I could set the anchors of background elements and preview them pretty easily.

The next "problem" I hit was that I wanted to be able to see the player and enemies in position also, this lead me down a long and wacky path of being able to do this in game too. Here the issue was that whilst it was pretty easy to be able to reset positions of the actors when they are stationary, it's not so easy when they are halfway through an attack or are in the process of moving in or out of an action. The answer was to put everyone inside an anchoring container. The anchor container would be the one that would get repositioned, and the actor would rest at a local position of 0,0,0. As I never anticipated this kind of thing, a lot of my movement code uses world position to work out where to move to. This now needed to be translated up and down from local to world and back to local positions. Not too bad once I figured where the issue lie.

The only bug I have left is that I use DoTween for movement, it's a fantastic library but once you set and play a sequence you cant change it's values, which results in actors ending up in weird places if the resolution is changed mid move. This isn't so bad when moving towards the target as they'll end up somewhere in the right direction, but moving back means they'll be in completely the wrong place when they come to rest. My quick fix here was just to check if the local position is 0,0,0 when they're done, and if not then just force them to that location. In reality I don't think you'd really notice too much.

Here you can see the elements as they would look at 320x240



...and at 688x310



Notice how they are anchored to a certain percentage of the screen width. So the wider the screen, the more of the element gets shown Smiley

The last piece of the puzzle was just hooking up some data objects to hold references to the images for a "backdrop set", which then gets set on a random encounter area and then passed into the battle scene to be set up :D

I can't wait to properly set the proportions of all the elements and get some proper art work in there, as it give the battles so much more depth.

I hope that was interesting and that I'm not teaching people how to suck eggs!

Till next week Smiley


Logged

NowSayPillow
Level 1
*


John Carmack Clone


View Profile WWW
« Reply #175 on: November 17, 2017, 04:52:03 AM »

This game look sliiiiiiiiiiiiiiiiiiick. Can't wait to try it.
Logged

empika
Level 1
*



View Profile WWW
« Reply #176 on: November 17, 2017, 05:01:03 AM »

This game look sliiiiiiiiiiiiiiiiiiick. Can't wait to try it.

Thanks! :D
Logged

tchassin
Level 2
**



View Profile WWW
« Reply #177 on: November 17, 2017, 05:56:28 AM »

I love those portraits, they have a lot of personality!

I also like your solution to handle a range of resolutions without compromising the pixel art or resorting to letter boxing. It's pretty cool!

I just think the health and data values are very small and a bit hard to read. They should pop out a little more since they're pretty important.



Maybe something like this?
Logged

empika
Level 1
*



View Profile WWW
« Reply #178 on: November 17, 2017, 07:43:08 AM »

I love those portraits, they have a lot of personality!

Thanks! Gary and Joe are the best!

Quote
I also like your solution to handle a range of resolutions without compromising the pixel art or resorting to letter boxing. It's pretty cool!

Yeah, I really want to avoid letterboxing. There's no real need to do it, but it does mean that all the artwork has to support those resolutions. I've taken the resolutions from the Steam hardware survey to work out what the range is, then I can work out what those will be when scaled and end up with the smallest res i need to work to, and the biggest.

Quote
I just think the health and data values are very small and a bit hard to read. They should pop out a little more since they're pretty important.



Maybe something like this?

Thanks for the feedback. Eventually I'll get round to redoing some more of the UI, as mentioned. When it's zoomed up and at 720p or 1080p (3 or 4x) it's actually much more legible, especially after the last round of UI changes where I bumped the smallest font size up by 1px Smiley

Logged

empika
Level 1
*



View Profile WWW
« Reply #179 on: November 18, 2017, 09:49:45 AM »

Took a little time yesterday to implement some of the UI that Joe had mocked up the other day...



We'll do another UI pass in the near future I hope Smiley
Logged

Pages: 1 ... 7 8 [9] 10 11 ... 15
Print
Jump to:  

Theme orange-lt created by panic