Author Topic: Helix [7DRL 2016 - Success]  (Read 13351 times)

thesleeve

  • 7DRL Reviewer
  • Newcomer
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Helix [7DRL 2016 - Success]
« on: March 04, 2016, 07:30:30 PM »
[Success]

Well, I finished. I'd call this a partial success. The game is playable but not as polished as I'd like. If you somehow manage to beat the last level, level, the game might crash. But, at that point, the game is over anyway! Hopefully there aren't any other glaring bugs.

Here's a quick tutorial video: https://youtu.be/TwJN8a8Kymg

Here's the download link: https://thesleeve.itch.io/helix

What follows below is my original post:

-------------------------------------

Last year, I made Rogue Space Marine for the 2015 7DRL Challenge.

For this year's challenge, I'm planning on doing another game, tentatively called Helix. The general idea is that the player has a limited number of moves which are "jumps" that form a particular shape. To get an idea of what I'm talking about, think about the knight in a game of chess. The knight can move two squares forward and one to the side, for example. Similarly, Helix will feature a collection of randomly-generated multi-jump moves and attacks that can be rotated 90, 180, or 270 degrees.

A few other notes:
  • I'm using this as an opportunity to learn Unity. I made my game in GameMaker last year and I thought it would be fun to try something new.
  • I'm planning on using one-hit mechanics similar to my game from last year
  • I will probably use the same tileset and artwork. Sorry! The focus here is really more about coming up with new and interesting game play.
« Last Edit: March 15, 2016, 03:38:44 AM by thesleeve »

thesleeve

  • 7DRL Reviewer
  • Newcomer
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Re: Helix [7DRL 2016]
« Reply #1 on: March 07, 2016, 04:48:04 AM »
I started working a few hours ago. I had a lot of trouble trying to figure out how to approach this game. Here are the approaches I considered:

  • Use the codebase of my 7DRL from last year and change the mechanics to create new gameplay. I ultimately decided against this because the code is an awful mess and I didn't want to have to revisit it.
  • Start a project from scratch in Unity. This was appealing because I'd like to get proficient at C# and learn the Unity engine. However, this clearly has a huge learning curve and includes the risk that I don't finish in time.
  • Use an existing framework. I actually dropped $30 on a framework called Rog in the Unity Asset Store, but after several hours of reading through the source code, I realized that it is locked into a very traditional set of gameplay mechanics and it is very tightly coupled, making it painful to hack out the parts that I need. Oh well, maybe I can use this in the future, but not this year.
  • Start from scratch in GameMaker, which I have some experience with, but try to create some really unique game mechanics that differ greatly from my entry last year.

After a long, painful period of indecisiveness, I decided that I'll just make something from scratch in Unity. As such, I doubt this year's entry will have anywhere near the level of polish that the game I made last year did. In any case, the goal for me is to have fun and learn something. So, I'm going to try to get proficient at Unity, regardless of if the game turns out well or not.

After just a few hours, here's what I have so far:


Quick video showing how the attack square (red) rotates based on the facing direction of the character:
https://youtu.be/qSygxigXrYw

thesleeve

  • 7DRL Reviewer
  • Newcomer
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Re: Helix [7DRL 2016]
« Reply #2 on: March 08, 2016, 05:16:14 AM »
Note - I started working late Sunday night, so that was kind of Day 0. Today is the real Day 1.

Day 1: Worked at the office from 8:00 to 18:00, went jogging, finally sat down to code from 21:00 until 00:10.
I have no real progress to show today. I ripped out all of my code from yesterday and basically started from scratch... AGAIN.
I now have a game controller singleton with a state machine. It tracks the player's turns and enemy turns, as well as other active objects in the scene like projectiles or traps.
I also have pseudo code for most of the basic behavior of the game, and now it's just a matter of translating that into C#, a new language for me, and getting it to run in Unity.

Since I'm focusing primarily on learning a new language and engine this year, I doubt my game will be all that great, but I'm having fun and learning a lot, so, mission accomplished (so far).
Still planning on pulling an LD48-style weekend from Friday evening until Sunday late night, so maybe I'll pull off something great in the 11th hour. We shall see.

Gornova

  • Rogueliker
  • ***
  • Posts: 79
  • Karma: +0/-0
    • View Profile
Re: Helix [7DRL 2016]
« Reply #3 on: March 08, 2016, 07:31:50 AM »
hi! I'm looking for your game, nice concept, keep going!
Blog | Last game A droid story

thesleeve

  • 7DRL Reviewer
  • Newcomer
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Re: Helix [7DRL 2016]
« Reply #4 on: March 09, 2016, 05:02:59 AM »
Thanks, Gornova.

Day 2:
I was able to spend another 3 hours coding tonight. I made some small progress:
  • Player can now input moves using the keyboard.
  • Enemy units have a very simple AI that makes them move in a random direction.
  • The game controller state machine executes the moves at the right time.

So, the turn system I want is now in place and running.  No, it's not a lot of progress, but it's something.

I got hung up when trying to implement generic lists to track the types of moves the player can execute. C# is a language I haven't used very much, so part of the problem is trying to wrap my head around new ways of creating data structures. I'm going to open my C# reference tonight before I go to bed and see if I can find some insight there.

thesleeve

  • 7DRL Reviewer
  • Newcomer
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Re: Helix [7DRL 2016]
« Reply #5 on: March 10, 2016, 04:48:25 AM »
Day 3:
Again, very little progress to actually show. Most of the progress came from improvements "under the hood" in the framework. Players and enemies are now aware of each other and will move in a somewhat intelligent fashion, being blocked by walls and other actors.

Here's a quick video showing very simple movement going on.
https://t.co/mZ1yWBfxW4

Gornova

  • Rogueliker
  • ***
  • Posts: 79
  • Karma: +0/-0
    • View Profile
Re: Helix [7DRL 2016]
« Reply #6 on: March 10, 2016, 09:37:49 AM »
I have a suggestion: let player be aware of enemies movements in some way. Like player can move using a "knight move" in many ways, same can do enemies, so you can show to player when next move will be ?
Blog | Last game A droid story

thesleeve

  • 7DRL Reviewer
  • Newcomer
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Re: Helix [7DRL 2016]
« Reply #7 on: March 11, 2016, 02:44:56 PM »
Day 4:
OK, now a few more things are taking form. Collision detection is working, and players can generate projectiles (fireballs for now) that can collide with enemies and cause damage. The bare bones of an actual game are starting to come into focus.

Quick demo here: https://twitter.com/TheSleevePSU/status/708152640421634048

My deadline for finishing is basically late night on Sunday, so I have the whole weekend to work on this project. It's a little disheartening that I am still working on very basic concepts like movement and attacks, but hopefully I can pick up the pace and get a real game in place this weekend.

Thanks for the suggestion Gornova. I'll think about it. Right now, I'm trying to get the basic systems in place, but I'll consider that as the game gets more fleshed out.

thesleeve

  • 7DRL Reviewer
  • Newcomer
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Re: Helix [7DRL 2016]
« Reply #8 on: March 13, 2016, 05:43:44 AM »
Day 5+6: OK, here's what I have working now:
  • Actions (moves, attacks) are generated as a list and you get little graphical previews in the corner of the screen showing you which moves are coming up, like in Tetris. Come to think of it, I think Tetris was one of my main inspirations for this game, subconsciously.
  • Enemies have state machines so they can patrol, hunt, attack.
  • Enemies display thought bubbles that show what state they are in.
  • Game loop has been refined and the game flows pretty well between states without bugs now.
  • Enemy behavior is generalized. I just need to expand it to create multiple enemy types.
  • I implemented pathfinding from scratch. Enemies can now use line of sight and pathfinding to hunt you down.
  • Exploding barrels now damage the player and enemies.

I still don't have level generation, which is the last big thing remaining. That, and difficulty progression.

Due to the fact that I had to spend so much time coding the basic game systems, it left me very little time to actually create a game. I'm OK with that. My real goal, as I've stated before, was to learn C# and Unity.

In any case, since I have very little time left, I'm going to make this a single-screen, arena style game where the goal is to defeat all enemies. After defeating the enemies, the screen clears and a new level is generated with more difficult enemies. This is what I will work to implement tomorrow up until the deadline. More enemies, some basic level generation, and some sense of difficulty progression.

Here's a screenshot showing the current state of the game:

thesleeve

  • 7DRL Reviewer
  • Newcomer
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Re: Helix [7DRL 2016 - Success]
« Reply #9 on: March 13, 2016, 11:58:10 PM »
OK, I finished up a few hours before the deadline. Man, I'm tired. The game is OK, a bit buggy, but OK. I achieved the following personal goals:
  • Finish within the deadline
  • Learn enough C# to make a decent game
  • Get familiar with Unity
  • Code my own game manager, state machines, and pathfinding
  • Don't rely on any external code libraries except the main Unity API
  • Create a game with a unique mechanic (rotating moves, move queues)
  • Have fun and don't run myself too ragged

So, if you consider those goals, then it was a great success!

Some regrets:
  • The game is not very deep
  • I would have liked to make smarter AI and more enemy types
  • Attacks and abilities are limited
  • Level generation is pretty boring
  • It is similar in many ways to my 2015 7DRL, Rogue Space Marine, even though I coded it from scratch
  • Players will potentially discover some bugs

Well, I guess that's what you sign up for with one of these challenges. It was a good experience anyway.

thesleeve

  • 7DRL Reviewer
  • Newcomer
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Re: Helix [7DRL 2016 - Success]
« Reply #10 on: March 15, 2016, 03:36:19 AM »
I just recorded a quick tutorial video showing how the game is played. Also added it to the top post. Check it out!

https://youtu.be/TwJN8a8Kymg

kipar

  • Rogueliker
  • ***
  • Posts: 105
  • Karma: +0/-0
    • View Profile
    • Email
Re: Helix [7DRL 2016 - Success]
« Reply #11 on: March 17, 2016, 12:59:30 PM »
Nice game, i liked a nonstop action with barrel explosions and teleporting into crowd of enemies. Not much tactical, but funny. But sadly it always crashes after first level (on a first turn on a second level) - are the more difficulty or something interesting on next levels or they are all the same?

thesleeve

  • 7DRL Reviewer
  • Newcomer
  • *
  • Posts: 30
  • Karma: +0/-0
    • View Profile
Re: Helix [7DRL 2016 - Success]
« Reply #12 on: March 21, 2016, 06:18:41 PM »
Thanks kipar,

Unfortunately, I haven't had much luck tracking down the bug that causes it to crash when loading a new level. It crashes sometimes, and not other times. This is my first time using Unity, so I'm sure I'm missing some small thing that is causing this bug.

The later levels step up the difficulty quite a bit, but the basic concept of the game doesn't change. The level generation stays the same, and there are no new abilities or power-ups for the player. It just gets harder. I didn't have time to make an interesting progression as the player completes each level, sorry.

Maybe I will work on a post-7DRL update that addresses some of these problems.