Lvl: 2&3

For personal reasons I wasn’t able to get the Lvl:2 log in on time and by the time I could work on it I had gotten enough done that I figured it I could just put the two logs together. Between the two weeks I finished the main skeleton of the game as far as I needed for testing the main mechanics and the later procedural generation. Building off what we had at the end of Lvl:1 the player can now attack and block, though unfortunately the free assets I found to be placeholders didn’t come with an animation for blocking, so I’ll need to add a different visual representation to make that clear until I can make my own assets. There is an attacking animation though so that’s something at least. I also added some basic UI elements, a health bar and a stamina bar, that will come into play with combat and other hazards. Naturally what good is attacking and blocking without something to block and stabberize? So the last main feature of Lvl:2 was adding in a basic enemy to play with/against. It doesn’t do anything fancy but it runs at you, damages you if it hits you, and can be killed through blunt force trauma. What else could you possibly need? With that I think we can move on to the progress of Lvl:3, where we go from the basic skeleton of a platformer and start moving into the actual game. The goal of both Lvl:3 and next week’s Lvl:4 is to begin to implement the leveling system, the core of what I’m actually trying to do with this game. In the future I’d like to add a large number of skills to play with, but at present all I have to report is creating a skill for each of the basic functions of the skeleton. The player can get better at attacking, which naturally increases the damage it does, blocking, which decreases the stamina cost of blocking and later down the line will increase the speed the player moves while blocking, health, which can only be raised by taking damage and will play a much more influential role once there are ways to heal implemented, jumping, which increases height, and move speed which increases, well, move speed. At present there is no upper cap which is how I would want things, so the main thing to play around with is how much things increase per level, and how much needs to be done to level up. In Lvl:4 I also plan to expand the UI elements to show when you gain exp in a skill and when a skill levels up. The biggest challenge of this report would actually be the UI elements as that is the piece of Unity I have the absolute least experience with and going from nothing to trying to make a health bar that actually looks good took a decent amount of fiddling.

Lvl: 1

Starting off the first week of development we got to work on the skeleton of the game. There are still more goals for this first sprint but for the first week I wanted to just get the player moving around and get a better sense of how to use tilemaps in 2d Unity.

The absolute first thing I did was go on the asset store to find some free placeholders to use for the time being, all I wanted to start was a basic set of platform tiles and a player character so I wouldn’t have to use a rectangle for the foreseeable future. Fortunately I found both without much effort, including a player sprite that came with some basic animations like walking and jumping along with things I want to use in the future like attacking and blocking. I still plan to use my own assets at some point in the future but having this to make things look correctly and just to make sure everything works is very helpful. After that I set up a basic character controller script to just facilitate movement, jumping, and crouching. I plan to expand it greatly once I get further into development, mainly during sprint 2 when the leveling mechanics are implemented. So the last step I took this week was learning to set those animations up. It was my first time using an animation controller on Unity so it was interesting to see how little code was involved in that process. I always thought the animations were queued up in the scripts but all that needed to be included there was a few variables for the animation controller to read.

The biggest challenge I faced this week was just getting back into Unity and learning how to use the 2d elements I hadn’t done much with in the past. For the most part all of my Unity work was in 3d and while a lot of the structural elements carry over there were things like tilemaps and sprite sheets that I had worked with before but never had to implement myself. 

A good amount of time was spent this week on research on how to do much of what we wanted to do. Fortunately there was no shortage of resources online for this between articles and video tutorials on individual components of unity development. The best lesson I learned this week would just be how specific of resources and guides we could find. I knew there was a trove of information out there but I was still a bit surprised to find something so specific as to “Melee attacks in Unity”. I plan to take great advantage of these resources in the future, especially as I come to more and more complicated processes. Beyond that the main things I learned this week just feed back into learning more about 2d Unity. I had some degree of understanding before going into this, mainly with the initial demo the previous semester, but getting a refresher on some of the most relevant components was very helpful.

Lvl: 0

Welcome to Lvl: 9999, the Devblog for the game of the same name. The goal here is rather simple, just to document my progress over the course of the semester and hopefully beyond.

To start off our first post here let’s go over what exactly it is I think I’m doing here and how I want to get from point A to point Z. Lvl:9999 is to be a roguelike platformer where every single action the player takes can be leveled. Everything from attacking, blocking, jumping, crouching, to even dying will be an individual stat that can be raised to stupid levels. Grinding for these levels will be tied into the core gameplay loop, needing to reach certain points to access different points of the levels and allowing different methods of play.

My goals for the semester are to start by getting the bare skeleton of the concept set up, with a number of levelable skills, some enemies and traps to interact with/die to, and to then spend the majority of the semester learning and implementing procedural generation. I expect that to take the biggest chunk of time just as I’m starting from zero there.

By the end of the semester I hope to have the procedural generation working to a degree that it can at least create a series of randomized rooms and enemies with sections blocked off until certain skill levels are reached. That being said I would want the demo game at least to be beatable without an unreasonable amount of grinding given the presentation format, so much of the level will probably be structured to show off the leveling mechanics without needing to dedicate too much time for it. Ideally I’d like to have a boss at the end of the run but that will depend on how much else I can get done before that point.

Compared to the typical roguelike game I plan to add in the option to keep some amount of your progress from previous runs, to allow some amount of gradual process rather than just trial and error. This will be done through the aforementioned ‘dying’ stat; the more one dies the higher that level gets and its level determines how much of the previous run’s stats you bring over to the next run.

The other use for levels after a run is completed will be trading. Your leftover levels you don’t get to keep after a run will become your currency to prepare some things you can’t grind for for future runs. At present this is planned to be equipment, shortcuts to later floors, unique skills that aren’t tied to a stat, and maybe even new stats to level in the future.

I hope to keep working on this project even after the semester is over so there’s much more I’d like to do after reaching these goals. This would include, as mentioned above, adding bosses, a wider range of enemies and rooms, and further expanding the level trading system.