Inspiration
We wanted to create an experience where the user can relive certain events or correct their regrets from certain traumatic events. Thus we decided to create a certain simulation-type game that let’s players choose the setting and atmosphere and put them right into the situation. Moreover, this game is quite versatile as it can create high-stakes pressure situations where a player has to think quickly, later the user can check their time for selection to determine how composed they were under pressure. Additionally, the reason we created this game is that one of our teammates suffered from bullying in school, and we want to use this game to share the story, to tell more people about what's going on and how to stand up to bullies. Although this story was not incorporated into the game at the end for many reasons, it is where our idea originally stemmed from.
What it does
It’s a text-based role-playing game where the user makes decisions that influence the narrative of the game significantly with gorgeous images describing the scenario along with the text. At the end, the user can check the time it took for each decision they made. Plus you can change the scenario and theme of the story, thus making the possibilities endless! With the only limit being your imagination!
How we built it
We built this application using the API from OpenAI, specifically utilizing ChatGPT and DALL·E. First, we provided a prompt, then we did some prompt engineering to test for the best prompt. We then use GPT to generate a description, create the prompt for DALL·E, and make a choice list based on the story we had developed. Additionally, we constructed our front end using Ionic React, resulting in a simple yet good-looking interface. The backend was developed in Python with Flask. We selected Flask over other frameworks because of its lightweight nature, which is ideal as we only need to connect user input to the OpenAI API.
Challenges we ran into
While building these apps, we encountered several challenges. First, the OpenAI API is sometimes really slow, which makes it very hard for us to debug. Secondly, we ran out of credits during testing. This meant we needed to make a deposit to our OpenAI account to continue developing our program. Thirdly, initially, we had to create a clinic-site-only program, for which we planned to use PyScript. However, we later realized OpenAI is not a library that's pure Python, so we couldn't use that. Then we decided to switch to something else, but also realized that some Python versions are not compatible. This took us a lot of time to figure out the design. Also, PyScript was new to both of us, so it took us a while to get accustomed to it.
Accomplishments that we're proud of
We are really proud that we can finish this film, and we have a really good looking new idea. We are also really proud that we can summarize the whole story that we personally experienced in, and modify it for a great film.
What we learned
Even though we didn't use PyScript in the end, we still learned how to use it. We also learned a new Python backend framework, got more familiar with the OpenAI API, and improved our skills in Ionic React programming. Besides technical skills, we got better at summarizing stories, doing prompt engineering, etc.
What's next for Neon Narratives
We plan to expand on the features by incorporating quick time events where the user will have to input in very little time, introduce more specific modes like Dungeons and Dragons themed, and incorporate audio as well (both input and output). We also plan to analyze the user data after we have a lot of users. We can analyze their choices, their decision-making time, etc. We can build a model for these users, to perform classification, or to make some predictions about the user. Or to just do some clustering about the user. I think those would be really interesting but really data-heavy, so we need a lot of data to do that. Thus, we will need to do that in the next step.
Firstly, if we want to make this a real application, we might want to create an account system. In the account system, we can check users' progress and save their progress. Secondly, for price and speed concerns, we might use GPT-3.5 instead of GPT-4. However, to achieve the same result with GPT-3.5, we need to fine-tune the model. Thirdly, for speed concerns, we might pre-render the next images and pre-generate the next scene for all the choices. This way, no matter which choice the user makes, the next scene will be almost ready.


Log in or sign up for Devpost to join the conversation.