speeddemonking-blog
speeddemonking-blog
Light Unite Development Blog
12 posts
Don't wanna be here? Send us removal request.
speeddemonking-blog · 6 years ago
Text
Blog 12: New block types and interface improvements
I’m aware that it has been at least a month and a half since my last blog post when I claimed that I would do one the week after the last post. Due to this, I apologise for not meeting that. I had some external work which took up all of my time and slowed development of the game to a crawl including recording my progress on the development of the game. That work is now done, so now I am able to work properly on the game more.
I’m also going to take a little bit more of a ralaxed pace on the development of the game, so weekly updates on the game are going to be much less likely, with monthly updates being more likely. Now that this is out of the way. On to the updates!
Firstly, the design for the splitter has been finalised and it’s behaviour no matter what direction it is in or where the light hits it from, should work in any of those situations. A new level was developed to showcase the new block type.
Some extra buttons were also added into the UI to further promote the use of the mouse and to make the game a smoother experience overall. This includes the shoot light button which allows you to use the mouse to click on the button to shoot the light early without needing to use the space button and the return to menu button which allows you to quit whatever level you were playing at any time.
Allthe existing UI has also been enlarged to make it easier for players to notice them.
The grid is also back in a border format as a responce from some players not understanding where the boundaries of the puzzles were.
Tumblr media
There were also some buttons for rotating left and rotating right which would replace the q and e inputs. However when testing this with a player, it was noticed that when you rotate more than once with the button the position of the blocks after rotation are not updated and that breaks the game overall. Due to this the buttons are currently hidden until that problem is fixed.
Tumblr media Tumblr media
Another level was also added to expand on the use of the 3D rotation mechanic.
Tumblr media
There is also now a congratulations screen so that if you complete all the levels, you are able to go back into the main menu where you can either start again or quit the game from there due to having a quit button added to the main menu.
Tumblr media
A visual and functional fix for interacting with objects behind either the laser or reciever based on where the camera is looking. This was done by allowing the laser or reciever to go transparent every time the mouse is over it and have it go back to normal once the mouse is not over it. While it is transparent, you can interact with the closest block behind it that is interactable.
Since windows are not supposed to be interactable, you can now interact with any blocks that are immediately behind the window.
Tumblr media
Some extra hints were also added to some levels that didn’t previously.
For Level 7:
Tumblr media
For Level 8:
Tumblr media
0 notes
speeddemonking-blog · 6 years ago
Text
Blog 11: Sound and Effects
Hi! Sorry I am a week late with this post, there were some personal matters which I needed to attend to and other assignments which took my attention from last week. From this point onwards though I am right back into it.
First things first, I added an new level which will fully utilise the 3d rotation mechanic that was implemented two weeks earlier. I have also hidden the grid to see how the game looks and plays without it. I will play test this with some players and see how that goes to see if it is visually better.
Tumblr media
I also managed to add in some particle effects for the reciever for when you clear the level in a way so that it will explode out of the reciever initially before sucking themselves back in to the reciever. The particles will also gradually turn from its original colour of yellow to the colour of the light, white, to bring home the idea that the reciever is collecting the light.
Tumblr media
I also added a sound for when the laser is charging the lightball whenether the player is on their last move. This sound will likely be a placeholder, as I feel there could be better sounds to represent this. Here is the sound represented below.
youtube
Finally, I am finally trying to implement a new block type. This will be called the splitter. As of right now, it doesn’t look any different to the mirror due to the block still being in the testing phase. But once it is done, whenether you have the light hit the block, it will reflect off the block like the mirror, but it will also spawn another light ball which will go in the opposite direction. Currently, this should be fully functional in a 2d level, but some work still needs to be done for it to be able to fully work in a 3d level. This is due to the fact that the splitter does not take the z-axis into account yet.
Here is an example of how the splitter should hopefully work.
Tumblr media
For next week, I will focus on finalising this block type and potentially creating another block type, I will add some buttons to the UI to make it more mouse friendly and eliminate the need for a keyboard and I will add in some more sounds and effects to make to game more exciting to look at.
0 notes
speeddemonking-blog · 6 years ago
Text
Blog 10: Refinement
This week, I made some adjustments to the interface so that it would be a bit more readable and fun to look at.
For example, In the instructions menu, I have lined up the text with the rotating objects in the editor. Unfortunately, due to the way the text scales, the layout goes out of sync whenever the screen size changes.
Tumblr media Tumblr media
Some changes will need to be made to make sure the text lines up with the objects no matter the size.
The reciever now changes colour when the light hits it and clears the level, the particle effects accosiated with the colour changed are yet to be added but will be done in the near future.
Tumblr media
I also finally changed the background to something more appealing while also keeping the space aesthetic.
A hint system is implemented for certain levels so that when players get stuck, a hint will pop up to guide them a little bit. These usually will pop up after 60 seconds have passed during the level.
Tumblr media
The level reset text bug has now been fixed and the number of moves will now be shown again a second after all the blocks have reset their positions. The delay is due to the fact that if the reset text dissapears too early, The amount of moves may decrease immediately after without you doing anything.
Tumblr media
The design of some levels have also been adjusted to make them more readable and clearly playable while still preserving the core puzzles for them. A new Level has also been added.
Tumblr media Tumblr media Tumblr media
Also, as shown above, the grid in 3d levels are now double layered to hopefully make it easier to show the depth of the level.
After some feedback, the wall block texture has been changed again to suit the space aesthetic. It should look more like a spaceship wall now.
Tumblr media
Finally, I looked into the grid following rotation as the camera is moving around, as before it was giving the incorrect behaviour in certain situations. I finally managed to fix that and the grid should now follow you no matter where you are looking from.
I also updated the rotation mechanic to work better with the 3d levels, so now no matter where you are looking from, the rotations should feel consistent.
Tumblr media
For next week, the main things I am going to do is develop a level around the 3D rotation, add some more sounds and particle effects to the game to make it more engaging, make some new block types, and refine the UI for the game.
See you next time!
0 notes
speeddemonking-blog · 6 years ago
Text
Blog 9: Visual Guidance
For this week, I improved on the visual effect on the laser cannon by having an extra blast particle effect effect when shooting the light ball to gain to make the action more exciting to look at. The laser now also reverts back to its normal colour when the light is shot and now correctly goes back into the charging state if the level is reset without being cleared.
Tumblr media
I also managed to finalise the camera 3d movement system where you can now have full 360 degree camera movement where no matter what side of the level you land in, the interactions for moving the blocks will feel the same no matter what, which is really good for familiarity of the level. The rotation will get the same treatment later, but for now, it only has it’s basic functionality no matter which side you are looking from.
Tumblr media
If you also had a keen eye from the last post that I made, you’ll have noticed that the wall block has changed its look slightly. Well this is due to myself making the texture by myself through photoshop and then applying that texture to the wall block. Here’s a picture of the texture and the block below.
Tumblr media Tumblr media
I also created UI showing key information for the blocks displayed per level so that players can refer to that if they get stuck on what to do. It will start hidden, so to make it appear, I added a button which you can press to toggle between having that be visible and not visible at any time. Later on, there will be an extra button for toggling the visibility of the controls. I will alos use buttons later on for the rotation so that I can completely eliminate the need to use the keyboard for the game. This should make it easy to translate the game to mabile when I am ready.
Tumblr media
During this week, I initiated a couple of playtests where I let players play through the whole game where I can record the results of the times it took for each of them to clear each level. This is to help me guage the difficulty of each level and adjust the order or design of the levels according if needed. Here’s some results for one of the playtests.
Tumblr media
This gives some interesting results where the introduction of mechanics generally make them take longer to figure out with Level 8 appropriately being tha hardest. However, there may be some slight inaccuracies to the results of level 5 and possibly level 4 due to discovering a bug where rotating over 180 degrees and then reseting the level causes the game to eat a move before doing anything and the light ball sometimes hitting the goal when the level is resetting from failure. Both of these bugs end up either breaking the affected levels or render them unplayable.
Tumblr media Tumblr media
Both bugs have since been fixed as shown below.
Tumblr media Tumblr media
For next week, I will mainly add more levels, improve on the UI by adding what I mentioned earlier in the blog, adding some animations on the reciever when you clear the level and adding some sound effects to the game to give it some more personality. I created my own sound for moving the blocks to get myself started and that is already implemented into the game.
youtube
0 notes
speeddemonking-blog · 6 years ago
Text
Blog 8: Visual effects
I made a little starting menu to introduce you to the game and I included some instructions in the start menu to get people used to the controls. For now it is a work in progress but I do plan to improve how it looks later on.
Tumblr media
Also, to make the game more visually pleasing. I decided to make it more obvious where the starting point of the light is by having the laser deviate between red and white at varying speeds depending on how many moves you have left. Once you get to the final move, the lazer will look like it is starting to charge using clever use of particle effects.
Tumblr media
I also smoothed the animations of the blocks moving to make moving them more satisfying and pleasing to the eye. Due to this, the reset blocks animation looks visually pleasing as well. The light ball also now has a trail to make it more obvious where it is going and to give it a sense that it is an actual light travelling around and not just a ball.
Tumblr media Tumblr media
I baked in some extra lighting exclusively for the light ball so that I can minimise the amount of shadows produced from the ball.
Tumblr media Tumblr media
I also tried to finish off the 3d camera controls by including the top and bottom perspectives. I also adjusted the controls from when you are looking through those perspectives so that it feels the same to play as when you are looking at the sides. However, there is now a bug where some blocks can leave the boundaries of the level which I am planning to fix later.
I also smothed the animation of the grid rotating which could be hard to notice due to it being fast, but it should prove to be more natural.
Tumblr media Tumblr media
I also created some new levels to introduce you to the 3d aspect of the game including the level shown above which I will show below.
Tumblr media Tumblr media
That’s all for now.
0 notes
speeddemonking-blog · 6 years ago
Text
Blog 7: 3D Camera Refinement
I managed to figue out how to use the mouse to manipulate objects. You can now select the object you want to move as usual, but now you can simply drag the mouse in the direction you want to move the selected block to.
Tumblr media
Other than this, I wanted to expand on the camera manipulation to make it as easy as possible to navigate around the level and manipulate it by selecting the block you want to move or rotating the level in the direction you want no matter where you are looking.
To do this, I made sure to limit the viewable range of the camera in the y axis so that there is never a chance to look at the level upside down. As such you can only look up or down up to an angular range of 50 degrees. In contrast, you have completely free movement in the x axis, allowing you to look at the whole level easily. When you let go of holding the mouse click, the camera will snap to the closest side of the level so that you can easily select and move blocks.
Tumblr media
As shown above, the grid is always facing the camera now no matter where the camera is looking. This helps to give a good reference on where exactly the blocks are. The grid helps to serve another purpose. You can change how close the grid is to the camera using the I and K buttons (Controls may change later). This in turn changes which blocks you can interact. This will be made clear by making other blocks not within the area as the grid invisible to highlight the selectable blocks.
Tumblr media
Right now, if there are any invisible blocks in front of a selectable block, the block can’t be selected. So for next week, I want to fix that issue as well as finally implement some sound effects for the game.
0 notes
speeddemonking-blog · 6 years ago
Text
Blog 6: Level Progress
I finally managed to figure out how to reset the level properly if it is rotated! I also made a small addition to the game as well so that if you think you have finished the puzzle early, you can press the space bar to shoot the light ball early.
Tumblr media
Also, since I am finally going to start focusing on the 3d aspect of the game, I decided to create some more levels in the 2d space designed to get players used to the game and the rotation mechanic later on.
Tumblr media Tumblr media
The ability to go straight to the next level once the level’s puzzle has been solved has also been implemented. However in future builds, there will be a couple second delay to show that you have cleared the level before moving on.
Tumblr media
When working on one of the new levels, I realised that the physics of the ball wasn’t acting quite right when it is supposed to be the correct solution. It eventually bounces off and heads into the wrong direction.
Tumblr media
To fix this, I shrunk the hitbox of the ball by about a 1/5th and now the ball moves around the objects correctly. Now whenever you put in the correct solution, the game should now reward you every time.
Tumblr media
To transition into working on the 3d aspect, I implemented a camera system where you can change where you are looking at the cube from by holding right click and dragging. This should make it easier, when the time comes, to look at whats contained in the level and select the block you want to interact with. You can also reset the camera by pressing “R”.
Tumblr media
Finally, due to some feedback during one of my playtests, I decided to change the look of the window blocks so that they have holes in them to indicate that light can pass through it. This should hopefully make the block easier to understand.
Tumblr media
For next week, I am going to replace all the current window blocks with this new block design, add a main menu, extra ui and some instructions to make it easier to get into the game, start designing some 3d levels and implement interactions that will hopefully help to make it easy to navigate the 3d layout.
0 notes
speeddemonking-blog · 6 years ago
Text
Blog 5: Interface Intuitiveness
This week, I wanted to look into how I can make interctions in my game more engaging, so I found and watched a video based on a talk  which discusses how to make games more “juicy”.
youtube
This was really fun to watch and I hope to adapt some of their techniques shown into my game later on.
In other news, I managed to do all the things that I wanted to do for this week except for being able to properly reset every block in a level to their original position and rotation if a level rotation is performed.
For example, I managed to implement the window block which the light can pass through but it prevents nearby blocks from moving to its position.
Tumblr media
I have expanded on the interation on the main portion of the game as well. I made it so that whenever you select a block, it gets highlighted red, indicating that you can interact with it. There is also a bit of movement from the block now as it’s moving to its new position, which ends up looking better than it simply popping to its next position. The colour of the walls were also slightly changed to make them easier to see.
Tumblr media
I also added some UI for how many moves you have left to make it easier to tell when the light will be shot. I have also added a scenario for when the level is completed and made the UI reflect on this. I also added some UI dialogue for when the level gets reset as well.
Tumblr media Tumblr media
I also managed to implement a level rotation feature which uses a move to rotate the entire level which can be useful for some puzzles. The issue is right now, if you rotate the level and you don’t clear the puzzle, the level doesn’t reset properly. The blocks get put in the wrong place and the rotation of each of them is not correct.
Tumblr media
For next week, I am going to try and fix this issue and then I will playtest this version of the game to a small sample of people.
0 notes
speeddemonking-blog · 6 years ago
Text
Blog 4:  Turning paper to digital
I’m back once again for a weekly update!
Now that I have a good, proper, general idea of what I wanted the game to be in paper form, I wanted to translate that to digital form this and try to get the game into a minimal, playable state.
Before I did anything though, I had to make sure that the light shooting mechanic works properly in unity. The first thing I did for that was I made sure that I can spawn a ball of light which shoots in a certain direction at a fixed speed and have it despawn when it hits the reciever.
Tumblr media
That was simple enough. I then added a wall that the light needs to reflect from and fly right back to the laser. At first, I created a condition so that when it hit the wall, the velocity would go directly in the other direction from where the light is approaching the wall.
Tumblr media
I then had to create the mirror, Initially, I had trouble implementing this as when the ball hit the mirror initially, it just acted like the wall and went straight back to the laser, so I had to go straight back to the drawing board. After a bit of research, I discovered that I simply needed to attach a physics material to the ball’s collider. Once that was done, implementing light interaction was much easier from then on.
Tumblr media
With those elements in place, I was able to replicate one of my levels in the paper prototype within minutes. However I still needed to interact with the blocks and have a move limit. What I ended up doing was that I created a system where you could select the block you want to move and then you select the direction you want the block to take depending on which arrow key you press.
This uses up a move, which, for this single move level below, causes the laser to shoot the ball and you will figure out whether the ball hit the reciever or not. If it doesn’t, the level resets and you get to try again. If it does, then you have cleared the level! (Right now though it just resets it)
Tumblr media
As a basis for next week, I will add the window block, polish the reset system so each element works like they did in the beginning and add some useful UI to the game including showing how many moves you have left.
0 notes
speeddemonking-blog · 6 years ago
Text
Blog 3: Finalised Paper Prototype Structure
Since last week, I sent out and had some playtestors to playtest the prototype over the week to  make sure that the solid idea I had for the game was good enough. Overall, the feedback was positive so far, I had to write down the basic rules for each block but it seems like the prototype was easy to grasp and it was just challenging enough for players to think about what they need to do, but still doable enough that the solutions are satisfying.
Tumblr media
I had to update the rules for the mirrors twice due to some slight confusion on how they need to be used, Once those rules were updated, the play sessions went over relatively smoothly. However, I am going to take the advice of one of my playtestors and translate the prototype to card and blu-tac so that the pieces can’t be easily blown over and shifted while playing with it.
Here is the essentially finalised prototype structure for the game.
Tumblr media
To actually play the prototype, I also set up some sample levels here.
Tumblr media
Each of the levels also has a set number of move in the back.
Tumblr media
I want to continue to use the prototype to experiment with new levels, that will be fun!
For now though, I will now try develop and implement this prototype in unity, starting with implementing the light mechanic by having it shot from the starting point and havng each block and each side have a unique reaction to the light when hit.
0 notes
speeddemonking-blog · 6 years ago
Text
Blog 2: Paper Prototyping
Here’s a quick update!
As I said from last week, I wanted to finish the movement prototype. I managed to mostly finish that, save for a couple bugs, but I decided with some advice to stop unity development for a bit and actually think carefully on what I want my game to be and how it will work through a paper prototype.
For this prototype, I wanted to experiment with some possible levels and see what would be most effective and useful for the game as well as solidify the basic mechanics of the game. At this point, I’m not sure if I am going to include a player character for the game as I am now struggling to think on how that can be relevent instead of unneccesarily slowing the pace of the game for no reason. The 3d manipulation aspect will stay though.
Here’s what I have so far:
Tumblr media Tumblr media Tumblr media
I’m hoping to playtest this with a small sample of people so that I can guage how good the idea is for the game through the prototype and see what possible changes I need to make to improve te idea.
Hopefully I can get a solid footing on the prototype soon so that I can develop and realise it through unity.
0 notes
speeddemonking-blog · 6 years ago
Text
Light Unite Development Blog 1
Hi everyone!
So this will be my first personal blog ever and I’m exited to talk about how I have been working on the game. So I want to make sure that I start this right.
To start off, I want to make a puzzle game where you use your own block to move other interactable blocks so that you can clear a path for light from a specific area to shine through to the target block. I want to do all of this in a 3d space which, hopefully by the end of development, you can utilise some manipulation in background movement which would be much harder to pull of in a 2d space and create some interesting solutions.
Before I can do any of this, I need to make sure that the basic movement is spot on. So I focused my efforts this into that for the start of development this week so that I dont run into issues later.
I created a red block to use as the player block to test movement and made it so that you can move left and right within a grid while taking note for gravity. Getting the block to move was the easy part. I was able to have the block loop around the grid from top to bottom and left to right. The hard part was having it interact with other objects properly.
To start with, I was initially having trouble trying to prevent the player block from being able to move forward or move backwards two spaces from the single object before falling instead of one space if you mashed a movement button fast enough.
Tumblr media
I had so many problems trying this via my normal collision method that I had to completely rewrite how the collisions work to get everything working properly, mainly using oncollisionstay and only using the enter and exit variants for specific scenarios.
I was also running into problems with the player block not knowing what to do when there is more than one present and next to each other. The block would think it’s not on the ground when it is causing tons of issues. So I made some sensors for the object blocks indicating whether they have any neighbors so that when the player block moves onto a new object, it doesn’t automatically make the player block fall. Also accounting for when the player has moved to the other side of the grid changes the scenario for what should be happening when that occurs. I have adjusted the changes for when that happens. This proved to be very useful.
I then experimented with different scenarios by adding and moving some sample blocks around so that I can debug any movement issues that may occur during gameplay. I managed to sort out some of the scenarios, but there is still a couple issues I need to sort out for next week like accounting for edge blocks opposite the player and other potential collisions, but overall I am happy with the current progress.
Here is a sample of what I have so far:
Tumblr media
Next week, I aim to hopefully finish off this movement prototype and work on another prototype to experiment on the objective of the game.
1 note · View note