Monday, 19 December 2016

I'm back??

So, as always, it's been quite a while since I've posted here.

However for the past 6-12 months I've been very active in game development, so I figure it's time I restart this blog and start posting regular dev-blog style updates.

So to update you peeps on what's been going on:
I've been working on a few prototypes and WIP projects, and participated in a few gamejams, the results of all that can be seen over on my Itch.io profile
I'm currently working on the game seen there called "Arena Shooter" (working title, of course). It's both an experiment into proper unity practices, and an experiment into working with console controls.
The current build of it only properly supports controller play (you can play with a keyboard, but it's gunna be insanely hard due to limited aiming angles), also if you want to try it with a controller, you may need to rebind the controls, as they're by default bound to be correct for a PS4 controller.
The controls can be rebound from the Input tab on the Unity launcher (the thing that asks you to pick a resolution).

My plan for this game is to add different types of player ships with different abilities, and a basic progression system, so I'll be posting some regular (weekly) dev-blogs on that topic.
As I mentioned above, this is made in Unity, meaning my dev-blogs on the topic will assume at least a basic understanding of unity (or at least C#).

So yeah, first dev-blog update thingy will be later today.

Saturday, 11 April 2015

Project updates

So, once again, it's been several months since my last post.

Here's what's new:

> I've begun working intensively on a new project called GangOS, more on that below.
> I've begun looking into web development more seriously, learning the ins and outs of CSS and JavaScript
> I bought a Raspberry Pi (Model 2), made a nifty little lego case for it, and am currently using it as my work computer, as it's 0.9GHz CPU and 1GB of RAM is more than enough for web development
> I've declared Debian as my new favourite Linux distro (taking over from CentOS). This is largely due to using Raspbian, which is an ARM optimized fork of Debian, designed specifically for the RPi,
> Thinking of eventually turning my RPi into a custom Laptop using a Phone battery pack peripheral and a small portable monitor
> Started learning Python, this is also thanks to the introduction of the RPi

So that's about it since the last post, now for a more detailed analysis.

GangOS:

GangOS is a project I've become very involved with recently, by far my best C# project to date.
In short, it is a 3rd party utility tool for the game "Gangs of Space"

Gangs Of Space:
Gangs of space is a game developed by french duo LittleBigMMO.
It is a top down bullet hell style arcade shooter MMO developed with Unity. It combines the sandbox and exploration aspects of games like EVE Online with the bullet hell, arcade shooter gameplay of games like Realm of the Mad God.

It also includes an API, inspired by EVE Online's own API.

In EVE Online, there is a HTTP API that allows websites and applications to fetch data about players in game. It's useful as there's information in the API that should be accessible everywhere, such as skill training.

Gangs Of Space also has an API, however unlike EVE's, it is a Read/Write API.
This means that, as well as fetching data from the API, you can also push date to the API. In short, the API allows external sites and programs to perform some in game actions, such as sending messages and (in the future) handling market orders, research and manufacturing.

The idea behind this API is that players who spend most of their time researching, manufacturing or playing the market don't even have to install the game, and can instead use a 3rd party website, desktop app or even phone app to handle all their in game interactions.

Back to GangOS.

GangOS is a desktop app that uses this API in a similar way to EVEMon. The idea is that it will fetch and display all information the API provides in a user friendly way, as well as utilizing the write aspect of the API when it is implemented.

The Gangs of Space API uses JSON data formatting and HTTP requests, so this was my first real experience in working with JSON data, excluding the use of the Twitch API in SaiyanBot.

It also uses WinForms in a more indepth way, doing some fancy UI magic to make it actually usable.

The source for GangOS so far can be found here.



Web Development:
In my last post, I mentioned MinMax Gaming, a website I was working on.

Since then, I've complete restarted it from scratch, and am now making steady progress.

Not much to say here yet, but I'll make a post when it's all finished and ready for use.

Anyway, that's pretty much it in terms of updates.
I'll try to be slightly more frequent in blog posts, but I'd estimate it'll be around 1 per month at best.


Tuesday, 6 January 2015

Many updates

Hey guys,

Today I have a few topics to talk about, so this might be a fairly lengthy post.

Firstly, SaiyanBot, the Twitch Chat bot I was making for a streamer friend, is now live.
Aside from 1 or 2 VERY minor bugs (spelling errors, etc) it seems to be running perfectly smoothly.
You can check it out over at natsuma's channel (http;//twitch.tv/natsuma_z)

Secondly, ChatSharp development continues, I've begun adding a channel which functions as a MUD (Text based MMO) however, whilst this is very possible and would work, I feel like the MUD should be separate, as then it can have it's own specialized client.

The download link for ChatSharp updates automatically, however I can't guarantee that the server will be up at any given time. It's usually running, but I don't check the server that often, and if it crashes, it crashes.

Thirdly, I want to discuss a fairly important issue; Dropping projects.

As some of you may have gathered at this point, I have a tendancy to start and abandon projects quite quickly, here's a short list of SOME of the projects I've done this with since starting this blog:
Fantasy Reborn - A Spiritual Sequel to Fantasy Online (to be fair, i dropped this because another team were already doing it)

Awesome RPG - The worst RPG in history (Seriously, I didn't even know how to multithread)

Pandaz! - The worst Online game in history ('nuff said)

UKZilla Minecraft Creative - A creative mc server that ran on and off for about a year, before dying out in october.

Spectrum Music - A music promotion channel, I paused activity on the channel while I worked on "upgrading" to a full blown music label, however a lack of investors blew this out of the water

Learning Unity - I got bored of learning how to use Unity

Learning UDK - I also got bored of learning how to use Unreal Engine

Making literally anything in game maker - To be fair this one's pretty justified, the only remotely decent game I've ever seen come out of Game Maker is Risk of Rain, and that one took a whole team several months.

Now hete's a list of projects I've COMPLETED since starting this blog:

SaiyanBot.

Yep, that's it.


This habit of dropping projects all the time is getting out of hand, so from now on, I'm going to be sticking to the following projects:

ChatSharp
That MUD game I'm working on
Shuriken Hosting - I'm starting a hosting business, I've already spent around $400 on it, won't be dropping that any time soon
MinMax Gaming - A gaming forum I setup, need to advertise it some time (http://minmaxgaming.net/forum)

These will be my primary projects for a while.

Finally, the last topic I want to discuss today: Game Design.

I'm going to be posting some Game Design posts in here soon, these are different than what I usually post in that Game Design, unlike Game Development, is about the story, layout and progression of the game, rather than actually making it.
The designers of a game are the ones who write all the quests, decide where NPCs go, draw out the layouts of areas etc etc.

So yeah, expect that soon.

Until then, don't eat your parents!

Sunday, 21 December 2014

So long...

Hey guys, it has been a LONG while since I last posted something.

Since last we spoke, I've:

Learned HAXE
Begun looking into Client/Server communication in C#
Made a chat program!

That's right, I actually made something slightly useful!
ChatSharp is an opensource C# chat program.
It's in very early alpha (v0.1.1) and currently features:
Name changing
User List
Chatting

Yep, that's it.
I plan on adding things like PMs, Channels, Moderator Commands, Unique Names (so 2 people can't have the same name) that sorta thing.

If you want to try it out, you will of course need .NET installed, therefore it is Windows only.

Linky: https://www.mediafire.com/?dag3e091hm4e3gp
Please try it out, I need to stress test it, get feedback and find bugs.
All you need to do is download it and run, it's hardcoded to connect to the server I'm running on my VPS (I also coded the server myself :3)

Use !user to change your username.
I'll see you on there!

Wednesday, 26 November 2014

Update

Hey guys, it's been quite a while since my last post.

I've been very busy working on a couple of personal projects, namely:

Learning Java
Learning HAXE (A free, open source alternative to ActionScript3)
Working on a C# Roguelike

Some time soon(tm) I'll be showing you how I'm handling world gen in the roguelike, because I'm very proud of the system.

For now, this is just a quick post to let you know I'm still alive and kicking.

Also, I've had a couple of people asking about me posting C# tutorials, for those people, here are some links to older posts:

Beginner's C# Course, Part 1
Beginner's C# Course, Part 2
Beginner's C# Course, Part 3
Beginner's C# Course, Part 4

These describe some of the core mechanics and principles of OOPs such as C#

Once you understand those, you should look to some of the many C# Source Code posts in this blog, where you can learn the ropes of how to perform various functions.

Remember that this blog DOES have a comment section and I DO read any comments left, so if you're having trouble understanding something in one of my posts, please don't hesitate to comment.

Thursday, 30 October 2014

External launchers in C#

Hey guys, back from vacation, time to discuss external launchers in C#.

As mentioned previously, an external launcher is what you would typically think of when somebody refers to a "launcher". It is a separate EXE, usually used to check the game's version and login if necessary. Common examples of this are EVE Online and Minecraft (previously World of Warcraft, RIFT and many other MMOs before the introduction of multi-game launchers like Glyph and Battle.net)

I'm not going to be delving into the code regarding checking versions or logging in, but in terms of making it function as a launcher. There is only 1 line of code needed:

System.Diagnostics.Process.Start(pathToFile);

This line of code will run any file given to it using whatever the default method is for that particular filetype.

It can be used for EXE files, which is all we really need right now.
This is the line of code you need to make the launcher actually LAUNCH your game.

Now in terms of checking versions, I'm not going to talk about the code behind it, but there are a few common ways of doing it:

verNo Check - A simple check that connects to the server and downloads a version number from it, then compares it to the one shown on the game. If they match, no updates are needed, if the server shows higher, time to patch, if the game shows higher, you either fuqed up your code, or the user fuqed up your game.

File Check - This one is considerably more complex, but also much more reliable. This checks the actual content of the game's files, to ensure that they match completely. With a check like this, you can avoid your users editing game files in order to cheat.

As for logging in, that's as simple as checking the user and password with ones stored on a remote server, although as with any secure login system, I strongly suggest you encrypt or better yet Hash (irreversible encryption) the password BEFORE SENDING.

Simply store a hashed version of the password on the server, instead of a plaintext one.

Friday, 24 October 2014

Vacation time!

Hey guys, sorry for the lack of a post yesterday, I am currently on vacation, and will not be back until next Wednesday, make sure to check back next Thursday for that launcher code I promised!