Developing an app is not just about coding

I finished implementing all the features in the third beta version of the engine (v1.0.0-Beta-3). Most of the implemented features relate to the animation of 3D characters and improvement with the collision detection system. There is no better way to test these implementations than by doing a simple game demo.

In my mind, creating a demo is a must. But it is also the activity I like the least. Not because I don't like to develop games, but because I have to spend time modeling game characters; time that I rather spend coding. Not only that, but you also have to set up the right game environment for the tests you want to run.

For example, I want to test how a character's animation and its collision detection are affected throughout the game. The ideal game environment (in my opinion) is one where there are multiple platforms (floors, stairs, etc.) that allows a character to jump and walk freely.

I don't have an artistic eye so instead of creating such environment from scratch; I search for ideas online and then model them myself. For example, the image below shows the environment which I will implement in the demo:

My 3D model implementation in Blender looks like this:

Blender 3D model

Blender 3D model

In my game engine it looks like this:

You may ask "Why don't you hire someone to model the game environment?" or "Why don't you simply buy the 3D model?" The reason is that developing a Game Engine is not just about coding. Is also about understanding how your users will use your engine.

Game development requires an artist and a developer. An artist produces the characters. The developer gives the characters actions. The linkage between the artist and the developer is the game engine. The game engine holds the character's artistic and geometrical information, which the developer manipulates.

As a game engine developer, you must not only understand how a developer will use your API but also how an artist creates the characters your engine will render. For example, I'm aware of certain modeling techniques that the engine can't handle yet but is common among 3D artists.

Another benefit is that by you developing the characters and creating a demo; you get to experience your application workflow. During the second demo, I ended up making several modifications to the API after realizing its awkwardness.

So yes, it is far easier to hire someone to do the creative work, but it defeats the purpose of development. You don't develop an app for you; you develop it for your users. If you don't provide a good user experience, the number of features in your app won't matter.

A good place to get game characters ideas

I'm currently developing a demo for the latest features of the game engine. For me, the hardest part of developing a game demo is not the programming part, but the artistic aspect. I spend days looking for game characters and game environment ideas. Moreover, since I am not an artist and I'm the only one working on this, I look for ideas which I can create.

You may be an indie-game developer who plays the role of the programmer and the artist. And you may have the same problem as I do.

If that is the case, the next time you are looking for ideas, search for them on Pinterest. For example, I did a search for "low poly models" and these were some of the ideas that caught my attention:

This site has given me plenty of game ideas. You may want to give it a shot the next time you are out of ideas.

The phases of developing a Game Engine

Image taken from Austin Kleon

Image taken from Austin Kleon

Honestly, this is how I felt. No kidding

What makes an open source project successful?

I love the idea of open source. I understand its benefits, and I want to be part of it. But I don't fully understand it. So I ended up buying this book: "The Cathedral & the Bazaar" with the hope to learn the pros and cons of open source.

This book is amazing. I ended up reading about 100 pages in one sitting. I don't even think I blinked all throughout. If you ever find yourself wanting to know about the open source movement and its history, you should get this book.

I want to share with you the one non-obvious reason that makes an open source project successful. That is:

To have a successful open source project, you must have good people and communication skills.

I was under the impression that to lead an open source project; you only needed to have good technical skills. And even though that helps, it is not enough. The success of your project depends on your social skills.

Why?

Because you are not only developing a product. You are also cultivating a community. And to do that, you need to be likable. You need to attract people, interest them in your project and keep them happy with what they are doing. In the open source community, your EQ is as important as your IQ.

Quoting the author:

To make a bazaar model work (open source project), it helps enormously if you have at least a little skill at charming people.

I would have never thought about that, but it makes total sense.

Hope this post was helpful.

Showcasing the Game Engine workflow

I read a book a while ago that encourages artists, writers, and developers to showcase their work-in-progress. If you haven't had a chance to read it, I recommend it. It is called Show Your Work by Austin Kleon. The author says that people are equally interested in your final product as in your struggles to make it a reality.

I took Austin Kleon's advice and started showcasing my half-baked engine in Vimeo. Every time I implemented a new feature I made sure to document it and post it on Vimeo.

Yesterday I noticed that I had never made a video that shows, nor written about, the engine's workflow. And that is what I want to share with you today: