Tuesday, May 8, 2018

Tutorials

Tutorial Screen
So my update schedule is going to be a little hit and miss as personal things are popping up in the way. Nothing bad, and I'm still working away. The good news is I have an idea of the seven tutorials that are going in. I'm going to be writing a supplemental tutorial editor for myself, just to make editing the timelines a little easier. Also, I have been looking at some new themes for the game proper. Nothing concrete yet, but I'm starting to narrow down what I want the true "Default" theme to look like. It's a little more blue and white with grey and a slight cartoony touch, but the "Classic" mode will still be there too.

 As for right now, there is a lot to back-end and co-opt the old help system, but this is the last functional feature I'm adding that I know of, unless I forgot anything.


Tuesday, May 1, 2018

Manual is Complete For Now.

New on the left, old on the right.
First pass of the manual is complete. All the graphics and callouts are in there. I did a quick review and saw it's not 100%, but it's in a self-contained format that can be edited and exported to PDF. I'm thinking about actually releasing the manual as a kind of promotion for the game, but I'm not sure I'm going to call that yet.

There are some subtle differences between the versions. In a perfect world I would of set up headings and other auto-format items, but as the original documentation was already formatted, I didn't bother. However, the headers are what's used for the auto table of contents and linking system. This is why the title in the page header is also missing. Even though the current version is a page-for-page copy of the original (for the most part), I have a lot of aggressive page breaks that's going to wreck havoc when I update the documentation. I'll worry about that when I'm in the finalization phase.

Next is the tutorials. I was monkeying with the demo save/record functions a little bit today. I'm not keen on the timers yet so I need to figure those out. There are 4 timers in the game, and they all have a resolution of 100ths of a second. Originally they were dependent on clock(), which required <time.h> but I wrapped allegro's timer function around them.

The 4 timers are as follows.

long mtime //The master timer that starts from 0 and runs as the game plays
long ktime // The keyboard timer for keeping track of when keys were pressed for demo recording playback
long rtime //??
long ntime //??

The last two are used for time swapping but never really investigated as they just seemed to work after I replaced the clock() function. This will be getting scrutinized as I convert the demo system into a tutorial one. That's tomarrow's mission.

Monday, April 30, 2018

Still On the Manual Thing

The manual is slow and steady, but while reformatting and reviewing it, I have lots of ideas for tutorials and guided tours now. I'm also jotting down ideas on how to implement the lessons in a back-of-the-napkin kind of way. As I said before, the keyfiles are simple list of what key was pressed and when. It does not save mouse clicks, and on top of which, the mouse is disabled when recording a keyfile anyway. However, one of the interesting things about ROE is that it has object list of all the buttons in the game. The button object info also includes the locations and sizes of them so I'll probably be capitalizing on that to highlight buttons that were pressed with a callout to the tutorial text.

Speaking of callouts, reproducing them in the manual is kind of tedious. If it isn't obvious, I'm using LibreOffice. Sadly, the callouts native to that program have boxes around the text elements. This means I'm having to do the text elements and the line separately. Looking at the original scanned manual, it appears that the graphics were physically pasted into the paper and the lines were drawn with pen. This is a massive improvement.

Anyways, back to putting my editor's hat on.

Saturday, April 28, 2018

Manual Labor

I've decided to make it a weekend project to finish the manual. At least get it current and into some kind of  baseline. I've had to update some graphics a little but most of it is simply pushing things into the right areas and putting pagebreaks just so. 

It's yet another unglamorous thing. But it's been fun updating some of the icons to Unicode. Sadly the symbols used for PageUp/PageDown and Home/End were not the ones that the Unicode standard chose. (But are the ones in the game) so I had to make due with a graphic.

Speaking of graphic I updated some of the lineart to SVG. Looks pretty snazzy.

All of this work is giving me ideas for tutorials. I think I have about five or six of them in my head now. I finalize them when I'm done with the manual. I'm on page 87 of 220 after a days worth of work.

Thursday, April 26, 2018

Keyfiles and Tutorials

I was able to knock out the keyfile/demo system today. It was pretty simple. I can now record and play back keyboard inputs as the basis of the upcoming tutorial system. However, it then became a question of... What should I tutor?

ROE has kind of an esoteric interface. It's one of the things I find charming about the game. However you shouldn't have to read a 220 page manual to learn how to play content anymore. Current gamers, for all of their nostalgia, reminisce about when games came with booklets. I can relate. However, here's a little tidbit. Right now I'm learning how to play breach so I can get the IGS linking done properly. That game is not very intuitive at all! It's 126 page manual, (Which also doubles as it's copy protection), is a bit heavy interspaced with stories and lore. However, you have to get to the end to find the quick-start tutorial and the key bindings. Another thing is RTSs have grown a little and there are conventions nowadays that didn't exist in 1991.

Giving the manual a facelift.
It get an idea what is important, I decided to end-to-end the ROE manual. While cracking it open, I figured while I had it, I might as well work on updating that as well. When I get the ROE sourcecode, it came with the manual in both DOC and Adobe Pagemaker 4 formats. Sadly, there is nothing that is going to crack open the Pagemaker files. The last program that could open those was version 7 and Adobe redirects you to InDesign, which can't open them at all. Such is progress I guess.

So I'm updating the DOC files, that seem a bit out of date. I'm filling in the gaps from a scanned PDF of the original manual. It's looking good, and while I go through it, I'll be getting together a tutorial syllabus and implementing what I think is important. Most likely there will be a run though of the Shakedown Cruise. This may require me to do a little datafile shenanigans as it will require me to make a commander and start a game that won't mess up the player's settings.

I'm also mapping what the actual command line arguments are for the game. I know most of them, but it's best get get them all written down somewhere.


Wednesday, April 25, 2018

Zoom Works - All Options Complete

Zoomed 16:10 on 16:9 display. Side borders are visible.
After straightening out my math I was able to get the Zoom option to work. I also added some bilinear filtering to make zoom and stretch options look a little better. It makes things a touch blurry, but That will look better when the HD graphics are implemented.

My next task is the Demo/Tutorial system. The demo system in this game uses what's called a "keyfile", which is a timed list of recorded keys pushed during gameplay. I have a sample demo file, but it doesn't have much. While I was checking the filesystem functions for the keyfiles, I saw that my data path variables could stand to be a global so that any function could use them. I streamlined that a bit.

During the initial porting process, I had an issue with the keyfiles before so I left them alone. The problem was I couldn't process the accelerator keys. I actually don't think I'll need these as all the commands I have run across so far don't use them. Especially as I'm going to use the keyfiles for tutorials. The idea is that with every keypress, a bubble will pop up explaining why that button was pressed. That tandem script will be found in a .tut file with the same name. The game only uses one demo file called "rules.dem" but I will take advantage that the keyfile loader allows for different filenames. The idea is the tutorials will be found in the F1 Help function. Right now it just gives a general blurb about the screen you are on. After adding the Option button, I should have no problem modifying the help system. I'll have to come up with a syllabus. Most likely I'll have it auto-play though the shakedown cruise mission as the "final" tutorial.

I've been working a little extra to make up for my lost GDC time. My Trello TODO list is getting shorter too :)

Tuesday, April 24, 2018

Stretch and Squish

Ship builder in 1080p. It's cooler then it looks
The ability to stretch the game full screen corner to corner works, along with the mouse. Going along with this was a little optimization to the rendering flow. I'm now prototyping the "Zoom-Maintain Aspect Ratio", but I started it late in the day and my brain is having difficulties mathing the proportions right. The aspect ratio is backwards so it's taking my 1280x800 picture and squishing it into a neat 1280x720. (i.e., it's applying the 16:9 aspect ratio of my screen onto the picture, and not the other way around.)


After the display squishing is done, the next project is the keyfiles, which should be turned into a Tutorial system. The keyfiles were originally the prerecorded input used for "demos", which was popular in the 90s. I may extend this a bit with a commentary file that is read in tandem.

It may not look like much, but it's going better then I imagined.