Categories
Uncategorized

Thinking about Rak3D

RakNet is nearing completion. About the only thing it doesn’t have is a cross-platform lobby system. I’m not really equipped for consistent cross-platform development, but I think this will be a good next feature.

After that I’m considering writing Rak3D, an easy to use 3d graphics engine in the same spirit as RakNet. There’s a lot of graphics engines out there already, but as I’ve seen they are all deficient in at least one of these 3 ways:

1. Too low level such that unless you are a graphics programmer already you won’t be able to exploit the best features
2. Lacking in integrated tools, or the tools already there suck
3. Slow

The best designed of the ones I’ve used is http://irrlicht.sourceforge.net/, in many ways it reminds me of RakNet, though it lacks the features of Ogre 3D.

The goal of my 3d engine would be

1. To better learn graphics programming myself
2. To provide all the common ancillary features people need (GUI, exporter integration with built-in scene view, animation sequence tool, debug output, predefined shaders)
3. To be easy to use such that you really don’t have to be a graphics programmer to get nice scenes.
4. To perform complex operations and optimize them internally, relieving the user of this burden.

I would do this with two layers. The first layer would be more low level and an analogue to the 3D engines already out there. The second layer would make decisions as of a necessity, using the first layer for this, and is intended to be what most people would use, with the first layer as a backup.

Categories
Uncategorized

Current game design failed, trying a more standard shooter

It’s clear now that the vast majority of potential customers don’t like inertia based space games. Out of 1000 signups, the highest I ever reached in simultaneous players is 20, and the average has dropped from 6 to 3 over the last week. This kind of game design worked 10 years ago perhaps, but is an utter failure in today’s market. If I had a 50% retention rate, and just didn’t have enough players, then it’s a marketing issue which can be taken care of. But with a .5% retention rate there’s no way I can succeed like this.

Probably the most notable indicator is that even players of this very genre do not stick around. They’re tired of this kind of game, and just need more stuff. I’m confident it’s not my implementation, since my implementation is pretty solid.

I was speaking with a friend about this, who works in marketing, and he told me I basically picked a design and genre that was doomed from the start.

1. Most people don’t like space games
2. Most people don’t like complex controls (anything more than click and drool)

I was pretty depressed about this for a while, but finally thought of a solution that might salvage the day:

Mechs
Mech

I bought this mech from 3drt.com and am going to stick it into the game. The mech will be controlled through the standard movement keys (no interia), aim with the mouse, and I have asked the artists to model the surface of a planet.

I have it in without effects and sort of working. The main problem is oFusion has failed me once again, and cannot export the animations. This is really too bad, since the animations look great. I have a potential solution in the works via a code partnership to get a real exporter, which might solve this problem.

I’ve even started considering partnerships on this game, something I refused to consider before. Now that I have started contracting to keep the money coming in, I have very little time left for the game, and I’m starting to doubt if I can finish everything by myself. Except for my programmer in Portugal, outsourcing and contracting was a complete failure and everything that contracting was supposed to address is now far behind and/or screwed up. I don’t have a working exporter, I don’t have advanced graphics or effects, the art is far behind, and a lot of game design and game programming still needs to be done, I’m not sure the billing host will work out, and the database is missing features. Full-time I might be able to handle this but part-time it’s just really hard. Most of these problems arose due to telecommuting. You’re much less likely to get someone who claims that the work is done, grabs the cash, and runs out the door if you see him day to day.

Categories
Uncategorized

Customer support

When I was a teenager I used to work in fast food, and hated doing customer service. It’s not that I hated customers, but that it was just a very monotonous job. I have an active mind and can’t stand work where you don’t use your mind.

I have to sort-of do that now. When the Galactic Melee server goes down I usually get a few emails about someone not being able to log on. But so far I don’t mind. I feel good that people want to try my game and I want them to be able to play.

But maybe I only feel this way because it’s new. Probably in a few months I’ll be bitching here about how people keep asking same dumb questions. But hopefully not 🙂

Categories
Uncategorized

Dealing with Defective hardware

A small percentage of my users, assuming what they are telling me is accurate, have defective modems or routers that shut themselves off when UDP data is sent too frequently. One possibility is they are defective by design, turning off to prevent bot controlled computers from doing port-scans or perhaps DOS attacks. Another possibility is they just don’t know what they are doing. Probably both.

Another, larger, percentage of my users have defective keyboards, including myself. This happens to me on my Microsoft Digital Media Pro keyboard, where I cannot press up, left control, and left windows key at the same time. I’m tempted to find a partner (perhaps Logitech?) that makes keyboards that don’t suck, and to sell them through the website.

While not a defect, the largest percentage of hardware failures in my game are caused by video cards that don’t support Pixel Shader 2.0.

It would be satisfying to say “Your modem/keyboard/video card is defective/out of date. Go get a real one” Sadly, most people won’t, so I just have to implement crap work arounds.

Modem: Add a “My modem sucks” checkbox to the autopatcher that slows down the transfer rate.
Keyboard: Add gamepad support and keyremapping (Should do this anyway, so not a big deal).
Video card: Disable features, then re-add the most critical of them in crappier ways.

These problems are very annoying.

Categories
Uncategorized

Banners on the ship wings, with alpha support

It was very painful to get this working. But player uploaded banners, saved to and downloaded from the database, now show up on ship wings. Alpha is supported too.

Ship with banner

Categories
Uncategorized

Another order of magnitude speed increase

People were complaining about getting 10 FPS or so in Galactic Melee, which made no sense at all. You got like 10 ships, a background (billboard), and a carrier (large, but only one).

So I hop into the game, and notice even on my system my usual 200 FPS has dropped to 50 FPS when there’s a lot of bullets on the screen. Bullets are just billboards, this makes no sense at all.

As is usually the case, anytime there’s some major …feature… like this it’s code that someone else did, and this is no exception. Looking over the code, the programmer that did this created a billboard set for each individual billboard.

I create one billboard set per material, set infinite bounds, center it, and manually update the positions and orientations of each billboard.

4X speed increase (on my system) for 15 minutes of work.

People wonder why I do most of the code myself. The reason is I have to do it myself one way or another. It’s just doing it myself from the beginning saves the time and money of hiring, paying, and firing someone first.

Categories
Uncategorized

Quick change that works pretty well

I was teaching a newbie how to play for about an hour (without looking like it) by letting him kill me and presenting challenges. While doing so I was watching what kind of mistakes he made. And it really brought me back 10 years to really seeing what he is doing, rather than through my experienced eyes. I found he had a hard time aiming, leading, would bounce on walls a lot, and would thrust and let go of thrust only when he is at his target.

The solution I took was to slow things down, and also add drag. But I can’t do this by slowing down the game as whole or it prevents no challenge at the high-end. So I swapped ships, giving the slow heavy ship as the beginner ship, and also adding linear dampening on it (drag basically) that only takes effect when you release the thrusters.

It made a BIG difference! After that change I never really saw anyone quit right away, and they played for several hours. Because the ship was slower, it was less skillful and more tactical, plus newbies could generally follow you around and shoot.

For a few minutes I even had fun 🙂 Mostly though I am holding back, knowing I still could beat the other team in 30 seconds by myself if I wanted to. This is a bad thing – it means that it’s still too skill based and therefore not fun for very new guys and not fun for very old guys.

Another thing I did was drastically reduce the time between levels. I’m still trying to find a good balance there. Right now people are gaining one level every 5 minutes, which definitely keeps them around, but also doesn’t have any longevity prospects. I’ll have to tweak numbers to find a happy medium.

Categories
Uncategorized

Quote of the day: “Fixing this is as painful as pulling hot porcupine quills out of your ass”

This little quote of the day came about because Ogre can return 0 with _findNamedConstantDefinition if someone has a pixel shader less than 2.0. And I was calling Ogre::OverlayManager::getSingleton().destroy on the overlay if it couldn’t be used. Doing so just crashes Ogre, for no reason I can tell.

This bug probably caused 90% of the crashes for people who couldn’t run the game.

* Edit *

Also found that fallback techniques do not work for some reason. Had to setup alternate material schemes.

Categories
Uncategorized

It’s almost over

My full-time Indy MMOG, Galactic Melee is almost over now – both in the bad way, out of money, and in the good way, of being finished. Feature-wise there’s only about a week left to do before calling it feature-complete. It’s all pretty much debugged and working, and even has some usability and gameplay polish. On the other hand, I’m grinding the bone financially. Just giving up for 6-12 months to finish it part-time on my own is a serious option, because even paying the rent is in jeopardy now.

These next two weeks are going to be the litmus test of if the game ships. With the new game mode and settings in, the game is as fun as I can make it and still ship before I am out on the street. If my next wave of alpha testers actually sticks around and plays, then this means I’m onto something and will continue. If they run into the usual install and running problems, and those that can play mostly quit, then I really have no choice. With no money left and a game not polished enough to sell yet I’ll have to take a job and work part-time to fix the more fundamental problems. There’s really about 2 months of work to address all these.

* Replace Physics Engine. Unfortunately, PhysX doesn’t support older versions of Windows than XP. It also doesn’t support Linux. It’s also the cause of about half of my user’s installation problems, such as requiring admin rights. By replacing it, I can increase my potential customer base by over 25%.
* Replace most of the art. Due to never-ending communication problems, that only 3D art that I have that is really right is the art that I did myself, which is about 1/4 of the total art. I really need a working exporter, and a usable pipeline for the artists. By carefully selecting it so users only see the working 1/4, the game looks fine, but there’s really a lot to be fixed and the game could have been a lot better looking.
* Fix the website. The website sucks right now. It needs a serious overhaul to draw in people at the level I am looking for. There were a lot of features, such as stats, mailing list, integrated forums, that I wanted that never got done.
* Add missing graphics effects. I never got a decent graphics programmer. Only about 15% of the effects that I wanted are actually in the game. I wanted to make a game that was packed with cool effects, and the best I accomplished was animated textures.
* Add command screen. Ranks, giving orders, and giving orders through an RTS like interface was one of the major original planned features that got dropped.
* Add voice communications. Also got dropped.
* Add medals. Also got dropped, though it’s a smaller task.

On top of that, I really should run a long beta. People will forgive problems in beta that they won’t when you are charging and beta is the best way to find out what these problems are. Shipping now and skipping a meaningful beta is a risk.

Categories
Uncategorized

Changing credit system to pay once

Previously in the game you had to rebuy your ship and all equipment every time you died. This introduced a balance where you had to choose the right loadout for the right situation, and your play style, rather than just picking all possible equipment. It also introduced a gameplay element where if you did pick an expensive ship, you would be more careful with it, which adds an element of risk.

This would have worked, and would have been fun, if only experts played the game.

In reality:

1. There is only a minor difference in effectiveness (say 10%) between the most expensive and the least expensive ship.
2. There is a wide variation in player skill.

So what happened is some newbie would pick the most expensive ship, and since the ship itself only accounted for 10% additional effectiveness at best, he would just die repeatedly the same way he would have in the least expensive ship.

In the end, the good players had virtually unlimited money from killing newbies. The newbies were always stuck with the worst ships. To the good players, the credit system did nothing, since you could always buy whatever you wanted anyway. To the bad players, the credit system was a negative, since you couldn’t use the interesting equipment.

We’re changing it to be more like a traditional system. Items cost a lot, but once you buy them they are yours forever. The only part of the former system we are retaining is you still have to buy ammo. the ammo for the very good items will be tremendously expensive, and the carriers will be tremendously expensive.