Bethel’s Status Report for 4/29/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

Since pivoting from Puppeteer, I have been able to dynamically track the remaining three in-game actions of low health, getting hit by a small enemy and getting hit by a large enemy synchronously with the forceful jump action. Moreover, I had also managed to create the frontend for the motor intensity bar. 

This week I have successfully developed the backend of the motor intensity bar, which allows the user to dynamically send their motor intensity preferences to the motor and light code for the haptic suit via our Node JS server.  

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is on track given the fact that I have managed to finish building the backend for the motor intensity bar before the start of demo week. Furthermore, I am going to push to complete my team’s project poster, video and final paper within finals week.

 

What deliverables do you hope to complete in the next week?

This week I plan to help my team create our project video and poster prior to our TechSpark Demo, while attempting to establish a wireless connection with the Arduino WIFI Rev. 

Bethel’s Status Report for 4/22/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

These past two weeks have been particularly productive as I finished dynamically tracking the remaining three in-game actions of low health, getting hit by a small enemy and getting hit by a large enemy. This task took a longer time to accomplish than first forecast because of my determination to incorporate the Puppeteer library, which would operate as a Web Scraper within our code base.

However, we pivoted from using the Puppeteer library to track the remaining three in-game actions of low health, getting hit by a small enemy and getting hit by a large enemy, because this library does not allow us to customize the game as per our user and design requirements. An instance of this was our lack of ability to incorporate the motor intensity bar into the user interface, which was requested through our Ethics feedback session. 

Moreover, Puppeteer hindered us from synchronizing our jump event along with our low health, getting hit by a small enemy and getting hit by a large enemy event, because the former ended up listening to the game actions in a different browser than that of the latter.   

Another deliverable I have managed to accomplish is having the frontend for the motor intensity bar working. Now what remains is to have the motor intensity bar dynamically send its values to the motor and light code via our Node JS server.  

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is a little behind from what I had anticipated as I thought I would have the backend of the motor intensity bar finished by now. I am going to push to have it finished by this week.

 

What deliverables do you hope to complete in the next week?

This week I plan to help my team create our project video and poster prior to our TechSpark Demo, while building the backend for our motor intensity bar. Moreover, I plan to continue testing my software on the Arduino WIFI Rev after establishing a wireless connection.

 

Bethel’s Status Report for 4/8/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

My deliverable for this week involved me testing the Node JS server on the Arduino WIFI Rev while it is wireless. I am still in the process of accomplishing this with Amelia’s assistance as our Arduino code integration is proving to take a little longer than we had initially anticipated.

The type of wireless data transfer we have managed to achieve at this stage involves us using sockets to establish a connection with an external website that allows us to parse the incoming information to the Arduino. One caveat of this solution is that it requires us to use two separate Arduinos in order to confirm that the correct game data is being sent wirelessly to the WIFI Rev. So far we have managed to send the unique socket identifier to the WIFI Rev, however the desired game data is not being sent yet.    

I have also managed to pinpoint the variable of interest for tracking all of our remaining game events of interest, namely low health, small hit and large hit. I am displaying this variable on the HTML page of our game in order to read in its values as it is dynamically changing, however I understand that my process of retrieval is only reading this value once, when the game first loads.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is a little behind from what I had anticipated I would have done by this week, as integration is taking longer than expected. I still have to integrate my software components with the hardware components that my teammates have built in order to have a working prototype before Thursday of next week. I will also still be focusing on how to use Puppeteer to acquire data from all the remaining game actions for this upcoming week. 

 

What deliverables do you hope to complete in the next week?

This week I plan to dynamically track our variable of interest being displayed on the HTML page of our game in order to read in its values as it is dynamically changing, as my current process seems to only be retrieving this value once, throughout game play. Moreover, I plan to continue testing my software on the Arduino WIFI Rev after establishing a wireless connection.

Bethel’s Status Report for 4/1/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

This week I actually concentrated on helping Amelia attach the motors to their prototype mounting plate when it came to constructing our motor systems as well as aiding Sophia in wiring up our six demo subsystems to the Haptic suit. 

My planned deliverable for this week involved me testing the Node JS server on the Arduino WIFI Rev while it is wireless. I am still in the process of accomplishing this with Amelia’s assistance as our Arduino code integration is proving to take a little longer than we had initially anticipated.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is a little behind from what I had anticipated I would have done by this week, as integration is taking longer than expected. I still have to integrate my software components with the hardware components that my teammates have built in order to have a working prototype either by the time we have our interim demo or sometime after. I will also still be focusing on how to use Puppeteer to acquire data from all the remaining game actions for this upcoming week. 

 

What deliverables do you hope to complete in the next week?

This week I plan to incorporate a web scraper library known as Puppeteer in my existing software to aid in tracking the game actions of the remaining three events, namely small hit, large hit and low health. Puppeteer will help me analyze different enemy actions in order to accurately transfer data relevant to the game action taking place. For instance, we would not want a low health event to be flagged every time the life bar decreases, instead we would like this event to be activated when the bar decreases to 25% of its original length. 

Moreover, I plan to continue testing my software on the Arduino WIFI Rev after establishing a wireless connection.

 

Bethel’s Status Report for 3/25/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

My team and I attended Wednesday’s Ethics Lecture and meticulously made notes on the ethical considerations brought up by our peers within our Pods discussion. We do plan to incorporate the feedback we received to our existing design as expressed within our Team Status Report. 

This week has been particularly productive, in that I was able to complete both of my planned deliverables while also using the STEAM platform to configure the wireless controller to game play settings with the generous help of both of my teammates as shown in the video clip titled “Controller_to_Game_Integration.MOV” within our Google Drive. One of my two deliverables for this week involved me having to integrate the Node JS server with the forceful jump event’s game data. This helps confirm whether the Node JS server can relay our game data successfully to our simple motor circuit. This was successfully achieved as result of the effective testing of the Node JS server I conducted last week which allowed me to easily pinpoint the bugs within my integrated code and fix them.   

My second deliverable for this week consisted of testing the Node JS server on the Arduino WIFI Rev while it is still connected to my PC, before proceeding on to establishing a wireless connection. This was efficaciously achieved on Friday, 24th March with the assistance of my teammate Amelia. 

I also changed the game action keys on the frontend of the game to match that of our controller configurations as an added customization to The Last Spartan. We utilized the mappings expressed within our design report whereby the W-A-S-D keys correspond to the left-most joystick; the “k” key corresponds to the left trigger/ left bumper; “j” key right trigger/ right bumper; “p” key corresponds to the “Options” buttons; “SPACE” key corresponds to button “A” and the “ENTER” key corresponds to button “B”.

I eventually played the game wirelessly to test all the integrated components together while also measuring latency of our system by taking a video of the motor activations that occur in response to forceful jump events. According to the video I believe that my software system has minimal latency as shown in the video clip titled “Game_Data_to_Server_Integration.MOV” within our Google Drive. 

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is somewhat back on track since I have managed to successfully integrate the Node JS server and the JavaScript listeners that track the forceful jump game action. I still have to integrate my software components with the hardware components that my teammates have built in order to have a working prototype by the time we have our interim demo. I will still be focusing on how to use Puppeteer to acquire data from all the remaining game actions for this upcoming week. 

 

What deliverables do you hope to complete in the next week?

This week I plan to incorporate a web scraper library known as Puppeteer in my existing software to aid in tracking the game actions of the remaining three events, namely small hit, large hit and low health. Puppeteer will help me analyze different enemy actions in order to accurately transfer data relevant to the game action taking place. For instance, we would not want a low health event to be flagged every time the life bar decreases, instead we would like this event to be activated when the bar decreases to 25% of its original length. 

Moreover, I plan to test my software on the Arduino WIFI Rev after establishing a wireless connection.

 

Bethel’s Status Report for 3/18/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

My team and I brainstormed and compiled a variety of ethical considerations concerning our project in preparation for the ethics lecture and group discussion. 

This week I was able to track the forceful jump game event successfully using JavaScript event listeners. I have decided to incorporate a web scraper library known as Puppeteer to aid in tracking the game actions of the remaining three events, namely small hit, large hit and low health. Puppeteer will help me analyze different enemy actions in order to accurately transfer data relevant to the game action taking place. For instance, we would not want a low health event to be flagged every time the life bar decreases, instead we would like this event to be activated when the bar decreases to 25% of its original length. 

Figure 1. Shows how Puppeteer interacts with the live data inputs coming from the browser which it passes on to our Node JS server.

 

After building the Node JS server last week, I tested my code using a two button webpage, whereby the “Turn Motor On” button represents the activation of a game action and the “Turn Motor Off” button deactivates the motor as shown in Figures 2 & 3. This helps test the proper functionality of the Node JS server while it is in the early development stage. Furthermore, I have designed a single motor circuit using an Arduino Uno as shown in Figure 1. to simplistically mimic the behavior of our system of motors.

Figure 2. Shows the simple two button webpage I used to test the functionality of my Node JS server.

Figure 3. Shows the simple Arduino code I used to test the functionality of my Node JS server.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is somewhat back on track since I have managed to build the Node JS server based on dummy data and successfully track one game action. I still have to integrate the two components together and test them in unison before I proceed. I will also be focusing on how to use Puppeteer to acquire data from all the remaining game actions as well. 

 

What deliverables do you hope to complete in the next week?

This week I plan to integrate the two components to see whether the Node JS server can relay our game data successfully to our simple motor circuit. Moreover, I plan to test my software on the Arduino WIFI Rev while it is still connected to a PC, before moving on to establishing a wireless connection.

 

Bethel’s Status Report for 3/11/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

Considering the little progress I made in transferring the AI aspect of the game code from Javascript, HTML and CSS to Node JS, and having communicated these issues with Professor Gary Fedder and Omkar, I have decided to completely abandon the game code translation process. Instead I will be going back to the original strategy of using JavaScript event listeners to track different game actions. 

 

I have also managed to build the Node JS server that will be relaying the game data to our Arduino IDE. The Node JS server is currently being triggered using a single button that represents a game action. This helps test the proper functionality of the Node JS server while it is in the early development stage. Furthermore, I have designed a single motor circuit using an Arduino Uno as shown in Figure 1. to simplistically mimic the behavior of our system of motors.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is somewhat back on track since I have chosen to proceed with creating the Node JS server prior to the plan within our schedule. I will therefore, use the time I planned to dedicate to building the Node JS server to instead go back to the original strategy of implementing JavaScript event listeners that track the game actions of different sized enemies.

 

What deliverables do you hope to complete in the next week?

My deliverables for this week will involve me having to test whether my Node JS server can successfully transfer the game data involved with one game event (for example a small hit) to our Arduino IDE given the basic motor circuit shown in Figure 1 below. 

Moreover, I will not be translating all of the game code from HTML, CSS and Javascript to Node JS. As per the advice I received from Professor Gary Fedder and Omkar, I will be going back to my team’s original plan of implementing event listeners to track different game actions.

 

Figure 1. Shows the simple single motor circuit I will be using to test the functionality of my Node JS server.

 

Bethel’s Status Report for 2/25/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours). 

Progress from Last Week

A highlight from this week was my teammate Sophia’s successful presentation of our design slides on Monday. On the other hand, I had planned to finish transferring the game code from Javascript, HTML and CSS to Node JS as well as start tracking the coordinates and game actions of the different enemies within the game this week; however, this has proven to be more challenging than I had initially anticipated.  

I am primarily having difficulty translating the AI code from Javascript to Node JS. The AI serves the purpose of generating different Athenians to flock to the player within the game, creating new terrain as the player moves in different directions, among many other functions.

Considering this setback, I will be debugging the errors I am encountering before moving on to listening for the game events of different sized enemies within The Last Spartan.  

 

Figure 1. Shows the AI portion of the game code which is responsible for causing different Athenians to flock to the player within the game.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule? 

Having encountered translation issues with the AI portion of the game code, I will need to invest some time this week to debugging my current code. This further risks delaying two main tasks namely, building the Node JS server and tracking the coordinates and game actions of the different enemies within the game. Since, listening for the game actions of different enemies is completely contingent upon the successful translation of the game code I will inevitably have to delay this task. On the other hand, I can start building the Node JS server while simultaneously debugging my translated code in order to mitigate severe delays from occurring in our schedule.

 

What deliverables do you hope to complete in the next week?

My deliverables are the same as those of last week with a few additions considering the issues I need to debug. Thus, I plan to finish transferring the game code from Javascript, HTML and CSS to Node JS as well as start tracking the coordinates and game actions of the different enemies within the game.  I also plan to build the Node JS server simultaneously with my other tasks. 

Bethel’s Status Report 2/18/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours). 

Progress from Last Week

My teammates and I successfully finished ordering all of the essential parts for our project and have created our design presentation slides.    

The more pressing tasks I had to complete over this past week included deciding between which idea to implement for tracking our game data and beginning to implement that method. Upon consulting with my team and Omkar we decided on implementing the method where we will be listening for each game event and casing on the actions that we wish to track (i.e. attack, forceful jump, getting hit and low health). 

Some game actions have been harder to track than others. For instance, it is hard to track low health as it would require listening in on all of the enemies’ game data, whereas it is much easier to listen for the user’s game attack actions. 

After gaining a better understanding of how we expect the game code to interface with the Node JS server, I realized that we should transfer all of the game code from Javascript to Node JS. I have accordingly revised Figure 1. below to accurately portray this relationship.  

Figure 1. Shows how the game software will use socket.io to relay information to the Node JS server. The server will then use the serial port package to send this information to our Arduino.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule? 

Having discovered that I might have to translate all the game code from HTML, CSS and JavaScript to Node JS, I will be dedicating the beginning of this week to accomplishing this. After successfully achieving this, I will move on to listening to the game events of different sized enemies within The Last Spartan. My schedule for this week is thankfully flexible enough to accommodate these unforeseen changes.    

 

What deliverables do you hope to complete in the next week?

I plan to finish transferring the game code from Javascript, HTML and CSS to Node JS as well as start tracking the coordinates and game actions of the different enemies within the game.  

 

Please list the particular ECE courses (if any) that covered the engineering science and mathematics principles your team used to develop your design? If there are no courses please tells us how you learned those principles over the last week?

I primarily utilized principles from 18213 Introduction to Computer Systems in understanding the design of our Node JS server. I particularly referred to the knowledge I gained from implementing Proxy Lab, which utilized sockets. I similarly plan to use sockets in sending data from our desktop game to the Arduino. By understanding how to implement these sockets and use the http library I have been able to create event listeners that are compatible with the Node JS server.

 

Bethel’s Status Report for 2/11/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours). 

I spent the majority of this week researching different ways of tracking the actions of players, reading cognitive psychology papers on what types of motors improve the immersiveness of games and inspecting different motors and vests to add to our parts list.

Prior to presenting my team’s proposal, I asked my cognitive psychology professor to recommend some papers to me that evaluate the effectiveness of haptic suits in providing realistic physical feedback. I was interested in understanding the types of motors that these suits utilized and determined that vibrating motors will be the most appropriate type motor to use as opposed to thermal pads that heat up different body parts of the user and or the combination of both vibrating motors and thermal pads. 

The readings helped inform me on the types of vibrating motors we should include within our parts list. These motors were scrutinized on the basis of their rotations per minute (RPM), size and price. Moreover, I also researched different (non-haptic) vests that will fulfill our users’ comfortability, sizeability and safety needs. My teammates and I reached a consensus on purchasing a “bulletproof” style vest that fits all of our criteria, while also being aesthetically pleasing (as shown in Figure 2). 

I also cloned “The Last Spartan” repository and evaluated different ways of approaching how the player’s game data should be tracked. I narrowed down the approaches to accomplishing this as the following:  

  • Console logging the output of certain gamer actions such as attack, forceful jump, getting hit and low health
  • Listening for each game event and casing on the actions that we wish to track (i.e. attack, forceful jump, getting hit and low health)

The decision on which method is better will be primarily contingent upon how we intend our Node JS server to interface with the game software (Figure 1 shows this simple relationship).

 

Figure 1. Shows how the game software will use socket.io to relay information to the Node JS server. The server will then use the serial port package to send this information to our Arduino.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule? 

We had planned to put our orders in for parts this week, however this plan has been delayed by a few days. These delays will affect my collaborators more than it will affect my contributions to our project, because my role within the team primarily focuses on our software solutions. 

 

What deliverables do you hope to complete in the next week?

I plan to finish ordering our parts and help my team make the design presentation slides. The more pressing tasks I have to complete this upcoming week include deciding between which idea to implement for tracking our game data and then beginning to implement that method.

Figure 2. Shows the vest we plan to purchase