Donkey Kong Forum

General Donkey Kong Discussion => General Donkey Kong Discussion => Topic started by: WCopeland on July 19, 2014, 01:04:34 pm

Title: DKPace 3
Post by: WCopeland on July 19, 2014, 01:04:34 pm
(http://i.imgur.com/iMM08KC.png)

DKPace 3

How do I get it and run it?

DKPace 3 Windows 64-bit: Download (https://github.com/wescopeland/DKPace-3/releases/download/3.1.0/DKPace.3.1.Windows.x64.zip)
Once downloaded, extract the zip somewhere and run DKPace.exe.

DKPace 3 Mac OS X: Download (https://github.com/wescopeland/DKPace-3/releases/download/3.1.0/DKPace.3.1.Mac.zip)

How do I actually use it?

Since DKPace 3 uses live input rather than automated input, you must use shorthand to enter your scores.  It's very simple. An example game might look like this:
NOTE: DKPace 3 only cares about level averages, not board averages. As such, you only enter scores after finishing a L4+ rivet board.
NOTE: You can press the Enter key instead of clicking the Submit button.

Pretty easy!

I want to make my own changes to the app.

Cool.  It's open-source.  Here's the Github repository:
https://github.com/wescopeland/DKPace-3 (https://github.com/wescopeland/DKPace-3)

DKPace is written in HTML, CSS, and JavaScript.  It's basically a website pretending to be a desktop app.  Have fun!
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: Donkey Kong Genius on July 19, 2014, 01:56:42 pm
Thanks Wesley. I am sure a lot of people are going to try it out. Very cool! :D
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: marky_d on July 19, 2014, 03:37:19 pm
For those inclined, I suppose this pace program would work for junior too or no?
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: WCopeland on July 19, 2014, 04:00:13 pm
Yes, it will work with DK Jr.

I have released an update that adds a Vertical UI to the calculator, so you can use either the Horizontal or Vertical orientation during streaming. To download this update just redownload the calculator from the repository. Here's a preview:

(http://i.imgur.com/Y2NSoDM.png)

(http://i.imgur.com/ZLGhFO1.png)
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: WCopeland on July 19, 2014, 04:22:29 pm
My apologies for the double post, but you can now enter a custom goal score without having to manually open the JavaScript.  This can be done from the config menu:

(http://i.imgur.com/EinjO3D.png)

With that, I'm all out of feature ideas.  If you guys have anything you'd like to see added, be sure to let me know.
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: lifereboot on July 20, 2014, 09:34:08 am
Pretty cool Wes, respect!
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: stella_blue on July 20, 2014, 03:07:27 pm
With that, I'm all out of feature ideas.  If you guys have anything you'd like to see added, be sure to let me know.

Looks great, Wes!  I have only one suggestion:

How about a user option to control the calculation of estimated points from future deaths?

Pauline uses a standard value of 5000 for deaths 1-3, and 700 for the killscreen.  The program developed by Mitch's friend Alex uses 5000 for the 1st death only.  Points for deaths 2-3 are calculated as the average of all prior deaths.  The killscreen value remains at 700.

I'm proposing a pair of user-supplied parameters:  SV = Standard Value, CM = Calculation Method (Constant or Average)

Here are a couple of examples, with estimated future values in red:

Example #1 (SV = 4000, CM = Constant)

Description
       
D1
       
D2
       
D3
       
D4
       
Total
Beginning of game
       
4,000
       
4,000
       
4,000
       
700
       
12,700
After 1st death
       
3,100
       
4,000
       
4,000
       
700
       
11,800
After 2nd death
       
3,100
       
2,700
       
4,000
       
700
       
10,500
After 3rd death
       
3,100
       
2,700
       
6,400
       
700
       
12,900

Example #2 (SV = 5000, CM = Average)

Description
       
D1
       
D2
       
D3
       
D4
       
Total
Beginning of game
       
5,000
       
5,000
       
5,000
       
700
       
15,700
After 1st death
       
3,100
       
3,100
       
3,100
       
700
       
10,000
After 2nd death
       
3,100
       
2,700
       
2,900
       
700
       
9,400
After 3rd death
       
3,100
       
2,700
       
6,400
       
700
       
12,900

Given the option, I would probably select:  SV = 2500, CM = Constant

For me, 5000 per death is a bit optimistic.  My embarrassing mistakes typically yield only half that amount.  Also, in my experience, the average of prior death points is not a reliable predictor, but others may find it useful.

Just a thought.

Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: WCopeland on July 20, 2014, 04:20:11 pm
Looks great, Wes!  I have only one suggestion:

How about a user option to control the calculation of estimated points from future deaths?

I'm open to a discussion on a feature like this, and you're not the first person to mention something along these lines.

At the moment, my calculator assumes every death will be 0 points.  This is an intentional design decision to reduce the "fuzziness" of the pace calculation.  You can test how this works yourself by doing the following steps:
My argument for handling deaths like this is since this calculator is more intended to better engage viewers (helping the streamer is secondary, though it's helpful to not have to do this sort of math in your head), "fuzzy logic" based on deaths can wind up being incredibly confusing. This also eliminates false hope that the streamer might be at that target pace "if only" they had a 5k or even a 0.8k death. By defining every death as zero unless told otherwise, both the viewers and the streamers know the true concrete pace of the game.  This also relegates any death points to being "bonus points", which is how they really should probably be thought as.
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: stella_blue on July 20, 2014, 04:54:03 pm
By defining every death as zero unless told otherwise, both the viewers and the streamers know the true concrete pace of the game.  This also relegates any death points to being "bonus points", which is how they really should probably be thought as.

Good point.  No argument here.

Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: Donkey Kong Genius on July 20, 2014, 05:29:29 pm
How about voice command? I love the idea. Right now I keep a chart on my stream and also one right by me. The value of the program would lie in other data made available such as level averages. Unfortunately having to use my hands cuts into my after level rest, besides my computer sits too low on my small table and I hug my cab like a koala bear. <graphic of me doing this needed> :P In all seriousness voice command would be awesome though perhaps difficult to do.
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: WCopeland on July 20, 2014, 06:12:45 pm
How about voice command? I love the idea. Right now I keep a chart on my stream and also one right by me. The value of the program would lie in other data made available such as level averages. Unfortunately having to use my hands cuts into my after level rest, besides my computer sits too low on my small table and I hug my cab like a koala bear. <graphic of me doing this needed> :P In all seriousness voice command would be awesome though perhaps difficult to do.

From a technical standpoint, all third-party functionality (computer vision/screen recognition, voice recognition) needs to be supported as a Node.js library, since the app itself is built on the Node.js platform.

I did find a Node.js voice recognition library here:
https://github.com/sreuter/node-speakable
So your idea IS possible.

Voice recognition opens a whole other can of worms though in terms of accidental incorrect input. Since we're not doing screen recognition/computer vision, the margin for error is extremely low. It would be very difficult to teach the program to be "trained" to hear your voice.

I've been toying with another idea, and I'd love to have your thoughts on it: input through your iPhone or Android phone. Since  the calculator is technically already a website anyway (go into the views folder and open index.html), I feel like the only component missing is a local server, which I already know how to set up using Node.js. You could enter your numbers in through your phone's touchscreen instead of having to use your laptop keyboard if you wanted.

edit: I'm going to investigate this voice recognition library too. It looks like it actually sends your voice to Google Speech to figure out what was said.
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: Donkey Kong Genius on July 20, 2014, 07:03:49 pm
I like all of these ideas. Since my phone is a dinosaur it does not even have the kind of functionality needed to use it for this purpose. I would be curious what you come up with.
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: tilt on July 20, 2014, 09:36:26 pm
Heres an idea: for people that are just running boards, you could add an option in the config to pace out your game based on deaths rather then points.  So lets say you lose your first man at 200k.  That mean that if you stay on track, you will probably die at around 800k.  After more deaths are recorded, the points per each death could be averaged together to get a more accurate final score/level.  Just my thoughts.
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: LMDAVE on July 21, 2014, 06:49:02 am
I did try this once this weekend, only had a few starts, so couldn't really test it that well. One of my suggestions was points from deaths, but now I see there is an entry for that, just need to put the "d" at the end.

I see that if you skip a level entry, you're pretty much ended the pace calculation, or did I miss that?

I agree to not include future value from deaths, those are good bonus point to help you get back on track.

Could the text be made a little bigger? I was view it vertically, and when it came  through my stream, a little bigger text would have helped.
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: WCopeland on July 21, 2014, 07:37:27 am
I did try this once this weekend, only had a few starts, so could really test it that well. One of my suggestions was points from deaths, point I see that is an entry, just need to put the "d" at the end.

I see that if you skip a level entry, you're pretty much ended the pace calculation, or did I miss that?

I agree to not include future value from deaths, those are good bonus point to help you get back on track.

Could the text be made a little bigger? I was view it vertically, and when it came  through my stream, a little bigger text would have helped.

If you forget a level, yes, the calculator no longer has any idea where you are in the game.

I can include an option to make the text bigger -- have you tried blowing it up on your stream?  I'm pretty that's what Ethan is doing and it makes everything very visible for viewers.

Not sure what you mean by your suggestion with points on deaths ... can you elaborate just a little bit?

Thanks, Dave.
Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: LMDAVE on July 21, 2014, 07:52:26 am
I didn't know the calculator already had an option for entering deaths, now I see it did.

Title: Re: DKPace 2 - Complete rewrite and optimized for streaming
Post by: WCopeland on July 21, 2014, 07:56:32 am
Ah gotcha, no worries.

I checked your stream out and it looks like you weren't able to figure out how to crop the app onto your channel.  That might be related to why the text size appears to be really small.  Not sure if you're using OBS or XSplit ... I know cropping is pretty easy in OBS but I've had trouble doing it using XSplit
Title: Re: DKPace 3
Post by: WCopeland on March 23, 2015, 08:30:44 am
I've released a pretty big update to the app.  Here's what the new UI looks like:

(http://i.imgur.com/5Zdmchj.png)

The biggest change is that the "Needed Average For Goal" is no longer static after you enter your start.  On old versions, if my goal was 1,100,000 and I got a 130k start, the "Needed Average" would display 57,100 and would remain 57,100 for the entire game.  Now, if I get a 70k L5, my needed average will change to "56,300".

In other words, the calculator now tells you how hard or light you need to play to reach your goal.

The new version can be downloaded here:
Download (https://github.com/wescopeland/DKPace-3/releases/download/3.1.0/DKPace.3.1.Windows.x64.zip)

Extract the file somewhere to your computer and run DKPace.exe and you'll be all set.

What's next?
I've taken notice to how easy it is to place your phone against the top of the 1P and 2P start buttons.  I'm experimenting right now with being able to input the score via your phone right there on the control panel rather than use your laptop keyboard.  This will be included in version 3.5.

I'm also still experimenting with OCR.  Ideally, Version 4 will pick up scores via your webcam so no input will be required at all.
Title: Re: DKPace 3
Post by: f_symbols on March 23, 2015, 08:53:54 am
<Tim> [move] Kreygasm Kreygasm Kreygasm
<Tim> [/move]
Title: Re: DKPace 3
Post by: ebinsugewa on March 23, 2015, 11:12:48 am
Hey Wes, do you have a more detailed todo? I'd be interested in helping.
Title: Re: DKPace 3
Post by: WCopeland on March 23, 2015, 11:49:48 am
Quote from: dkshawn
How about my idea for a 'bonus' field for death points? I guess it would subtract from current level and add back into pace calculation.

I'm concerned that having more than one entry field, while it might sound plausible, could be way too cumbersome to use in real-time.  Being a programmer yourself, feel free to add it in and then put in a pull request.  If it works out after all, I'll merge it.

Quote from: ebinsugewa
Hey Wes, do you have a more detailed todo? I'd be interested in helping.

Hi Brendan,
If you revisit the repo's main page here: https://github.com/wescopeland/DKPace-3/tree/master
You will find that I have updated the readme.md file with a guide on how to get up and going. If something in this guide is unclear, please let me know.

I have also added four issues to the issue list here: https://github.com/wescopeland/DKPace-3/issues
The next step in the direct upgrade path to 3.5 is going to be this one: https://github.com/wescopeland/DKPace-3/issues/3

Right now, I don't have time to tackle anything on the issue list.  If you want to take a stab at them, by all means go for it.  If you fix or implement anything, I'll merge it.
Title: Re: DKPace 3
Post by: ebinsugewa on March 23, 2015, 03:03:10 pm
 Kreygasm Kreygasm Kreygasm ty sir  <stirpot>
Title: Re: DKPace 3
Post by: WCopeland on March 23, 2015, 04:50:11 pm
Just another minor update:

(http://imgur.com/RnFdRIQ.png)

Three buttons added for "quick deaths".  It was proving too cumbersome to have to manually enter death points.  If you have a small death, press S.  If you have a medium-sized death, press M.  If you have a large death, press L.

You can get this update by just downloading the app again (link in the first post of this thread).