Tuesday, November 22, 2016

New Silent Death Online clone!

Well, this is exciting! I found a new Silent Death Online clone on Facebook! It's called "Stellar Dominion Online" (Clever, huh? It managed to keep the same 3 letter acronym.)

They apparently had a "free weekend" a while back, but I was unable to get a "free access key." They sell early access keys on their website (of the same name.) but I wasn't about to do that. I'm a little offput by the lack of updates on the Facebook page, I would have expected to see some captures from their recent testing... so I don't know how well that went or if it even went at all.

I know from personal experience that making online games is hard, and publishing them, especially self publishing... is not for the faint of heart. There are a LOT of details to make work in there! As such, I'm really hoping these guys can get a game going there, and am rooting for them. You go, Chris! Good luck! I'm rooting for you!

Monday, November 21, 2016

I want to make a quick post about the tools I use to develop. I write code for both the client and server, and use similar tools for both.

On the server, I use CentOS Linux. I like Red Hat, and CentOS is the open source distro of their enterprise version. The server runs on an old quad core pentium that I used to use as a Windows machine. This is usually my pattern, when I replace a desktop box, (Assuming it survived...) it becomes the next server. I use SSH and Samba to access the server from my Windows desktop machine. I only use the text interface on Linux, no graphical display, nothing. In fact, I usually have the monitor turned off.

The Windows machine is where I do all the work. I save all files on the Windows machine, do all code editing on the windows machine, and administer the server through SSH terminals on that machine. Having all my source files in one spot makes backups easier (I just dump the entire directory as a .zip archive to an encrypted flash drive on a daily basis.) I keep the flash drive with me on my key chain (hence why it's encrypted.) so as to provide off site protection in case my house burns down or something.

When I compile the server, I run a batch file that copies the server source to the server via Samba and run a BASH script on the server that compiles everything in sequence. There are 4 of these scripts, "cleanall"and  "buildall", which clean the .o files and rebuild the server processes respectively, then "start" and "stop" which start and stop the server. The game server is a group of processes, each specialized to do a certain task and connected together through sockets and a messaging protocol. I monitor the processes as they run by tailing the log file they generate as they go along.

As a source file editor, I use PSPad. I really like it. It's fast, has a nice project manager, and it's fast. Did I mention that it's fast? I have all the client and server files in one project.

Given that, as you can imagine... my server code is really low level. Although I use the C++ compiler, I use little C++ itself, favoring straight up C. File and socket access are strictly through the low level C routines like fwrite() and send().

I take the same kind of low level approach in the Windows side as well. I use the base C windows libraries, no "Frameworks" or "Object shells." As a compiler, I use MinGW running in a shell window, very much like the server side. Sure, the makefile is more complicated, but the interface is essentially the same.

So when I turn the computers on in the morning, I first connect Samba by clicking on the share and entering my password, then I start an SSH terminal for administering the server, and an SSH terminal for each log tail I want to run (How many depends on what I plan to do.) I then start up a cmd window for MinGW to run from and start PSPad. By now, my trusty coffee maker has done it's part and I can get a cup of coffee and get to work.

The work flow is straight forward, I edit code... then run the batch file to copy it to the server, stop the server, makeclean, buildall, then start the server. If I'm working on the client, I make it on the WinGW cmd shell and double click the executable in the Windows Explorer window to run it.

Heh. When people come to my house and see me work, they probably think I'm hacking the Pentagon or something. Nope! Just a totally old school guy working on some game code!

Sunday, November 20, 2016

That was quite a hiatus!

I stopped blogging after only a few entries not because I no longer wanted to blog... but because I lacked direction. You either have something coherent to say... something that carries a theme... or you should shut up.

I've been working on games off and on since then, a project I was working on for a while was "Dominion Pass", a text based client / server game (I specify "client / server" to differentiate it from telnet style muds that don't have dedicated clients.) I have considerable experience writing text game clients (I wrote Windows clients for Darkness Falls and Bladelands when I worked at Mythic Entertainment.) I also wrote a DOS client for AUSI's "Dragon's Gate" while it was on GEnie, but that wasn't widely used, or really got out of a beta state.

The wall I ran into with "Dominion Pass" was I'm not a good writer. There are 4 crucial game development skills, writer, artist, designer, and programmer. Writer and artist are "creative skills", where as designer and programmer are "engineering skills." I'm an engineer, I do engineering skills well. I can do the technical aspects of writing, like spelling and grammar, but bending the written word to produce an emotional response? Not so much. Art? Forget it. I thought I could get away with Dominion Pass because as it's text game, there is little art. But I forgot about the writing. Fantasy RP games are heavy on lore and writing, so it wasn't working.

And then there was the 800 pound gorilla in the room. There is a game I NEED TO MAKE. One I started 18 years ago and never finished. Well, I did "finish" it 17 years ago. But only as a simple spaceship based arena fighter where you fought as one of 4 sides in MOBA style matches. People loved that game, and have tried to redo it to this day. But there is so much more that can be done with that game. The MOBA matches are fun, and will be the initial thrust, but there is an RP game aspect to it that needs to be explored.

So here's how it's going to go down. I'm going to blog about the development of my new game, "Sol One." The game is based in a near future where space travel is available to the common man, and the Earth is controlled by a small group of mega-corporations that will loan you the money to buy your first ship. After that, it's up to you! The pinnacle of human engineering at the time is the "Bemaeshal Drive", which is a star gate under construction outside of the orbit of Pluto. It's designation is "Sol One", being the first star gate in the Sol system. The long term plan is to build star gates in other systems, too. But we have to get there first.

This is going to be quite a ride!