Monday, December 14, 2015

Quick Update

Hey all,

Just a quick update.

I've decided that I'm going to extend the opening sequence of Chang-e to allow the player to adjust to the world and ease into the characters.

I'm currently looking for an artist now, too. If anyone wants to contact me about that just email me:

If you do email me, send some sample work that I can get a gauge of skill level and such, the standards aren't high by the way.

We can discuss schedule and payment then.


Saturday, November 28, 2015

Quick Update, with Pictures!

Hey all,

Been hard at work on Chang-e, so I'm gonna keep this update short.

The battle system is almost complete, the first level is about halfway done!
I will be continuing to polish the game and make it the best RPG that I can make! Channelling my inner "shonen spirit", as my friend would say.

Anyway, I promised pictures, so here goes!

These are pictures taken from the third puzzle in the tutorial, it's not meant to be difficult. This tutorial will teach the player how to sprint into things to shake objects loose from trees and other objects.

The items found in this way have a special effect in the game and will encourage the player to fully explore the environment they're in, it's game critical, like, the game will be REALLY hard if you don't find these.

I wanted to promote exploration of the game world, and for that I wanted kind of large areas. The game doesn't have the concept of potions and other items, so I needed a way to promote exploration and incorporate that into the larger scheme of the game design. I can go in depth about it later, but I'll leave it at that for now.

Yes, I know the character looks like Ness. Yes, that will change. Yes, it's placeholder. Yes, I was testing my art skills. No, they're not any good.

Anyway, if you have anything to say about these images, let me know!


Saturday, November 14, 2015

Game Engine Design 101: Component Based Systems

Hey all,

I often find myself answering questions about how to design a game engine, what a game engine is like, what to start with, etc. etc.

So, as of today, I'm starting a 101 series on designing a game engine.

The good news: You can make a game engine by yourself!
The bad news: It's hard work!

From here I will assume a few things:
  1. You have Visual Studio, Code::Blocks, XCode, Eclipse, or some other IDE (Integrated Development Environment)
  2. You know how to use said IDE.
  3. You have a grasp on C / C++.
If your grasp of C / C++ is kinda okay, or meh, or whatever, then you're okay. If you want a primer on that let me know, I may write a 101 on that.

Before I get started, all of this code (from here on out) will be referenced from my game engine here (and it's open source!): JFramework

So, without further delay, let's start the tutorial.

Two GameObjects: Character and Egg.

Every object in a game is known as a GameObject, which are built up of Components.

"What are components?", I hear you ask. Why, they are the building blocks of GameObjects!

"You said that earlier..." you may say. I will follow up with this: What would a GameObject contain?
  • A position? A rotation? A scale? An alignment on an axis? (All of these can be combined into what's known as a Transform)
  • A hitbox? A hurtbox? Mass? (Known as a PhysicsObject)
  • Textures? Draw mode? (Known as a Surface)
How do you get all of these things to have such unique features, yet keep the code easy to read in the future?

Easy, we use Component based design to solve this.

The main paradigms of Component based design are:
  1. All things that a GameObject can contain will derive from the Component base class
  2. Inheritance will be kept to an absolute minimum. (Ideally no deeper than 1 level)
Without further ado, some code:

This is what our base class will look like. Every component will derive from this class and implement the methods that are marked as "virtual".

Each "virtual" method is set "= 0" so that when anything derives from our base class, those methods MUST be implemented. This is known as creating an abstract class, by the way.

Each Component will be aware of its owner, which is a GameObject, and its unique identifier, for searching purposes.

What will our Transform class look like? Simple, like so:

Notice the those methods at the bottom? How they're not set to "= 0" like our component class? We are implementing them, as we should / have to. Some of which in a .cpp file, which you can see in Source/Components/Transform.cpp in the project I already linked.

"What's the point of this?", you may ask. Let me show you the GameObject class and how it utilizes Components:

Notice how our GameObject class has a vector of Components? Almost like it's built up from them... right? Imagine building a GameObject if it had a specific Surface object, a Transform object, a PhysicsObject object, it would look messy and would be hard-coded, not ideal.

In this example, an object can be missing components and still work. What if a GameObject doesn't need a hitbox? Easy, just don't give the GameObject one!

What we now have is an interface in which Components with many different features can be responsible for updating and managing themselves when need be.

How do I update our Components? Also easy! Remember that "virtual" method named "Update" in our Component class? We're gonna use it, yep.

Now, no matter how many Components our GameObject has, this method will always scale to update every Component.

I'll end the lesson here, next time, I'll discuss how to utilize these Components in order to draw, move, and collide GameObjects. If you didn't quite understand, it'll all come together then, I'm sure.


Sunday, November 8, 2015

Some New Songs!

Hey all,

Real quick, I wrote three little musical quips that I plan to edit later, but I thought I'd let you into the music writing process.

Dooder's Song
Simple Sad Thing
More Town Music

That's it, if you have any comments leave them below.
Yes, they are very WIP, so yeah.
Also, don't steal it. You still know what that means.


Monday, November 2, 2015

Hard at Work

Hey all,

I'm on a week and a half long vacation from work so I've been working on Chang'e to have something neat to present at the end of my sprint.

By the way, I'm using Jira to manage progress on Chang'e, thanks to it, I've been more productive than I have been in a long time! I'm not being paid by them, but it's a great product for when you're starting to lose track of what you need to do or lose vision of your project.

For a while there I was feeling a bit lost and had a million things I wanted to do, so much so that I was just working on "cool things" (i.e. extra features) because it seemed like something I could do in the immediate time frame. Don't be like me, manage yourself properly.

Anyway, here's an art thing I did, concept this time:

No stealing, foo.

I have been drawing other things recently, but I'm tired and don't wanna watermark them all.

Chang'e is looking good overall and I hope to get a playable demo out sometime in the next half year or so. Crossed fingers...?

The above is not a demo release date, it is PURELY hopeful wishing.


A very late Witcher 3 review

Hey all,

As with any product, software or otherwise, just because it looks pretty on the outside doesn't necessarily mean that the product was well designed or built. The Witcher 3 is an excellent example of how (once again) great graphics do not make a great game.

To sum this whole review up: The Witcher 3 is a buggy experience in which the player does not spend a lot of time playing the game, has sluggish controls, with certain aspects of the design being backwards, and is socially regressive. To the game's credit, the story is fairly solid with a few elements being from left field. There are a lot of things to do in the world of The Witcher 3 as well, taking me roughly 60+ hours of total playtime before sitting down to write this. If you enjoy long games that are mostly story, you chose the correct game.

To clear up any confusion: I have not played the Witcher 1 or 2, so I had no expectations going into this game.

To clear up any more confusion, I have also not played the expansion, Hearts of Stone, which I hear addressed some of the issues I had. Since I'm not going to confirm those by paying more money, I'll pretend that it doesn't exist, and review the core game.

I feel like this goes without saying, but from here on:


The Witcher 3 is the conclusion to the Witcher trilogy which is based upon the prose of Andrzej Sapkowski, the story follows Geralt of Rivia and his many adventures across the world as he tries to recover Ciri, a girl whom he raised who has the ability to teleport between worlds. Many things happen during his journey, taking him to various plains, islands, castles and the like. Geralt's quest sometimes will require him to kill monsters (as a Witcher should.), fetch items, explore ruins, etc.

The story is overall fairly solid with a few things that really don't make sense. For example: before one of the key decisions that determine which ending you get for the game, Ciri is insulted by a girl who has been living in a lab, for who knows how long, but who is this girl? Why is this girl even here? Why does Ciri let what the girl says even get to her? On top of that, you never see the girl again, so it's like she's just there to say an insult and leave, that's plot convenience for you I guess..?

Not to say that the writing is TERRIBLE, it's just okay, that's all. I found myself not caring much for the characters or the ending I got. I chose Triss, by the way, it changed virtually nothing, it was stupid.

The controls for The Witcher 3 are easy to understand, just...

----------------------------- RANT INCOMING -------------------------------------
The controls for this game are incredibly sluggish, where hitting a button requires a wait time of roughly half a second before any real action happens. This makes combat difficult for virtually no reason and makes navigating indoors hilarious. I swear, I kept running into shelves and destroying valuables, and the NPC's didn't care at all, it was great.

I'm not kidding, CD Projekt Red had to patch the controls to make navigating indoors easier.

Geralt moves with such a weight that you can really feel how much gear he's carrying, and that's great, but with that comes the cost of a terrible delay. His combat motions take so long to commit to (even his "quick attack") and his motions, even for a quick attack, are incredibly impractical, involving spins and ducks, which eat up even more time.

Contrast this with Dark Souls in which there is a certain delay to the combat, but the movement controls are incredibly smooth and responsive, it's directly incorporated into the design. The combat in that game is sluggish to reinforce player thinking, lest they be punished for doing something stupid. The Witcher 3 doesn't do this, at all, since combat is so easy (more on that later). The Witcher 3 is sluggish in all respects, and CD Projekt Red acknowledged this.

The graphics are great, if you're wondering, with an incredible draw distance and lots of detail. The Witcher 3's dev team clearly worked hard on the visual fidelity of this game, it shows.

From here on I'll compare this game against my 5 game design rules (from an earlier post). This is by no means authoritative and is purely an opinion. If you disagree with me, that's fine, really!

Coherence / Following the rules: "The game must be coherent and consistent, game objects / characters must obey the rules that the game designer sets early on in the experience, no exceptions."

Besides the obvious in game bugs, overall The Witcher 3 is solid with the rules it sets early on the experience. There are no sudden changes to the combat, there are no sudden changes to exploration, the game doesn't try to hit you with any random events, which is a great thing!

The one problem that I experienced with the game that's worth mentioning is in regards to hitboxes, namely, the enemy hitboxes for their attacks are huge and don't match the model. This may seem like a minor point, but it feels like all of the enemies (especially the larger ones) have mismatched hitboxes, with attacks that you swear didn't hit you, yet they did, it's jarring.

Enemies also don't necessarily respond to being hit the same way that Geralt does. It makes sense that a large creature wouldn't flinch when struck, but even creatures of similar stature to Geralt can just swing at you THROUGH your attack, yet you cannot do this, it's kind of silly. Combat is stilted in the enemies favor because the combat really is that easy (more on that later).

This part is pretty short, as there isn't really much to mention here, just the hitboxes issue. To be completely fair, I feel like it says a lot that the enemy hitboxes are larger than the player's by such a huge margin.

Score: 16/20

Do or Show, Don't Tell: "The game must show the player or make the player use mechanics of the game in order for the player to understand them. Allow the player to learn mechanics in a safe environment with minimal punishment so that the game can introduce challenges while feeling "fair"."

The Witcher 3 does a good job of showing the player what is expected of them in terms of combat and navigating the world, by having a "do this by hitting this button" tutorial in the form of a training session at Kaer Morhen (the game's starting area). The combat at this point comes off as complex and deep with many options in terms of approach and playstyle (more on this later...).

Unfortunately, due to the game's various other elements, including leveling up, skill trees, item usage and the like, the game only explains these mechanics in *very* small text, with little detail, and the text is easy to accidentally dismiss (tapping the X button out of sheer boredom, for example.). This creates moments where the player feels a certain disconnect from the mechanics that the game is trying to explain.

Honestly, I'm not sure *why* The Witcher 3 has as many mechanics as it does. Let's go over the (not at all fully inclusive) list of mechanics:
  • Alchemy
  • Blacksmithing
  • Exploration
  • Combat (Geralt)
  • Combat (Ciri)
  • Fist fights
  • Witcher vision
  • Bombs
  • Oils
  • Alcoholest
  • Conversations (Some of which affect later choices etc. etc.)
  • Equipment Statuses
  • Quests (Side and otherwise)
  • Skill Trees
  • Augmenting Weapons and Armor
  • Economy
  • Equipment Weight
  • Bounties
  • Horse riding
  • Experience points
I'm sure I'm forgetting something here, but the sheer number of things that the player has to maintain and be aware of can be boggling, to say the least. Imagine coming back to this game after 6 months of not playing it, there will be too much to remember. With all of these mechanics in which the tutorial isn't much more than a few glorified textboxes, the player doesn't receive any reinforcement upon being introduced to the mechanics of the game. A lot of the mechanics in this game don't have very much of an effect on the overall experience... Except when they do and change the ending of the game, see what I'm alluding to here?

Upon hitting my second tutorial that involved textboxes, I knew this game was going to be difficult for me to cope with.

As an example of how the mechanics aren't reinforced well: I didn't realize how leveling up in the game worked until I hunted down a monster, killed it, and checked how many experience points the enemy was worth. (Here's a hint: not much.) Levelling up in this game comes from doing quests and seeing events in the world.

----------------------------- RANT INCOMING -------------------------------------
This leads into my next point about how this game is mostly narrative, not gameplay: even levelling is based upon watching cut scenes and not by exploring and experiencing the world. The Witcher 3 has a huge and vast world to explore with many potential secrets to be unearthed, but going out into the world without a quest in tow is a mostly fruitless task, as the player isn't hunting for treasure nor are they gaining levels. One of the many fine balances of an RPG is that if the player isn't gaining treasure, at least progress is being made in the form of levels, but in The Witcher 3, that's not the case, it's counter-intuitive! How could they get this concept so backwards?

Overall, this game is complex, very complex. Maybe not daunting at first, but the sheer number of mechanics could be daunting to casual players or to players returning after being away from a few months. With the way the game introduces the player to the various mechanics, with mostly textboxes, the player doesn't learn by doing, nor are they shown how to utilize a mechanic, instead, the player is TOLD how the mechanics work.

Score: 12/20
Exercise the Brain: "Learning is fun, variety is learning. Multiplayer games are great at this."

During my time playing the Witcher 3, I only remember one puzzle, which was at the end of a side quest (Keira Metz), almost all other puzzles are solved for you via the in game mini-map. I'm not stretching on this point: I had to actually TURN OFF the mini-map guidance (default on) so that the game would STOP telling me exactly where to go and allow me to absorb the universe and let my sense of adventure take over. The Witcher 3 takes away the user agency to solve puzzles and find out where to go next. Most "puzzles" in the game only require the player to run around the room and mash the X button, which I feel like shouldn't be said, is not a puzzle.

Combat is not challenging either (yes, I played it on a higher difficulty), mashing weak attacks with the occasional strong attack will win you most battles. It felt as if staying aggressive rather than thinking and reacting was more beneficial. If the game wanted the player to fear monsters and combat with people, it should have punished me for mashing and not thinking. The combat has mechanics in place that SUGGEST thoughtful play, but they don't matter much. The player can dodge (short or long), parry, block, attack (weak or strong), and use items in order to achieve victory. Honestly, I only used items about once or twice willingly, all other times were required for a quest.

Don't even get me started about the fist fights, those are even easier, the pattern goes as such: Wait, parry the incoming attack, strong punch, strong punch, strong punch, win.

Finding treasure on the overworld isn't difficult either: a gold circle on the minimap shows pretty much exactly where the treasure lies, that's not a puzzle, it's not even a brainteaser. Upon finding treasure, the player may find additional side quests (which is awesome!), better weapons and armor (also awesome!), or items (which I hardly used...).

Overall, The Witcher 3 doesn't enforce player thought, it's not interested in quizzing you, and letting you win because of your own wit. This game would rather you run from story bit to story bit with your hand being held, and that, to me at least, is not exercising the brain, it's quite the opposite.

Score: 10/20

Content is king: "Neat particle effects does not make a great game. "Keep the great, trash the okay". A game with 10 hours of great content that the player will remember with 20 hours of padding is a 10 hour game, let's face it."

The Witcher 3 absolutely NAILS the content section! There's so much to do in the world, with a ton of side quests, and lots of treasure!

Side quests in The Witcher 3 have substance, there are cutscenes (comparable to the main story in terms of quality and development), have good storytelling, and are not just fetch quests. Each side quest is like a miniature mystery that needs unravelling, with little clues and hints telling the player what may have happened. In all honesty, The Witcher 3 may very well be one of the best detective games ever made. (I'm looking at you, LA Noire) The sheer number of side quests will keep any player busy for a long time, it's clear that when CD Projekt Red decided to make this game, they wanted to try and create a more real (in terms of living and breathing) game universe. They succeeded, pretty well in fact, I enjoyed the side quests more than I did the main story.

Some of the quests cover heavy, real subjects. For example, there is a quest where a dwarf is harassed because some racists don't like how he is into human women, saying things like "Hands off human women, dwarf!". In this quest, Geralt must make things right by "correcting" the racists. Quests like these (with real world issues) make the world that Geralt lives in seem that much more believable.

But did they make anything not worthwhile? From their design, no. Since experience points are gained from watching scenes, side quests are the best way to experience the world of The Witcher 3.

There's also treasure sprinkled throughout the world. As mentioned before, it's not difficult to find said treasure, but there's a lot to find. I can only remember 3 instances where the equipment I got was at all useful. Of course, the treasure being there is more than enough to spur a player along to figure out the contents. It's something to be appreciated that there's so many things to find within the world of The Witcher 3, I really can't say much more about this.

Overall, there's a lot of content to this game, a lot of it is quality stuff as well. My only gripe is that the overworld may be a little too big and sparse, despite the amount of treasure in the world, to justify its sheer size.

----------------------------- RANT INCOMING -------------------------------------
Speaking of content, the mature content for this game is VERY socially regressive. It feels like every woman is a sex object. I hate to be THAT guy, but I REALLY noticed it with this game. Almost every female protagonist that can be interacted with, can also be romanced, and Geralt can have sex whenever he wants, should he visit a brothel.

I mean, one could argue that since this is a medieval fantasy-esque theme it would probably be more accurate to the universe, but to that I argue that leaving this part of the game out would not have changed the overall experience. It's complete fluff, it does nothing, it's just kinda... wrong.

Either way, women throw themselves at Geralt, it doesn't make sense, blah blah, you got it.
Score: 19/20

Player Choice Matters: "Let decisions have weight, don't leave decisions up to the player that ultimately mean nothing, that's not fun."

The Witcher 3 handles player choice very well, with various skill tree options and dialogue options for the player to choose from.

The Witcher 3 skill tree leaves little material to discuss, it has various options for Geralt to grow by spending skill points that are acquired by leveling up. Geralt can grow his physical traits, gaining new abilities, or upgrading his spells, or various other stats, creating many ways for the player to craft their own unique experience.

In conversations, each dialogue option can have repercussions for the quest or subject in question, it's very interesting, as there are no "right" or "wrong" answers. The Witcher 3 likes to make choices "morally grey", in that the game tries to not punish you for whatever choices you make.

This would be a perfect score, EXCEPT there are cases where the "moral grey" case no longer applies, and the game doesn't really tell you when. The choices I'm talking about revolve around the end of the game, as there are multiple endings to this game. The choices revolve around how Geralt talks to Ciri during "key" points in the story, one of which involves getting in a snow fight with Ciri instead of trying to comfort Ciri in her time of need. In the case mentioned previously, the snowball fight is the "correct" answer (if you hope for a good ending), doesn't make sense, right? Basically, all of your choices don't really matter except when it does, and the game (and story) don't really notify you when you're about to change the course of the events of the game.

Overall, besides the one gripe mentioned, The Witcher 3 tries hard to let the player choose how to have their experience in its world, from upgrading stats and abilities to dialogue options, it's massive, and well done. Kudos, CD Projekt Red!

Score: 18/20

And there you have it, a very late, very bad review of The Witcher 3. As mentioned before, this is just an opinion, and not at all authoritative.

I'm sure you're asking me to make suggestions as to how to fix some of the problems in the game, to which I say...

1. Give more variety in terms of combat encounters. Give me a reason to fear the monsters in the world.
2. Have a way to encourage exploring the world without a side quest in mind. Maybe rank the treasure chests by level and difficulty to acquire on the overworld map?
3. For tutorials, let the player learn by doing, don't just tell them what to do. Maybe explain the levelling system, too.
4. I can't fix the story, or the balance between gameplay and story, sorry.
5. Puzzles should be real puzzles.
6. Dumb down the minimap.
7. Let the player know when their decision drastically affected the story.
8. Maybe shrink down the overworld size in an effort to make it more dense.
9. Walking around is sluggish, that should have been addressed during testing.

I may revisit this review and touch it up a bit, consider this a "rough draft" I guess?

Final Score: 75/100

Tuesday, October 6, 2015

A (Long Overdue) Update!

Hey all!

So, a lot has happened in the past few months, in terms of the Chang-e's development and new features!

- Thanks to some optimizations in the JFramework Engine (Github), levels have increased in size, by almost 4x!
- Clouds will automatically render on the overworld map.
- Areas can have unique enemies. No random battles!
- Battle system overhaul to be a bit better.
- NPC controllers now set animations for the characters that they control.
- Enemies have abilities in combat unique to them!

A lot of progress has been made, as proof, here is an image of one of the new areas:
(Remember, this stuff belongs to me blah blah, DON'T STEAL IT!)

There's plenty more where that came from! I'll show more as I gain confidence to show it all. This is moving along nicely and I'm excited to show you guys more of what I'm making!

What do you think? If it sucks, let me know!


Tuesday, August 25, 2015

Something to hold myself to

Hey all,

I'm trying to finish the Witcher 3 so that I can break it down and show how it stacks to my personal game design rules.

May be a bit longer, just finished Act II.


Sunday, July 5, 2015

SDL 2 (and extensions) on XCode 6 Tutorial

Hey all,

So I ran into an issue recently involving using SDL on Mac OSX and XCode, and would like to provide a tutorial showing my findings.

A Summary:

 XCode is not the best IDE in terms of telling you exactly what's going on. Apple forces you to create an app using their frameworks that aren't exactly practical in terms of multi-platform game creation, circumventing this is a real pain and causes a lot of headache.

I'm going to assume that you have some familiarity with XCode, I may skip over some details I consider trivial, like: "how to navigate a project". There are enough tutorials as it is on that subject matter.

Long story short, finding out all of this on my own:


With that out of the way, let's dig in.

Getting Started:

1. Download XCode from the Mac App Store, it's not difficult, I'll wait here.
2. Install said XCode (lol this doesn't need to be said.)
3. In XCode, Go to File -> New -> Project, Application -> New Cocoa Application

4. Enter a name for your project, and create it! Yay! Step one!
5. See the files highlighted in the picture below? See them? Yeah? Delete them, XCode generates those and we don't need them. If you want test cases go ahead, but I'm not keeping them.

Delete these files.

Handling SDL:

1. Download SDL 2 here: SDL 2
2. Download any SDL 2 extensions that you plan to use.
Examples include: SDL_image, SDL_mixer, SDL_ttf
3. Drag and drop the .framework files from each of these downloads to /Library/Frameworks, congratulations, you just installed SDL 2!

This is what my /Library/Frameworks directory looks like.

XCode and SDL 2:

Now that you have XCode, SDL 2, and your project started, we can now configure the project itself! THE FUN PART! (For many definitions of fun.)

1. In XCode, click on your project file, navigate to "Build Phases", and add your SDL 2 libraries as such:

 You want to copy the SDL 2 libraries with your executable, else you user will need to have SDL 2 installed on their local machine, not ideal.
2. Next, go to "Build Settings" and set up you "Search Path" parameters as such:

3. Set LLVM as such: (Also in build settings)
Note the part about Prefix Headers, we're not using one.

4. Next, we need to kill the test build step, because who needs that?

Click that area, select the Test build phase and delete it!

5. Set "Enable Modules (C and Objective-C)" to No.
6. Boom! Done! That wasn't so bad right?

The Stupid Part

So, there's an interesting bug in XCode, where if you try to link a library with unsigned code, XCode will crash. Hard crash. As in, the app forcefully closes. It sucks, really bad. Unfortunately, SDL 2 and its extensions are all unsigned! So I will help you fix that.

The issue is referenced here: XCode crash

1. Open a Terminal and navigate to /Library/Frameworks (that's the 'cd' command for those who don't use the Terminal.)

Yes, my Terminal is black and blue like that.

2. Code Sign all of your SDL 2 frameworks (You may need to have XCode tools installed, there are tutorials on that as well.)

3. The command that you are looking for looks as such:

Modify as needed for other frameworks

Clapping Time!

Congratulations! You now have a project ready to write SDL related code in! You can reference SDL just like this:

Give yourself a pat on the back,  you just saved yourself a crap ton of time! If you have any questions let me know in the comments, and I'll adjust the tutorial accordingly! This is my first time writing a publicly accessible tutorial about project set up.

If you want to actually draws things, there are MANY tutorials on that subject matter, and would be another tutorial in its own right, for now, I'm gonna leave it to the setting up part.

Anyway, I hope I helped you out somehow, and thanks for reading!

Saturday, July 4, 2015

That moment when you realize...

Hey all,

Today I was brushing up on my pixel art techniques when I took a step back and realized something:

I made 192 tiles.

Check it out:

I told you once, I've told you a thousand times. No stealing.

These tiles were all drawn by me, if any of you have questions on how to get started doing pixel art, ask me. I'm still learning and by absolutely no means an expert, but I'd say after 192 doodles I may have a bearing on something.

As for how that new level is doing, check it:
Not even the full thing! NO STEALING.

But yeah, just a quick update.
Happy 4th of July!


Tuesday, June 30, 2015

So Jimmy, How'd You Do in Florida?

Hey all,

As an update for the tournament results, here's what happened:

I won my first two matches very easily, I got to practice my Chun Li lightning loops! For the uninitiated, "lightning loops" refers to a (rather difficult) technique where Chun Li can do massive damage and look stylish. It requires me to "slide" my finger down the buttons (that is easy to mess up) within a fraction of a second, followed by a brief pause, and then a tight 1/60th of a second link into the next move.

My next match was much harder, against a player named 801Strider from Utah. I got destroyed, I lost 4 rounds in a row. I did my best to keep the rounds close, and I succeeded, but his experience clearly was above and beyond what I could handle. The match was streamed here: Capcom Fighters on Twitch. I was overall happy with my performance despite losing, I gave him some difficulty. Also, 801Strider ended up getting 2nd place...

The match after that was against a player named AceUnlimited. I lost a close set... I really shouldn't have lost, I just panicked for no reason. I won't provide any excuses but... I'm not losing to him again, I'm better than that.

Overall I ended up 2-2, in losers semis. Not bad, but I could have done better.

Evo is next, and you can bet that I'll be practicing hard to climb out of pools and show the world what I've got!


Friday, June 26, 2015

While in Florida

Hey all,

So, on the plane to CEO 2015 (, I managed to get some reading done from this book: Shigeru Miyamoto book, and felt REALLY inspired. I felt so inspired that I redesigned the first level of Chang-e, it's based on my hometown and I plan to put in many interactables to give the universe a very "alive" feeling.

I want the player to feel like the world of Chang-e is one that is worth revisiting, sparks curiosity, rewards exploration, and has interesting people.

The "final" outlook came out like so:

(A friendly reminder to not steal! Please don't steal my content, I work very hard on it.)

P.S. If you want to know how I'm doing at the tournament, my pool starts at 2pm on Saturday, June 27th. I'm in pool 10, tag: JimLi. I was doing well in casual Street Fighter 4 matches, made one guy very angry. Wish me luck!

Wednesday, June 24, 2015

Off to Florida!

Hey all,

A quick update, I'm flying to Florida for a fighting game tournament, called CEO 2015. It's going to be a lot of fun!

I'm bring this baby with me: (Apologies for the rotation, I'm on the bus.)

Tuesday, June 16, 2015


Hey all,

So, I've reached the point in the process where the engine is pretty much done, the game code too. All that's left for me to do is make the freaking game, and I can't art, so that's been a rough process.


I have been writing music, because I can do that!
Fun fact: I was classically trained during my time learning piano, so most of the stuff I write are lonely piano ballads.
I'll attach the link to my SoundCloud again, check out the two new tracks I uploaded for Chang-e:

Anyway, I got sidetracked. Basically I have to now work on the game, exclusively. No more engine work, or not much (cross compatibility restoration, it was working at one point, then I upgraded SDL and well, I'm here.) The last thing I really did for the engine was an optimization that allows for super huge maps, we're talking double the size of what I was working with before, it's amazing. Not to toot my own horn TOO much.

I've been working on the opening sequence to the game, and I think it will really introduce players to the concepts I want them to feel. I have to admit though, getting the tone right is difficult. That's the nature of working with an art form though, right?

From here on will mostly be art and music, screenshots etc. If anyone wants me to do a code article I'd be more than happy to, I love to share my experience with others, and perhaps you can teach me something as well!

I know these thoughts are a bit scattered, but I've been running on 3 hours of sleep, work has been stressful too. I'm surviving, but being the only engineer on a team really gets to you.

P.S. I have a YouTube channel that I'm running with a friend of mine, if you could check us out and maybe let us know how we're doing with this "Let's Plays" thing? I'd appreciate it. Shameless plug, I know. Forgive me.

P.S.S You get to hear my terrible voice!

Feasible Gamers

Thanks for reading!

Thursday, May 28, 2015

Moving Along

Hey all,

I've been really busy with work lately, someone left the team and now I'm the only engineer so... That's been a trip.

Anyway I finished writing a song (at least it's done for now.) and would love to share it with you all, and by share I mean that you can listen and you can't use it in any of your works!

Don't steal kids.

Also, Chang-e is moving along smoothly, I plan to take the weekend and design out the battle system properly, so that making battles from here on out is super easy. Wish me luck.


Monday, May 11, 2015

Starting the Story Over

Hey all,

I just got back to writing the story for Chang-e, and turns out that I have to pretty much start over. I felt that the original story was far too sad for the new direction of the game, thus I started over. Perhaps the old story will be in another game of some sort, but for now I will be writing a more jolly story that fits my writing style better honestly.

Just a quick update, nothing major.


Friday, April 17, 2015

My Personal Game Design Rules

Hey all,

So recently I've been talking with my friends about what makes a good game. I've had to repeat, many times, my personal rules when I design games that I feel makes a great game.

I'll gloss over them here:

Coherence / Following the rules: The game must be coherent and consistent, game objects / characters must obey the rules that the game designer sets early on in the experience, no exceptions.

Do or Show, Don't Tell: The game must show the player or make the player use mechanics of the game in order for the player to understand them. Allow the player to learn mechanics in a safe environment with minimal punishment so that the game can introduce challenges while feeling "fair".

Exercise the Brain: Learning is fun, variety is learning. Multiplayer games are great at this. A good game teaches everything it has to offer before the player stops playing. The more rigidly constructed your game is, the more limited it will be.

Content is king: Neat particle effects does not make a great game. "Keep the great, trash the okay". A game with 10 hours of great content that the player will remember with 20 hours of padding is a 10 hour game.

Player Choice Matters: Let decisions have weight, don't leave decisions up to the player that ultimately mean nothing, that's not fun.

That's really it, not that complicated. Before you ask, I don't like Heavy Rain very much, it's a movie. The above is subject to interpretation, and by no means a law, just the rules I follow. If you disagree that's fine, let me know, maybe I overlooked something!


Friday, April 10, 2015

The Spread of Misinformation

Hey all,

Today I read something that really struck me:

"Social media sites are more powerful than science itself, more powerful than reason, more powerful than knowing what you're talking about."

(It came from here: Click!)(Paraphrased a bit)

I would have to agree as well. It seems that people are really good at spreading misinformation that seems "logical" across the internet. Like, would you eat something common in salad dressings if you found out that one of the ingredients was commonly used as a household and factory cleaner?

What if I told you I was talking about vinegar?

At face value, talking about chemicals, vaccines, etc. and painting them in a bad light would make sense, but it's just interesting how many "facts" get through without thorough research and without peer approval. Google University is strong.

I guess what I'm saying is... Do your homework, and listen to experts. Trust your doctor.

Stupidity spreads. Lol.

Monday, April 6, 2015

Found the quote I needed to read.

"Love of self perverted to hatred and contempt for one's neighbor." - Dante

Credit to @honzogonzo for posting that. If he's wrong then blame him. Lol.

I feel like I suffer from having too much pride sometimes, and don't take a moment to be humble. Hopefully posting here will help.

Another Art Dump?

Hey all,

Project Chang-e (The project name, if you will) has reached a point now where a lot of the content is now in script, and minimal changes are actually made to game code. It's a strange feeling knowing that not a lot of coding is required from here on out.

I've been working on art recently, posted below.
Once again, they won't make much sense, but they will eventually.
I've been working on my drawing skills that aren't pixels, man it is rough. I have to get over my phobia of people laughing at what I draw, it's a long story, but basically I never heard the end of the jokes about how my art skills suck. I eventually only drew funny things on purpose so that laughter was the intention. I'm going to put that phobia to rest.

Anyway, the art. Appreciate, don't steal! I may put watermarks on these images at some point to protect them.

At some point I'll post what the game itself looks like, I can tell you now it looks at lot better than it did a few months ago! I'll be making more art and having an actual artist go over my work.

On another note, I'm gonna take the time to be more humble, I feel like I've been a bit of a prick recently and it's not healthy. Like, I feel on top of the world since I just got promoted at my job, get paid more, been winning at Street Fighter, making progress in art, music, and programming etc. But I don't need to talk about it every day / carry myself like I'm important. Time to take a step back and just appreciate what I have so far.


Monday, March 23, 2015

Mini update on game (+ Art!)

Hey all,

A mini update on the blog about Chang-e.

I haven't really talked about the game for a while, but it's moving along quite nicely. Currently in development is a dream sequence that will introduce the player to the variety of weird concepts and gameplay elements that this game has to offer.

Sample art follows.

If you can somehow make these disparate elements come together, great, you're a genius. But yeah, things are moving along quite nicely, maybe in the near future I'll show a full game screen, but not right now.

PS. Don't steal my content, you know exactly what that means. No, you can't use it. It's not even good, pay somebody else to do it, or do it yourself, it's not hard.

PPS. Seriously, don't steal it, it would make me REALLY sad.


Saturday, March 21, 2015

I play fighting games sometimes.

Hey all,

I somehow forgot to mention that I play fighting games, you can see me play here: long as the video is still alive that is. Start at minute 14.

That is all.
Oh yeah, I generally suck.


Tuesday, January 20, 2015

I made a thing!

Hey all,

I wrote some music samples that will be in Chang'e. I'll be extending them in the near future so that they're not so short. But for now, enjoy (or not).
Songs on SoundCloud (sssshhhh it's our secret, that's public)

Some things I learned:

- Writing music is hard.
- Writing a good melody is hard.
- Writing a good rhythm for said good melody is hard.
- Keep in mind the different keys I can use (C, D, etc.)
- You can't really write when there's something stuck in your head.
- Castlevania music is awesome (I already knew this)
- Writing to establish a mood takes time.
- With software, I can make myself sound better than I actually am at playing piano.

It was difficult even writing these two bits, but for now I'm a one man show, and enjoying it.

Leave any comments if you like / hate what you heard. I'd appreciate any feedback.


P.S. Music belongs to me etc. etc. Don't steal it, you know exactly what that means.

Tuesday, January 6, 2015

Feeling very unsocial

Hey all,

I'm gonna take some time to post about something that has been going on recently:

I'm feeling unsocial.

This has been going on for a few months, but I feel like I don't have much to say to people anymore. Maybe it has something to do with everything that has happened recently, or maybe it has to do with that I'm bored a lot.

I don't know. /emo /emu

Hopefully I can go back to my original happy self again soon. I think I just need more exciting things to happen.

Exciting developments coming soon...?

Saturday, January 3, 2015

Happy New Year!

I'm gonna make a whole new post for this!


That's my dog!

Pixel Art is Hard

Hey all,

It has been a while since my last post, fact is that I've been trying to achieve some sort of life balance.
In recent days I've been working on improving my art / music skills.

Since starting this adventure I have learned how difficult art and music creation are. I mean, I already knew they were tough, but now... I REALLY get it. I also don't like the idea of having stuff you make in front of others to judge, but that is the nature of such things / people.

So, before I exit this short post, I'll show some stuff I worked on:

I remade the chest from A Link to the Past! :D

A crappy torch I made.

I have a few others but they are WIP, like, REALLY WIP.

This whole venture started when I found this website: and started copying some assets from other games. As I copied others, I have been learning the techniques that sprite artists use in order to create the effects that they would like. Still complicated from my perspective. I deal almost purely in logic, as a programmer, so it has been a nice change of pace.

More stuff to come in the passing days.
If I worked at Nintendo as a sprite artist I would be fired within minutes. I would say that it would be the record for shortest time at Nintendo as an employee, except I already know of a case that would DEFINITELY beat my time. I know this story because I used to work at Nintendo as a tester during college, before I became a programmer. I could discuss about it in depth if you like, you can leave a comment or something and I'll discuss it without breaking an NDA.

This is not a New Year's Resolution. I wrote this because I wanted to.