My days driven by the system of habit to sustain my sanity and stay refresh.
I published another article on Medium. It’s about self improvement on sticking to what we’ve planned out in a day. It serves as a purpose to fight with passion drain that plagues me via the long development period project.
From time to time, my favorite git client like Sourcetree crashes, or hangs. I bet it’s because of lots of files being processed. Lately I turned into git command again. So it’s a good idea for me to keep track in blogging out some useful git commands discovered along the way of doing the project.
Hello, just wondering if you're available for freelance work? I need help with actionscript 3.0 in making a very simple game and am looking to hire someone for a couple of hours to help me finish it.
Hello, I saw you signed up on indie gamedev meetup. Thank you for that. I’m in toght schedule too but I see this might be a very simple project. Can you please send me detail over at haxpor (add) gmail (dot) com. I will take a look to consider if I can help. Thanks.
I thought about this for a really long time ago. One obstacle is my mom wouldn’t allow me to go hitting the big road. Yes, it’s not so safe in Thailand especially in congested traffic city like Bangkok.
You might already heard about the news of British cyclists who were killed from the accident in Thailand. That’s it. It’s sealed.
But I made it happened … 42.5 km intotal
The map above shows roughly places I need to visit in the day of buying a bike, carrying out my business and backing home, A -> B -> C.
My plan is to get to the bike shop, buy a bike and stuff, then use it to go carrying out my business then go back home. There’s no Wi-Fi, no 3G/4G (or whatever), just a plain saved map-images to grasp with curiosity along the way (yeah, asking around as well and I did just once). That’s me anyway, I love to go out without a proper equip of connectivity jargon.
That’s a shop. Oldie but cool.
That’s my boy.
I hit the road, and managed to take myself to B (in the map). The best trick is to go along the BTS line. There’s less likely for a chance to lost or miss the way.
The place I visit is the mall (Terminal 21). It’s good to have a small section of bike parking. I felt lucky and privileged.
And I’m in …
Then I hit the road again to go back to my home, it will be long distance (~34.6 km). The same trick, go along BTS line. I’m more familiar with the way back home, so it won’t be too hard.
In total, I stopped along the way back home to buy a bottle of water for 3 times. So it means 1 bottle of water per 11 km.
I started the cycling in that day at around 14:00, and backed home by 18:30. It’s ~4-5 hours in total. It took ~1.5 hours from A -> B (I also lost, and wasted some time around A area). I used around ~30 minutes doing business stuff at B, before I hit the road again back home.
That’s all the tools I need at this stage bought from the shop. The red one will be used to hang the bike in my home. This means, I need make 2 holes in the house.
1. Crashlytics is real-time processing data. If there’s a crash going on, you got it via e-mail and dashboard right away.
2. Crashlytics is able to extract and drill down to the lowest enough code level for you to easily track down the issues without a need to manually uploading desym file (but see the info below as well).
3. Web UI of Crashlytics attract you to work on resolving issues occurred. Open / Closed buttons is pretty darn sweet to click on.
I still have a curiosity about its build script, and desym file. I didn’t ask their support team just yet, but what I guess is below. If you have some thoughts about it, feel free to let me know.
I guess its build script would have to do something with the app/game ‘s build to extract desym information.
As I tested out, new build with strip debug info enabled is also processed fast, no need to wait for desym file to upload to its backend server, and I can see enough information to track down the issue in code-wise on their dashboard. With this quick, I bet that it doesn’t even upload desym file via its plugin program. So I thought the backend would communicate with its plugin program residing on the client system to get into desym file or debug information to symbolize things there and show on dashboard.
I was trying to learn more about iCloud and any other ways to access such documents of apps / games.
It turns out that you can easily access it via Finder, just head to ~/Library/Mobile Documents/. From there, you will see a bunch of app’s iCloud folder. You can take a peek at the game’s data especially savefile there.
Not to be surprise that it synchronizes with latest version very slowly.
I have one of a problem in my programming career. I think I’m slow in making stuff. If certain task would normally requires to have 1 hour to finish, I would eventually spend 3-4 hours. Specifically, during the design phase (sometimes) if I cant think about the best possible solution to approach I would stay idle, sleep, or just plainly lose several hours in the process then finally come back with a solution before working on it til finish. Thus it consumes so much more time than normal. But normally, I spend 3x times compared to normal ones would do for x.
Do you guys ever experience this? And What’s your approch or method while working to tackle those tasks down to efficiently utilize the time wisely?
I’ve come across the Internet to find this. It’s about craftsmanship perspective from Steven Enns.
It leads me to think about my own cases.
I always feel the development of something whenever I spent time really long enough for it in a day, and future consecutive days. You solve the problem, then you go on and develop it further, then you face with another issue, you spend time resolving it again, then you’re happy seeing things get developed a little by little. At the same time, you feel that your skill has gone a slightly better, confident level towards something raises up a little bit, you are now brave to tackle more challenge things ahead.
It all downs to one thing at a time, just long enough to pleasure its beauty. In 2013, I did so many things in which at the end I feel less. It’s true that I accomplished my enthusiasm in things I like to do, but for the core one (which I should focus on) has less for me. Yet, this leads me to another great article about splitting your attention will result in nothing get done at the end.
I can’t draw, but I really gladful that I finally found this nice resource. I might consider buying a cheap digital drawing tablet as deeply I would love to be able to execute art resource whenever I want to pursue some game design concepts or experimental idea real fast without a need to wait for artist to help me out.
Thank you for a post from tingham that leads me to this finally.
This time was the resurrection and a good finalization of the year 2013.
Since after the 1st boom meetup, I’ve experienced the dramatic downturn number of attendees. I have to admit that the first major reason was switching to full English-based content as I didn’t want to lose any of expat living in Bangkok even if it means just one.
That’s too ideal, too ideal. Most of Thai people (including myself) usually has the feeling (of course, it should) that they can speak their own native language with much enjoyment embedding with full stream of great feeling that can be readily transferred to others especially a focus-group audience. Thus switching to English-based would do harm in both ways of communication. Listeners won’t engage much as they shy away, or might not laugh out the joke that only Thai language can do the job, as well as, speakers cannot deliver the message in full potential. This implies that the majority of the audience is Thai.
In addition to the same approach in delivering the content to audience in which 1st - 3rd meetup has used, in fact this trend shouldn’t be used for too long especially 1-2 times (that means 2 month as I organize it 1 meetup per month). After that we should find a new other way and use that instead just to refresh out the audience in order to allow us to adhere to the monthly-basis event.
That came with this 4th meetup that I decided to change something in terms of language used, delivery approach, and more focus in intention or objective or in short what we want from hosting it in this time. You knew by now for the first two factors. For the last one, the intention was to increase the interaction and engagement from audience to speakers and among themselves. I want them to talk to each other more than ever, to get to know each other, to remove the social barrier when someone might want to approach another, yes, it’s social stuff.
What I did exactly was that I acted as a facilitator / coordinator / middle man to ease out both ends. I introduced them to all others in broadcasting way after the main presentation ended approaching networking session. I introduced roughly each group briefly but into the point enough to let others know what they can expect if they want to talk to one of them.
As well, one small thing is about “ads”. It should not be called directly or exactly just that. But it’s merely about it in some partial proportion. This time, I firstly let someone (with high authority in local game scene) to announce something that benefit to them and others to the audience at the end of the main presentation. This a little thing can reduce a tiny tension that could build up if I didn’t allow them at first place, and not only that, it will let them feel that they are part of the meetup and they can contribute in the way they have in hands already. This will transform them to a great supporter and royal fan finally. All in all, make sure the thing they have permitted to announce can go along with your meetup’s goal and culture.
That’s it for 2013. 2014 is ahead, and I put the number of “12” into my head. I will try my best to continue the momentum to host 1 meetup per month.
I think I should do #onemeetupamonth as my project, who knows. Peace!
When you’re developing something and it goes into the point where you need several different aspect of technical skills ie. AI, rendering technique, platform specifics etc. Surely it will affect you in some ways as you have to quickly learn those things, especially if it’s during the production time.
Recently I faced this situation myself for Zombie Hero project. Back in those days long time ago, one of example was that I was still using XNA to do things out ranging from showing and manipulating objects in 3D space, implementing deferred shading, playing around with shader programming. Those things are in the Microsoft side of things, and it’s on PC. The fact that Zombie Hero itself is primarily targeting on iOS platform first, you need to learn new.
Not only the programming language itself, but the technique and specific native stuff that you need to add them up on top of your game to make it supports what that platform can leverage and make benefits of. I spent quite several months trying to understand and only touch the water of the platform, and learned to make things with selected game framework (up until this point it should be called custom-made) right before starting off with the actual development. Sure, not all the things I grabbed and learned but only some that was necessary to start off with. It’s a good transition and pretty well seamless in its own sense.
But things take time.
Thus my point is that during the time of off-production season, it’s totally better to invest it to prepare for new things. Yes, it’s “learning”.
The first quote I ever thought of is “In time of peace, prepare for war”.
Why? As for indie game or indie team which normally consists of a small number of developers, or even just one who’s making it. You need to be able to make things in multiple domains with enough level of confidence.
Right now, top 2 most skills I really need to quickly add up are
OpenGL ES 2.0+ Shader Programming Although I feel familiar with HLSL, but you still need to learn the new syntax and embrace the nature of its new entity.
During the time of development, I felt the urge to cease the production to read and learn those things in order to gain more confident level before going back to continue the main one again. This leads me to think back in the days passed that it’s totally better to utilize the time and resource when you’re in peaceful time to prepare for war.
Yes, you have to be smart enough being able to identify things you might need in the future and not to be too comfortable with your own practiced domains. Jump off the zone, and prepare for new encounters.
For some reasons, I knew that I might need those skills during the time our team has changed the game idea. So it’s quite late. Now I feel the need to learn those things in the middle of the production; yes the middle of the war. This probably is a result from lacking of practices I stated out in the previous paragraph.
To avoid this kind of frictional circumstance … always learning, and jump off your comfort zone.
Recently I were digesting great content from The Power of Less. One of practices I found practical and really useful to adapt and put into great use in real life is 3 MITs.
3 MITs is “3 Most Important Tasks”. The author suggests that in every morning, we should plan out the day with the most 3 important tasks that we need to accomplish. Put them in the list, and try to complete one by one until all of them are done. The rule is not to add any other new tasks even one of MIT is finished. That practice prevents failure from unable to finish the chosen tasks at hand. Those 3 tasks needed to be finished first before another chunk can be selected and put into MIT.
I reflect this practice through collaboration board (Trello) of my current game project. I added a new list called “3 MITs”. Whenever my Doing and “3 MITs” list are empty, I will choose a new set of tasks that needed to be done, most important tasks first. Then add into “3 MITs”. When one of “3 MITs” task is finished, I won’t bother to look for new tasks to add but continue to finish the remaining ones with the objective in mind to empty the list. Continue this process until the list is empty and the time of choosing new set of tasks arrive. It’s the moment of satisfying and self-fulfillment.
Normally, Trello board only has ToDo, Doing, and Done list. I’ve used it for quite long time to see that for a particular circumstance when you want to look for a next task to act on, you spend too much time trying to scroll the long list of ToDo and pick just one. Not to mention that Trello has filtering functionality, but, of course, a few cards in the list is always more efficient.
So with “3 MITs”, the time is reasonably cut, at least for some degrees. Instead of trying to select one task in shorter period of time regularly, but choosing 3 of them and spending time to focus on those tasks more than ever are much more enjoyable and distraction-free.
CatAstroFree, A LudumDare 27 Jam Entry - Postmortem
LudumDare 27 has passed long time ago, back in August 23 - 26. I’ve collaborated with fellows both from my own country, Thailand, and Singapore. Totally 4 of them for more or less specific roles to craft out the game at the end.
It was a nice time and a brave decision to collaborate with others especially one of them is in another country, but all in all we work in remote sense.
This postmortem will go back in time collecting all notable pieces from Basement Dojo Blog, a blog at which we were updating things during the jam, and also add up with other detail.
As usual it all began with the talk with @suebphatt. I always do collaborated things with him, mostly. Previous jamming games I did with him are CLD1, Trois, and Eloong. We work under the name of Basement Dojo, it’s just a gathering team name for instance.
This time I would love to make it a little more special by inviting some more fellows who has specific skill to help out the game, but with an implicit intention to collaborate and make a good friendship in indie sense.
They are as follows
Suebphatt Leelertphong, 2d/3d artist (really hybrid and all around crafting-skill) I’ve been done doing several game jams, client projects, and misc stuff with this guy since around 1 year ago up until now. We knew each other by instinct, and we will do it again in this time.
Sirawat Pitaksarit, sfx/music composer He’s a sound composer guy at Extend Interactive Studio. He will take care of sfx/music for the game. He’s my junior friend and we know each other though the local community and from a good relationship I have with the studio as from time to time I have a chance to work with them for interesting projects, that things leads us to know each other.
We’ve talked and decided that he will fill the gap in our game ie. UI, sound support, routing things together while leaving me to do things on the game logic as he might not be around for a day. So this makes sense.
Jeremy Goh and Guo Yuan, sfx/music - all around about sound! They are good folks I met in the same way I met Bruce above. They’re co-founder of IMBA Interactive which is based in Singapore. They did so many projects that involves sound and creative design in sound system, and involved with Singapore-based community a lot. Several project that they have contributed to went to well-known recognition ie. IGF. It’s good to have them to top up our game soundtracks, who knows it could be more! Their latest game they involved contributing sound is Once Upon Light.
Me - main monkey coder and facilitator You know me.
It turned out at the end that colleagues in no.4 cannot make it to really participate as they had tight schedule already. So it’s 4 of us.
To be said, Suebphatt is a hybrid guy who can do multiple or mostly anything. It can range from art stuff, music / sfx, to coding. So every time we collaborated, I took care of coding and let art stuff or (if needed) other minor coding things for him. Anyway, for this time, a hidden agenda deep inside my head was that we will be using Unity to make game.
It was safe to say that this was the first major chance I ever use Unity to make a game. I learned through some of Unity tutorials before I jumped start with this jam project. Personally, and honestly, the best way to learn a game framework or any related things in game sense is to learn them from making a real project, yeah, making a game.
So everyone was invited and knew ahead of time what to expect as I also created a private group on Facebook for ease of initial talk. We set for the first meeting on Skype to be exactly the time of the jam start, the time when a theme was announced. We’re about to make something in 72 hours from now on …
As we got a private FB group already, I began to spread my personal inspiration with a hope that at the end we might do something similar or at least be able to reflect something out of it in addition to the fresh theme announced when the time comes.
As usual, LudumDare has bunch of themes to cast a vote on as all participants suggested them prior to the time we all will begin.
The following was the themes, one of them will be selected.
By all means, 10 seconds was selected.
Let’s get started
We hooked up brainstorming session via Skype talk in the early morning as we knew the theme at that time.
We started the collaboration call on 8:00 AM TH time (9:00 AM in SG) and by 11:15 we finally nailed down the concept to be Nine Lives - Cat. The initial solid reason we thought about this was that 9-life is near 10 seconds (the theme), thus led us to this kind of topic.
During the talk, we have shared ideas and discuss on the possibilities of interesting game idea might be continued working on. The following is the links we gathered through.
We will inject the perspective through the cat as it’s falling down from the very virtual high places. In fact, the cat will fall down starting from the real physical world then go through the obstacles that allow our chance to use ghost trick to activate and clear the path letting a cat to progress through the level. Each gameplay will last long for only 10 seconds but by using ghost trick, we can slow down the pace of time a little bit more to peacefully act upon the obstacles ahead.
As the cat falls down each chunk of sub-world, it will go through transitioning into another chunk. We planned to have 10 chunks with different level set up and obstacles. Finally if a cat can touch the lowest ground in the lowest chunk, then it will go back to life (in real world) thus the name Nine Lives comes to play. We believe we take 10 seconds to work with the game idea in a creative way although there’s room for us to further think about it.
It’s time for lunch so we decided to take it easy and refresh ourselves up, we will then get back and talk more about the plan in implementation along with the very first concept draft design from Suebphatt.
We use Trello, GoogleDocs, and Skype to communicate within the team but from time to time we hit each other through Twitter. I decided to let everything goes into public domain, let others not only our team but people in Internet know what we’re up to. It serves a good purpose to pump us up, and keep the pace going. Check out our public Trello - LD27 board if you want.
I will write into parts covering what the team has done in terms of art, music, and code. Then at the end I will summarize for what went wrong and what went right for overall development of this game.
A main character Suebphatt designed.
Obstacles designed for level 1. Simply lots of weird stuff.
A cat :)
Some of obstacles he modeled and textured. My most favorite one is Bieber Fan.
Sirawat did all the music for all levels. He edited all musics and fired into one shot here. He also took care of all the effect in the game especially and notably the cat’s voice. The high praise for the game’s humorous part comes from his hand.
Not to mention about one of the level as he injected his own voice as a level theme music. If you play the game, you will see it in level 3 (Bieber Fan level).
Bruce and I have talked and agreed to split the coding works to let UI, sound & effect programming to Bruce, then gameplay to me. Also as Bruce won’t be available to work with the team for full 3 days, thus it’s safe to let the core work to me.
After Bruce laid down the git project for the team, then he was firstly working on mainmenu UI as he will have a chance to test particle effect out along with UI stuff.
For more detail about this part, read his update here.
Back to core gameplay. I was trying to create a free falling cat which was represented by a cylinder. The floor was simply represented by a plane.
We communicated back and forth via Skype chat. During that time Bruce finished creating a spawning system.
Above was what after I integrated spawning system from Bruce and the free falling mechanics. Things went well. When the cat dropped down and finally touched the floor, the floor was changed into red for debugging purpose.
Read more detail update for his spawning system via this post.
Also the following is the snapshot for our git project. I really love how the graph would form throughout the whole development. It’s a sideline eye candy to stare at.
Next, Bruce add texture for create meteor’s falling down effect, detail here.
After around 2 day passed, Bruce had to get back to his days, he won’t be able to help the team from that point on but it’s acceptable as he helped creating important coding stuff and we talked ahead of time that he won’t be fully operated for 72 hours. Thus it’s only Suebphatt and me. I managed to integrated the spawning system created by Bruce, modified its settings to suit for each level. I went through using and taking benefit of Prefabs, hierarchical structure of objects, hooking up music and effect file to be played in Unity, loading scenes, exporting into various platform-option, making the gameplay fun to play as much as possible and tedious camera controls.
I have to admit that camera control is a hard topic to get it right. It would be great if you understand higher Maths, and how to manipulate things in 3D. It would reduce time and much of effort wasted in trial-and-error approach trying to make right. Not to mention that a little bit of physics thought would add realistic look into cushion of camera. I did’t have much time to ponder through all of them, so there’re some rough edges in which players saw it and posted comments in the game entry page on LudumDare official website.
A rough thing I did come out with was using a simple primitive to represent the whole single object used as an obstacle. I can’t get it accurate enough to the level of mesh as for some reasons at that time it won’t work when I tried to select it with a mouse and dragged it to somewhere. So for an instance when a cat was falling down and colliding with that particular object, things won’t be in expected way. Luckily it’s not frequent, almost can be treated as skippable things to notice.
Personally I’m the slow pace programmer, thus it was a bit of pressure to get things done in time.
Above Vine video (long before the final version of the game) almost summarized everything the core gameplay should have; spawning system, free falling, ghost trick (slow motion).
At last for what we get …
We completed 7 levels from 10 we aimed at the beginning. The nice thing was that we created the system for a single level and reused that system with different setting on obstacles, spawning setting, level texture, and music for another level. Reusable stuff is really helpful that helped us be able to finish the game in time.
Finally, here was our score for this LudumDare #27.
Let’s us now see what went right and what went wrong.
What went right
All music, core gameplay mechanics (with a little twist), and of course 3D-content based game were there and we’re happy!
Collaboration in remote sense especially between different country was positively proved that it worked.
Constant update through tumblr blog for incremental progress from each member helps the team member to see others’ progress, and can be served for the purpose as valuable information for blogging later (like this postmortem).
We aimed to make a very humorous game, and we can accomplished that. People played our game and laughed. (We checked through the comment in our entry page, and our friend telling us via Twitter stream)
@haxpor XD~~~ lmao the voice action just take the cake!! well done folks!
Twisting one of gameplay mechanics a bit could help the game to be possible to finish. Ghost trick feature is one of the thing that initially we thought to embed a puzzle into it in order to let players think a little more before activating. It has changed into simpler approach just to use that feature to avoid the obstacles, yes, use it to drag those objects out of the way one at a time.
We really focus on the sound and mood of humor. The score above reflects that. By focusing on a few things, you’re better at it. We completely knew ahead of time that this game won’t incorporate any innovative thought or implementation, at least in some ways, so we didn’t really focus or care that result much.
What went wrong
The initial inspirational links I’ve sent to the group and story telling experience I told the group in brainstorming session weren’t used at all as they are too high in abstraction and concept to reach. It’s too much for the jam.
Two of the members (no.4) weren’t be able to participate and contribute as they’re still unsure whether they will have time but I invited them anyway. Better is to make sure first.
I thought that with this simple game, a camera control would be as simple as the game itself. But it’s not true. Even the simple game, a camera control can become tedious to get it right. I’ve changed the way camera would act quite 3-4 times but still I didn’t quite satisfied with the result.
All of our members included myself were busy during the rating period, thus our coolness score was quite low. If anything else, I wish I could do this part better. It’s like a life lesson as it affected the final score. Next time, I would stick to the scheduled plan to rate a few games at a time per day, then throughout the weeks, you will get a bigger accumulated result.
Yeah, literally! No matter what, we created just another game, a humorous one.
Go play the game: Web Grab the source, then modify and adapt on your peril: Github Listen to nice soundtrack: Soundcloud