-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 0|554|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
Socoder -> Cobra -> Holiday offer.. 50% off Cobra3D Module

Page : 1 Prev 2
Sat, 10 Jan 2009, 09:18
There are some places where executable size is important, but I don't think that's really a justified problem for a desktop application. 1mb is big when compared to 4k, but in reality it's not big at all (even on my eee).

I'd go the opposite direction of accusing Cobra of being bloated and say instead that it's too small. My main languge is Java and for that I have OpenGL bindings, lots of choices for doing 2D, lots of 3D engines to choose from (including one designed for streaming 3D environments), lots of different networking frameworks, lots of different frameworks for GUIs, lots of different editors and there is tonnes and tonnes of other stuff for Java which I'll never use.

For other mainstream langauges the comparison is similar.

All I hear about Cobra is that it has a 3d engine and uses 2d sprites, but I require other libraries then that when building a game or any other software. Namely all the generic utility type stuff. Like the collections framework in Java that offers multiple implementations of maps, sets and lists (not just one for each) and classes for concatonating strings in a more performant way. I mean is there even any regular expression support in Cobra?

They are just examples plucked off the top of my head, but stuff like them are useful because it means that I don't have to build them myself.
Sat, 10 Jan 2009, 10:46
JL235, that is a fair comment. It is always the issue with domain specific languages, which is exactly the place I plant Cobra....

B3d is essentially the same, and considering the way Cobra was planned, that is the way it is...
It is worth saying that some people 'prefer' that Cobra has one engine, and one way of doing x,y and z, as it means they just have to concentrate on their game, rather than deciding on the libraries etc.. But everyone has their own ways of doing things..

Things like regular expressions, well.. No one's needed one ? In fact, in 20 years of development I've only needed one a handful of times myself (even though I know how handy they are!).

Overall, if someone needs something and comes up with a suggestion, I see if I can add it to the engine so that I can cover off most of the needs to write a game, obviously that contributes to the bloat, but I like the fact that I can keep everything integrated..

e.g. Files for collision hulls are stored as XML, so Cobra also exposes the XML support. XML files can be stored compressed, so the engine can expose the compression functionality. It's handy to have all your game files either in a single separate files, or inside the exe, so the engine seamlessly supports a virtual file system.

Having seen how much people seem to like physics based games at the moment, the last major addition was a full 2d physics system. How difficult is it to use ? add a couple of lines to define gravity, then say which sprites are going to be controlled by physics (one command). Side effects of this included a set of simple to use geometry functions (e.g. line intersections, linecircle intersection etc).

This is the way I build Cobra, it has it's downside, but I think it works as an engine. I'll never get down to the level Shocky would be happy with, that sort of coding challenge just isn't my thing.

It's been a while since I used Java, but I know what you are talking about.. I am a delphi programmer by choice, the choice of things to use is not as extensive as Java, but it is nice to be able to search for a problem, and find some ready made code available.
Sat, 10 Jan 2009, 14:44
Yeah, to be honest, I can't ever see myself using a multi-engine, multi-chaotic thing.
Like George says, the joy of the "It just works" language is that "It just works"
I can code my game, rather than spend 3 months trying to get the Tiles to work properly, only to find the stupid Audio engine works on only 3 PC in the universe.. And 2 of those are mine..

I don't have the time to deal with that stuff!!

''Load, Next List!''
Wed, 14 Jan 2009, 02:01
I am in a minority, probably a fraction of a percent of Cobra's potential market and .:. I understand that it's not practical to cater for everyone.

Wed, 14 Jan 2009, 04:39
I agree Cobra is not aimed as a general purpose language (i.e. it's not aimed to build command line/games/application/server side/solving mathematical problems/etc programs, it's just for doing games) but it's not a domain specific language either.

Jay, that is a fair point but only if the language is kept up to date. For example some versions of the 3D engine for B3D don't work on Vista. If your using a mainstream language the option to switch to something else is far easier.
Wed, 14 Jan 2009, 14:25
Mentioning compatibility, one of the decisions I took setting up squeakyduck, and cobra, was to try and make it as compatible as possible. Which is why I invested in a 'test lab' which allows me test against a range of intel/ati/nvidia graphics cards, as well as win98/win2k/winxp and vista with a range of drivers (lots of hot swap drives etc) I even have a donated S3 card for testing.

Probably wasn't the best business decision, but that was the choice I made.
Wed, 14 Jan 2009, 14:46
hehe.. Sounds like a good decision to me.

My Celeron's always happy to check my games are "Old PC" playable*, so it's good to know you're checking things, too.

* Not including Shroomy's WinME system.. That sucks really badly!

''Load, Next List!''
Wed, 14 Jan 2009, 15:33
Getting away from the whole 3D/2D capabilities thing...
Graham, if you're still reading this topic;

One language that I would most certainly buy would be one where you could do like with Blitz3D (or similar) - StartTCPServer(), ListenForConnections() etc etc... and you knew it would be automatically threaded and scalable behind the scenes. Don't get me wrong - I like threads, and I like the ability they give you to do things you couldn't otherwise have done, but they're generally a pain in the ass. Especially as it relates to networking and scalable server applications!

Edit: You could argue that a 'server application' per definition is a bit of a stretch away from what a gamedevelopment language should cover, but then again there's no denying that they're needed for MMOs, one of the fastest growing genres of games on the market today.

Afr0 Games

Project Dollhouse on Github - Please fork!
Wed, 14 Jan 2009, 17:57
Hmmmmmm, I don't quite see how you'd build a parrallel program using just procedural calls from a single threaded application. Either the calls will block and wait or you will have to repeatedly ping them.

Perhaps what might work better is some kind of 'network listener'. You define a block of code which states what will happen when activity occurs and then add it to say 'TCP, port 69'. When activity occurs on that port it'll automatically run your block of code for you in parrallel.

Today this model can be built in many mainstream languages.
Wed, 14 Jan 2009, 23:59
Jayenkia * Not including Shroomy's WinME system.. That sucks really badly!

Yup... still stuck on it while I wait for enough time to devote to getting my laptop back up and running. Still, should be in working order by the weekend, hopefully!

*Moans at WinME taking 3 minutes to load the Gmail login screen... stupid 800Mhz processor...*

A mushroom a day keeps the doctor away...

Keep It Simple, Shroom!
Thu, 15 Jan 2009, 06:17
Personally Afr0, for something like that I would always jump back to Delphi, rather than a language like Blitz (or Cobra).
Under Delphi, many of the tcp libraries are set up to work like that, and there are also pretty good tutorials on things like listener threads.

Quite a while ago I had one project where I built an embedded web server which worked pretty much as you described.
Page : 1 Prev 2