Alex McGilvray

What I’ve been playing #003

2015/06/30 5:56:30 AM

Dont Starve – PS4

I wasn’t sure I would be interested in playing this game for a couple reasons. First I felt I might be getting a bit bored of survival games. Second, relative to the games in my backlog it just wasn’t a priority.

Despite this, one Friday night before falling asleep with my partner I put the game on for a quick try and did and survived a couple nights before dying. My partner seemed mildly interested. Or so I thought…

The next day she picked up the game and started playing around a little bit. What I initially thought might be a half hour play session on Saturday morning ended up turning into a 7 hour Don’t Starve binge session. I kept coming upstairs to check on her only to get the response “I’m almost done playing, I’ll be down soon”. I remember how good it feels to get so immersed in a game like this that I felt happy for her to have found a game experience she likes this much. I was jealous too!

When she was ready to take a break at about 7 hours I started playing with her as my passenger seat driver. I’ve managed to make it about 11 days now. I think I’m at the point where I can see what I need to do to trigger the win condition which is make a rod item that allows me to escape the island I’m stuck on. It’s only a hunch at this point though since we are not using faq’s or guides at this point in time.

I think this game will continue to get quite a bit of play time over the next couple weeks so I will return with some more thoughts in the next article.

Here’s some gameplay from a playthrough the other night with my partner.

Marvel Vs Capcom 3 – Sony Vita

I have both a Sony Vita and Nintendo 3DS which I both love but statistically my Vita gets far more play time than my 3DS. There are a few reasons for this but the biggest reason by far is Marvel Vs Capcom 3.

The MvC3 port for Vita is amazing and fits the device so well.

MvC3 has 4 main buttons which fits the Vita’s responsive, well made buttons perfectly. The team tag buttons map to the Vita’s triggers which is fine for a game like this considering they aren’t really needed in any complicated, timing-heavy combo’s or inputs.

The very well implemented suspend feature works incredibly well with this game. What I mostly do is setup a training mode with my team and CPU at medium limited health and the rest of the standard arcade mode options. When the game is setup like this, immediately after a round ends the same match starts up again. It almost completely eliminates the wait and tedium or restarting a new match after the current one is open. In fact I don’t have any break from the action at all unless I want to change my team.

The end result of this setup is wherever I go. If I have to wait 2 mins or more I can just take out my Vita, hit the power button and have a match of MvC3 ready to go. No time wasting menus, no inter-fight animations or waiting. Just pure game.

There is an argument these days that games have too much non-game stuff you have to do to play them such as wade through menus, tutorials and even publisher splash screens. The setup I have going with MvC3 on my Vita is the antithesis of this problem.

Here’s a video of some high level tournament play :

NekoRush Postmortem

2014/05/05 1:07:03 AM

I just finished writing up a post mortem for the Playstation Mobile game I released NekoRush.

Click here to read the article


NekoRush Postmortem

2014/05/05 1:03:28 AM

NekoRush was the first game I ever made that wasn’t free and released on a console manufacturer’s online store. The game was released on the Sony Playstation Mobile store in March 2014.

I wanted to do it to grow as a developer and learn about the non-hobbyist side of game development. The lessons I learned were profound indeed. They spanned across the realms of rendering, mobile devices, touch control schemes, international tax law, pegi & other parental rating systems, Q/A compliance and PR.

The game was made on an engine I made from scratch on top of the Playstation Mobile SDK which is essentially a wrapper for audio, input and graphics written in C#. The graphics layer is a bit odd in that it’s a wrapper for OpenGLES2 but it uses Cg for shaders rather than GLSL. Games and applications deploy to various Sony Playstation Mobile certified devices which include the xperia tablets, xperia phones, some other non-sony phones but most importantly the PSP Vita.

Obviously for any aspiring game developer who ever grew up with their hand attached to a gameboy would swoon at a chance to develop for a portable console with a dpad and button interface. It’s a dream come true for me.

I developed my own engine from scratch for two reasons. First I wasn’t a huge fan of the interface for Sony’s included 2D game engine. Second I wanted to learn the process of writing a rendering engine that has to run on multiple devices in a commercial setting. You can see the engine here. It’s not currently actively developed but if you are looking for a 2D library in the vein of Flixel but for Playstation mobile it’s worth a look. I’m currently focusing my game library development efforts to work on top of Monogame rather than PSM due to the vast platform support.

The graphics were done by my partner Akari and myself. We used GraphicsGale. I highly recommend it for pixel art. The music was done by my sister Marysia. I’m not sure exactly what her exact audio setup is but I think I can go as far as to say that the program Logic is involved in the process.

Here are some statistics for the project.

Development Time : 1 Year, very infrequently
Team Size : 3
Money Made : Approx 150$

If there’s anything I’ve omitted that you would like to suggest let me know and I’ll do what I can.

The Good Stuff

1) Amazing Team

Problem : I’m a lone coder working on my first commercial project. I need an artist and a musician but I have no money, I’m unproven and I’m working on a platform and target that is also unproven.

Solution : Pester your family for free work!

I’m lucky enough to have a partner who is a amazing artist and a sister who is an amazing musician. Akari is a traditional artist, she grew up drawing cartoons on paper and now is very involved in the nail art world. She had never done pixel art before but found some tutorials (also a note, if you are looking for pixel art tutorials in Japanese the term is “Dot art”) and picked it up quite quickly. Akari did all the cats, panda’s and pretty much anything interactive. I did all the buildings and trees (the bad stuff) so don’t blame her for that.

Akari actually really began to really engage with the project. I was worried at first that she was doing it as a favor for me but those fears began to subside when she volutarily began pulling her art and redoing it repeatedly. She really got into it. This really pushed me to keep working on it.

2) Learned a ton about the process of releasing a game commercially

I’ve always released my games for free. One of the reasons for this is it allows me more freedom to be experimental and simply drop support for a game if it’s not going my way. It also allows me to essentially eliminate any bureaucratic work related to finance, marketing and pegi ratings.

One of the reasons I made this game was because I wanted to experience the process of creating and releasing a game commercially. I learned a lot about registering for ratings, dealing with international markets and the process of submitting an application for review. It’s much less scary to me now and I can now develop commercial apps with a lot more confidence about the overall process.

3) Passed PSM compliance on the first try!

Outside of me forgetting to enable my scoreboard to the public I managed to have my game pass compliance and get published to the app store on the first try. It seemed from forum activity that many people were having issues. I was in a good position because I own both a Vita and a Xperia Z tablet so I was able to test on two major pieces of hardware before submission.

I’m also very paranoid about bugs and issues so I spent a LOT of time testing and trying to deal with potential issues before submission. This is both a good and a bad thing. See #3 of what went wrong why it could be a bad thing.

The Bad Stuff

1) OpenGL skill level was largely based on theory

My skill level with OpenGL when I started work on this game was limited to a series of small C++ and lwjgl applications I’d developed. All very small in scope. I understood the general principals of how the CPU and GPU work together as well how the modern OpenGL pipeline functions but that’s a far cry from authoring a complete application, let alone a complete application that’s going to be sold and must comply with the platform and stability requirements of PSM.

Because of this I made some naive mistakes when I wrote my rendering code. In the end I re-wrote it 3 times completely. This was an immensely educational experience where I learned some valuable lessons about how to write an efficient and robust renderer. I was also very lucky to have the help of some PSM community members, they helped me identify the inefficiencies in my rendering path and guide me in the right direction to writing a renderer that exceeded my performance requirements.

If you are interested in gaining some insight to the specific lessons I’ve learned I’ve written a series of tutorials on PSM and OpenGL, this one specifically deals with the efficiency issues I encountered

2) Immature PSM Framework

At the time I started development on NekoRush PSM was in beta. There were a few issues when new updates would come out I would get rendering anomalies which I would have to fix. The worst though was after PSM version 1 was released, a patch for 1.1 was released about 2 months later. After this version of PSM came out my rendering performance dropped from 60+ fps to under 10 fps. This is the reason I re-wrote my rendering code for the third time.

Ultimately my revised code was much better and I learned a lot from dealing with these issues but it’s still jarring to update a SDK and have your code suddenly have a profound drop in performance without any modification at all.

3) Too nervous to fire the gun and release the game

NekoRush was essentially done for months before I submitted it for release but fear about releasing my first title and wanting to keep it bug free consumed me. For many weeks I would touch the code for an hour or so testing and fixing bugs but not really getting a whole lot done. I did some limited user testing as well which was probably the most beneficial use of that time.

The paranoia about submitting a bug free release I think was too intense. I could have saved some time by submitting to PSM and seeing if anything comes back from quality assurance. That’s what they are there for, I should take advantage of that service.

Also if I had submitted the game earlier I would most likely have had time to develop and release another game and in turn learn even more about the game development process.

I have to thank my sister Marysia and Akari for pushing me to release the game. I might not have released it if it wasn’t for their support/prodding.

NekoRush Released on Playstation Mobile!

2014/03/20 6:26:19 AM

So my first commercial game NekoRush was released on Playstation Mobile. A platform that includes the Playstation Vita and various Sony mobile devices.

Big thanks to my partner for doing the art and my sister for doing the music.


New Tutorial/Article Listing PSM Resources

2013/06/18 7:36:12 AM

Since there is an influx of new PSM developers due to Sony removing the cost of being a PSM developer I’ve thrown together a quick article that shows where you can find various resources and tutorials for PSM.

View the article here

New PSM Tutorial on improving rendering performance on the Vita.

2013/04/16 8:28:22 AM

I just finished writing a new tutorial that explains methods for improving rendering performance in PSM. Specifically for devices like the Vita.

You can see the tutorial here:

Tutorial #3 : Improving PSM Rendering Performance

PSM-Vita Tutorial Series #2 Complete

2013/02/26 1:40:12 AM

The second series of the PSM/Vita development tutorial series is now complete. It clocked in at 5 parts. You can see the final tutorial here:

Tutorial #2 Part #5 : Drawing Something on the Screen : Wrapping it Up : The Render Loop

I’m debating with myself on what to cover next. If you have any suggestions on what you would like me to cover please let me know!
Thanks for reading 🙂

NekoRush Update – New Screens

2013/02/24 8:55:21 AM

Got some more work done on NekoRush this weekend. There’s been a lot of engine work and art practice over the last couple weeks. Anyways got new cats in the game, new background art and finished a lot of gameplay code.

I now have to decide whether to go with my original 10 level plan or switch to a procedurally generated endless format.





New PSM/Vita tutorial : Vertex Buffers

2013/02/13 4:18:29 AM

Part 4 of the beginner series for PSM/Vita development is up. This one focuses on vertex buffers.

See tutorial

New PSM/Vita tutorial. Focus on UV coordinates

2013/01/22 2:20:57 AM

Just put up a new PSM/Vita tutorial with a focus on UV coordinates. You can see it here:

See tutorial