Systems

Tweeter Food

Show Your Support

If you like the works that I do and want to show your support. You could direct people to this website from your website, blog, or social media. You also have the option of purchasing one of my premium systems or mechandise. All finance generated is used solely for website maintenance and future projects.

Game Developers that are skilled with the creation of art and music are more than welcome to contact me. I am always looking for people with the skillsets that I dont have to offer assistance with the development process.

Alternatively, if you wish to provide a little extra financial support, donations via paypal are very much appreciated.

About Me

My name is David and I am a self taught computer programmer from Glasgow, Scotland.

I have always been technically creative and extremely interested in learning how things work. For example, when I was little I used to take my toy cars apart in the hope that when I put them back together, they would somehow be better! Naturally, my curiosity developed with age, and I gained interest in learning how to dj and produce music. Although it may not have been very good, it is something I extremely enjoyed doing,and more importantly, something that I learned a lot from.

Quite soon into my 'music production career' (I was around 13, and I had high hopes!) I learned how to create my own VST (Virtual Studio Technology) plugins. These are essentially software(s) that are utilized via some parent program, known as a DAW (Digital Audio Workstation). My experiments with VST plugins taught me many things about the fact that computer processes need to be executed in a certain order, if the desired results were to be gained. Of course, they were no where near as good as some of the professional VST's available, and have since fell into some deep dark layer of the internet, never to be found again... I do still dj, and occasionaly produce small peices; however, I have not created any VST instruments for many years.

When I was around the age of 20, I decided I was sick of all the computer games not containing features that I felt they should. Even the simple little games of that day seemed to lack 'necessary' features. Eventually, I came to the conclusion that I could either be another person complaining about things not being the way they want, or I could be someone who actually tackles the issue! This started me off in the long process of learning how to create my own computer games...

I began using the highly popular game engine - RPG Maker. At first, the default engine suited my needs perfectly. It allowed me to very easily develop many simple RPG styled games. However, they were extremely feature restricted, and this was not acceptable! After all, the whole reason for my learning was to bypass these issues entirely! So... I started to study all the available 'scripts' (small programs written in a variation of the Ruby programming language) and I quickly began to understand them. After some time, I felt comfortable enough with the syntax, and I performed simple alterations of other peoples works to include the features that I desired. From there, it was a very short jump to writing my own small systems from scratch.

The first system I ever released publicly was a statistic distribution system, based on a game I liked at the time - 'Perfect World International'. Essentially, it allowed for the major stats such as Health, and Magic Points, to be controlled via a point system, with points being gained upon level up. This was to allow the player of the game to decide how their characters progressed throughout gameplay.

After a few months of writing my own RPG Maker scripts, I started to notice certain limitations imposed by the engine itself. Some things I could accept, such as the size of the game window, but other restrictions, such as not allowing online communication with a 'game server', I could not. This led me to delve deeper into the world of programming as I began to learn the basics of C++. By using C++, I was able to create simple dll files that could perform tasks I wanted, such as complex image manipulation, and online communication features. I was then able to link my dlls into the ruby environment within RPG Maker to perform the desired tasks. My familiary with these processes eventually grew stronger and I began to do basic performance tests on the various techniques of using C++ within Ruby, such as using .so extensions instead of dll files. Unfortunately, the way that we had to load .so extensions for rpg maker was very 'hacky' to say the least, and dll's yeilded far superior performance for most tasks.

I had been writing my own scripts for well over a year and decided I wanted my very own website to showcase my awesome work! I used an integrated web builder tool online and found it very easy to get my online presence initially setup. Unfortunately, I experienced multiple issues with this host, which made me choose to build my own website from scratch, so I learned some basic html, css, and php. I quickly discovered the responsive framework 'bootstrap' and couldn't have been happier with it. It was simple to use even for a begginer like me, and it offered plenty of nice neat templating and examples. I was quickly able to get my website up and running, although it might not have been the most efficient code, or be completely unique looking, but I was happy with it, which is rare.

Now that my awesome new website was up, I had to create some content to put on it! I created some complex systems building from my previous learnings. I utilized core windows dll's to increase efficieny of the entire RPG Maker Input system, created a full http processing library for the engine, and created a bunch of systems to help aid other game developers.

Unfortunately, life goes on... A new RPG Maker engine, MV, was released. I was forced with a choice... I could either abandon the work I had been doing for years to improve the engine, and use the new engine, or I could stick with the limited ruby environment imposed the old maker. The choice was not difficult. RPG Maker MV had released a demo game on their website. Me and some friends done some tests, and very quickly figured out how to clone the entire demo game, and mv engine on our local computers. This allowed us early access to the engines codebase, which meant we were able to create plugins that enhanced the capabilities of the default engine...

By the time the RPG Maker MV engine was officially released, I had around 10 plugins ready to go. Not only was there some simple things, I also managed to create an in game online highscores system. This is something that literally took me years with the older vx ace engine. However, I had concerns... Mainly about was how easy it was to 'hack' into a game. Due to being a javascript engine, there is essentially no security or protection in place, and any protection that is in place, is generally bypassed very easily.

After much research, I decided that the only way for me to keep the content within my game 'safe', was to adopt techniques used by large online game companies. Where by, you do not trust a word the game client tells you, and you have a server that essentially acts as a lawmaker for all connected clients. This led me to create my own online game framework, from the ground up. I used similar techniques and frameworks that the RPG Maker MV engine used, such as the pixi.js framework for rendering images efficiently. Unfortunately, I did not have any good game ideas strike until a few months later...

The idea I had, I was excited about, which I hadn't been for a long time with any project; however, there was obstacles in the way of reaching my goal, and being able to finish the game project. Real life was a large factor, it always has been, but I eventually managed to get my game into a state where I was able to invite a few close friends to test it out. We managed to test online in real time, whilst in each others company, for around 2 weeks. After a few days, it became very obvious what the game did well, and what required further improvement. The most requested feature from my testers, was for player versus player interactions. ie, a battle system, where they could attack and kill other players, and of course, being able to gain loot from them upon defeat.

I did not like the idea of creating an entire battle system from scratch. Instead I decided that the best approach would be to return to the RPG Maker MV engine, for client side rendering of game data, and to use the framework I had created for the game server. It had now been a few years since I was involved with the RPG Maker community, and the program in general, so I decided I would rewrite some of my old systems to refresh my memory. I began to recreate 'PiNG', my variation of the famous 'pong' game. However, I had already made this game before in vx ace, so thats no fun... I decided instead of remaking the game, I would create a challenge from the game...

By using brain.js, a javascript neural network library, I was able to train a neural network to correctly 'play' the game. Technically, it doesnt play, it predicts, but from the view of a real human player, the game plays against you. Not only does it play against you, it does so very very well. You would find it very difficult to beat the ai brain, even if you were to give youself a massive game advantage. Of course, there is a flaw in the training data, which results in the occasional incorrect prediction; however, it is not severe enough to consider retraining the ai.

Now, I am working my way through updating all of my old RPG Maker MV plugins, and rewriting some of the old game projects I had. After all, now I can write them, and display them on my website for others to enjoy. This wasnt possible using the older vx ace engine. I hope this wall of text has helped you learned a little about who I am, and the various things that I enjoy doing. If anyone actually reads all of this, I thank you for taking such an interest.

Systems

Tweeter Food

Show Your Support

If you like the works that I do and want to show your support. You could direct people to this website from your website, blog, or social media. You also have the option of purchasing one of my premium systems or mechandise. All finance generated is used solely for website maintenance and future projects.

Game Developers that are skilled with the creation of art and music are more than welcome to contact me. I am always looking for people with the skillsets that I dont have to offer assistance with the development process.

Alternatively, if you wish to provide a little extra financial support, donations via paypal are very much appreciated.

© DekitaRPG (David Bow) 2013..