Play as a Sheperd and Dog to guide your sheep home. Coded and designed by @obachuka (follow his Twitter for more: https://twitter.com/obachuka), art by me.
Download it on Windows to play! https://obachuka.itch.io/shepherd-and-dog
It has been a whiiiiiile!!!!
Life drama is hopefully slowing down a bit, so Iām jumping back into the gamedev scene with LDJAM 41 as a warmup! Itās an āincompatible genresā theme, so Iām gonna either try PetSim/Fashion or PetSim/Survival or PetSim/RTS or...
Look, weāre starting with PetSim and thatās the important bit.Ā
ć½(ćdĻd)ļ¾
Cheers all!! Itās good to be back!
Yesterday was a long day, ended up going to sleep at 5am fixing last minute game-breaking bugs. Most of the code I wrote in the end I didnāt even test, just hoped it worked.
You can find the game here!
I played around with the player attack until it felt a bit more satisfying and changed the way the enemies attack so they have aĀ ātellā before they attack, that way you can better know when to dodge. I improved on the player dash so dodging got a little bit better (still far from perfect).
I also improved on the effects when attacking/hitting and killing an enemy. Plus I added some code so the enemy changes materials when it dies, so it looks more like a dead exploded robot. At this point I noticed I was getting fps around the 10s, did a quick profile and found out that all the robots roaming the island were eating quite a bit of CPU, so wrote some quick and dirty code to hide robots that were too far away from the player and show robots within a certain radius of the player
For the progression, we created doors that need keys to open.
We placed the keys in chests around encounters of enemies. The chests check for pre-determined enemies to be dead and if they are all dead and the player is close enough they will open dropping either a key, a key and an upgrade or both. (I also made it auto-rename itself so it tells on the name the key number and the amount of enemies linked so I could see at a glance if I had all the keys dropping and if all the chests had enemies linked to it, since I didnāt have time to playtest stuff).
The upgrades have very simple code, it either upgrades Movement Speed, Attack Damage or Max Health, and it always sets the player back to max health when you get one. Which one spawns is completely random but weirdly while playtesting later I keep getting movement speed more than the others :/
The island is fairly big, and I figured if someone died very far into the game theyād just give up and leave without a proper checkpoint system. Since the doors already had ordered numbers and positions already set in the game inĀ ākinda-regularā intervals, decided to make them my checkpoint system. So when the player decides to respawn I look for the highest door number that the player has opened and position the player in its position.
Whenever the player opens a door I save a little playerprefs with the doornumber so I know how far the player has gotten and the player canĀ ācontinueā from there even if they close the game and reopen :)
For the story part of the game, I made a quick boat model and placed it behind theĀ ālast doorā. When that door is open I just unhide something in the UI that saysĀ āYOU WIN!ā, that was one of the last things I did with my jam time, so itās very quick and dirty xD
I also deleted a whole bunch of stuff from the boat to make aĀ āwrecked versionā to place in the starting area.
Lastly I did a quick main menu scene with buttons that Kristina made for the game. New Game will ignore the saved doors and spawn you in the beginning, while Continue will spawn you where you last left it off. The Title of the game is straight up Text Mesh Pro with one of their default fonts xD.
Talking about Text Mesh Pro, I added a floating Text Mesh Pro in the starting area with some button information so players know the commands. The button images are using the Text Mesh Pro emoji system ;P I also used the same system to show the keys on the Top-Left UI, the keys are <sprite=0>, that way I can easily show as many keys as I want without having to resort to spawning prefabs in a grid layout view in the UI.
Thatās about it I think. It was a very long day, ended up going to sleep at 5 am, when I pushed the final build and started playtesting I found out that the door number 4 wasnāt triggering because of the trigger distance, ended up increasing the trigger distance in all of them just in case and reuploaded a final final version to the site.
Phew... seems like I skipped one full #LDJAM edition with no new posts, so Iāll try to combine everything here :D
Sourcetree tells me that the last update on the RTS took place a couple of weeks before #LD41, so I probably changed my focus to continuing the jam project (in a way, another RTS, more on that right now) and then life got in the way. Shame!
The theme for the 41st Ludum Dare was āCombine two incompatible genresā, which spawned lots of interesting ideas. Mine was a hybrid of a rhythm game with RTS mechanics.
Enter Beatcraft!
On the video is a losing playthrough:
I didnāt have time to focus on a more relatable RTS flow (for example, exploration, choice, different units or more sophisticated combat) and there were issues with feedback, so it rated poorly, but I liked the concept.
Fast forward 4 months with no energy to code after work and hey, itās Ludum Dare time again!
These days the 42nd is on the rating phase. The theme this time is āRunning out of spaceā, a bit similar to the 39th āRunning out of powerā, and I took the inspiration from a trial in Takeshi Castle and another from Indiana Jones and the Last Crusade to create a Stepping Stones, a dungeon crawler where you need cross a pillar-filled chasm.
Hereās a fragment of a run:
After the jam Iāve tried to focus on improving the dungeon graphics into something that resembles a dungeon and a couple music tracks.
Once I do those improvements (or get bored of it) I wanted to focus on learning new stuff. Right now the top candidates are:
Continuing with a UE4 online course Iād started.
Experiment with Unityās new 2D tools.
Refreshing what I learned about 3D modelling on a Blender course, and hopefully apply them into a game.
Deep diving into music theory with a special focus on composition and probably learning an instrument.
I hope to keep a better pace at updating the blog.
On the night of April 20th, 2018, I did some work on my current game Retro Slasher for a few hours, and then went to bed. I was scrolling through Twitter on my phone before I went to sleep, when I saw a tweet about Ludum Dare. It had started about two hours before.
I had heard of Ludum Dare, but never participated. I was interested.
The theme also caught my eye:Ā ācombine two incompatible genresā. I had an idea! A platformer / turn-based RPG game had been rolling around in my head for a while, and I thought it fit pretty well. It could combine the best of both worlds, while also having a quirky oil-and-water separation between the two.
So I jumped out of bed and immediately got to work.
I decided to enter the competition rather than the jam. Its requirements are more strict: You get 48 hours rather than 72, you must be a solo dev, you must create all of the content new for the event, and you must release all your source code. Iām a solo developer, and since Iām trying to make it in indie games, I wanted to put myself to this test.
HTML5 + vanilla JavaScript
I decided to program the game in pure HTML5. I usually work with C# + MonoGame, but I donāt have a rapid-development engine available yet. I have experience with pure HTML5, however, and knew it would be much faster to get things going. Also, having your game playable in-browser makes it much more accessible.
For the record, I used howler.js for audio, since it makes everything much simpler. Outside of that, there were no libraries used.
Assets
I probably made the art in about 10 minutes. I am notĀ a pixel artist, so I couldnāt have made anything much more complicated. I recently played the beautifully-simple Downwell, so I was feeling inspired by its 1-bit art style. (Despite the similarities between this gameās page and Downwellās, Iāve never seen their site until this moment haha).
My game ended up being the 11th most-rated (note: most, not highest) compo entry this time around (peaking at 4th!). I think the pixel art was probably the reason why so many people played it. I got several compliments for it, and it was my second highest-rated category (next to humor).
In the audio department, there was no music. The sound effects all came from the incredibly helpful sfxrĀ program.
Coverage
I watched a few streamers play my game in the days following the compo. There was even a Twitch meme made out of it! Possibly my proudest moment yet as a developer.
My game was also included in videos by Jupiter_Hadley and Ian Hinck of Easy Allies.
Major Criticisms
Between watching the streams and videos, and reading the comments, I discovered that there were a few major issues with the game:
The platforming is too difficult
The RPG elements arenāt very clear
The game is made up of two distinct genre sections, and both of them have glaring flaws!
The platforming not only requires lots of precision in your jumps, but the jump goes too fast to feel comfortable. I tried to prevent it from feeling spacey, but I went too far in the other direction. Then, there are the sections where the player goes off the top of the screen when you make certain jumps, so you canāt tell where youāre going to land sometimes.
To quote user Deprecatās comment:
Players that enjoy hardcore platforming tend to prefer forgiving controls but brutal level designs.
I had it backwards. The level design was kind of hard, but it was really the harsh game physics that got you killed most of the time.
I experienced a wake-up call while watching streamers play:
What I found was that they didnāt finish the game. Itās a 5-minute game at most, but people kept dying at the same spots over and over because my jumps were just too harsh, so they quit. This is a fatal flaw.
As for the RPG elements, there was no in-game explanation for how things worked. Different options told you how much AP they had, and whether or not they had a cooldown, and thatās it. Most people thought the Psychic move would be some sort of magic attack, or after using it didnāt think it did anything at all. It actually reveals the enemyās health bar at the cost of a turn, but clearly that wasnāt obvious beforehand, nor was it apparent to some players that the enemy health bar even showed up.
I put these things on the game pageās description, and Psychic showed that it had 0 AP, but this was not enough. If I could do things over, I would probably include a description box that tells you what each move does, and some sort of animation that shows the enemyās health bar appearing.
Lesser Criticisms
Considering that I made the game in less than 48 hours, Iām proud of it. Itās a short proof-of-concept, so the following issues donāt ruin your 5-minute flash-in-the-pan experience as much as they would an hours-long investment. But if I move on with the project, these issues must be ironed out:
The game doesnāt advertise its controls to you. Heck, the description doesnāt either. I shouldāve added some indication of the controls in the GUI. For the record, itās arrow keys to move/jump and space bar to select attacks. Most people figured this out, so itās alright, but that was a huge oversight on my part.
The RPG battle system has almost no balance. There were attempts: you level up, enemies get stronger, they roll a die to determine attack strength, your stronger attack has a cooldown, etc. But thereās no real strategy in selecting Jump until next turn when Hit is available. Thereās no way to protect yourself from attacks, thereās no telling how powerful your enemyās next attack is going to be -- it could be anywhere from 1 to 5 AP (or in some cases, even negative, thus givingĀ you HP). And Psychic ended up being basically worthless, since missing even a single turn might cost you the battle.
Scores
After all this, how did I score? Well, I did... okay.
I did the math: my overall score is in about the top 40% (precisely, the topĀ Ā 39.379243453%). It isnāt a glamorous position, but it is better than most people in the compo did. 3.299 is above average, so I count myself lucky.
Surprisingly, Humor is my highest-rated category. There were a couple jokes in the dialogue, but I didnāt expect them to land very well. I guess it went over better than the gameplay did though, haha. (Also, nobody has yet pointed out a Star Fox reference in the dialogue, which makes me kind of disappointed).
I was really expecting the graphics to be my highest-rated category, considering that I got several compliments on that but not one on the humor, outside of one or two streamers mentioning it. No complaints here, though.
Conclusion
I put myself to the test, and I wouldnāt say I failed. I created a game in under 48 hours; a game which got me compliments in a few different areas. Realistically, itās deeply flawed, but Iām aware and Iāll know not to make the same mistakes next time.
Iām looking forward to the next game jam! I think Iāll be able to make something even better.
Thanks for reading! Follow me on Tumblr for more dev blogs, visit the website, or on TwitterĀ for regular updates on what Iām developing. Right now Iām working on Retro Slasher, an 8-bit rogue-lite survival horror. It also has its own Tumblr page and website.