tag:blogger.com,1999:blog-66358717964113750522024-03-05T06:37:50.216-07:00Thoughts, Perception, and Point of ViewLevi Wattshttp://www.blogger.com/profile/12290268199961755004noreply@blogger.comBlogger71125tag:blogger.com,1999:blog-6635871796411375052.post-45656578847714314342022-01-21T22:24:00.001-07:002022-01-22T00:15:49.881-07:00User Interfaces in Virtual RealityMaking a UI in VR adds a layer of additional concern that pancake UIs don't have to deal with. Someone in Discord asked for feedback of their VR UI. My response turned lengthy, and potentially useful to others.<br>
<br>
Make menus accessible. In VR, this has an added step of considering how difficult it is for a user to reach out with their controller to reach the menu. Is it within their play space? Can they alter the location of the menu? Some games use the wrist watch method. Intuitive to open and put away. Intuitive to move around. Another common type is to open with a button press near the user based on their facing angle. This lets the user close the menu and reopen it in a more convenient spot should the menu appear out of the play space.<br>
<br>
How are buttons pressed? Does the user need to have their digital hand come into contact with the menu, or can they point from a distance and click? If the latter, a line from the hand should help indicate that this is going to happen. Do you allow both options at the same time? If so, is there a distance that the laser click option disappears? I recall one game that when the digital hand neared a button, open hand would turn into a pointing finger. This is falling out of favor with controllers that can detect what the user's hand is doing, and mimicing that instead.<br>
<br>
Are the buttons large enough that they can be uniquely pressed? If it is easy to fat finger (fat fist?) the wrong button, something needs to change.<br>
<br>
Don't attach a menu to the user's head facing. It should be either static in the world, or attached to the user's controller. If it is attached to the controller, it should be intuitive to "put the menu away." It's annoying to try and drop something that is stuck to your hand. <br>
<br>
Most regular UI design principles apply:<br>
<br>
Use understandable labels. Don't use made up words, internal jargon, or memes. Stick with established terminology.<br>
<br>
Consistency. Menus throughout the game should appear thematically similar. How a given menu works should be the same throughout the menu tree.<br>
<br>
Readability. Menu text should be legible. The menu's colors should have contrast between text, buttons, and the background. Don't use fancy fonts. Don't use fancy effects on those fonts. Careful with over designing for the wow factor of theme. If it isn't easy to use and understand, it's failing it's main job. <a href='https://store.steampowered.com/app/228300/Remember_Me/'>Remember Me</a>'s <a href='https://youtu.be/vpAXunnQzr0'>main menu</a> is an example of going way over the top into the point of being borderline unusable.<br>
<br>
The top level menu should limit how many options appear in it to no more than eight. If you need more than that, consider categorizing them into a smaller number.<br>
<br>
Bonus: The user should understand where they are within the menu system.<br>
<br>
On images.google.com, look up "Video game menu" to see what pancake games have done. It's harder to convey this in VR, but there are many good examples out there. SteamVR overlay. RecRoom's watch. (edited)<br>Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-70483248352015085462021-11-14T10:24:00.001-07:002021-11-14T10:24:00.180-07:00C# error with FoxProWhile running a query via <code>System.Data.OleDb.OleDbDataAdapter</code> on a FoxPro dbf, I sometimes get an error "<code>Column 'Q37P2' is not found.</code>", where the column name appears to be incrementing each time the error occurs. This is happening on <code>adapterObject.Fill(datatableObject);</code> call. It took me a while to figure out this was caused by not providing the adapter with enough parameters as the SQL statement has ? question mark placeholders for parameters.<br />
<br />
As the error message isn't useful for knowing the cause of this bug, I added validation to our GetDataTable calling method:<br />
C# //Via: <a href="https://stackoverflow.com/questions/541954/how-would-you-count-occurrences-of-a-string-actually-a-char-within-a-string">LukeH on StackOverflow</a>.<br />
<code>if (System.Diagnostics.Debugger.IsAttached)<br />
{<br />
if (parameters.Length != sSQL.Length - sSQL.Replace("?", "").Length)<br />
{<br />
StringBuilder sbError = new StringBuilder();<br />
sbError.Append("Parameters count is different then the number of parameter placeholders (? marks).");<br />
sbError.Append(Environment.NewLine);<br />
sbError.Append("? count: ");<br />
sbError.Append((sSQL.Length - sSQL.Replace("?", "").Length).ToString());<br />
sbError.Append(Environment.NewLine);<br />
sbError.Append("Params: ");<br />
sbError.Append(parameters.Length);<br />
sbError.Append(Environment.NewLine);<br />
sbError.Append("SQL: ");<br />
sbError.Append(sSQL);<br />
<br />
System.Diagnostics.Debugger.Break();<br />
throw new ArgumentException(sbError.ToString());<br />
}<br />
}
</code>Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-46396323475162717692021-01-30T10:24:00.002-07:002021-01-30T14:27:27.476-07:00VR Room Motion Curator: VR Fitness Gym (Cycling, Marathon, Football, etc)Main room has a floor 20 feet below the player. Though this isn't room motion, to suddenly find yourself high above the ground is disorienting. To navigate menus, I had to hold the joystick away from neutral to get a selection indicator to function.<br /><br />
Snake game is rotated ground vertigo with perspective attached to character which is controlled by your facing direction. Third person camera is already weird enough, but to then be looking outward some 40 feet away from you to see the ground, then look around to see that the world is rotated such that gravity is into the horizon is not comfortable. Add to that clumsy head oriented controls, ignoring controller input. I think the selection indicator is stuck on "always selecting" instead of using the trigger to make a selection in this game.<br /><br />
The archery game is rather standard, using teleport movement. The bow without an arrow is held as though the length of the bow is attached to your arm, instead of your hand holding the handle. After playing the archery game, it rotated gravity on me, such that one side of the world was steeply down hill. This game wasn't translated into English, so I just randomly selected window options.<br /><br />
The running game knows you have controllers, but chooses to make the interface all about head facing direction for selections (WHY?). Within a game, it has you swing your arms around to move in the course's forward direction, and uses your facing direction to move sideways, but not in an analog way that your head works. No. Instead it's a set speed once you've rotated your head at a bit further then 30 degrees off center. It doesn't care which way your are swinging your arms. You can't look around to enjoy the scenery, because that would change your moving path. You also have to collect gold coins along the path, so you need to accurately use this poor controller style to navigate.<br /><br />
The cycling game has multiple locations. In the city, it has so many bombs falling from the sky and particle effects, that it runs at a noticeably slower frame rate as any other part of the game. In the Jungle, if you don't "bike" fast enough, you will be dropped from the elevated bridge down to the jungle floor below. If uncontrolled falling wasn't bad enough, once you land, you get thrown into a random orientation as the room is rotated around you as though your head was chopped off and thrown around. Super great /s.<br /><br />
I can't recommend this product in it's current state for any value.Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-47547157461241592312020-11-14T10:24:00.008-07:002020-11-14T15:22:12.334-07:00Sea of Thieves, Windowed ResolutionFor me on Windows 10 using a NVIDIA GeForce RTX 2080 SUPER, Sea of Thieves resolution settings are ignored. When I set to full screen, it works as expected. When I set to windowed mode, it uses the screen's max height, and displays as a borderless window locked size mode. Changing the resolution doesn't change anything. After messing with it for a while, I got the resolution to listen to me.<br /><br />
First, in Steam, Right Click on the game in Library -> Properties... -> Set Luanch Options -> Enter: -WINDOWED
<div class="separator" style="clear: both;"><a href="https://cdn.discordapp.com/attachments/549479499465490432/777296094375706644/unknown.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="177" data-original-width="373" src="https://cdn.discordapp.com/attachments/549479499465490432/777296094375706644/unknown.png"/></a></div>
If you aren't on Steam, you should be albe to set launch options in your launch application of choice, or the shortcut of your game (via right click of the desktop icon -> Properties -> Target "[LaunchLocation]" -WINDOWED<br />
Within the game, go to windowed mode in the game's Video Settings
<div class="separator" style="clear: both;"><a href="https://cdn.discordapp.com/attachments/549479499465490432/777294247551828008/unknown.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="205" data-original-width="800" src="https://cdn.discordapp.com/attachments/549479499465490432/777294247551828008/unknown.png"/></a></div>
Shift+Right click the program in task bar -> Maximize
<div class="separator" style="clear: both;"><a href="https://cdn.discordapp.com/attachments/549479499465490432/777294463973195776/unknown.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="264" data-original-width="441" src="https://cdn.discordapp.com/attachments/549479499465490432/777294463973195776/unknown.png"/></a></div>
This will get the game to display the title bar with Min/Max/Close buttons.
<div class="separator" style="clear: both;"><a href="https://cdn.discordapp.com/attachments/549479499465490432/777294714336444416/unknown.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="431" data-original-width="800" src="https://cdn.discordapp.com/attachments/549479499465490432/777294714336444416/unknown.png"/></a></div>
Now, when you change the resolution... it still won't do anything, but then messing with Display mode will get it to apply the given resolution! Having the launch setting set to -WINDOWED locks the game to windowed, which is nessisary for the game to apply this resolution. I think the dev has the resolution being set as you leave windowed mode instead of entering it, causing this bug.Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-2254527959514721112020-11-08T22:24:00.001-07:002020-11-08T22:34:28.287-07:00Data from MDF to SQL ScriptI needed to export my data out of a MDF SQLServer file so that I could import it into a PostgreSQL database. In case we figure out time travel, or in a few years I need to remember how to get data out of a mdf, a series of images.
<br /><br />In server explorer, right clicking a connected mdf and selecting Browse in SQL Server Object Explorer provides a way to export a table's schema.
<div class="separator" style="clear: both;"><a href="https://cdn.discordapp.com/attachments/276209068425609217/775229024058081320/unknown.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="328" data-original-width="423" src="https://cdn.discordapp.com/attachments/276209068425609217/775229024058081320/unknown.png"/></a></div>
<div class="separator" style="clear: both;"><a href="https://cdn.discordapp.com/attachments/276209068425609217/775229239724736522/unknown.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="448" data-original-width="800" src="https://cdn.discordapp.com/attachments/276209068425609217/775229239724736522/unknown.png"/></a></div>
In the SQL Server Object Explorer, Right click on the MDF's table->view data, followed by the second script icon "Script to File" gives the SQL server format insert statements. I still had to convert from that into PostgreSQL, but that wasn't too hard once the data was in my hands.
<div class="separator" style="clear: both;"><a href="https://cdn.discordapp.com/attachments/276209068425609217/775231310112358470/unknown.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="113" data-original-width="483" src="https://cdn.discordapp.com/attachments/276209068425609217/775231310112358470/unknown.png"/></a></div>Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-75796478146541623862020-08-19T22:24:00.002-06:002020-08-20T02:27:25.739-06:00Fun with Virtual Monitorstl;dr: This is a rambly post about trying to get a Virtual Monitor setup to work with a multi monitor display.<br />
<br />
Fought with monitors tonight. Couldn't get a second monitor to work (Display Port). I've been using a UHD hdmi monitor for the last two weeks. Even after unplugging the HDMI and only running the DP, nothing would show up. Since the UHD is a smart tv, every time I unplug/replug the monitor, it decides to screw with it and go into detect the device mode. Mind you, when it does this, the screen comes up normal like it always has for about 3 seconds, then that gets hidden by the detection software of the smart tv, which eventually decides it is a 4096x2160 that I don't want fit to screen so it should display the center 3840x2160 pixels. Now I know how to get to the setting that doesn't fit to screen... but then... if the 4096x2160 is fit to screen, that means it doesn't actually display that size... then why is it reporting to Windows that it can if it is faking that size? Looking at it, I can't tell if anything is stretched or not.<br />
<br />
So three restarts later I've got 2 Display Port monitors and an UHD HDMI monitor. Index still throws a 108 with "Last USB device malfunctioned) error, so that doesn't appear to be solved by getting the DPs working. But now, DisplayFussion's taskbars are fighting with Window's taskbars for which should be displayed and how. I've got DF's settings set to use the UHD as a 2 by 2 virtual monitors which does good for maximizing to quadrants of the UHD, and has split up taskbars for these 4 Virtual Monitors (VMs), but now every 10 seconds or so, the taskbars flash back and forth as windows things "Wait... isn't the main bar suppose to be across the entire bottom? and isn't the second monitor's bar supposed to be on top?" and DF replies "No Windows, the main taskbar is supposed to be the bottom left VM, and that's it. Stay on your half of the bottom of the UHD."<br />
<br />
Found a post from 5 years ago asking NVidia to handle virtual monitors at the hardware level, telling windows "Yea... I've got 4 screens here, each 1920x1080 in a 2x2 square" and then let windows dictate what happens on these multiple monitors, allowing full screen, toolbars and windows to appear as separate screens, and NVidia pushing those displays out as the one UHD. This is the way to use UHDs. A seamless multi monitor. (I don't have a link to that post, as that was a week ago that I read it).<br />
<br />
One of the things that DisplayFussion doesn't do right is the windows key + arrow keys. On a monitor, this means "move to this half of the screen", but in Virtual Monitors, it pushes it to the VM on that side, instead of that half of the VM.<br />
<br />Virtual Display Manager V3 is another Virtual Monitor tool. It doesn't do toolbars, but does one up DF in the full screen of a youtube video department. DF's VM full screen takes up the full UHD. VDMv3 correctly full screens to the given VM.
<br />The bottom of my screen is still flickering, even after returning to 3840x2160 without fit to screen. I don't _think_ it's been there all this time.Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-74300369718705909382020-06-26T22:24:00.001-06:002020-08-20T02:28:18.580-06:00Dealing With Cached CSS FilesIf a stylesheet is updated and sent to prod, the customer's computer usually won't get the updated version for a while since their computer has a cached version of that file on their machine. This can often make the website look bad. There is a super simple solution to this. Adding a query string to the css request request makes the browser think it is a different file, even if the server still gives the same file regardless of the query string.
<br /><br /><code><link rel="stylesheet" href="/assets/css/main.css?version=20200626" /></code><br /><br />
Learnt this from <a href="https://wpreset.com/force-reload-cached-css/">Gordan of WPReset</a>, who was a bit more verbose about this problem and solution.Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-24200693940322350082020-06-07T22:24:00.000-06:002020-06-07T22:24:02.258-06:00VR Room Motion Curator: Hellblade: Senua's SacrificeMost of the game plays in <a href="http://blog.leviwatts.com/2019/11/levels-of-room-motion-intensity.html">Room Motion Level 2 Intensity</a>, using a third person camera that soft follows Senua in a way that I think should be used by other games seeking to use VR with console controller input. A joystick is dedicated to pushing the camera around, which defaults to 45 degree snap rotation with an option to use smooth rotation for those that can handle smooth Yaw rotation.
<br />
<br />The game has a lot of cutscenes. When these start, the viewpoint for the VR player shrinks to a theatre like experience, using a mostly black room with a wide window to view the cutscene. These scenes are L5 with a significant blinder, except when the start and end. There is a transition time that the theatre mode pulls in and out, and the scene sometimes starts doing L5 actions before the blinder is in place. The opening cutscene, and a midway cutscene both have long L5 sequences.
<br />
<br />In the opening scene, the viewpoint starts floating just above water, catching up to a log canoe that is traveling away from you, and eventually joins into the third person camera while Senua continues to travel the intro scene. The audio queue of "She can't go back now" is about the time that this finally finishes, if you need to keep your eyes closed through-out this.
<br />
<br />In the midway cutscene, the theatre mode opens up way too early. Avoiding spoilers, it is a long walking scene of Senua going up a hill while the camera faces her. At the top of the hill, the theatre mode opens up, and the on rails cutscene continues for another few minutes.
<br />
<br />Using ladders and traveling up or down stairs can cause vertical camera movement.
<br />
I wrote an article about <a href="http://blog.leviwatts.com/2019/11/levels-of-room-motion-intensity.html">Levels of Room Motion Intensity</a> to make it easier to communicate Room Motion in games.Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-91807437847363781602019-11-01T20:26:00.002-06:002022-03-16T23:50:08.092-06:00Levels of Room Motion IntensityFor my Steam Curator <a href="https://store.steampowered.com/curator/29181143-VR-Motion/">VR Motion</a>, I have had difficulty expressing the different kinds of Room Motion a game can have within the limited amount of text space available when posting a review. I've been toying around with the idea of different levels of intensity in Room Motion. For me, as the levels increase, the symptoms become more severe, and the less amount of time I can play the game.
<br />
<br />If you play VR games, I am interested in feedback regarding these intensity levels. Is there a higher level that your mind can tolerate better than a lower level of Room Motion? Is there something not listed that you think should be? I’d love to hear your input!
<br />
<br /><h1>Levels of Room Motion Intensity</h1>
<br /><h2>Level 0: No Room Motion</h2>
<br />If the player needs to move to a different location in the game, a translocation device or some sort is used. A common method of this is a “teleport here” selection, with either no travel time between the locations or a short fade to a solid color and fade back transition.
<br />The game <a href="https://youtu.be/kBdeRMIfj_8?t=274">Budget Cuts</a> has a neat way of handling this non-locomotion translocation action.
<br />
<br />Some games will use an animated zoom effect between two teleported locations to help players understand visually where they are traveling. These usually have comfort blinders that reduce the view to a window for where the player is going. I consider these to be level 1.
<br />
<br /><h2>Level 1: Basic player Enacted Locomotion</h2>
<br />Traveling using a joystick, touchpad, or button press with the controller facing the direction of travel are common actions. There are requirements that when input from the player stops, the movement stops as well. This level allows for deviations in turning (yaw only), but not in roll (falling over), or pitch (walking up a wall). An example would be Rec Room’s default movement option “walkers.”
<br />
<br /><h2>Level 2: Advanced Player Enacted Locomotion</h2>
<br />Much like level 1, but after the player input ends an understandably expected direction of travel continues, such as traveling by vehicle or by maintained momentum. <a href="https://youtu.be/D2xRVq1sijQ?t=52">Jet Island</a> is an example of a game that does this.
<br />
<br /><h2>Level 3: Uncontrolled Locomotion Events Outside of the Player’s Direct Control</h2>
<br />These uncontrolled events cause movement of the player’s POV (Point of View), but can reasonably be expected by the player. i.e. a user pushing their head into a wall, and their position is virtually held inside the room. Riding a roller coaster while being able to see the track, or at least having an idea of where the vehicle being ridden is taking you. A player’s room position deciding if they should fall down a cliff ledge.
<br />
<br /><h2>Level 4: Space like player enacted locomotion</h2>
<br />Like level 2, but allows pitch and roll room rotations as well. Generally, this only occurs in zero gravity space like simulations.
<br />
<br /><h2>Level 5: Uncontrolled unexpected locomotion</h2>
<br />Events outside of the player’s direct control causes movement of the player’s POV. An unseen NPC shoving the player around. A vehicle the player doesn’t control moving them. An otherwise level 0 game that has a trigger that pushes the user to a new location.
<br />
<br /><h2>Level 6: Non-Euclidean</h2>
<br />A level upon itself. The majority of players, even the most seasoned veterans of Virtual Reality, will have difficulty playing a non-euclidean game.
<br />
<br />
<br /><h1>Comfort Options</h1>
<br /><b>A+</b>: The developers display a clear understanding of Room Motion mitigation options, with options to provide additional room presence, reduce player vision during Room Motion, or remove Room Motion entirely by providing alternate control options.
<br /><b>A</b>: Comfort options are available for the majority of primary gameplay. Room Motion unmitigated sections may exist.
<br /><b>B</b>: Comfort options exist, but large sections of primary gameplay still has unmitigated Room Motion.
<br /><b>F</b>: No comfort options available, and are needed for primary gameplay.
<br />
<br /><h1>Games I've Reviewed for Room Motion</h1>
<br />Check out my Steam Currator <a href="https://store.steampowered.com/curator/29181143-VR-Motion/">VR Motion</a> to see games a list of VR games that have Room Motion, and what kinds of Room Motion they have.Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-22425787853327901362019-07-22T22:56:00.002-06:002019-07-27T00:22:25.799-06:00Pathery Map GeneratorThis blog post is a help document for <a href="https://www.pathery.com/">Pathery</a>'s <a href="https://www.pathery.com/mapeditor">Map Editor</a>'s Map Generator. This document assumes you already know how to use the editor before it had BlockCode. At time of writing, the feature isn't released yet.<br />
<br />
<a href="https://cdn.discordapp.com/attachments/549479499465490432/603035524659282002/unknown.png" imageanchor="1" ><img border="0" src="https://cdn.discordapp.com/attachments/549479499465490432/603035524659282002/unknown.png" data-original-width="222" data-original-height="257" /></a>
<blockquote class="tr_bq">
<span style="font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 14px;">6.6.5.Testmap...:2,y1.,y1.2,s1.1,y1.,y1.4,y2.,y2.1,f1.2,y2.,y2.2,y12.,y1.,r1.,y21.,y12.,y21.,y13.,y2.,r1.,y21.</span></blockquote>
The above is an example of Pathery BlockCode. The upper four rows in this example are the base map, declaring a few start locations, an end, and two selector groups. The lower three rows is the block code that manipulates the map for a desired generator outcome. An example outcome of this generator is:<br />
<a href="https://cdn.discordapp.com/attachments/549479499465490432/603037136178118656/unknown.png" imageanchor="1" ><img border="0" src="https://cdn.discordapp.com/attachments/549479499465490432/603037136178118656/unknown.png" data-original-width="220" data-original-height="194" /></a><br /><br />
Lets dive into this one line at a time.<hr>
<blockquote class="tr_bq">
<span style="font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 14px;"><a href="https://cdn.discordapp.com/attachments/549479499465490432/603037875021545482/unknown.png" imageanchor="1" ><img border="0" src="https://cdn.discordapp.com/attachments/549479499465490432/603037875021545482/unknown.png" data-original-width="142" data-original-height="35" /></a><br />ReplacePoint 1 Rock EndOfLine<br />
ReplacePoint [FromBlock{1}] [ToBlock{1 or more}] EndOfLine</span></blockquote>
The ReplacePoint Command looks for blocks matching the FromBlock type, and randomly replaces them with the ToBlocks. In the example above, the top right 1 selector was replaced with a rock.<br />
<br /><i>(Note to self: Known bug: If a user attempts to place out more blocks then their selector FromBlock has spaces for, the page will bug out due to extra text provided in the AJAX return.)</i>
<hr>
<blockquote class="tr_bq">
<span style="font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 14px;"><a href="https://cdn.discordapp.com/attachments/549479499465490432/603040652233539624/unknown.png" imageanchor="1" ><img border="0" src="https://cdn.discordapp.com/attachments/549479499465490432/603040652233539624/unknown.png" data-original-width="142" data-original-height="35" /></a><br />Fill 2 Rock EndOfLine<br />Fill [FromBlock{1}] [ToBlock{1}] EndOfLine</span></blockquote>
The Fill Command looks for blocks matching the FromBlock type, and replaces all of them with the ToBlock's type. In the example above, the six lower rocks are from this fill command.
<hr>
<blockquote class="tr_bq">
<span style="font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 14px;"><a href="https://cdn.discordapp.com/attachments/549479499465490432/603041592408014848/unknown.png" imageanchor="1" ><img border="0" src="https://cdn.discordapp.com/attachments/549479499465490432/603041592408014848/unknown.png" data-original-width="67" data-original-height="35" /></a><br />Empty EndOfLine</span></blockquote>
Areas without commands are fine. Above these two blocks is an example of empty space existing before a command block. If non-BlockCodes are provided before a command, they will be ignored.
<hr>
<blockquote class="tr_bq">
<span style="font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 14px;"><a href="https://cdn.discordapp.com/attachments/549479499465490432/603042528652165160/unknown.png" imageanchor="1" ><img border="0" src="https://cdn.discordapp.com/attachments/549479499465490432/603042528652165160/unknown.png" data-original-width="210" data-original-height="35" /></a><br />ReplacePoint Start Void Void Void EndOfLine<br />ReplacePoint [FromBlock{1}] [ToBlock{1 or more}] EndOfLine</span></blockquote>
FromBlocks are allowed to be any map placeable block (all standard blocks and the selector BlockCode. In the above example, three of the start locations were replaced with void spots.
<hr>
<blockquote class="tr_bq">
<span style="font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 14px;"><a href="https://cdn.discordapp.com/attachments/549479499465490432/603071890621333504/unknown.png" imageanchor="1" ><img border="0" src="https://cdn.discordapp.com/attachments/549479499465490432/603071890621333504/unknown.png" data-original-width="216" data-original-height="182" /></a><br />
<a href="https://cdn.discordapp.com/attachments/549479499465490432/603073629026254852/unknown.png" imageanchor="1" ><img border="0" src="https://cdn.discordapp.com/attachments/549479499465490432/603073629026254852/unknown.png" data-original-width="218" data-original-height="191" /></a><br />
<a href="https://cdn.discordapp.com/attachments/549479499465490432/603072135048462371/unknown.png" imageanchor="1" ><img border="0" src="https://cdn.discordapp.com/attachments/549479499465490432/603072135048462371/unknown.png" data-original-width="139" data-original-height="35" /></a><br />SurroundPoint 1 Rock EndOfLine<br />SurroundPoint [FromBlock{1}] [ToBlock{1}] EndOfLine</span></blockquote>
The Surround Point Command select a random FromBlock and places it's ToBlock type in the four orthogonal directions. This will replace whatever block is on those squares, pre-existing or placed by BlockCode earlier. Blocks to be placed that would be off the map are ignored instead.<br />
<br />
<i>(Note to self: Known bug: If a user attempts to use a FromBlock that doesn't exist, the page will bug out due to extra text provided in the AJAX return.)</i>
<hr>
The last component you need to know to create the majority of maps on Pathery is the OR and Percent BlockCode. The following image and BlockCode is an idea from 是我人 to combine both Normal and Complex into a single map. This includes OR blocks, which are equal chance options of multiple command blocks, as well as percent chance sections appearing after the last ToBlock of a command set, which gives a chance that a given command set won't fire. This also has dynamic waypoints, allowing the 1 section to have 1 or 2 waypoints, allowing the 2 section be the next waypoint (either B or C), then 3 to 5 more waypoints after that, correctly selected starting at C or D based on the previous rolls.
<br />
<br />
<i>(Note to self: Fix wall count so that it works, allow it to softly fail, document it.)</i><br />
<br />
<i>(Note to self: Document how to view the soft errors via JS's console view, or code it into the UI to naturally view it. Document Multi ORs. Document Last % and NotLast %. Make icons for these two.)</i>
<blockquote class="tr_bq">
<span style="font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 14px;"><a href="https://cdn.discordapp.com/attachments/549479499465490432/603085370556547083/unknown.png" imageanchor="1" ><img border="0" src="https://cdn.discordapp.com/attachments/549479499465490432/603085370556547083/unknown.png" width="156" height="320" data-original-width="391" data-original-height="800" /><br />(clicky for big)</a><br />19.39.33.NormalAndComplex...:,s1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,t1.,y2.,r3.,s1.1,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,t1.,y2.,r3.,s1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,t1.,y2.,r3.,s1.1,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,t1.,y2.,r3.,s1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,t1.,y2.,r3.,s1.1,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,t1.,y2.,r3.,s1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,t1.,y2.,r3.,s1.1,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,t1.,y2.,r3.,s1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,y1.,t1.,y2.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,u1.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.1,f1.,u1.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,f1.,u1.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.1,f1.,u1.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,f1.,u1.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.1,f1.,u1.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,f1.,u1.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.1,f1.,u1.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,f1.,u1.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.,y3.1,f1.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y19.,y12.,y1.,y15.,y17.,y12.,y1.,y15.,y15.,y21.10,y12.,y2.,y15.,y16.,y16.,y16.,y16.,y16.,y16.,y16.,y16.,y21.7,y12.,y3.,y16.,y15.,y15.,y17.,y12.,y3.,y16.,y15.,y15.,y17.,y12.,y3.,y16.,y15.,y15.,y15.,y17.,y12.,y3.,y16.,y15.,y15.,y15.,y15.,y21.11,y12.,y1.,r1.,r1.,r1.,r1.,r1.,r1.,r1.,r1.,y21.,y12.,r1.,r1.,y18.,y8.,y10.,y21.1,y12.,y1.,r1.,r1.,y18.,y6.,y10.,y21.,y12.,y1.,r1.,r1.,y18.,y4.,y10.,y21.3,y12.,y1.,r1.,r1.,y18.,y2.,y10.,y21.11,y12.,y3.,r1.,r1.,r1.,r1.,t3.,u3.,r1.,y21.,y12.,y3.,t4.,u4.,y18.,y3.,y3.,y21.1,y12.,y3.,r1.,r1.,r1.,y18.,y8.,y10.,y21.2,y12.,y1.,z5.,z5.,y18.,y3.,y21.1,y12.,y3.,r1.,r1.,r1.,y18.,y6.,y10.,y21.2,y12.,y1.,t2.,u2.,y18.,y3.,y21.1,y12.,y3.,r1.,r1.,r1.,y18.,y4.,y10.,y21.10,y12.,y3.,r1.,r1.,r1.,y18.,y2.,y10.,y21.10,y12.,y3.,z5.,z5.,y18.,y8.,y10.,y21.11,y12.,y3.,z5.,z5.,z5.,y18.,y2.,y10.,y21.10,y12.,y3.,z5.,z5.,z5.,y18.,y2.,y10.,y21.10,y12.,y3.,z5.,z5.,z5.,z5.,y18.,y1.,y10.,y21.9,y12.,s1.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,r3.,y21.8,y11.,y1.,y5.,y19.,y2.,y2.,y21.12,y11.,y1.,y1.,y19.,y1.,y1.,y21.</span></blockquote>
<br /><br /><i>[ToAdd: SurroundBlock, OR blocks, Percent block]</i>Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-60957741677239187272019-06-12T23:21:00.001-06:002019-06-12T23:26:47.826-06:002d10 + the absolute difference between the two diceI pondered what 2d10 + the absolute difference between the two of them would be. After thinking though a few of the rolls, I realized that 3 isn't a possible outcome. The lowest roll would be 2, at a 1% chance (two back to back 10% chances). The max roll was from either 10 10 or 1 10.<br />
<br />
Typed it up into <a href="https://anydice.com/program/16247">Anydice</a>.<br />
<blockquote class="tr_bq">
<span style="font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 14px;">function: sum plus difference of A:n and B:n {<br />
C: [absolute A - B]<br />
result: A + B + C<br />
}<br />
<br />
output [highest 1 of 2d20]<br />
output [sum plus difference of d10 and d10]</span></blockquote>
<br />
<a href="https://cdn.discordapp.com/attachments/276209068425609217/588590786040299531/unknown.png" imageanchor="1"><img border="0" data-original-height="409" data-original-width="749" height="175" src="https://cdn.discordapp.com/attachments/276209068425609217/588590786040299531/unknown.png" width="320" /></a><br />
Turns out, it is really similar to having advantage in DnD 5e, aka Higher 1 of 2d20 (image is the same graph as above, with "at most" selected). If on the advantage though, you "rounded up" odds to evens, it is the same.<br />
<a href="https://cdn.discordapp.com/attachments/276209068425609217/588591095194320906/unknown.png" imageanchor="1"><img border="0" data-original-height="410" data-original-width="735" height="179" src="https://cdn.discordapp.com/attachments/276209068425609217/588591095194320906/unknown.png" width="320" /></a>
<br />
I had hoped that this would have resulted in an upper bell curve, seen below in green. Blue is the standard 3d6 bell curve for comparison.<br />
<a href="https://cdn.discordapp.com/attachments/276209068425609217/588598243559079951/unknown.png" imageanchor="1" ><img border="0" src="https://cdn.discordapp.com/attachments/276209068425609217/588598243559079951/unknown.png" width="320" height="146" data-original-width="800" data-original-height="364" /></a>Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-51986509673355799192017-12-24T10:24:00.000-07:002017-12-24T15:22:38.716-07:00VR Room Motion Curator: DetachedAll of the Room Motion. Six degrees of motion controller input for facing direction and movement. Trailer suggest non-player controlled movement events will occur too.<br /><br />
Each launch, there was a popup error message on my desktop that needed clicked "Ok" for to allow the game to launch. The initial location of the opening menu always put my head inside of the selections. On the left (invisible) controller, hitting down on the touch pad reset the room's position. Game didn't tell me this.Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-35589856743571896522017-12-22T10:24:00.000-07:002017-12-23T09:52:15.186-07:00VR Room Motion Curator: OrbusVRParaphrased From Developer Daynab: By default we use the teleporting movement standard like many VR games, but you can opt to turn on sliding locomotion (with a few different settings for camera orientation). So you can pick which of the two types of movement you want. There is an airship you can go on to travel between cities. Traveling via the airship is peaceful, requiring minimal attention for when you need to get off.Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-55950848183284182622017-12-15T22:24:00.000-07:002017-12-23T10:10:13.926-07:00SUPERHOT Multi Profile ManagerSUPERHOT is a fun game, but it is designed such that sharing the true experience from start to finish with others is not possible. The game is intentionally designed to have a single user profile to ever exist. Due to it's story, this makes sense.
<br /><br />
I still wanted to share the full experience (perhaps sans-achievements) with friends, so I created a tool that renames the game saves of both SUPERHOT and SUPERHOT VR to allow additional users to enjoy the game. If the game is running while you attempt to alter the game saves, it will refuse. I imagine if I allowed that, overwrites of game saves and loss of progress would be likely. If you find this tool useful, let me know on twitter <a href="https://twitter.com/memoryleaked">@memoryleaked</a>
<br /><br />
<a href="https://bitbucket.org/wattslevi/superhot-profile-manager/downloads/">SUPERHOT Multi Profile Manager download link</a>
<br /><br />
Please <a href="https://bitbucket.org/wattslevi/superhot-profile-manager/issues?status=new&status=open">inform me</a> of any bugs you find. I can't fix what I don't know about.
<br /><br />
This works on my Win7 machine. I don't have other OS'es to test this on. I haven't tested this when the user only owns one of SUPERHOT or SUPERHOT VR. It should be fine.
Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-39966378261009509562017-12-11T22:24:00.000-07:002017-12-23T10:09:23.630-07:00VR Room Motion Curator: RuneSageStarts with float logo that follows the face without any other indicator of where the room is.<br /><br />
Adjusts player's height based on where your head is over different terrain. For example, as you move around in RL while on VR stairs, your view height changes. Avoidable by not moving around while on ramp surfaces. If you move your head over a stool, view point fades out and back in at new height.
Teleporting is a mechanic in which the player isn't shown the movement from one point to another, and instead their viewpoint instantly moves the the new spot, or the view fades out then back after a short duration in at the new location.<br /><br />
Zoom Teleporting is when the user is shown their teleport movement over a short period of time, zooming to their new location.
Wall walking occurs when the player attempts to stick their head though a VR wall. This game teleports the player unexpectly away from the wall they were about to wall walk past.<br />
<br />
Intended to be No Room Motion, but fails on a few points. Floaty Logo, Forced player height while RL walking, unexpected teleport on wall walk attempts. Usually uses teleporting, but sometimes fails to fade the viewpoint and shows the player's zoom teleport.<br />
<br />
<a href="http://store.steampowered.com/app/542030/RuneSage/">Store Link</a>Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-59524590901704956402017-12-10T10:24:00.001-07:002017-12-23T10:09:29.758-07:00VR Room Motion Curator: DeroraRoom Motion game. Room Motion game. Locomotion by pulling oneself around (swinging arms motion with touchpad, object grab and move yourself climbing with trigger). After initial game start, the room moves around you a small amount.<br />
<br />
There are times menu screens move on their own. I think they are adjusting to user height way too late. This game is in going to be in Early Access later this month. I consider the menu adjusting portion to be a bug that may be fixed.<br />
<br />
<a href="http://store.steampowered.com/app/700540/Derora/">Steam Store link</a>
Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-40880182228257571082017-12-09T22:24:00.000-07:002017-12-23T10:09:35.117-07:00VR Room Motion Curator: Cosmic TripThe returning to ship screen has Room Motion, flying though space. This occurs on launch, death, and victory. Once you learn the sound effects, it would be easy to know the duration to keep your eyes closed, as no interaction is needed. The main game doesn't have Room Motion in it.Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-60139300962333662352017-09-10T22:24:00.000-06:002017-12-23T10:10:44.005-07:00Egyptian Rat Slap: Patch History<span style="font-size: large;">Patch History</span><br />
<br />
<span style="font-size: large;">2017.09.12</span><br />
+Main screen "Slap!" icons changed to "Playing!" and "Join!" icons to better indicate how to play with more players.<br />
+Play order now defaults to Clockwise. Option added to allow players to play backwards if they want to (currently listed under Slap Option...).<br />
+Hopefully improved performance where a memory leak may have been problematic.<br />
+Tens was coded as considering Aces as a value of 1, and considered the top and third cards when the second card was a face card. This is no longer true. The coded rule now matches the rule text. (top to cards only, Aces count as a face card).<br />
+Victory screen no longer references players by number. "Grats! You won!"<br />
+Version added to title screen<br />
-Still don't have the game's title on the title screen...<br />
<br />
<span style="font-size: large;">2017.09.01</span><br />
Game exist! Initial release.Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-57125178565509739422017-08-31T10:24:00.001-06:002017-09-10T18:43:49.243-06:00Egyptian Rat Slap - How To Play<span style="font-size: large;">Play</span><br />
<br />
Play starts with everyone getting an equal share of the deck. Anyone may start the game. Once play starts, in counter-clockwise direction, each player plays one card at a time until a headsup scenario begins. This happens when a face card or Ace is played. Each of the headsup cards have a different amount of card response to be answered. Jack: 1, Queen: 2, King: 3, Ace: 4. Should a headsup card ever be played, even during a headsup, play passes to the next player who must play cards until either a headsup card is played, or they have fully answered the given headsup card.<br />
<br />
A player who played a headsup card and have it fully answered may slap the stack to gain all the cards in the stack.<br />
<br />
<span style="font-size: large;">Slapping</span><br />
<br />
Several patterns allow for the stack to be slapped by anyone who is paying attention, even should a headsup be fully answered. The following patterns are optional within Settings -> Slap Options (default option displayed in [brackets]). Note that cards put on the bottom of the stack due to a misplay are never part of a pattern.<br />
<br />
Doubles [On] - Whenever the top two cards share the same rank (ie an 8 of Diamonds on an 8 of Hearts).<br />
<br />
Sandwich [On] - Whenever the top card and the third from top card share the same rank (ie an 8 of Diamonds, a Jack of Clubs, followed by an 8 of Hearts).<br />
<br />
Tens [Off] - Whenever the top two cards are numeric (ie not a face or ace card), and their sum of ranks is 10 (ie an 8 of Diamonds on a 2 of Clubs).<br />
<br />
Marriage [Off] - Whenever the top two cards are a Queen and King combination in either order (ie a King of Hearts on a Queen of Spades, or a Queen of Diamonds on a King of Clubs).<br />
<br />
Any player may slap, but should a slap be incorrect, their top card is lost to the bottom of the discard pile. Should the player not have any cards, they will be locked out of slapping for a short duration. For tournament rules, a zero card player who fails a slap shouldn't play until the next game begins.<br />
<br />
Playing out of order also cost a card to the bottom of the discard pile. For any reason that a card is lost, a red message will display as to why it happened.<br />
<br />
<span style="font-size: large;">Winning</span><br />
<br />
The player with all the cards at the end wins.<br />
<br />
<span style="font-size: large;">Feedback</span><br />
<br />
Want to talk to other people who know about this game? <a href="https://discord.gg/jKXrsAm" target="_blank">Join the Discord!</a><br />
Want to email me directly? dev[AT]leviwatts[D0T]com<br />
<a href="http://blog.leviwatts.com/2017/09/egyptian-rat-slap-patch-history.html" target="_blank">Patch History</a><br />
<br />
<span style="font-size: large;">Known Bugs</span><br />
<br />
There is a memory leak in the game that can drastically slow down gameplay. This is likely tied to floating messages not being released after use. If you are experiencing these or any other issue, please email me or talk to me via the Discord! I'd like to know how old your phone or tablet is. My oldest tablet has a hard time with this game, but I'm not certain if that is old hardware, or GameMaker not able to perform as well on the older version of Android that it is.<br />
<br />
<br />
<span style="font-size: large;">iOS</span><br />
<div>
<span style="font-size: large;"><br /></span></div>
<div>
I don't have the means of compiling my game for the Apple App store, as I don't have any Apple products. I would like to release on Apple's store as well, but don't have the means to do this currently.</div>
Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-44204287618448183272017-07-04T09:48:00.000-06:002017-12-23T10:11:32.683-07:00VR - First Person Wall Hacks protectionIn <a href="http://store.steampowered.com/app/484870/Battle_Dome/">Battle Dome</a>, a VR FPS game, in order to keep the player in bounds at all times, the player's position is altered if their head, body or weapons move past a wall. This element surprised me as I thought I was peeking around a corner,
but I had actually just left the spawn area and wasn't allowed to go back.<br />
<br />
I applaud the idea, but would want to implement it such that the player's avatar is instead prevented from walking into the wall, and the player's vision gets a 1 foot depth fog barrier perpendicular to the wall(s) they have passed. This prevents the player from gaining knowledge of what is on the other side of the wall, and prevents the player from protecting their avatar via wall movement. During this time, the player should be told that they:<br />
1) are separated from their body<br />
2) can activate the normal movement system to return to their body's location<br />
3) perhaps have an arrow pointing in bound near chest height perpendicular to the wall and where their vision is at. If they enter back in bounds within a short distance where their avatar could be, their body snaps back to them. If they wall clipped to a location they didn't have short access to (2 teleports of distance/10 seconds of movement), then I would be tempted to teleport them back (fade out, move their viewpoint, fade in, message "You have been returned to your body.")<br />
<br />Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-71573744488401826512017-06-24T10:24:00.000-06:002017-06-24T19:59:26.888-06:00VR Motion - VR ChatVR Motion extended entry<br />
<br />
After loading into a zone, the player is sometime dropped into the avatar's height. 80% of the time when loading into a new zone, there was Room Motion as though the game didn't realize it put me at a different height than they had originally measured me for.<br />
<br />
View height is Room Motion adjusted based on nearby stairs. By putting your RL head position over an staircase, ramp or box, the VR position can be shifted up or down to where your avatar's height would be in that position.
<br /><br />
System menu gives a glitchy motion view. When paused, the view traveled about 2 to 5 meters in distance in a repeated path in the course of less than a second, repeating as quickly as it could.
<br /><br />
Other players are able to cause your avatar's view height to move. I watched a player move a held marker under another player, and their viewpoint was forced up as though they were walking on the marker. The marker player then pulled the marker above her head, and the other player rose up higher up until the marker was no longer under them, at which point they snaped back to the ground.
<br /><br />
Normal movement is a modified teleport system, in which you tell your avatar where you want to go, and you watch from your existing position as your avatar moves to the new position. Really nifty way to include travel time without pushing the player's viewpoint.<br />Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-89167170631964093622017-06-14T10:24:00.000-06:002017-07-04T09:48:24.591-06:00Star Trek: Bridge Crew, UPlayThe following is my experience in attempting to launch Star Trek: Bridge Crew.
<br /><br />
Upon launch, the game asks what controllers the player wants to use. Controllers are not visible in Vive at this point. These should be visible until the player tells the game that a non-vive controller is going to be used for controls, or the controls are being visually replaced by the avatar's hands.
<br /><br />
UPlay. Steam is DRM. A second DRM is unnecessary.
<br /><br />
UPlay labels itself as a game launcher. I'm not even interested in Origin, and they have greatly improved since they started.
<br /><br />
After installing UPlay and logging into my account, the in game connection error message to UPlay is not cleared nor is there an option to retry connection once UPlay has been installed. The only option is to quit the game. This is also rude.
<br /><br />
Upon second launch, the game failed to launch, and put me back in SteamVR Home. My monitor tells me that UPlay threw an error message. The game should have stayed open and notified the player to look at the monitor.
<br /><br />
After allowing the game to be bound to my account, UPlay "helpfully" launched the game itself. Since I wasn't prepared to play yet, my headset was still in afk mode, which means it isn't tracking, which makes Star Trek: Bridge Crew throw an error message of hardware error. Restarting the game is the only option to continue.
<br /><br />
During this second launch, Source2 gives a warning that only one instance of the game can be running at one time. Since I was already kicked out of the game from the UPlay thrown error message, this suggest that UPlay launched the game twice. Good job.
<br /><br />
After connecting to UPlay correctly, I'm greeted with a screen of health information warning that permits me enough time to read most of the first sentence, which I think was along the lines of "Read all" before it cut that screen away. It's not a CYOA if you aren't allowing people to read the shit you ask them to. I imagine I would have to relaunch the game 3 times to read that text.<br />
<br />
The main menu gives me motion sickness. A moving background while attempting to read text does this to me. If the menu pod was stationary relative to the stars, this wouldn't be an issue. This has been included in my <a href="http://blog.leviwatts.com/2016/08/games-that-give-me-motion-sickness.html">post about games that give me motion sickness</a>.
<br />
<br />Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-8346711975645228322016-09-15T22:24:00.000-06:002019-06-05T09:55:14.426-06:00Projects<h3 class="divider"><span>Egyptian Rat Slap</span></h3><br />
<div style="text-align: left;">
<a href="https://play.google.com/store/apps/details?id=com.UNKVar.EgyptianRatSlap" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://www.leviwatts.com/images/ERS_Logo.png" width="200" /></a>ERS is a matching card game with war like elements and slapping where players attempt to gain all the cards of the deck before their friends do. Designed to be played with two to four players sitting around a table. This makes for a great time filling game for board game groups and those waiting for their food to arrive at a restaurant.<br /><br />
<div><a href="https://play.google.com/store/apps/details?id=com.UNKVar.EgyptianRatSlap" target="_blank">Google Play Store</a></div>
<div> Sept 2017</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
</div>
<h3 class="divider">
<span>Jet Island mods</span>
</h3><br />
<div style="text-align: left;">
Seven mods for the VR game <a href="https://store.steampowered.com/app/587220/Jet_Island/">Jet Island</a>.<br />
<br />
<br /><div style="clear:both"></div>
<a href="https://mods.jet-is.land/mod/hook-island-expert-mode" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="144" src="https://mods.jet-is.land/mod-data/hook-island/hook-island.jpg" width="200" /></a> Hook Island - I found using only the hook shot for movement to be really fun, significally different experience from the full mobility experience. This mod reduces your fuel reserves to nearly empty, and the jet's power to nothing.<br />
<br /><div style="clear:both"></div>
<a href="https://mods.jet-is.land/mod/bunny-hop-on-trigger" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="144" src="https://mods.jet-is.land/mod-data/bunnyhop-ontrigger/bunnyhop.jpg" width="200" /></a> Bunny Hop On Trigger - This VR game has uses room movement to trigger jumps. The user must crouch down and rise at a decent rate. For both those that this is physically unconfirbable, and those playing seated, I add an option for the player to jump by a button press. For speedrunning purposes, I would consider this cheating.<br />
<br /><div style="clear:both"></div>
<a href="https://mods.jet-is.land/mod/checkpoint-hopper" imageanchor="1" style="clear: both; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="144" src="https://mods.jet-is.land/mod-data/checkpoint-hopper/checkpoint-hopper.jpg" width="200" /></a> Checkpoint Hopper - Normally, checkpoints are only used upon player death, returning you to the last checkpoint you touched. A common strategy is stop using checkpoints once the player has a checkpoint on the highest island, and purposely dying to get back up there and traveling where they want to go. This mod adds the ability to teleport between checkpoints that you have visited, provided you are currently at a checkpoint.<br />
<br /><div style="clear:both"></div>
<a href="https://mods.jet-is.land/mod/map-retexture" imageanchor="1" style="clear: both; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="144" src="https://mods.jet-is.land/mod-data/map-retexture/map-retexture.jpg" width="200" /></a> Map Retexture - I found the techie style texture for the map to look cool, but be functionally difficult to use. This mod uses one of the player model's textures instead, resulting in an opaque visual.<br />
<br /><div style="clear:both"></div>
<a href="https://mods.jet-is.land/mod/delete-profile-x" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="144" src="https://mods.jet-is.land/mod-data/delete-profile-x/delete-profile-x.jpg" width="200" /></a> Delete Profile X - As the speedrunning crowd grew, more of us wanted an easier way to delete existing profiles to get fresh starts for the "Any % new game" category. The only way to delete existing profiles was reg editing. This mod added keyboard shortcuts to reset a profile, as well as optionally send the user back to the main menu, helping to restart dead runs.<br />
<br /><div style="clear:both"></div>
<a href="https://mods.jet-is.land/mod/positional-save-state" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="144" src="https://mods.jet-is.land/mod-data/positional-save-state/positional-save-state.jpg" width="200" /></a> Positional Save State - For the use of speedrunners to learn a section, this mod allows the user to select their current location as a place to return to at any point in the future. It doesn't remember your speed, nor does it reset bosses, both of which have been requested by players.<br />
<br /><div style="clear:both"></div>
<a href="https://mods.jet-is.land/mod/fall-damage-bad-mmkay" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="144" src="https://mods.jet-is.land/mod-data/fall-damage-bad-mmkay/falldamagebadmmkay.png" width="200" /></a> Fall Damage Bad Mkay - Someone in the Discord jokingly asked for fall damage to harm the player. The game measures magnitude of collisions to apply visuals and sound effects. This mod taps into that. Anything larger then a medium hit results in being sent back to a checkpoint.<br />
</div>
<br /><div style="clear:both"></div>
<div style="text-align: left;"> <a href="https://mods.jet-is.land/mods/" target="_blank">Distribution</a> and download stats. Author: Aki</div>
<div style="text-align: left;"> <a href="https://bitbucket.org/wattslevi/jetisland-mods/src" target="_blank">Source</a></div>
<div> C#, Unity, VR</div>
<div> Late 2018</div>
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider"><span>Game of Life simulator</span></h3><br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigGEHlU5fQcypegMt7xiNAXNM7OBWQDM_Jg4qkV6v9IouGql2LwZ7G285l1OLHKEzsX8k9ZB0m9AjklQXjVMOvX9dBhy345BJDtjkHOCZ_XbQqjsylIi_-MWHmX9Hw2G1kRy_2pHR0Kjs/s1600/2016.09.08.GameOfLifeScreenshot.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigGEHlU5fQcypegMt7xiNAXNM7OBWQDM_Jg4qkV6v9IouGql2LwZ7G285l1OLHKEzsX8k9ZB0m9AjklQXjVMOvX9dBhy345BJDtjkHOCZ_XbQqjsylIi_-MWHmX9Hw2G1kRy_2pHR0Kjs/s320/2016.09.08.GameOfLifeScreenshot.jpg" width="200" /></a>This project began as a tool to create a strong setup for <a href="http://botaniamod.net/" target="_blank">Botania</a>'s <a href="http://ftb.gamepedia.com/Dandelifeon" target="_blank">Dandelifeon</a>. Here is a <a href="https://youtu.be/XWuksILY0Lw?t=5m56s" target="_blank">video</a> showing this Minecraft mod in action.</div><br />
<div style="text-align: left;">
While creating the simulator, I quickly lost sight of my objective and enjoyed adding more features to the simulator. It supports dynamically changing rules (who are valid neighbors, born/survive neighbor counts), has genetics in the form of cell color, and tracks lineage (cell family age) and cell age (important values for the Dandelifeon).</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmbNia852eqW3_xUzhGWy2QFyb8YC1HxfDQwfVpHhg_nUtuJ2Ej82ufsy7d-8iAA_mIF3W43ZP2qbxQLHFxeSEkvWarbjQ88YygA4fVa5YXzTMBIryX5o1FnHBYzTwnSuUT-beJQAcPok/s1600/2016.09.08.GameOfLifeScreenshot2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmbNia852eqW3_xUzhGWy2QFyb8YC1HxfDQwfVpHhg_nUtuJ2Ej82ufsy7d-8iAA_mIF3W43ZP2qbxQLHFxeSEkvWarbjQ88YygA4fVa5YXzTMBIryX5o1FnHBYzTwnSuUT-beJQAcPok/s320/2016.09.08.GameOfLifeScreenshot2.jpg" width="200" /></a></div>
<div style="text-align: left;">
Choosing options that prevent cells from dying, as seen in the lower screenshot, can result in interesting patterns.
</div><br />
<div style="text-align: left;">
<a href="http://leviwatts.com/files/GameOfLifeSim.2016.01.27.zip" target="_blank">Windows EXE</a></div>
<div style="text-align: left;">
<a href="http://leviwatts.com/files/GameOfLife.html" target="_blank">Patch Notes</a></div><br />
<div> Jan 2016</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider">
<span>Level Generator for Speedrunners</span>
</h3><br />
<div style="text-align: left;">
<a href="https://imgur.com/a/pXfoJ" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="144" src="https://i.imgur.com/H5188QW.png" width="200" /></a><a href="http://store.steampowered.com/app/207140/">Speedrunners</a> is a game about out running your opponents. All the maps in the game are hand crafted, and the ones in use for rank are mostly well known. I like the idea of playing on random maps, where no one has ever seen the map before. This gives less value in memorizing routes of the popular maps, and gives value in figuring out routes during play.<br />
<br />See the <a href="https://imgur.com/a/pXfoJ">attached album</a> to see the progress this generator took as it was being created. I recall the generation taking less than a minute to make a looped level. There is still work to be done to make the levels more interesting, as all of the maps are limited to being a single tunnel. A major limitation I had was importing my data into the game to play with the maps. This limitation eventually halted development of this project.
<br /><br />
I have a <a href="https://imgur.com/a/Wgalq">gallery of sample output</a> that the generator makes in it's current form, error levels and all.
</div><br />
<div> C#, Forms, JSON</div>
<div> Early 2015</div>
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider"><span>Super Sudoku</span></h3><br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1U4-snbqJeSW1axvDAjZ_n_dto0lf8OoPIRoMBG0IZF55PvGZWhcArtg-NhyphenhyphenqG6DRI4QjGfvDzyYmh_1hiz0e5G36uGNZtXvTRX_n_pG1xzEFCDqQXJrTdeF-9ELFB4wxtzXIkiv-ryM/s1600/2016.09.08.3DSudoku.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1U4-snbqJeSW1axvDAjZ_n_dto0lf8OoPIRoMBG0IZF55PvGZWhcArtg-NhyphenhyphenqG6DRI4QjGfvDzyYmh_1hiz0e5G36uGNZtXvTRX_n_pG1xzEFCDqQXJrTdeF-9ELFB4wxtzXIkiv-ryM/s320/2016.09.08.3DSudoku.jpg" width="200" /></a>My father enjoys making puzzles. In 2012, he started making 3D Sudoku by hand (9*9*9 puzzles). Finding his tools primitive, I created a viewer to help him continue his craft. Since he had a stronger tool, he began working on more complicated setups. As he advanced his craft, I enhanced the tool. By the end, the tool had a basic solver that helped answer a question we had, "How few clues could be required to solve a Super Sudoku?"</div>
<blockquote class="tr_bq">
In regular sudoku, 17 clues has been found to be the minimum or about 21% of the 81 cell puzzle. With Super Sudoku, the minimum appears to be 43 or just 6% of the 729 cells. - Roy Watts
</blockquote>
<div style="text-align: left;">
<a href="http://www.leviwatts.com/roy/files/SuperSudoku-v0.4.1.zip" target="_blank">Windows EXE</a></div>
<div>
July 2012</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider"><span>Wave Mountain</span></h3><br />
<div style="text-align: left;">
<a href="https://imgur.com/a/qzP6D" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://i.imgur.com/OV0nZY8.png" width="200" /></a>This generator of wallpapers was a fun art project. I have a <a href="https://imgur.com/a/qzP6D">gallery</a> of many of the wallpapers that were generated. Twice a day, in my <a href="https://discord.gg/B79EEFh">Discord</a>, my bot post new random art waves.</div><br /><br />
<div><a href="http://leviwatts.com/files/2016.08.28.WaveMountainApp.zip" target="_blank">Windows EXE</a>
<div> Aug 2016</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
</div>
<h3 class="divider">
<span>DBAO - Database Access Object</span>
</h3><br />
<div style="text-align: left;">
This tool creates code based on a template for a given database table. I estimate that each time we used this at Pyramedium, we saved two days of work.</div><br />
<div> C#, Forms, XML</div>
<div> June 2010</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider"><span>Discord Bot: AkiBot</span></h3><br />
<div style="text-align: left;">
This bot is an interface to many of my hobby projects.
<ul>
<li>The bot can announce an upcoming Challonge tournament, as well as signups for that tournament.
<img border="0" src="http://www.leviwatts.com/images/blog_Akibot_Challonge.png" /></li>
<li>One of the features I miss from other VoIP apps is a chat log history of who joined and left a channel. The membership plugin implements this feature.
<img border="0" src="http://www.leviwatts.com/images/blog_Akibot_MembershipVoice2.png" /></li>
<li>Though a audit log exist within Discord, having a channel message is easier to see. The membership plugin also shows users joining/leaving a server, changing their name, and announce changes in members' roles.
<img border="0" src="http://www.leviwatts.com/images/blog_Akibot_MembershipServerJoin.png" /></li>
<li>Using `>role get` and `>role drop`, users can self alter their roles in a server, gaining/losing the role with the same name as the channel.
<img border="0" src="http://www.leviwatts.com/images/blog_Akibot_roleget.png" /></li>
<li>`>art wave new` generates a random Wave Mountain from the project mentioned previously in this list.
</li>
<li>The current players online for a Minecraft server can be echoed into a Discord server.
<img border="0" src="http://www.leviwatts.com/images/blog_Akibot_Minecraft.png" /></li>
<li>The game Guess, also known to some as Master Mind, can be played with the bot.
<img border="0" src="http://www.leviwatts.com/images/blog_Akibot_Guess.png" /></li>
<li>As can minesweeper, using spoiler tags in Discord, and the honor system.
<img border="0" src="http://www.leviwatts.com/images/blog_Akibot_minesweeper.png" /></li>
</ul>
</div><br />
<div><a href="https://discord.gg/gBSgY7U" target="_blank">Home Discord Server</a></div>
<div><a href="https://discordapp.com/oauth2/authorize?&client_id=396105889498791946&scope=bot&permissions=268823616" target="_blank">Bot Invite Link</a></div>
<div>Dec 2017</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider">
<span>A Particle Helper for Game Maker</span>
</h3><br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifFr52uqKD1AJhT5uDDlDFXCQ5CibZJQiuINIxCiGp5BjsO1dPzRUvzrATmamNxqWqcJOtRtKDIv005njpSxYz52OWaL-ZqT06pJX81iPtpZIsZxQV1SutKj2pcvkDADjZs-oJ2klYhag/s1600/2016.09.08.AParticleHelperForGameMaker.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifFr52uqKD1AJhT5uDDlDFXCQ5CibZJQiuINIxCiGp5BjsO1dPzRUvzrATmamNxqWqcJOtRtKDIv005njpSxYz52OWaL-ZqT06pJX81iPtpZIsZxQV1SutKj2pcvkDADjZs-oJ2klYhag/s320/2016.09.08.AParticleHelperForGameMaker.jpg" width="200" /></a>I have yet to see a particle system that didn't need to be played with. I wanted an easy way to alter the settings of a particle, allowing for exploration of possibilities. All of the particles used in my Match 3 prototype came from this tool.</div>
<div style="text-align: left;">
<a href="https://bitbucket.org/wattslevi/aparticlehelperforgamemaker/downloads" target="_blank">Windows EXE</a></div>
<div style="text-align: left;">
<a href="https://bitbucket.org/wattslevi/aparticlehelperforgamemaker/src" target="_blank">Source, Game Maker</a></div>
<a href="https://www.twitch.tv/videos/74573005?t=01h08m55s">Video talking about and showing off this project.</a><br />
<div> Oct 2015</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider">
<span>AkiMatch3</span>
</h3><br />
<div style="text-align: left;">
<a href="http://www.leviwatts.com/files/match/AkiMatch3.2015.11.13.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://www.leviwatts.com/files/match/AkiMatch3.2015.11.13.png" width="200" /></a>A Match 3 prototype in GameMaker. I last worked on this in November 2015. I wanted the game to be modable, and found GameMaker's lack of nested objects a hindrance.
</div>
<div style="text-align: left;"><br /></div>
<div style="text-align: left;">
I put effort into making multi-move interactions work well, which is useless if the game was a turn based "only get 2 turns in a row if you match 4+" style. </div>
<div style="text-align: left;">
<a href="http://www.leviwatts.com/files/match/AkiMatch3.2015.11.13.exe" target="_blank">Windows Standalone</a></div>
<div style="text-align: left;">
<a href="http://www.leviwatts.com/files/match/AkiMatch3.2015.11.13.Android.apk" target="_blank">Android APK</a> </div>
<a href="https://www.twitch.tv/videos/74573005?t=01h15m20s">Video talking about and showing off this project.</a><br />
<div> GameMaker Studio</div>
<div>
</div>
<div> Sept 2015</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider"><span>Name That Abbreviation</span></h3><br />
<div style="text-align: left;">
<a href="https://twitter.com/AkiBot_" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0"src="https://pbs.twimg.com/profile_images/572756024033964032/AIRa1G7U_400x400.png" width="200" /></a>I enjoy taking a few letters and figuring out what it could be an abbreviation for. Being from Colorado,
our license plates give ample access to 3 letter combinations to play this game with. To play this game with more players, I post daily a NTA on <a href="https://twitter.com/AkiBot_">twitter</a>. It considers the frequency that letters appear as the first letter of English words (about 50k words in the statistics dictionary) for frequency that a letter is chosen. I don't think Z has come up in the nearly 3 years it has been running.</div><br /><br />
<div> March 2015</div>
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider">
<span>Shortcut Manipulation tool</span>
</h3><br />
<div style="text-align: left;">
Many games alter the resolution of a monitor as they launch. Each time this happened, all my neatly organized icons on my desktop would be shoved to one side. This was quite annoying to fix each time, so I figured out how to move shortcuts on a desktop, filtered them by file type and specific names to allow single button press organization of my icons. Alas, it no longer worked once I finally left Windows XP.</div><br />
<div> C#, Forms, XML</div>
<div> March 2011</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider">
<span>Blank EVE Character Generator</span>
</h3><br />
<div style="text-align: left;">
EVE Online is a MMO in space. Where most MMOs separate large groups of players into separate servers, EVE has a single server for all players. There is a tool for EVE Online that helps players track their training within the game called <a href="https://evemondevteam.github.io/evemon/">EVEMon</a>, short for EVE Monitor. At the time I wrote a blank template generator for EVEMon, it provided a means of importing data as a new character to edit. I utilized publicly available data to know what a base character would based on multiple options, and gave an XML output for users to import into EVEMon.<br /><br />
Around five years after I wrote this generator, EVE greatly changed how new characters work in order to improve new player experience.</div><br />
<div> PHP, MySQL</div>
<div> Nov '08</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider">
<span>Student Success System</span>
</h3><br />
<div style="text-align: left;">
For my Senior Project at DeVry, I got the opportunity to develop a Student Retention Management system for use by DeVry Westminster. I wrote a <a href="http://studentsuccesssystemdevelopment.blogspot.com/">blog</a> during the development of SSS. It was my first full stack experience, building a site from the ground up.</div><br />
<div> VB.NET, SQL Server</div>
<div> Feb 2008</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider">
<span>FFX-2 Sphere Break</span>
</h3><br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicVJUktudJ-oIrfGP-pKDXB-palC5mYfyF01MLH9gxbFLlFWDDzqlJcbBGw0k_3VNKxeMfrFRakC9FqY2zPSHVGuWRWwSo_QXJ48YRibDZ3yRY9M3ErGX2wK6cInhH6TdipvEExLQKoBU/s1600/2016.12.30.SphereBreak.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="144" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicVJUktudJ-oIrfGP-pKDXB-palC5mYfyF01MLH9gxbFLlFWDDzqlJcbBGw0k_3VNKxeMfrFRakC9FqY2zPSHVGuWRWwSo_QXJ48YRibDZ3yRY9M3ErGX2wK6cInhH6TdipvEExLQKoBU/s320/2016.12.30.SphereBreak.png" width="200" /></a>Sphere Break is a math mini game within Final Fantasy X-2. While creating this project, I learned about dynamic control creation. I don't provide a public download for this, as I don't feel I should.</div><br />
<div> C#, Forms</div>
<div> Download: Ask</div>
<div> Aug 2006</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider">
<span>Text based UNO</span>
</h3><br />
<div style="text-align: left;">
During CIS115, I needed something to work on while finished with the provided assignments, and UNO was it. It was enjoyable to figure out card shuffling, game management, and a simple weak AI.</div><br />
<div> C#</div>
<div> May 2006</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider"><span>Red Faction - Level Design</span></h3><br />
<div style="text-align: left;">
<a href="http://www.leviwatts.com/images/VWCTF001(2).jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://www.leviwatts.com/images/VWCTF001(2)Thumb.jpg" height="144" width="200" /></a>Red Faction gave a great tool to create levels in. I previously wrote an <a href="http://blog.leviwatts.com/2006/02/red-faction.html">article</a> about my time using their tool.</div><br />
<div> RED Level Editor</div>
<div> June 2003</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<h3 class="divider"><span>Links to Other Projects</span></h3><br />
<div class="separator" style="clear: both; text-align: center;"></div>
<div style="text-align: left;">
<a href="http://imgur.com/a/EVbD5" target="_blank">Altitude Level generator</a> - Layered image manipulation to create levels for a 2d game.<br />
<a href="https://altitudegame.com/forums/showthread.php?t=7393" target="_blank">Altitude chat parser</a> - Tool to view chat log files.<br />
<br /><br /><br />
Todo: Continue adding projects that have been made.<br /><br />
Projects to be added:<br />
NUnit: TimeSandbox - A tool for testing variations of code for speed of execution by running each sample for a given number of seconds or cycles.<br />
Fallout Caravan - Recreation of the Fallout: New Vegas mini-game as both a website correspondence game, and a text bot game.<br />
Altitude Ladder site - Altitude Community contribution for displaying results of competitive gameplay.<br />
IRCBot, TwitchBot<br /><br /></div>
<div style="display: none;">Hi. This is a copy paste of the template used above that was suppose to be hidden from you.
<br />
<h3 class="divider"><span>TITLE</span></h3><br />
<div style="text-align: left;">
<a href="https://www.blogger.com/IMAGEMain" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="144" src="IMAGEThumb" width="200" /></a>BODY TEXT</div><br />
<div>Files</div><br />
<div>Date Year</div><br />
<div class="separator" style="clear: both; text-align: center;"></div>
</div>
Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-77935715556355213232016-08-01T22:24:00.005-06:002022-02-11T19:42:41.694-07:00Games That Give Me Motion SicknessAbout four years ago I first noticed that scrolling screens that were not controlled by the player caused me motion sickness. This seems to be worsened by a need to read text on or near the scrolling image.<br />
<br />
<h3>
<a href="https://store.steampowered.com/app/105600/Terraria/">Terraria</a></h3>
The <a href="https://youtu.be/JxdTBMdyP4A" target="_blank">title screen</a> of Terraria is a scrolling screen that is moving leftward. This moving background is the same that is within the game, but because the background only moves based on the character's actions, I've only been bothered by the title screen. Generally I can navigate the menu quickly enough to avoid much sickness.<br />
<br />
<h3>
<a href="https://store.steampowered.com/app/271820/Card_City_Nights/">Card City Nights</a></h3>
In <a href="https://youtu.be/uX6qsbOca_Y?t=1m49s" target="_blank">deck editing screens</a>, deck selection, and victory screens, the background scrolls diagonally. When I originally played this game, I wrote an email to the developer Friday night, and continued playing. The game was interesting enough to grin and bear it thought the sickness. Within a business day of receiving my email, the developer added a setting to their settings file that disables background movement.<br />
In: C:\Users\[USERNAME]\AppData\LocalLow\Ludosity\CardCityNights\Profile.txt <br />
DeactivateBackgroundScrolling|100<br />
<br />
<h3>
<a href="https://store.steampowered.com/app/485000/Cthulhu_Realms/">Cthulhu Realms</a></h3>
In July 2016, the title screen had a scrolling background. In September 2016 they upgraded the look of the title screen to be in a significantly decorated room. Alas, this room is navigated by a floating camera that moves from place to place in the room as a loop.<br />
<br />
<h3>
<a href="https://store.steampowered.com/app/213850/Magic_2014__Duels_of_the_Planeswalkers/">Magic 2014</a></h3>
I'm not certain which year of Magic, but at least one screen had a rotation around an object view which I think was a victory screen.<br />
<br />
<h3>
<a href="https://store.steampowered.com/app/6370/Bloodline_Champions/">Bloodline Champions</a></h3>
The victory screen rotates around the playfield. (last tested in 2012 iirc)<br />
<br />
<h3>
<a href="https://play.google.com/store/apps/details?id=com.disney.maleficent_goo&hl=en_US">Free Fall - Maleficent</a></h3>
In the Moors questline, level 200 (start of chapter 11) introduces a water character with flowing water around them. This is presented as a scrolling background. <br />
<br />
<h3>
<a href="https://store.steampowered.com/app/527100/Star_Trek_Bridge_Crew/">Star Trek: Bridge Crew</a></h3>
The <a href="https://www.youtube.com/watch?v=lwxR6QABuIk">main menu</a> is inside of a pod orbiting a ship. While looking at the menu options, stars are moving in the background. <br />
<br />
<h3>
Room Motion via VR</h3>
Room Motion is when a Virtual Reality (VR) room moves differently than the Real Life (RL) room does. This can be seen in elevators, games with vehicle movement (at least when the player is inside the vehicle, but not if the player is 3rd person controlling the vehicle), or forced movement. I have since gained much stronger VR legs, and have a Steam Curator <a href="https://store.steampowered.com/curator/29181143-VR-Motion/">VR Motion</a>, with the goal of helping people understand the kinds of Room Motion a game has.<br />
<br />
<h3>
<a href="https://store.steampowered.com/app/328080/Rise_to_Ruins/">Rise to Ruins</a></h3>
<a href="https://youtu.be/olAQ__fpRIw?t=12m8s">The title screen is in motion</a>. Much like Terraria. There is a hidden setting in /profiles/settings.properties called mainMenuDrift that can be set to false to disable it<br />
<br />
<h3>
<a href="https://store.steampowered.com/app/308420/Ziggurat/">Ziggurat</a> by Milkstone</h3>
<a href="https://youtu.be/mPTNsAi3S9g?t=750">The post boss victory screen</a> has a background in motion over text. I believe if this part of a room navigated by the player, it wouldn't give me motion sickness, but because it has text on it it does. Similar to Bloodline Champions.<br />
<br />
<h3>
<a href="https://play.google.com/store/apps/details?id=com.supercell.clashroyale&hl=en_US">Clash Royale</a></h3>
In March 2020, they released a new theme arena based on a cake being delivered somewhere. The top of the screen has constant movement as the cake moves upward. Within a few days, they disabled the scrolling background after feedback requested it.<br />
<br />
<h3>
<a href="https://store.steampowered.com/app/1102190/Monster_Train/">Monster Train</a></h3>
This deckbuilder has gameplay that takes place on a train with a side view showing a traveling background. <a href="https://twitter.com/HeyAndrewK/status/1269852354209169408">Andrew Krausnick</a> notes that there is an option to disable the scrolling parallax.<br />
<br />
<h3>
<a href="https://store.steampowered.com/app/228300/Remember_Me/">Remember Me</a></h3>
The <a href="https://www.youtube.com/watch?v=vpAXunnQzr0&t=65s&ab_channel=Aki">main menu</a> has text that bounces around in a glitched style. Lots of small movements to things that shouldn't be moving.<br />
<br />
<h3>
<a href="https://store.steampowered.com/app/1599340/Lost_Ark/">Lost Ark</a></h3>
The <a href="https://youtu.be/O8Vtw7vBX7k">server selctor</a> is at sea, with the camera, ship and characters all bobbing up and down in front of a transparent menu.<br />
<br />
<br />
<br />
Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0tag:blogger.com,1999:blog-6635871796411375052.post-18122888223641873472016-04-22T10:24:00.000-06:002016-04-22T05:32:34.131-06:00ClassIt was the third day of class. The teacher had taught the class how to use if else statements, while and for loops, multiple methods, and today added switch statements and classes. One of the students completed their assignment in a fraction of the time allotted for the day.<br />
<br />
"So far, I've given you a box of crayons with just a few colors inside of it and asked you to color in the lines as best as you can. You have completed that assignment, and perhaps you are done for the day. Or, you can use those crayons to draw your own picture, or perhaps find more colors to make more elaborate art."Levi Wattshttp://www.blogger.com/profile/16009190558044977151noreply@blogger.com0