Shining Online

May 29th, 2009 14:10 Development Diary

Project Update – May 29th, 2009

Let’s see what fun things have happened in the world of Shining Online this week.

Progress is slow but steady. The first online test was conducted this week, with mixed success. Writing software is great when it’s only for a single machine, but once it starts seeing other configurations everything goes belly up.

Thankfully a few tweaks fixed things, and servers and clients were happily communicating across the vast space of the internet.

Task wise things are chugging along, with a few hiccups on the way. The biggest problem so far has been character creation. The Shining Force stats system is quite simple, but there are still plenty of things to keep track of. These stats have got to be stored on a world server, but also transferred to the client machine.

It’s a pain, but it’s getting there.

I think the next milestone will concentrate on more visible things, because I’m sick of looking at memory dumps and database schemas.

Evolution of the Launcher

There are two ways to play Shining Online, online and offline. When playing online, you’ll need to enter your account details somewhere so that they can be verified. If you’re going online, you’ll see the “Launcher” window before the game starts.

The Launcher handles a few key tasks: downloading news, logging players in and checking for updates. If a software update is available, the player can download and install it directly from the launcher. It’s nothing fancy, but it gets the job done.

Once you’re logged in, it’s time to choose a server to join. Once that’s done, it’s in to the game world (eventually ;))

The image on the left is the original version, and the one on the right is the current iteration.

Launcher - Prototype   Launcher - Current Version

Yes, my programmer art sucks.

That’s it for this update. Next week we’ll see what happens when you press that lovely “Play Offline” button…

May 22nd, 2009 14:10 Development Diary

Project Update – May 22nd, 2009

It’s only been a month since the last update, so things must be improving!

Game design is great. Normally you start with some grand idea, and as time goes on more and more features are added to it. Eventually you end up with some fantastic vision of how it’s going to play and all the cool things people will be able to do.

Then you have to make it, and things start going down hill.

Clients and Servers

The “Online” part of Shining Online was always very much a case of “I’ll do it later”. There were other things to do, like designing cool enemies or making bats hit Ken in the crotch.

Seeing as the whole game is being rewritten (again), this time it’s starting from the online perspective. There’s a tonne of stuff involved with this, and most of it involves telling the client what the server knows. Bats are way more fun, but they won’t get players online.

Like most things, the current design is open to change. For those that are interested in these things, here’s a rough idea of how things are supposed to work.

The client connects through the gateway server, which takes care of “global” accounts (i.e. ones create on the Shining Online website).  World servers are where the action takes place. When they’re started, they register with the gateway server so that players can select them.

I doubt the player count will ever be big enough to require multiple servers, but in the future I’d like to release the server code and tools so others can run their own worlds.

Once the player is connected to the world server of their choice, they can start having fun. The world server handles all the game simulations, and passes information to various databases and sub-servers (for zones and battles). It’s simple and probably won’t scale all that well, but it actually works at the moment so it’s staying ;)

Pictures are fun

Development is going well, and so far clients can login and connect to servers. Now all that needs doing is the entire game ;)

For those that prefer explosions to texty stuff, here’s the “World Server” in action:

Super Awesome World Server!

Actually, that’s even less interesting. There’ll be a better picture next update, I promise ;)

See you all next week!

April 24th, 2009 14:10 Development Diary

Project Update – April 24th, 2009

Despite it being nearly six years since the last release of Shining Online, work is still continuing.

Actually, I think I just frightened myself a little by working that out.

The current plan of action is to complete much smaller milestones at a faster pace. Instead of trying to finish the whole game in one go, little sections get worked on and (internally) released.

Today marked the completion one of these milestones, so it’s time for a little progress update.

So far things are coming along nicely. There’s been a few major “real life” things keeping me away from the keyboard, but the project still has momentum.

There’s nothing playable just yet, but I’ve got some of the basic game structure together. There’s been a few experiments with weather and time effects that turned out well.

The real challenge now is to get something playable up as soon as possible, so the gameplay can be tweaked and made fun. The first step is getting maps working, followed by having some animated sprites moving around on the screen.

Tiny Updates

Seeing as everyone else on the planet seems to be blathering about Twitter, I signed up for an account. Now you can get tiny progress updates without having to read too much.




Quick Stats

Seeing as the new mantra is “start small”, there’s not a lot to show right now.


    • 23 source code commits
    • 3,000 lines of code
    • 3MB of raw image resources
    • 92 pages on the project wiki


See you in another six years ;)

December 23rd, 2008 13:28 Development Diary

A little Christmas present

It’s not a demo I’m afraid, but a tiny glimpse at what’s going on with Shining Online. Despite being pretty much silent for the past year or so, we’re still working on it. It’s very slow going, but if all goes to plan there’ll be a lot more action next year. I’m sure I’ve said that every year, so no promises ;)

Anyway, below is a little screenshot of the current Shining Online website. We’re using a wiki to keep our notes and ideas together, which also acts as a complete reference of the game world. The light version of the main site will go live in the second quarter of next year, and after that updates should be a little more frequent. Hope you like the design!

The Amazing Shining Online Wibsite
[Click for Bigger]

July 23rd, 2008 09:29 Development Diary

Shining Online – How we did AI

Hind Beetle - The Atari ST Version Woah, a Shining Online update! Unfortunately there’s nothing really new in this entry, but if you want to see how the old demo worked you might be interested.

I’ve tried to extract as much useful information from the original source code as possible, but it really was a mess. Blame my youth and inexperience for that :P

How the AI worked, or “Everybody hates Ken”

If you’ve played Demo 4, you probably notice everybody gangs up on Ken. It might think it’s because of his awesome blue hair, but that’s not the case.

Every time an AI in Shining Online decides to move, it has to decide whether to attack, move or defend (and heal/support if I’d got that far ;)).

Who do we attack?

The AI would first cycle through every player on the battlefield. Each player is assigned a score to work out how dangerous they are to the current enemy and how likely they are to die.

Scores were assigned based on the following:

  1. Players with less than 25% health get 15 points.
  2. Players that can be killed by this enemy (health < attack) get 25 points.
  3. If enemy attack multiplied by their bravery was greater than the player defence, there’s a 10 point bonus.
  4. Closer players are given higher scores.
  5. 10 points are added for each enemy the player has killed.
  6. Cody has a 10 point bonus for being the team leader.

All the scores are then sorted, and the enemy has its target. However, not all targets are in range, so a little extra decision making needs to be made. If the player was out of range, but the enemy had high bravery they’d rush towards them, otherwise they’d stay still.

And that’s all there is to it!

Further Improvements

The addition of healing would have made things far more interesting, but I was far too lazy to add it.

Here’s a couple of improvement ideas for the next version:

  1. Take healers and mages into account, especially ones with multiple hit spells.
  2. Look at what other enemies are doing.
  3. Have an “order” queue that can have instructions added to it by the boss enemy. For example, if the boss felt threatened by someone, they could send minions to destroy them. This could also be used to instruct units to heal others.
  4. Don’t move into dangerous squares. Each square could have a "danger" rating assigned to it, calculated by adjacent enemies and land effects. Enemies would avoid squares with high danger values.
  5. Magic and support. Perform attack spells on the heavy hitters, or boost the defence of healers and "tanks".
  6. Personalities and vendettas. The "bravery" attribute was an attempt to do something like this, but it sucked.

The biggest problem with all this is keeping things fun. An AI enemy is playing to win, but it has to do it in a fun way. Having enemies do a pincer move or set you up for defeat can be fun to play, if it’s done in an imperfect way. This is where personalities and randomness come in, as you don’t want enemies to always react the same way.