Tiny Mystic Devlog #1 – It all starts here!

You’ve probably heard me talk about Mystic G a lot and it’s a project that I have been working on for years now. I have been working hard to get the project off the ground, but I’ve realized I may not have the experience to attempt such a large project. After some thought, I’ve decided that it’s best to scale down and try my hand at a smaller project. Until this project is done all my other projects are on hold and this includes my non-game projects. I also won’t be participating in any game jams until this project is released. This project is Tiny Mystic!

 

I am committing to one devlog a week, but it is my hope that I can do them daily. This devlog was to announce my decision and give myself some accountability, but I have a little to share with you. Tiny Mystic will be an RPG using a similar battle system to the one I had planned for Mystic G. In fact, it’s called Tiny Mystic because I’ve decided to take a lot of elements from Mystic G and apply it here. I’ve been working on Mystic G’s lore for some time now so it only makes sense to reuse some of that material. Day one has mostly been me planning on paper and making sure I keep the scope small.

Now as much as I want to be, I am not an artist. With that being said I will be using the ‘Tiny, Tiny, Heroes’ assets from Kacper Woźniak for the characters (the other reason this is called Tiny Mystic). I’ve always liked the assets and thought this would be a good excuse to use them. I am still looking around for asset packs to use for everything else, but with the resources available I shouldn’t have a problem with that. On the other hand, I haven’t come up with a plan for the audio, but I think that is something I will tackle when the time comes.

Today is just day one, but it is my hope that these days won’t rack up. By next week I hope to have some a bit more concrete to show you all and by the end of the month, I’d like the battle system to be coded. The idea is not to move fast, but to gain the experience I need to advance. With that being said, have a wonderful day and I hope you come back to check my progress.

 

Miru Chat Beta 3 Release

It has been nearly two months since my last post and I apologize for that, but I can assure you that I have been doing some pretty neat stuff. Ludum Dare 39 is this coming Friday so before it begins I want to share some of the things I have been working on with you all.  If you remember back in March I was working on an Android app that would allow users to chat with each other while watching youtube videos. I wrote a post mortem after working on the idea for a bit, but after some time I decided to pick up the project to see how I could improve it. My goal was to get it at a state where I’d feel comfortable putting it on the Play Store, but after some unforeseen issues that won’t be happening at the moment. However, you can download the apk on this page and sideload it.

Download Miru Chat Here

 

How to use Miru Chat
  1. When you install Miru Chat it will ask you for a username. This will be whatever you want to show up as your name in the chat. You can also click on the checkbox to have it remember your name when you open the app again, otherwise, it will ask you for your name again.
  2. Once you’ve selected your name you can either host a chat room or join one.
Hosting a Chat Room
  1. To host a room, you must name your room in the top field and enter a youtube id in the bottom field. (i.e. ‘BpCarkGGoxI’ would be the youtube id if the link to the video was ‘https://www.youtube.com/watch?v=BpCarkGGoxI’).
  2. Once you are in the chat room you’ll need to invite other users by tapping the ‘Invite Users’ option in the menu on the top right.
  3. This will open a dialog. You will need to enter the name of the user you wish to invite. This will need to be the name that said user made in the above section. If successful, you’ll be able to share the room id to said user.
Joining a Chat Room
  1. If you are joining a room you’ll just need the room id from the host. Once you enter that into the top field you should be able to get into the room. That’s it for someone joining.
 

Wanna play Pico 8 on Android? Get Super Pico Player!

It has been about two weeks since my Cards of Magi AE announcement and things are still going swimmingly. I hope you all aren’t getting too anxious to duke it out with a deck and die, but if you are I might have a pretty good remedy. There are plenty of great games to play using Pico-8! It’s a wonderful fantasy console that is also its own devkit. You can use it to make games or use the built-in utility to download other games. I thought it would be kinda nice to be able to play these games on my Android so I decided to make an app that did just that. I introduce to you Super Pico Player.

Super Pico Player will take an HTML5 export of a Pico-8 game and load it into a nice little webview with all the buttons provided. It’s in its early stages but as of now it can play a pre-loaded copy of Pico Racer and load carts in your external storage. The HTML file that is generated by Pico-8 might need some modifications to fit and work properly with Super Pico Player. The information on setup can be found on the Google Play page for the beta edition of this app. That’s right! You can try Super Pico Player right now on your Android device. This started as a quick and fun project, but I would love to work on this more so be sure to tell me how you like it.

 

Ludum Dare 38 Post Mortem – Never Throw in the Towel

Another Ludum Dare has come and gone and as always I am a better person for it. I can tell that I have learned a lot since my last Ludum Dare and it feels great, however, Ludum Dare 38 was probably the most difficult one for me. There was nearly a point where I thought all was lost and that I’d never finished, but I wasn’t about to have that on my record. I will now go through my three days during the event, what went wrong, and what went right.

Ludum Dare starts Friday at 8 pm in my timezone and that’s two hours after I get off work. Needless to say, I was a bit tired from the goings of my day job so I decided that I would spend the night brainstorming. I actually didn’t get the theme til about 10 pm because my fiance wasn’t home and we do this big hoorah together. Once she got home we popped in a couple of movies, I took out my notebook, and let the brainstorming commence. The theme of ‘A Small World’ was not my favorite and it showed. I eventually came up with this joke idea where you’d play a samurai who must travel the world and defeat other samurais except the world was ‘small’ and you could basically find all the samurais in mere seconds. I couldn’t think of much else so I decided to go with it.

I woke up sometime in the afternoon on Saturday and got right to it. I decided prior to the jam I would try out a platforming framework. This was a very bad move as I assumed the framework would save me some time, but the time I would have saved was spent learning how to actually use the thing properly. I had made an assumption that it would be easier to use. By the time Sunday came around I was able to cobble together the player character and his weapons. I decided that the player samurai would serve as a template for the enemy samurai where I would just hook up their AI accordingly. Once that was done all I had to do was the UI and the levels which was how I planned to spend Monday…but I was presented with a problem. The framework’s enemy AI scripts were very limiting and it wasn’t gonna allow for what I was going for. I hit a dead end and was seriously worried that this might be the first Ludum Dare I failed to finish since 2014.

It was Monday at around 1 am when I realized that my plan was a failure and I had nothing with less than 24 hours left to go. I refused to allow myself to not finish a Ludum Dare so my only recourse was to think of another game that could be completed in the time remaining. Who was I kidding though? I could barely think up an idea in the first place and I never liked the original idea to begin with which is probably why it fell flat. It wasn’t until 4 am that I came up with an idea of ‘worlds’ battling over space in the universe. I imagine it as the “worlds” being represented by tokens and they would knock each other off a platform. It was a solid idea and all I needed to know was if I could finish it with the time I had left. I wrote down my plans and exactly what I needed for this to work. At this point I was exhausted and rest was needed, but I would have to get up and hit it hard.

Situations like this is why I always take the last day of Ludum Dare off work. I try to finish on Sunday so I have a day to rest to avoid burning myself out since I develop full time and it’s never a good idea to follow up Ludum Dare with more development, but I didn’t have that luxury this time around. I got Monday around noon and hit the ground running. I literally laid out my game plan for what would soon be World Masters before I went to sleep so I all I had to do was follow it. I finished World Master in about five hours with three hours to spare. With all the odds against me I pulled together one of my best Ludum Dare games. Not much went right here and almost everything went wrong but I learned a valuable lesson to always give it my all and never fold!

 

Introducing World Masters & Cards of Magi

First I want to apologize for the website being down. Forgot to renew after my trial period for the new server. Anyway, the site is back up and I got some goodies! Since the website has been down, I have been working on the 200 Word RPG Challenge in which you are instructed to design a tabletop game under 200 words. I thought it might be fun since I have been really focusing on my craft as a game designer. The game I created is called Cards ofMagi and it’s loosely based off Mystic G! MY fiance and I have been playing it a lot and we think it’s fun. She actually has been more excited to play than me. Hopefully, all of you out there will feel the same. I’ve decided to flesh out the rules and if you want to see the updated rules you can do so.

Now the real reason I am here is to announce that I have completed yet another Ludum Dare. For Ludum Dare 38 the theme was “A Small World” and this was probably my hardest Ludum Dare since the first once I completed. I am in the process of writing the post mortem for it, but you can play World Master at my Ludum Dare page. The menus and related pages should be updated with these new games links soon. Hope you enjoy my games and there is more to come.

 

[Retro Post] Ludum Dare 33 – Hunter Spade Devlogs/Post Mortem

[This is a post from a blog I use to manage before this website existed. I’ve tried to clean it up while keeping the integrity of the old post. Enjoy!]
image

Wow! It’s been awhile…I didn’t expect Ludum Dare 33 to take me where it has taken me the last month. This post was private and could only be accessed via a link I gave out before the event. Now that #LDJAM is over and the judging has ended I have made this post public for all to view!

I also intended to announce a beta for the Android edition of Hunter Spade, my entry for Ludum Dare 33, but I have encountered some last minute issues. Preparing for Hunter Spade’s beta is the main reason for the lack of posts this past month. While I may not be doing an open beta for awhile I do have slots for my closed beta squad. If you’d like to participate, own an android device, and have access to the play store then send me an email (Asixtrigger@gmail.com) for more info. (or you could pledge $5 to my Patreon and have access to all my game builds fo life son! :D)

Below you can view all my developmental logs and my post mortem from the event. There is also a link to the Ludum Dare Edition of Hunter Spade. I have also listed all assets used (if I forgot to list an asset please let me know via email: Asixtrigger@gmail.com).

Development Logs

—————————

Log #1 – http://ludumdare.com/compo/2015/08/22/asentrix-33-log-1-were-just-getting-started/

Log #2 – http://ludumdare.com/compo/2015/08/22/asentrix-33-log-2/

Log #3 – http://ludumdare.com/compo/2015/08/23/asentrix-33-log-3-coming-along-smoothly/

Post Mortem Draft – https://docs.google.com/document/d/14HJCGebzXV-zG247-n1rvmeRcUqySmFTafJPmDoS3yk/edit?usp=sharing

Game Download Page – http://ludumdare.com/compo/ludum-dare-33/?action=preview&uid=30137

Credits
——-
Music
——-
http://www.newgrounds.com/audio/listen/121784
http://www.newgrounds.com/audio/listen/589914
http://www.newgrounds.com/audio/listen/72786
http://www.newgrounds.com/audio/listen/510875

UI Graphics
——
http://textcraft.net/
http://opengameart.org/content/10-basic-message-boxes
http://opengameart.org/content/space-parallax-background
http://www.dafont.com/alpha-quadrant.font?l%5B%5D=10&l%5B%5D=1

Ship Graphics
——
Asix Jin (me)

 

Two Games that Started it All!

I am now hosting two games that basically are the starting points of my game development Journey. You can now play the IndieQuilt 2nd place winner, Force Defender, and my first successful Ludum Dare entry, Monster Buster. Both can be played here directly on this website and I am glad to be sharing them with you. I will be trying to add more games to this site for you to play and/or download! Stay tuned and enjoy!

Play Force Defender

Play Monster Buster

 

[Retro Post] My Adventures in Pokemon Hacking

[Disclaimer: This post comes from a blog I maintained before this one. I tried to clean up the grammar and spelling, while also keeping the original post in tact]

With the seventh generation coming soon, I figure it would fun to play through all the main series Pokemon games. My girlfriend is also joining me on this adventure through the legacy that is the Pokemon series. While I take a nice trip down memory lane, my girlfriend will provide fresh eyes into the twenty-year-old series. We just completed the first generation and while I plan on sharing our experience with you all that’s not exactly why I’m here.

Going into generation two, I thought it would be fun to put our game winning teams from our generation one games into our generation two games. I must admit, the only reason I even considered this is because I thought there would be tools available to make it a simple process. Unfortunately, this was not the case with the generation two games, but I decided to spend my weekend attempting to add my winning team from Pokemon Red into my girlfriend’s Pokemon Silver game.

I spent nearly all of Friday looking up available documentation and tools. As stated previously, I incorrectly assumed that there would be tools that would magically do all the work I needed to do. I soon realized that not only would I have to do some hex editing, but I would also have to do some research into scripting. While hex editing isn’t new to me, scripting is something I had never tried before, but I really wanted to see this hack through. This is the boring part of learning…researching and understanding. I believe I fell asleep watching some video tutorials, but by the time I got up on Saturday I was ready to put my likeness into Pokemon Silver.

Most of my work early Saturday consisted of me pulling together all the knowledge I had gained the day before. I wanted to be sure I understood what I needed to do in order to make my hack successful or to see if it was in a reasonable scope. With the help of a mapping program called JohtoMap, I was able to easily look up the hex addresses where any event on the map was. I targeted Youngster Mikey on Route 30 for my hacking purposes and it took me nearly all day to understand how his code was pieced together. Fortunately, there was a nice guide that explained how trainer battles were put together and after learning some preliminary stuff, I was on my way to manipulating little Mikey to become me.

By the time the sun came up on Sunday morning, you could fight “POKeMON PROF. ASIX”.  Using this tool I found, I’d inserted myself into an unused trainer group for “POKeMON PROF.” where I assumed data was to go for a fight with Professor Oak. After that, I taught myself how to find free space within a rom to write my own text for the game and have my new trainer battle use it. At this point, I had this custom battle where you would fight me under the disguise of Professor Oak, but that wasn’t enough. More text editing allowed me to change the “POKeMON PROF.” text to “GAME DEV. “ and I also injected my own trainer sprite into the game. In my final product on Route 30 by Mr.Pokemon’s House, you can cut down a tree to reach a battle with “GAME DEV. ASIX” using my winning team in my recent Pokemon Red playthrough (movesets the same as well).

The hack is meant for my girlfriend, but when I get a chance I’d love to re-edit it so that all may enjoy the adventure I had in learning how to hack the generation two Pokemon games. The only thing I didn’t get to do is changing the music for my battle without changing the music for every other trainer. Achieving this, as I understand it, would require assembly and that’s a whole can of worms that cannot be opened on a weekend. Thank you for reading and I hoped you enjoyed the subject of discussion. My post on my experience playing the first generation for the first time in 20 years ago along with my girlfriend who’s never experienced any Pokemon game will be coming soon.

 

Miru Chat Post Mortem

Introduction

So jumping straight into, Google made an app where you could, to my understanding, watch Youtube videos while you chat with your friends…but this app is only on iOS. I don’t know the reason, but my co-worker who informed me of this said it was because they couldn’t figure it out. Whatever the case, I decided that designing an app in which you could watch youtube videos with people in a chatroom should be a fairly easy thing to cobble together. I have to admit…I’m surprised I have gotten as far as I have. I really didn’t think it was as easy as I thought.This is a quick little write up about Miru Chat, the app where you chat and watch!

Plan of attack

The moment I decided I was going to make this app I had to see what there was to work with. I figured there were enough libraries out there to achieve my goal. I correctly guessed that an API/Library should exist to handle the chatting aspect. I quickly found a service called SendBird that had a decent enough free/trial edition for me to get my idea off the ground. Now I just needed to figure out how to play videos and sync them across multiple devices. I spent around thirty minutes to an hour trying to see if there was something out there and with no success. At this point, I had to jump into problem-solving mode and I figured if I found some way to have the host pass information to a server that the clients could connect to and receive the information from then I could just control the YouTube player provided by Google’s API. In my search, I came across a service called PubNub that does just that! Now that all my tools were assembled I could get to work!

Getting to Work

I decided from the jump that I should probably set up the chat room. For something of this caliber, I knew the chat would work separately from the synced youtube player so I decided to get the chatting out the way. SendBird was a bit complicated to use, but it’s well documented and that’s what counts when you have an SDK. After scanning their documentation I cobbled together a quick little login menu. In the login menu, you’d pick whether you want to host or join a room. If you were hosting you’d have to give a username, room name, and a youtube link that you wished to have played and the clients would enter the room name they wished to join and their username. It took me awhile to get used to SendBird’s way of doing things, but in about eight hours I had a functioning chat room.

With the chat room functionality out the way, I quickly implemented the code for the Youtube player. I have experience with the library so it didn’t take much to get it all hooked up like I wanted. The chat room interface was simple. One the top would be the video player and the bottom would be the chat and with all that, in place, all I needed to do was sync the youtube video. While I still can’t exactly explain what PubNub does, it speaks volumes to how easy it is to use. I set up the host to push out updates on the status of the video and the clients subscribe to a channel to get these updates. When a client receives an update it would read the resulting JSON and perform a necessary task to sync the video with the host. If the video of the client is more than 10 seconds behind or ahead, the client would resync the video. The host is also able to pause and play the video which would do the same to any clients connected. It was very cool to finally see it all in action.

Where to go from here

This entire project started simply because I wanted to know what would go into making an app that in essence did the same thing as Google’s Uptime. I thought the idea was fun enough to try and duplicate one my own, in a sense. I definitely don’t have the time or money require to take this to the next level, but I really want to clean up this concept I have here. Here’s a list of things left to do with the project if I decide to continue:

  • Giving the host the ability to select the youtube video to watch and change it at will.
  • Allow clients to set the sync time
  • Clean up my SendBird implementation
  • Design a better chat room
  • Allow the host powers to be given to any one client

This project was really fun and I am glad my coworker gave me the heads up. A lot has been going on and this project was just what I needed to get my designer and developer blood boiling again. I have been working hard to get Hunter Spade Redux in tip top form and it can be tiring. It’s good to take a break and work on something totally frivolous sometimes. Thank you for reading my post mortem on my Miru Chat project. I hope you enjoyed and if you have any questions please do not hesitate to get in touch.

 

 

[Retro Post] Item Sweep Beta

[Disclaimer: This post comes from a blog I maintain before this one. I try to clean up the grammar and spelling, but I tried to keep the content in tact]

Wow! It’s been awhile…Almost a year since my last post and there’s a good reason for it too. I have been crazy busy, but we’ll catch you up on my fabulous life later. I am here for one reason only and that’s to tell you I have entered another game jam and as always it is time to further my skills as a game developer. The jam is “A Game by its Cover” where participants take one of these epic covers from the My Famicase Exhibition as inspirations for an epic game!

I choose ITEM CONNECT as inspiration for my title Item Sweep! In as little words as possible, it’s a minesweeper-like game where instead of mines you are trying to find a chest that contains various items that you wish to collect. The overall object is to collect all the items by successfully clearing boards, but the game can still be enjoyed as a MineSweeper clone.

If you’d like you can follow the development of the game on this blog or by simply downloading the beta from the Play Store. I will be constantly updating this beta throughout the jam so you can see if from start to finish. Just go to the Play Store on your device and search for “Item Sweep”.

[UPDATE 4]: Coming to the end of the road here. I try to have this thing finished before the weekend was out, but was unable to. I’ve changed the UI so the game can look less dry and add a test Collection Mode. It’s not functional but you can get a taste of what it’ll be.

[UPDATE 3]: I’ve been busy this weekend and have not been able to work that much on Item Sweep, but I really wanted to get something out there. I’ve added the win mechanics for the game. If you happen to flag the 5 Chest Tiles on the simpler smaller map they will reveal themselves signifying a win. My next step is to add options for difficulties and get to the part of Item Sweep that will separate it from a simple Minesweeper clone.

[UPDATE 2]: Another Update has been added to the Play Store. Now you can flag the tiles you believe to be a chest by switching between sweep and flagged mode. Also only 10 chest spawn (just like in regular MineSweeper). I also fixed a bug where the music would play over itself after revisiting the title screen.

[UPDATE 1]: Just put in an update to Play Store that adds in some music and will uncover all tiles when you lose. Also, the playing field has been reduced from 10×13 to 9×9 which is the easy difficulty board size.