What now?
R.chi.3 is my current project for Savage Rifts. At its core it is simply a random table generator for missions, ley lines, rifts, etc.
Why R.chi.3? If you're a Rifts fan ... think about it for a minute.
For the rest of you, one of the major players in the game setting is an AI from before the Cataclysm named A.R.C.H.I.E 3, often loosing the acronym status and simply going by Archie 3.
The apps name is a play on this and is pronounced the same way. The use of the 3 at the end is both as an e for Archie and a 3 for the full name. No, I'm not terribly creative.
Obstacles
The actual generation part is fairly straight forward. I could hard code the entire process, but that's not how I want to hand things. My desire to make the application extensible, allowing for new results and options to be added as needed or desired with as little fuss as possible.
To that end, there are two major obstacles that I've identified:
A responsive GUI
GUI has traditionally been a weak point of mine. I don't find the same joy solving GUI problems as I do more traditional programming issues, and I often feel like it takes away from "real" development.
In addition, any UI I design needs to be able to be viewed across multiple devices without negatively impacting the look and feel of the application.
Because of the above, I've decided to start with a web-based service as I feel that's about as cross-platform as I can get. In addition, there's several UI centered libraries for Javascript to make my life easier - I can just lay out the application in HTML, assign classes, and CSS / libraries do the rest.
Now I just need to learn how to use said libraries
Data loading and formatting
In order to make the application as modular as possible, I want to make all of the data be separate from the application. For a web-facing app, this generally means some form of XML or JSON files.
I've already decided to go with JSON given the platform, but the real task is figuring out the paradigm I want to use for organizing both the files and their contents.
Progress
I know in broad terms how I want to approach the actual task of generating results, but I'm not 100% sure on the specifics. Part of the design of the back-end will be driven by the design of the front-end (I know, it shouldn't, but here we are), but other than that I have some thinking to do.
In the mean time, my efforts have been mostly in wrestling with the UI and making sure it's responsive. Here's what I've managed to work out for the main generators page:
| Viewed on a standard monitor |
| Viewed on an iPhone 6 |
Each content area (the white areas under the grey headers) are collapsible, allowing the user to hide areas not in use to regain viewing area as needed or desired.
The biggest triumph (for me, anyway) was getting the tabs to convert to an accordion on smaller form factors. I wish I could take credit for it, but that goes to github contributor flatlogic: https://github.com/flatlogic/bootstrap-tabcollapse. All of my effort was spent finding his work (spent most of last night playing around with various solutions before I came across his) and subsequently getting it to work.
Summary
Overall I'm happy with how the UI is breaking down. The next step is to start working on fleshing out the actual layout, and then adding functionality.
Unfortunately, I'm helping a friend move this weekend, and the trip there and back is going to be a total of 12 hours. Odds are good I won't have a chance to work on this much more until Monday.
No comments:
Post a Comment