GSoC: Final Project Wrapup

Posted on August 7th, 2018

Final Project Report: Google Summer of Code Project page: https://summerofcode.withgoogle.com/dashboard/project/5117145273335808/details/ Project board: https://github.com/orgs/Terasology/projects/11 Blog posts: http://dacharya64.postach.io/tag/google-summer-of-code Github Repositories: Light And Shadow: https://github.com/Terasology/LightAndShadow -- The main module for the GSoC project Light And Shadow Resources: https://github.com/Terasology/LightAndShadowResources -- Art resources for...

GSoC Week 11: Nearing the End

Posted on August 2nd, 2018

It's hard to believe that Google Summer of Code is almost over! This week I focused mainly on getting the particle effects for when the player is holding the flag working across multiplayer, so that the host and any joined clients were in sync. One of the problems with the code is that the adding and removing of the particle effects happened in a lot of different places--when the player was attacked, when the player pressed `E` to pick up a flag, etc. I got rid of this redundancy by just hav...

GSoC Week 10: Multiplayer and Character Skinning

Posted on July 19th, 2018

It's in the last couple of weeks for Google Summer of Code! This week I worked on improvements for adding and removing particles, and character skinning for players. For the particle system, I now handle cases where the player drops the flag through placing it into the world, by checking for it in the onInventorySlotChanged event: // Checks if player puts down flagitem = event.getOldItem();if (itemIsFlag(item)) { removeParticleEmitterFromPlayer(player); player.removeComponent(HasFl...

GSoC Week 9: Flag Particles and Synced Scoring

Posted on July 18th, 2018

It's 9 weeks into Google Summer of Code and things are progressing! This week I worked on some different additions to the Capture the Flag gameplay. First off, I fixed the problem I was having last week with held items not having the right components for checks--specifically, not being able to search for if a flag has a BlackFlagComponent, for instance, if I am trying to see if it is a black flag. I found out that adding@AddToBlockBasedItemto a given component would allow that component to b...

GSoC Week 8: Scoring Goals and Second Evals

Posted on July 12th, 2018

Another week has passed for Google Summer of Code, and more work has progressed! This week I've largely been working on changes to last week's code based on suggestions for refactoring, and adding in components to help with various checks and code clarity. I've gone through much of the code for the AttackSystem and ScoreSystem to make it more understandable, and to add some needed null hardening. One of the biggest stumbling blocks for this week, though, has been an issue of detecting comp...

GSoC Week 7: Completing the Gameplay Loop

Posted on July 4th, 2018

So far I've been working on getting the bare bones working for the main Capture the Flag gameplay. This week I worked on more improvements to this, to get the game into a more playable state. Firstly, I focused to improvements for having players drop and pick up the flag. Before, when a player tagged another, the other player would only drop the flag they had if it was being held. I instead search through the player's inventory to see if there is a flag in there, and if so, it is dropped. ...

GSoC Week 6: Making PvP Magic

Posted on June 28th, 2018

This week I've been focusing on some of the fundamental code for the Capture the Flag game mode--getting combat mechanics working between players. It's important for players to be able to interact with one another, and this code (and the mechanics they entail) will be important to how people play and enjoy the game. The main idea behind the PvP is that players can use a weapon to tag other players, causing them to drop their flag if it is being held. To begin, I created a new weapon for t...

GSoC Week 5: Keeping Score

Posted on June 21st, 2018

After trials and tribulations this week, I've gotten the score system working! I had started some of the base code for the score system last week, but didn't realize how much more time it would take to puzzle the whole thing out. I changes up the base rasterizer and prefabs so that each of the base blocks have a team faction attached to them. I also added a component to them that allows them to be activated, and so that when they are activated they trigger a check to see if the activator (pla...

GSoC Week 4: Merges, Scores, and First Evaluation!

Posted on June 14th, 2018

This week was the first evaluation for Google Summer of Code! The process so far has definitely been one of learning, but it's also had some hiccups and frustrations along the way. It's been nice to be able to look back and see all of what has been done so far, and what's ahead of me. This week I started working on the code for scoring, but it ended up being a bit more complicated than I initially thought. I set up a UI element for displaying the score, and have this text updated at the beg...

GSoC Week 3: Choosing Sides

Posted on June 7th, 2018

Week 3 of Google Summer of Code is done! This week I focused on continuing the faction code, making it so that players could choose their team (red or black) at the start of the game and, upon selection, get teleported to their team's base. I'd already started some of the faction code last week, though due to the fact that I had some odd issues with my workspace I wasn't able to get this fully completed and tested. Once I started trying to work out my new code, I realized things weren't goi...

GSoC Week 3: Choosing Sides

Posted on June 7th, 2018

Week 3 of Google Summer of Code is done! This week I focused on continuing the faction code, making it so that players could choose their team (red or black) at the start of the game and, upon selection, get teleported to their team's base. I'd already started some of the faction code last week, though due to the fact that I had some odd issues with my workspace I wasn't able to get this fully completed and tested. Once I started trying to work out my new code, I realized things weren't goi...

GSoC Week 2: Teaming Up

Posted on May 31st, 2018

It's week 2 of Google Summer of Code! This meant taking the next step in the project--working on implementing factions. The idea of factions is simple--the player will choose a team to be on, red or black, and depending on their current faction they will be able to interact with the world in different ways. For instance, a player cannot pick up their team's flag when the flag is at the base. To begin, I worked on tracking the player's own faction. Thankfully, some of the existing code in ...

GSoC Week 1: Blocks, flags, and a simple dirt world

Posted on May 23rd, 2018

Summer break has begun, and with it, Google Summer of Code! I'm fortunate to be working on Terasology creating a new capture the flag gamemode in the module Light and Shadow. For those learning to learn more about the project in general and check out the estimated timeline for the project, you can check out the proposal here: https://docs.google.com/document/d/1jCgZtg78jGBTu3KNzxFbrDIJ0beEWK-dzr-53P_JN5o/edit?usp=sharing This week has been dedicated to learning the feel of the code and maki...

Game Jams!

Posted on March 4th, 2018

Worked on two game jams recently and wanted to share what I worked on here! Global Game Jam (theme: Transmission): Worked on UI design / implementation for Patient Zero, where you get to be an infection spreading through the body! Made in Unity in 48 hours, with a team from Iowa State. Play here: https://globalgamejam.org/2018/games/patient-zero-10 Twine Games Jam (theme: retelling fairytale or legend): Completed Daedalus, a game made with Unity and Twine. It is a retelling of the st...

Let's Make A Super Simple Unity Game! Part 1: Movement

Posted on February 7th, 2018

Before you start, download Unity here: https://unity3d.com/get-unity/download Let's start with the basics -- Take a look at the Hierarchy, Scene Window, Inspector, and Assets pane. What do each of them do? Look at how to manipulate the Scene Window -- zoom in, out, pan. Look at how to make new objects by right-clicking in the Assets or Hierarchy pane (and what the difference is) Look at how to select objects and change their properties either using W, E, R or changing values in the Inspe...

PANTHEON: a game about being the best god

Posted on January 16th, 2018

Looking for a new board game to play? Look no further than PANTHEON, a competitive deck-building board game about being the best god you can be! Compete for followers, accrue faith, and take down your opponents in deific fashion. Pantheon is a game I helped to make with Morgan Mayback for Brandeis's Fantasy Worlds English class. For the final project (making a fantasy world), we worked on creating a tabletop game featuring a rich pantheon of gods all vying for control over the land. Morgan ...

Curated Corner: A Sortable List of Upcoming Events!

Posted on December 16th, 2017

So I have a lot of browser bookmarks. Theoretically this is to keep me organized, but I've found that it's particularly unhelpful for when I have a list of conferences and events. In this case I still have to go through each page to look at the dates / prices / locations for each event and then subsequently forget them all and go through the same process again. To help alleviate some of that, I created a web page to help me keep track of interesting events for this year: http://www.devi-a.c...

New Website Up!

Posted on November 12th, 2017

Every once in a while I get the urge to redo how I'm presenting myself and my work on the web. Since I'm working on a lot of different things at once it's important for me to keep things that need to be continually updated (like this website) easy to maintain and clear for people using them. So here it is, presenting the new portfolio! -- www.devi-a.com And for when that changes, some pics for good measure:

Introducing Skyfinder: A lightweight tabletop RPG system

Posted on August 30th, 2017

When looking at a D&D campaign I could run with friends, I found that pre-existing RPG systems are complicated. Of course I knew this to begin with, but going through the loads of text on lore, rules, mechanics, etc. I realized that what I really wanted was a system that simplified many of the rules, weighted things a bit differently, and was more accessible both for players and DMs, while still having substance. Because I played Pathfinder before, much is heavily sourced from Pathfinder's ...

Check out ViveSim, an experiment data simulator

Posted on August 1st, 2017

As part of my last week as a member of the research team at Iowa State University, I worked on a simulation for our VR navigation experiment data. Our experiment involves participants completing a triangle completion task in virtual reality -- walking two legs of a triangle and trying to indicate where they think they started (completing the last leg of the triangle). Using the data we gathered from the experiment I wanted to create a 3D visualization of each of those trials. The project ...

Some musings on storytelling and tech

Posted on July 28th, 2017

Because to be honest, I've started to look at the GRE prep stuff and I feel woefully underprepared. Which is okay, I still have time -- that's the whole point of looking at these things now -- but still. It's one more thing to worry about. What are the other things taking up time? Working on the Hacking Arts website, and I think my brain is still trying to sort out Perl problems I was struggling with this morning. Starting a new language just makes me appreciate how much easier the ones I've...

Devi Acharya

Thoughts and projects in the realm of games, tech, and interactive media. Check out more of my work at http://www.devi-a.com