Sunday, November 27, 2005

More on "Emergent Mercenary"

I keep having good ideas on what I want to implement, but not enough time to actually write it all! I just stumbled across a few very favourible (sp?) reviews of Resident Evil, so I'm now creating some Zombie game objects, which will wander around the map randomly until they see someone they don't like. I thought it would be cool to have them be teleported down from a ship that swoops from overhead, and that got implemented very quickly, apart from a small problem where the supposedly transparent "teleport" beam hides the zombies as they come down it, whilst you can still see walls behind it. ???

My next problem though, is making the people walk round realistically. At the moment the legs don't even move, but I have a feeling that will be the least of my problems. I think making them look natural will be hard.

Thursday, November 24, 2005

Emergent Gaming

It's the next big thing, and I've jumped onto this bandwagon.

My intention is to write a set of game objects that can be dropped into a game, and then let them do the rest themselves, by reacting to the player and each other.

I've also been influenced by a video of Quake 4, where the player walked around the landscape and a large ship swooped down from the sky. So an additional aim is to have an environment that the player can walk around while cool stuff happens around them.

You can download my current effort at SourceForge. It's called Emergent Mercenary, and is currently very alpha, though you can walk around.

Tuesday, November 22, 2005

Is Programming Too Hard?

I have a dream; that one day, a programmer will be able to look at any program, and within just a few minutes will know exactly how it works, how all of its classes fit together, where the bugs are, and how to change it do to do what they want.

"Am I mad?" I hear you ask? Probably. I'm a pretty experienced programmer, doing it as a hobby and job using loads of different languages (see Laser Squad 3D for my current raison d'etre). I say different languages, but are they really that different? And I'm not just talking about Java and C. I think all languages involve text, with the compiler/interpreter starting at the top and getting to the bottom (generally).

I think we need to start again.

The human brain, apparently, works better with images than words. So maybe this is how we should program. This has been baking at the back of my mind for years, and still has a long way to go, but I imagine programming visually. E.g., have a picture of a database, and a picture of a form, and maybe arrows pointing from a button on the form to a table in the database. I dunno. Maybe someone will tell me there already is a language like that. The main problem is that at the moment, to know how a program works, you have to read it. And it could be better.

Thursday, November 17, 2005

Prototypes? Who needs 'em?

One aspect of C (or Delphi) I don't like is prototypes. In my humble opinion, programming languages should be there to make the programmer's life easier, and any work that the computer can do should be left to the computer. Take prototypes, for example. Why do we need them?

When I ask C programmers, the main argument seems to be "So the compiler knows the function definitions." My response to that has always been "Why can't it go through the source file twice then? Once to get the function defintions (from the function itself - fancy that), and the second time to do the compiling? Why should I have to write everything twice (and change everything twice if I change a function)?"

Tuesday, November 15, 2005

CD's To Avoid...

..if you like your computer.

http://www.idiotabroad.com/?p=58

[This is a (growing) list of CD's which have the Sony Spyware (tm) on them. Don't put them into your 'puters CD player if you want to be able to program games!]

You'll notice as well that there are far more than the 20 that Sony stated. The site has a good reason why they lied about this.

Multitasking Programming Projects

I've come to the conclusion that is bad for programming to concentrate on more than one programming project at a time.

My situation is as follows:- I write ASP pages for the education industry as my full-time job, and then spend my spare time (what little I have, natch) writing 3D multiplayer strategy games in Java at home; two completely different aspects of programming. I find I can cope with one, because my subconcious (which seems to do a lot of my thinking for me) is quite happy mulling over problems when I'm asleep, or generally just not thinking about them. But it can't seem to handle two, so it means I've got to take over and do the thinking manually. And I'm not just talking about the big problems (my subconcious does have limits after all). I'm talking about every little thing. I find myself adding semi-colons to the end of lines of ASP code. I make mistakes in Java. It seems that cos I'm having to remind myself (and failing) of so many things that I would do automatically otherwise, I'm making so many mistakes. Is it just me?

Sunday, November 13, 2005

What's Wrong with Free Software?

While the debate over free (as in beer) software and free (as in speech) software continues, I think one thing should hold true - free software of any kind is not a bad thing, and should be held up along side non-free software. So why do most magazines (even the ones who promote the free software ideology) not review free software in the same format as non-free software?

I did write a letter to Linux Format asking them why they gave full page (or 2-page) adverts for non-free software, while for free software, which they claim to promote, only gets half-page reviews. I can't remember their reply, but I do remember it not answering the main point. How is free software going to claim a foothold when even those that use it treat it like a second-class citizen?

Friday, November 11, 2005

Too many engines!

Do a simple search for an RPG on Sourceforge, and I think you will see that over a quarter of them are "engines" (and don't get me started on the number of unfinished projects). I think the reason for this is simple - its much easier to write an engine as you don't have to make it a product that end-users (the most discerning of all people that use software) will have to use. You only have to appeal to other developers, and they are normally experienced enough to get a difficult piece of software running, as they understand phrases like "compile" and "libraries", and it means you can write something that doesn't have to be finished.

Don't get me wrong - engines do help. Almost any piece of software written these days requires some library or engine to run. But how many people are just re-inventing the wheel? And not even the full 360 degrees of it?