Group Project Game 2D Puzzle

Talisman of Ethshar

Timeframe: 5 Weeks
Role: Gameplay Programmer, Level Designer, and UI Designer
Tools: Unity, Visual Studio
Skills: C#

A connect-the-dots style puzzle game crafted in Unity and inspired by the Ethshar universe. Talisman of Ethshar consists of 15 levels of increasingly difficult puzzles where you are tasked with recreating the "talisman" image in the bottom right by connecting the dots one-by-one. You can start your line at any dot and can connect to any dot from there but you cannot go back across a line you've already drawn. As you progress through the game, new mechanics are introduced that keep the puzzles fresh, fun, and challenging. This was a group project and my responsibilities were designing most of the puzzles, creating the look and feel of the game, and programming the functionality for connecting dots and checking if the puzzle has been correctly solved.

Each level consists of a list of nodes, each dot in the level corresponding to a node, and each node has a list of current connections to other nodes and a list of the correct connections to other nodes. By clicking or dragging on multiple dots in the game, both nodes in the code would add the other to their respective current connections lists. Nodes can only added as connections if they are not already in the current connections list. If every node in the level has a current connection list that contains the same nodes, regardless of order, as the correct connection list, then the level has been completed. Starting at level 11, a new mechanic is introduced where any line made from a red dot will "break" any other lines it intersects with when a connection is made. Our team had planned to introduce another mechanic and 5 additional levels at the end of the game, but we were not able to finish this completely by the deadline and had to cut it.

The puzzles for the early levels were fairly easy to design since the base of this game can be boiled down to drawing Euler paths. For starting levels, easier levels would be Euler paths where all nodes have an even number of connections so that there are a multitude of ways to draw a correct path. Difficulty could be added, by giving some nodes in the graph odd numbers of connections, so the correct path could only be drawn starting and ending at these nodes. Complexity could also be added to the graphs themselves to make drawing the full path more challenging. Designing the levels which included the break mechanic (red dots) was much harder as the graphs no longer followed the same logic. Each of these levels was designed with an intended path but there are many different ways to solve these levels, some harder and some easier.

    Challenges:
  • Drawing the lines so that every connection is straight and has the same width
  • Allowing the player to connect multiple dots at once when they connect 2 dots but there are other dots between those 2.
  • Correctly checking if the level has been completed.
  • Tracking the player's progress through the game and displaying that in the level select screen.

    What I did well:
  • Used multiple of Unity's Line Renderers to draw the connections, instead of just 1, so that the connections' geometry don't depend on any of the others.
  • Connections can be drawn by clicking on 2 dots, dragging the mouse from 1 dot to another, and clicking on another dot when the line drawn passes through mutiple more dots.
  • The mouse cursor lets the player know whether or not they can create a connection with a dot it's hovering over, and the lines that would be broken when a connection is made are highlighted with red.
  • The game is challenging, starting out easier and scaling up from there.

    What I would change/improve:
  • Add more new mechanics, and levels along with that, to the game. The break mechanic makes the game more interesting and adding more mechanics like that would give the game the variety it needs.
  • If more levels are added, some of the overly complex levels with just the base mechanics should be simplified or removed.
  • Make the hint system way more useful. Currently it highlights 2 dots as a recommended start but it does not signify which is first or second and it's only for starting out in the level.