Game Development Community

A Literal Programming Language

by Will Harrison · in General Discussion · 03/28/2005 (11:09 am) · 146 replies

I just had this random thought. I'm not much of a programmer, but wouldnt it be easier if there was a programming language that was basically readable English?


For example, instead of this:

if (John.apples = 5 && Sally.oranges < 3) {
Jason.pears == 7;
}


You would write:

If John has 5 apples and Sally has less than 3 oranges then give Jason 7 pears.



Or in this case:

for (count=1; count<11; count++)
{
steeringWheel.rotate();
}


You could write:

Rotate the steering wheel 10 times.


Object names (steeringWheel) would be case-insensitive and could contain spaces (so you could say "Steering wheel" or "steering Wheel" and they would mean the same thing).... and the definite article "the" (e.g. rotate "the" steering wheel) could be be ignored by compiler.
#41
04/16/2005 (10:34 pm)
The problem with having a point and click app, is that you will never be able to innovate, you will be restricted by the engine's rules, and if you want to do something the engine makers didn't contemplate you are out of luck. There's no replacement for making real games, you have to learn to code, that's it, unless you want to do games for fun or not selling, then you can use stuff like Blitz3d, but if you are serious about developing a better network solution, a new graphics renderer, or anything, you have to know to code, you have to know advanced math, and you have to know several important algorithms, oh, and you have to get used to reading books.
#42
04/16/2005 (11:13 pm)
Sorry to nitpick, but

Quote:
= or equals, is, has
== or give, assign

should be the other way around.
#43
04/17/2005 (9:56 pm)
@Ed, yeah, it's the other way round. == is for comparing, = is for assigning.

@Xavier, I have to strongly disagree. You are imagining a very limited capability point-and -click app. If you think of it in that way, then you will undoubtedly dismiss it as not being something a serious professional can use.

The concepts of "point-and-click" or "drag-and-drop" are merely high-level abstractions for doing the same things you could always do. This ease-of-use *usually* comes at the expense of being able to do more complex tasks, but not necessarily... it takes time for technology to evolve and for things, that were once difficult, to become very simple.

I believe that games/engines have almost matured to a point where virtually anything you can imagine, you can create. That means the coding is done. Now it can become abstracted (point-and-click). Innovation can still come in many forms. Through the content, mainly. But also through how you assemble everything, and fine tune properties. The opportunity to innovate at a low-level with code is diminishing.
#44
04/17/2005 (10:17 pm)
@Will: I think you are plain wrong, and it might be because your lack of familiarity with building engine or professional coding, don't take it as an insult please, it just happens. I don't think I will go very deep in this discussion since I probably won't change your point of view, but I can't see how you pretend to do things like designing a new/different physics system than the one your 'tool' provides without coding. There are zillions of ways in which you could handle physics for objects and each game does it differently and ones are better than others.

Edit: As to what you refer as a serious professional would use, no one that is a real "serious professional" used click-n-play in the old days to make games, and no "serious professional" uses visual basic to make apps now a days, neither they use blitz3d or darkbasic to make games today. A serious professional is usually familiar with what he is doing, since he's probably an engineer or has some kind of degree in computer science and prefers to work on the low level to control every aspect of what he's doing.

Regards,
Xavier.
#45
04/18/2005 (12:00 am)
Thing is there isn't a torque game out there today you couldn't make in blitz if you ignore Multiplayer net code. It has a MUCH better art path from 3dsmax for anyone thats used a modern non BSP/CSG type engine (and there are a lot of them out there), The 3dsmax art pipeline actually makes coding fairly sophisticated games fairly easy as its far more flexible, but you also have to learm a lot of the tricks involved in optimizing in order to get anything good out of blitz, its also not cross platform So thats another negative.

The best part about torque is that a lot of people have made custom resources you can plug into it, so if your lucky most of the work for your game has been done for you and a you may not have to touch the source at all if your going for a generic shooter.

With BLitz, to make a decent game you need to start from scratch and write your own engine. And you also have to have more talent than a lot of torque users that only use torquescript to modify their game, as everything has to be custom built from the ground up. It doesnt have any editors, but if your used to using 3dsmax as an object placement editor, setting up lights, triggers, and AI nodes/spline paths and AI floormaps thats not really a problem. Assuming you are capable of coding those things yourself.

Someone like Will may actually be better off using something like BLitz, depending on what art tools he has. I can't easily recommend it unless your a3ds max artist. There are other alternatives though, cartography shop, giles, tattoo and some other tools were originaly written in blitz and make for pretty good tools I suppose.
#46
04/18/2005 (9:32 am)
@Xavier
Quote:and no "serious professional" uses visual basic to make apps now a days
That really isn't true. VB and VB.Net are among the most popular languagues used for software development nowadays. I personally work on an VB app that is used by thousands for work, and has about a million lines of code. That statement just isn't true.
#47
04/18/2005 (10:40 am)
Quote:Thing is there isn't a torque game out there today you couldn't make in blitz if you ignore Multiplayer net code.

for one
"if you ignore Multiplayer net code."
would be an oxymoron in reference to Torque... thats one of the major aspects of Torque, award winning network code... if you check out write ups on it you can understand this is a massive undertaking if you were to implement it yourself... thats why TNL sells for more than Torque...

second
MoM (Minions of Mirth)... even the Single player version... I highly doubt that could be done in Blitz...
Then you add on the MMO aspects... LAN game aspect... Blitz can't touch it

plus there is a big difference between being able to do something and doing something...

third
until a game of full commercial scale is done in an engine you don't know how it will handle it... plain and simple... like it or not... and I've yet to see a Blitz game at the scale of professional quality of Tribes and Tribes 2... or Dark Horizons... even Marble Blast (considering the aspects of running on so many platforms, including Xbox and PS2 - at GDC)
#48
04/18/2005 (10:44 am)
Fourth
show me something even remotely comparable to the Warzone demo... the one shown off at GDC...

fifth
Quote:If you've been yearning to create games but have been frustrated by the complexity of programming languages such as C++ or Java, you've come to the right place!

That is their first line of description on their product page for Blitz 3D...

If you qualify for that and give up on C++ or Java then you definately don't qualify as a professional... no offense, but if you dismiss languages liek C++ and Java because they're too complex or frustrating then you will never get a commercial quality game out.

sixth
I wouldnt buy an engine that uses

Quote:Super flexible entity system
in there product description... definately sounds like their targeting a certain demographic with their terminology
#49
04/18/2005 (10:46 am)
VB has its place... I do beleive the .net framework and implimentations saved VB from going extinct

on the same note I don't think VB has any place in gaming *shrug* personal opinion though
#50
04/18/2005 (10:52 am)
Quote:The concepts of "point-and-click" or "drag-and-drop" are merely high-level abstractions for doing the same things you could always do. This ease-of-use *usually* comes at the expense of being able to do more complex tasks, but not necessarily... it takes time for technology to evolve and for things, that were once difficult, to become very simple.

I'd respectfully disagree on a few points

for one... I don't think they are high level abstractions for doing the same things... point and click to me is "code generation"... nothing more... its like using Dreamweaver to generate html... or MS Front Page ... etc... generators have their place... and yes if what your doing is in their scope then they can save time... but what if your doing something outside of their scope ?

well then you don't have much choice

code generators are the same... you click this button and it generates a code for loading an image... nothing fancy... problem is drag and drop is very limited... you can't do a lot of advanced techniques that take deep planning and designing even before touching the code...

Quote:This ease-of-use *usually* comes at the expense of being able to do more complex tasks, but not necessarily

I'd agian respectfully disagree... I think it always comes at an expense... their will always be something you can do manually (considering you have no limits, except your own knowledge) vs a drag and drop code generator which limits you to what it is already set up to do...

Quote:it takes time for technology to evolve and for things, that were once difficult, to become very simple.

yes and as those things become more simple new things are learned and adapted to become more complex...

there will always be those that will learn more complex techniques that will give them features you won't have if your limiting yourself to simple technology... thats the way the game is played... if everyone uses a drag and drop engine, someone will code there own and add features the drag and drop engine cannot... its just marketing :)
#51
04/18/2005 (11:04 am)
To all the VB bashers.... don't bash VB.net, you can convert a c# program line by line into a vb.net equivalent using the same structures etc... i wouldn't see why it would be a "lesser" programming laguage. Ok, doesn't look so sexy, but bashing it simply becuase you once tried vb 5, or simply becuase its cool to bash it..... well that's just dumb, even dumber then the people still using VB 5 to produce their software. Things evolve, vb has evolved into vb.net, I wouldn't use it for gamedev, but if i need a very quick simple app, yeah, I use it. The end result won't run slower then for example a c# app, and you don't have to write more or less code.... so wat's the problem?

Second, lingo is very close to englisch in my opinion. It isn't really a programming language,... its more a scripting language.... but still. And guess what? I really really don't like it. Back when I only used lingo to make some startup app for a cd-rom I liked it, but now I have to write more complex things... man, overhead, complete chaos,...!!! Its "simplicity" is making me lose time, and I'm sure that wasn't the original intention of the people who designed it.
#52
04/18/2005 (11:14 am)
Hope you don't take my comments as VB bashing... i did say

"VB has its place" and its place is .net... in fact I've used it to code excell functionality before... very usefull... though I try to avoid it and C# as much as possible...
#53
04/18/2005 (11:16 am)
@Louis: Yes it is used a lot, but generally it's used with one thing in mind, getting the product done and getting easy money. The fact that you can make an app with it doesn't mean that you are 'serious' about doing it the best way you can to just feel that you've done things the best way you can, THAT would be begin professional. A self called programmer that can only point and click and insert simple sequences on predefined events of code and has no knowledge on the inner workings of stuff doesn't sound like a professional to me, more like a guy trying to make money from apps.
#54
04/18/2005 (12:07 pm)
@Xavier: On larger VB projects only like 0.1% of the time is spend doing point-and-click stuff. You seem jaded about VB. The "easy money" time went away with "Internet Time". I'd rather use C++ for 3d graphics, algorithmic programs, making operating system calls, and stuff like that, but for making 3-tier database programs that are scalable and maintainable, the most common choices now are VB .Net or C# and Java.
#55
04/18/2005 (12:22 pm)
@Louis: I would definetly pick C# or Java over VB. C# is even cross platform, whilst VB isn't. Don't know about the speed of each language, but i guess since they practically refactored the whole VB platform it's likely C# with a different syntax.
#56
04/18/2005 (12:39 pm)
[quote]"if you ignore Multiplayer net code."
would be an oxymoron in reference to Torque... thats one of the major aspects of Torque[quote]

My currebt game has up to 12 players over lan and 4-8 with broadband, in 8 vehicle races. Not stellar but good enough considering there is no need for a dedicated server, and meets our requirements.

Out of the box blitz is just a language, and in many ways harder to develop a simple game with than a prebuilt game engine like torques, all editors included. I think you would be surprised with what you can do with it, the commandset and the way it works makes it very intuitive and allows for a lot more flexibility than you would think, you have to try it to see what I mean. But learning it is going to take a bit more time than a sceptical C++ coder is likely to give it. I think torque script could learn a lot from taking a proper look at blitz3D's commandset and how its used.

If the only blitz game your familiar with is Aerial Antics, that shouldn't be used to guage what it's capable of. Aerial Antics is a very simple game made before BLitz had a decent art pipeline and allowed you to use 3dsmax as a full blown level editor and vehicle/character set up tool.
#57
04/18/2005 (12:48 pm)
A demo like the warzone one shouldn't be too hard since you can export a fully animated scene from 3dsmax with animated lights, cameras, fog, UV's and BrushFX and better multitexturing support than TGE has.

Since I havent actually tried the warzone demo first hand I honestly cant say for sure, but I'm fairly confident (judging by the video I saw) it can be done in blitz. (digging around to see if there's a downloadable demo anywhere)
#58
04/18/2005 (5:20 pm)
Quote:I don't think I will go very deep in this discussion since I probably won't change your point of view, but I can't see how you pretend to do things like designing a new/different physics system than the one your 'tool' provides without coding. There are zillions of ways in which you could handle physics for objects and each game does it differently and ones are better than others.

Imagine a game engine that had the Havok physics system integrated into it. Now imagine that everything is controlled through a GUI with your mouse. There would be no need to touch a single line of code. For example, if I want to increase gravity... I slide the gravity slider. Mass, friction, viscocity of liquids, any physics variable you can think of could be accessed through this GUI control panel. Now you're probably thinking, well it's going to cost too much to use Havok. Well, I'm talking about the future. Like I said earlier, things that start off as hard to do, later become very easy... and affordable.

So... if I had this engine I'm describing, tell me, why would I need to pretend to design a new/different physics system? I simply wouldnt need to. The only reason I would ever need to do that, is if God one day deciding to create a new law of physics for the universe and I just had to have it in my new game.
#59
04/18/2005 (5:33 pm)
Let me make an analogy.

Movies.

They used to have no sound. They used to be black and white and blurry. They used to be grainy and the shutter speed slow so everything would seem fast and jerky.

Then, over the years, technology evolved.

Now a movie looks and sounds just as you might experience it happening right in front of you.

We use computers to make CG effects and put them in movies. Used to be expensive, now someone working in their basement on an average computer could make the same effects done years ago that cost a fortune to make and render back then.

Back when George Lucas was making the first episode of Star Wars, the only way he could practically make his vision come true was to use models and claymation. Now everything imaginable can be done through a computer. Not to say one is better than the other, merely pointing out how technology and the ways of doing things has changed as people work away at it, finding better ways to do things.

Now... computer games.

Same thing.

Things that used to be unimaginable to do in real-time are now common. Photo-realism is increasing steadily. Computers are faster. Development times are shortening as things that were once hard to do are simplified.

Computer games are approaching that point where, just like movies, the technical barriers are removed.
#60
04/18/2005 (5:36 pm)
Hmm, thing is it's not hard to make a game in most of the decent tools avaliable, be it blitz or Torque. The problem arises when you try and make gameplay. When I make something, I like there to be some innovation and subtlety in the controls, something that requires some finesse but is also intuitive.

I really can't see this kind of thing working too well with a point and click make game interface. You can do all the stuff Will mentioned with havok inside 3dsmax. Your not going to have much of a game, but you will have fun for a while.

Making games is a lot more difficult than throwing a bunch of stuff together in a simple fashion and having it work. You need to be able to have pretty tight control of it in code. I think torque 2D does quite a lot to simplify coding. And for 2D games, I think its pretty awesome (judging by what little I have seen and read of it). It's the last 20% of effort that makes the difference with most games.

Doom 3 is a pretty sucky game, everything went into the graphics, but the game itself remaind almost unchanged since Doom. forwards, back, strafe, mouse look, fire, reload, crouch and jump. As opposed to something like Riddick, which does so much it merges traditional FPS, with a simple first person fighting engine, and splinter cell like stealth, and pulls it off amazingly well whilst still remaining intuitive to control. It also has nice graphics, not as good as doom's but it esily makes up for that in gameplay.

I think its the little details wheb done well that are hard to do in a game, and I think were a long way off of getting that kind of control through a simple interface.