If you wonder why you're not using Netscape and maybe not using Java, and why you've probably got Windows underneath your Mozilla, it's because it became obvious to lots of people that Netscape+Java was a sufficiently powerful and easily ported environment that the operating system underneath could become nearly irrelevant - so Microsoft had to go build a non-standards-compliant browser and wonky Java implementation and start working on .NET to kill off the threat. It wasn't that conquering the market for free browsers was a big moneymaker - it was self-defense to make sure that free browsers didn't conquer the OS market, allowing Windows+Intel to be replaced by Linux/BSD/QNX/MacOS/OS9/SunOS/etc.It almost makes me angry, not only to think of all the man-hours that are wasted trying to get web pages to work correctly on all the browsers (due to IE's complete disregard for standards) but also what could have been. Imagine being able to write a program that worked on *any* computer (PC, Linux, Mac), and didn't have to be installed - just load and go! That's what we could have had, but Microsoft soon put a stop to it.
The trials and tribulations of an amateur game programmer. Please tell him where he is going wrong.
Tuesday, June 13, 2006
The Browser as the Platform
I just read something on Slashdot today that got me thinking...
Thursday, June 08, 2006
MUD Reviews
No, no-one's reviewed my MUD* yet on any of the mud sites, but looking at the other reviews, I can't see the point....
Call me cynical, but I would hazard a guess that 99% of player reviews are by the owners, and it is just an exercise to try and get more players. Some of their praise is so over-the-top that if they were genuinely a player, you would think the mud was giving away free cash or something. Here's an example to prove my point. And another! I spotted one a while back, and the email address of the "reviewer" was of the same name as the mud he was reviewing - talk about a giveaway!
*GTA-MUD, my mud based on Grand Theft Auto.
Call me cynical, but I would hazard a guess that 99% of player reviews are by the owners, and it is just an exercise to try and get more players. Some of their praise is so over-the-top that if they were genuinely a player, you would think the mud was giving away free cash or something. Here's an example to prove my point. And another! I spotted one a while back, and the email address of the "reviewer" was of the same name as the mud he was reviewing - talk about a giveaway!
*GTA-MUD, my mud based on Grand Theft Auto.
Tuesday, May 23, 2006
Someone Completed my First Mission
...only a day after I created it! Basically, they had to kill a mafia don and take his corpse to the police station as proof to collect the reward (they're very open-minded ;-) ). He is flanked by two bodyguards with Uzi's, so it should have been pretty hard.
Unfortunately, one of the cops had wandered into the Mafia house as well, and decided to also shoot the mafia don as soon as he retaliated to the bullets coming from the player. So basically the player had a free "henchman" helping him out, which made the job considerably easier. Still, I'm very proud that they even discovered the mission and knew how to complete it.
[This posting refers to GTA-MUD, my mud based on Grand TheftAuto.
Unfortunately, one of the cops had wandered into the Mafia house as well, and decided to also shoot the mafia don as soon as he retaliated to the bullets coming from the player. So basically the player had a free "henchman" helping him out, which made the job considerably easier. Still, I'm very proud that they even discovered the mission and knew how to complete it.
[This posting refers to GTA-MUD, my mud based on Grand TheftAuto.
Mud Update
This MUD game is brilliant fun. I don't mean in a "my programming's brilliant", or my game design, but I just really enjoy doing it. I normally get about 3/4 people connected every day, and if I'm in front of my server at the timke, I log on and pretend to be a very-intelligent NPC, to make the game worthwhile.
The thing that is so great, IMHO, is that I can actually see and appreciate people using my game. I've got a few projects on Sourceforge (I may have mentioned them before ;-) ) and they get a lot of downloads, but I get absolutely no feedback what-so-ever. I discovered only a few weeks back that I get the most out of programming when I know other people are using it.
Anyway, things are trundling along nicely. I'm slowly increasing the number of locations and items (though I want to keep the number of locations small so that players can meet each other easily). I'm really concentrating on making the game world as realistic as possible.
The thing that is so great, IMHO, is that I can actually see and appreciate people using my game. I've got a few projects on Sourceforge (I may have mentioned them before ;-) ) and they get a lot of downloads, but I get absolutely no feedback what-so-ever. I discovered only a few weeks back that I get the most out of programming when I know other people are using it.
Anyway, things are trundling along nicely. I'm slowly increasing the number of locations and items (though I want to keep the number of locations small so that players can meet each other easily). I'm really concentrating on making the game world as realistic as possible.
Monday, May 15, 2006
Several People Connected!
Today was a milestone! I woke up and had a look at my MUD server, and 36 people had connected! Several of them were still playing when I logged on. I had a nice chat with someone who told me that it'd been recommended by one of his mates. I only registered my mud with The Mud Connector and Top Mud Sites yesterday!
It did give me a bit of food for thought though, as it did show some flaws in the system:-
I'm quickly rectifying these problems now.
[This post refers to GTA-MUD, my mud based on Grand Theft Auto.]
It did give me a bit of food for thought though, as it did show some flaws in the system:-
- Once an NPC has been killed, they stay killed (and there's only about 5 in the game.
- There's not enough guns.
- There's not a lot to do apart from fighting.
I'm quickly rectifying these problems now.
[This post refers to GTA-MUD, my mud based on Grand Theft Auto.]
Saturday, May 13, 2006
Someone Connected!
My first forray into hosting an on-line game has officially happened, and it, er, didn't go too well. Due to a small bug in my MUD server, it got stuck in a loop waiting for something to be received, even when something had been recieved.
(Basically, it was looping round while the bytesAvailable() function returned zero. Unfortunately, if the user had already typed in their commands, they would sit there waiting for the program to respond. Which it never would.)
Oh well, it's just the start. Needless to say I've corrected the problem and it's all now up and running. Telnet to onlinegameplanner.no-ip.org on port 4000 if you like Grand Theft Auto!
I've spent the remaining time adding content. I think another problem with MUD's is that the content isn't reactive. I want to make everything in this game reactive, from the NPC's reacting to other characters actions, to locations being affected by the time of day. This is no small job, as it means everything must be able to react to everything else. Call the exponential police...
(Basically, it was looping round while the bytesAvailable() function returned zero. Unfortunately, if the user had already typed in their commands, they would sit there waiting for the program to respond. Which it never would.)
Oh well, it's just the start. Needless to say I've corrected the problem and it's all now up and running. Telnet to onlinegameplanner.no-ip.org on port 4000 if you like Grand Theft Auto!
I've spent the remaining time adding content. I think another problem with MUD's is that the content isn't reactive. I want to make everything in this game reactive, from the NPC's reacting to other characters actions, to locations being affected by the time of day. This is no small job, as it means everything must be able to react to everything else. Call the exponential police...
Tuesday, May 09, 2006
MUDdy Waters
Ahem. If you tried my MUD prior to this morning, you probably failed to connect. I had it running on Windows, and it works fine when I conncet locally, but if I try remotely, Windows goes into "freeze for 5 seconds every 10 seconds" mode. Literally. Even the mouse won't move. Even after I've closed the MUD and stopped all Java programs.
However, needless to say it works fine under Linux. Now I just need to spend some time on content. There's only a few locations, and some very unintelligent NPC's. But all that's going to change. I want to make this as realistic as possible. It's going to take some work, but it will be slow but sure work.
However, needless to say it works fine under Linux. Now I just need to spend some time on content. There's only a few locations, and some very unintelligent NPC's. But all that's going to change. I want to make this as realistic as possible. It's going to take some work, but it will be slow but sure work.
Sunday, May 07, 2006
My Programming Adventure Continues...
I've decided on the first version of my multi-player internet game that I'm going to host on my PC (now that I've got a static DNS). I decided on a MUD, since I'd already started writing one based on the GTA universe.
After a bit of polishing up, it now works, though is very limited in location and content. Anyway, if you've got nothing else to do, give it go! It's called GTA-MUD. The GTA stands for "Great Text Adventure", for legal reasons obviously. Let me know what you think!
After a bit of polishing up, it now works, though is very limited in location and content. Anyway, if you've got nothing else to do, give it go! It's called GTA-MUD. The GTA stands for "Great Text Adventure", for legal reasons obviously. Let me know what you think!
Saturday, May 06, 2006
Sourceforge Software Map Not Being Updated?
Has anyone else noticed that the Sourceforge software map has not been updated for a while? I've got a couple of projects that their own statistics page says have a rank of <1000, but the software map still shows them in the 9,000's, where they were weeks ago. Their rank on this page hasn't changed for ages.
Sourceforge is free so I can't really complain, but it's a bit frustrating that hardly anyone will be seeing my projects. Although I guess some must, to have got them to their high rankings. Oh well.
If you're not busy, check out Laser Squad 3D and Realtime Chaos.
Sourceforge is free so I can't really complain, but it's a bit frustrating that hardly anyone will be seeing my projects. Although I guess some must, to have got them to their high rankings. Oh well.
If you're not busy, check out Laser Squad 3D and Realtime Chaos.
Tuesday, May 02, 2006
My Programming Adventure
I've decided that I'm on an adventure to try and find the most entertaining and fulfilling form of gaming/programming I can. (What I mean when I combine the two is a form of gaming of which I could program a version myself). Playing against other people is where it's at - I think it's a hundred times more entertaining playing against someone else rather than the computer.
I started off badly, writing multi-player network games when I've only got a single PC (and thus couldn't actually player them properly). The only network I have access to (at work) isn't very condusive to games.
I then wanted to try an MMORPG, but I actually find these boring. I tried Crossfire the other day (a 2D MMORPG). It is pretty good, and lots of time has obviously been spent creating it, but after wandering around for a few minutes I was bored. Unfortunately, my PC is too low-spec to be able to run a 3d MMORPG, but I imagine these would be the same.
The next thing I discoverd was a simple multi-player 2D arcade game across the internet called Search and Dread, and I think this is my calling. It only takes a low-spec PC, it's quick and fun to play, and you can easily play against other players, and actually ineteract with other players straight away. No wandering about chatting to NPC's for the first hour.
So this is what I'm working on next - multi-player arcade games across the internet. I just have to think of a game that's not already been invented!
I started off badly, writing multi-player network games when I've only got a single PC (and thus couldn't actually player them properly). The only network I have access to (at work) isn't very condusive to games.
I then wanted to try an MMORPG, but I actually find these boring. I tried Crossfire the other day (a 2D MMORPG). It is pretty good, and lots of time has obviously been spent creating it, but after wandering around for a few minutes I was bored. Unfortunately, my PC is too low-spec to be able to run a 3d MMORPG, but I imagine these would be the same.
The next thing I discoverd was a simple multi-player 2D arcade game across the internet called Search and Dread, and I think this is my calling. It only takes a low-spec PC, it's quick and fun to play, and you can easily play against other players, and actually ineteract with other players straight away. No wandering about chatting to NPC's for the first hour.
So this is what I'm working on next - multi-player arcade games across the internet. I just have to think of a game that's not already been invented!
Friday, April 21, 2006
Lack of Inspiration
I'm lacking inspiration to do some programming. It's something that comes around every once in a while, and I'm sure most hobby programmers get it sometimes, but I can't think of anything I want to write. And even if I did, can I be bothered to spend another hour of my life hunting down another bug?
This gets me round to the question of programming in general. I don't want this to sound like I'm saying I can't hack it, but shouldn't programming be a lot easier? I've been thinking about this on-and-off for a few years with no answer, but maybe we should go about it in a completely different way. The human brain works best with visuals, so why do we write programs using words? How about something like what Tom Cruise uses in Minority Report? This is obviously heading into 4GL territory, but there's so much that can be improved in that area. Computers should be at our command a lot easier than they are. Someone off the street should be able to walk up to a computer and get it to do whatever they want.
Anyway, I digress. The main point of this was about my lack of inspiration. I enjoy writing games, more than I enjoy playing them. So after I've finished a game, I don't really play it, so it feels like it was a waste of time. I stick it on the internet of course, but the lack of response if deafening. (I've often commented to people that there should be more comments from other programmers, on, say, Sourceforge, so at least you know someone else has seen it). I much prefer multi-player games, but that means having a network and someone else who wants to play that particular game, which is easier said than done.
So I don't know what to do next.
This gets me round to the question of programming in general. I don't want this to sound like I'm saying I can't hack it, but shouldn't programming be a lot easier? I've been thinking about this on-and-off for a few years with no answer, but maybe we should go about it in a completely different way. The human brain works best with visuals, so why do we write programs using words? How about something like what Tom Cruise uses in Minority Report? This is obviously heading into 4GL territory, but there's so much that can be improved in that area. Computers should be at our command a lot easier than they are. Someone off the street should be able to walk up to a computer and get it to do whatever they want.
Anyway, I digress. The main point of this was about my lack of inspiration. I enjoy writing games, more than I enjoy playing them. So after I've finished a game, I don't really play it, so it feels like it was a waste of time. I stick it on the internet of course, but the lack of response if deafening. (I've often commented to people that there should be more comments from other programmers, on, say, Sourceforge, so at least you know someone else has seen it). I much prefer multi-player games, but that means having a network and someone else who wants to play that particular game, which is easier said than done.
So I don't know what to do next.
Monday, April 03, 2006
Make, Compile, Clean, What???
I do think that some free-software makers like to make life as hard as possible for the end user, and unfortunately Linux software often comes in this category. When you download something specifically for Linux, it's normally just the source (which is fine if that's all you're expecting) but sometimes when you just want to use the software, you have to wade through reams of README text, and follow instructions that involve going to the command line and typing in 'compile' commands that take minutes to run, and often fail if you haven't got the correct version of gcc installed.
The software arena is a crowded place, and software like this isn't doing itself any favours. No wonder Windows is prevalent - despite all it's shortcomings, it's pretty easy to get any downloaded program up-and-running with just a few clicks of the mouse. Linux software isn't going to attract new users by making it complex and hard to install new software. People just don't have the time or inclination. And why should they?
The software arena is a crowded place, and software like this isn't doing itself any favours. No wonder Windows is prevalent - despite all it's shortcomings, it's pretty easy to get any downloaded program up-and-running with just a few clicks of the mouse. Linux software isn't going to attract new users by making it complex and hard to install new software. People just don't have the time or inclination. And why should they?
Tuesday, February 28, 2006
Viruses Plague British Businesses
(According to the BBC). Well there's an easy solution - haven't they heard of Linux? What are they waiting for?
Saturday, February 18, 2006
Calculating Line of Sight - Help Needed!
At the moment, Emergent Mercenary uses the following algorythm to work out of one unit can see another (i.e. are there any walls in the way):-
(Note - the map of the game is a simple 40x40 array, and each cell can be a wall or floor. Unit positions are stored as floating point numbers, so they can be anywhere, not just in the centre of a map square)
1) Work out a line from one unit to another
2) Move along the line, and at every interval, check whether the point is part of a wall or a map. If its a wall, the unit cannot see the target.
This does work well in general, but if two units are close together but round the corner from each other, it can sometimes return true when in fact there is a corner in the way. I could try increasing the interval, but this obviously increases the time it takes the algorythm to run. Does anyone know a better method?
Any help much appreciated.
(Note - the map of the game is a simple 40x40 array, and each cell can be a wall or floor. Unit positions are stored as floating point numbers, so they can be anywhere, not just in the centre of a map square)
1) Work out a line from one unit to another
2) Move along the line, and at every interval, check whether the point is part of a wall or a map. If its a wall, the unit cannot see the target.
This does work well in general, but if two units are close together but round the corner from each other, it can sometimes return true when in fact there is a corner in the way. I could try increasing the interval, but this obviously increases the time it takes the algorythm to run. Does anyone know a better method?
Any help much appreciated.
Removing Rogue Startup Programs From Windows
Until the world moves over to Linux, here's how to remove programs that keep starting up when you start Windows. Remove the following registry entries:-
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
Launches a program automatically when a particular user logs in. This key is used when you always want to launch a program when a particular user is using a system.
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
Launches a program the next time the user logs in and removes its value entry from the registry. This key is typically used by installation programs.
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
Launches a program automatically at system startup. This key is used when you always want to launch a program on a particular system.
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
Launches a program the next time the system starts and removes its value entry from the registry. This key is typically used by installation programs.
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
Launches a service (a standard NT service or a background process) automatically at startup. An example of a service is a Web server such as Microsoft Internet Information Server.
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
Launches a program automatically when a particular user logs in. This key is used when you always want to launch a program when a particular user is using a system.
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
Launches a program the next time the user logs in and removes its value entry from the registry. This key is typically used by installation programs.
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
Launches a program automatically at system startup. This key is used when you always want to launch a program on a particular system.
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
Launches a program the next time the system starts and removes its value entry from the registry. This key is typically used by installation programs.
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
Launches a service (a standard NT service or a background process) automatically at startup. An example of a service is a Web server such as Microsoft Internet Information Server.
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
Saturday, January 21, 2006
Keyboard Control in Java on Linux
The more the I think about it, the more I can't see a way to write good keyboard control in Java on Linux. Let me explain:-
Say you are writing a basic shoot'em-up. AFAIK, there are basically two ways to control the players sprite when your interface is the KeyPressed and KeyReleased events: you can either have the actual movement code inside these events, such as:
public void keyPressed(KeyEvent e) {
if (e == Key_UP) {
ship.y_pos++;
}
}
The problem with this way is that the ship will move as fast as the keyboard repeat rate, regardless of the main game loop or anything.
The other way (and the way I'm doing it in my game) is to store which keys are currently pressed (in a boolean array), and then process them in the game loop, such as:-
public void keyPressed(KeyEvent e) {
keys_pressed[e.getKeyCode()] == true;
}
(and set it to false on the KeyRelease as well).
public void gameLoop() {
while (true) {
if (keys_pressed[KEY_UP] == true) {
ship.y_pos++;
}
// Rest of game code here
}
}
The flaw with this, as I mentioned, is that if the player holds down a key, then with so many keypress/release events being fired for the duration it is held down, the key might not be marked as being pressed at the time when the keys are being processed in the main game loop.
Can anyone tell me what I'm missing? Or should I just move to another language?
Say you are writing a basic shoot'em-up. AFAIK, there are basically two ways to control the players sprite when your interface is the KeyPressed and KeyReleased events: you can either have the actual movement code inside these events, such as:
public void keyPressed(KeyEvent e) {
if (e == Key_UP) {
ship.y_pos++;
}
}
The problem with this way is that the ship will move as fast as the keyboard repeat rate, regardless of the main game loop or anything.
The other way (and the way I'm doing it in my game) is to store which keys are currently pressed (in a boolean array), and then process them in the game loop, such as:-
public void keyPressed(KeyEvent e) {
keys_pressed[e.getKeyCode()] == true;
}
(and set it to false on the KeyRelease as well).
public void gameLoop() {
while (true) {
if (keys_pressed[KEY_UP] == true) {
ship.y_pos++;
}
// Rest of game code here
}
}
The flaw with this, as I mentioned, is that if the player holds down a key, then with so many keypress/release events being fired for the duration it is held down, the key might not be marked as being pressed at the time when the keys are being processed in the main game loop.
Can anyone tell me what I'm missing? Or should I just move to another language?
Saturday, January 07, 2006
A Different Kind of Language
I used to say all programming langauges were the same. "Yeah, what's the difference between C, Java, Pascal and Basic? Some use squiggly brackets, some use begin/end, some use two equals signs, some use ":=". But apart from that they all boil down to pretty much the same thing."
That was until I discovered Lisp. I've only started even looking at it in the last few days, but I've learnt enough to know that all programming languages are not the same. Obviously I'd heard of Lisp; I've been programming for enough years now to have heard of all these strange old languages (Fortan, Algol etc..) that they used in the 60's, but never thought anything of actually using them. However, from what I've read, Lisp's power seems to be a well-kept secret by the Lisp community designed to give them the advantage. Their secret is out now, and as soon as I get my head round Lisp enough to actually write something more than Hello World, you'll be the first to know.
That was until I discovered Lisp. I've only started even looking at it in the last few days, but I've learnt enough to know that all programming languages are not the same. Obviously I'd heard of Lisp; I've been programming for enough years now to have heard of all these strange old languages (Fortan, Algol etc..) that they used in the 60's, but never thought anything of actually using them. However, from what I've read, Lisp's power seems to be a well-kept secret by the Lisp community designed to give them the advantage. Their secret is out now, and as soon as I get my head round Lisp enough to actually write something more than Hello World, you'll be the first to know.
Wednesday, January 04, 2006
Whats the best programming language?
I hope to write more on this sometime, but I think that if you spend more time trying to get the language to work rather than the program you are trying to write with it, you're onto a loser.
Thursday, December 15, 2005
More Microsoft Shenanigans
Expect OpenGL in Vista to be approximately 50% slower than DirectX (made deliberately slower my M$). From the posting:-
- OpenGL performance will be significantly reduced - perhaps as much as 50%
- OpenGL on Windows will be fixed at a vanilla version of OpenGL 1.4
- No extensions will be possible to expose future hardware innovations
Microsoft has taken the decision not to release the information necessary to allow third parties (such as those at NVIDIA, ATI or the other large graphics card manufacturers) to develop replacement drivers, leaving no way to avoid the 50% speed drop.
Wednesday, December 14, 2005
Where's the 3D On Slow PC's?
With the latest programming technology and libraries, how come is it that 3D now requires the latest top-of-the-range graphics cards? I'm not just talking about the latest commercial games, but open-source projects. I run a bog-standard 600Mhz PC with no special graphics card, and I can't run any modern 3D game, apart from the ones I write. Half-Life (1) and Quake run vert smoothly without a problem, but for some reason anything written in the last 5 years either runs like a dog or not at all. It's one reasons why I make sure all my 3D games can run on the lowest spec PC. Why should we lose out on all the fun?
Subscribe to:
Posts (Atom)