Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DarkBASIC Professional Discussion / Can you create an game engine in dbp?

Author
Message
Oblivion
22
Years of Service
User Offline
Joined: 4th Nov 2003
Location:
Posted: 4th Nov 2003 19:26
Can you create an game engine in dbp?
TheOneRing
22
Years of Service
User Offline
Joined: 28th Aug 2003
Location: Right here.
Posted: 4th Nov 2003 19:29
Ummmm... DBP is a programming language for writing applications, especially GRAPHIC ones... I suspect that you could write a game engine in DBP...
Oblivion
22
Years of Service
User Offline
Joined: 4th Nov 2003
Location:
Posted: 4th Nov 2003 19:45
yes i suspect so to but how!
i have beeing trying for ages
APEXnow
Retired Moderator
23
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 4th Nov 2003 20:21
Oblivion, you can, although with some difficulty because of the inability to use arrays in user defined types. I'm actually in the process of making a script based engine that provides the ability to create maps using Cartography Shop, with Entity based scripting, all developed in DarkBASIC. I've got the scripting side of things implemented although it will take a while before I have any demos available for testing. The scripting engine relies on the fact that you can control the aspects of the game from events that occur within the system, i.e. Collision with entities, main AI control etc. This is the biggest project I've undertaken using DarkBASIC as a primary development language.

To give you an idea of how I'm aiming for, check out the Projects section of my site. Although this system was originally developed in C++, I'm using the same principles for DarkBASIC. I will admit, I'm pleased with the results I've got so far, (Including speed, which I thought would be an issue)

Once this system has been developed further, I shall be placing previews and demos on my site.

In answer to your question, it can be done!

APEX!


Oblivion
22
Years of Service
User Offline
Joined: 4th Nov 2003
Location:
Posted: 4th Nov 2003 21:27
APEXnow and TheOneRing thanks for helping out.
Andy Igoe
23
Years of Service
User Offline
Joined: 6th Oct 2002
Location: United Kingdom
Posted: 4th Nov 2003 22:17
It really does depend on what *you* meen by the word engine. Here at Banshee Studios we use the word to define the way that our DBPro games handle the objects (object orientated, not necessarily a 3D entity).

For instance, the Banshee Terrascape engine shunts objects about dynamically, the Banshee Aspect engine binds together .x objects to construct worlds. The Banshee unnamed physics rotational engine allows us to rotate objects without gimble lock (it also doesnt work, its an example guys ).

An engine is essentially a 'driver' within your program that handles 1 aspect of it.

So you want to write a game engine. I shall now assume that you meen something like the Quake or Halflife engines that allow you to develop your own games using their backbone. Yep, you could do something similar in DBPro. You'd have to be quite something to have a final product that was as good, but DBPro can do it.

Before you can make anything like that which is half decent and useable though your going to need to know how to make games. Once you can make games, making an engine to drive games will be much easier.

Pneumatic Dryll
BatVink
Moderator
23
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 4th Nov 2003 22:28
Minor point...DB Pro is a games engine

BatVink (formerly StevieVee)
http://facepaint.me.uk/catalog/default.php
IanM
Retired Moderator
23
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 5th Nov 2003 00:57
As PD said, it really depends on what you think is a game engine
zircher
23
Years of Service
User Offline
Joined: 27th Dec 2002
Location: Oklahoma
Posted: 5th Nov 2003 03:41
To amplify APEXnow's point, I'm building a 3D chat program that uses scripts to load the scene. That essentially makes DBP an engine from running pen and paper wargames, board games, and RPG sessions in a 3D environment. Your mileage may vary.
--
TAZ

http://www.geocities.com/tzircher/tcom_gallery.htm
Genesis Rage
22
Years of Service
User Offline
Joined: 5th Oct 2003
Location:
Posted: 5th Nov 2003 07:04
a point on what PD was saying about making somekind of game that others can make levels and such for it...

if you are going to make a game, depending on how you design how it loads levels, textures, sounds and the such... if you have a nice set of code to load all these items... and runs the game from this code... making something that is user changable would be fairly easy... the hardest part would be having a decent editor that would tie in static objects (world), moveable object (doors), other entities (enemies), and scripting (AI, etc...)

if this is what you mean by an engine, it is very possible... but you have to have planning in place, so you cant just jump right into programming it.

APEXnow
Retired Moderator
23
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 5th Nov 2003 08:30
It's ironic though when referring to the difficulties involved in developing 3D based scripting systems. My problem has not actually been the engine or management of objects, but the actual media side of things. Can you imagine how difficult it is in finding the right textures to wrap onto a single wall? Or creating the models using your favourite modelling app? This kind of problem takes time and patients. Alot of people, specially single manned developers need to be aware that just developing the underlying system without making use of decent media can really kill a game.

For example, my original concept (Cylu) on my site, took me around 5 months to put together. The program itself only took a few weeks, but the rest of the time was taken up creating the raytraced models etc. I'm still proud of the game although compared to todays efforts by bigger fish, there's no competition, frankly it's not even in the same league :/

...Just an after thought

APEX!


Oblivion
22
Years of Service
User Offline
Joined: 4th Nov 2003
Location:
Posted: 5th Nov 2003 08:55
Quote: "It really does depend on what *you* meen by the word engine."

wat i meen with a engine is like a quake engine

the quake engine can tell from the map were the startingpoints of enemy's and the player himself are can dbp do that?

the quake engine reads from a ini file witch level it should load can dbp do that?

and on and
Genesis Rage
22
Years of Service
User Offline
Joined: 5th Oct 2003
Location:
Posted: 5th Nov 2003 11:01
with some creative programming... yes... i am actually working on some test programs that will read an ini file... and the file will have what models it needs to load, where to place the models, and other miscellaneous things...

but you have to program it all... many people just ask for code that does everything automatically... so there isnt a command like 'load mapfile "levelone.dbm"' that will do everything... just takes some creative thinking and programming

Andy Igoe
23
Years of Service
User Offline
Joined: 6th Oct 2002
Location: United Kingdom
Posted: 5th Nov 2003 12:35
Quote: "the quake engine can tell from the map were the startingpoints of enemy's and the player himself are can dbp do that?

the quake engine reads from a ini file witch level it should load can dbp do that?"


Something like this...



Pneumatic Dryll
Van B
Moderator
23
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 5th Nov 2003 14:12
My compo entry is being developed with expansion in mind, once I've finished I'll be releasing an SDK which will allow people to design their own levels with their own media - the characters will remain the same, but the entire look could be changed.

I use a script string, like each item has a string, each character has a string, the level has a string etc etc - these strings are parsed and can be used to set waypoints for AI, affect stats like health pickups, plus check for level objectives. These strings are all editable inside the level editor. Along with the level editor, I have a special collision system that lets me set a string to any part of the map, the string can be used to check for hits, collisions etc etc.

It does take a lot of planning, but there's also the whoomph factor once you get to a certain point. Once you can make levels and control all the scripts etc, your really just adding media and level editing, at that stage you could very well call it a game engine, albeit a little limited. The big problem with enemy handling is the animation, you'd need a pretty nice set of tools to allow you to include any enemy model the user could throw at it.

Jetpac2003 is an engine, you could change the enemy models, textures, lighting, fogging, level objects, spaceships, level terrain, everything really - Simple and myself will be releasing the source, including the level editor and collision prep program in the near future (probably christmas), If I have time I plan to put Jetman in a kitchen scene, fighting fried eggs and sausages etc as an add on .

At the end of the day, it's not too difficult to make your game expandable like Quake, if you have level editors and object prep stuff, you can usually put in the extra work to get it into a neat engine with fairly decent customisation options. Games like Quake use scripts a lot heavier than anyone using DB would, the entire game is a script really, the Quake engine is for processing BSP levels, handling collision and models etc - it is what it is, but there are options to replace media, change weapon etc (bullet weapons are fairly easy to customise, but it'd be a nightmare to allow really diverse weapon mods). Half Life took that a lot further by letting things like entire storylines be created from scratch.


Van-B


I laugh in the face of fate!
Oblivion
22
Years of Service
User Offline
Joined: 4th Nov 2003
Location:
Posted: 5th Nov 2003 16:53
Quote: "open to read 1,"map1.data""

is a .data file a 3d map? i alwais use .x
Van B
Moderator
23
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 5th Nov 2003 16:59
Pneumatic is most likely referring to one of his own style of formats, that's one great thing about DB, the file commands are really straightforward, so making your own custom formats is really easy. He may well use a .X file for the level, but that only means the mesh is taken care off, making it into a game is a whole different animal. Really, your engine is what you do with those .X models, not the .X model itself.


Van-B


I laugh in the face of fate!
Andy Igoe
23
Years of Service
User Offline
Joined: 6th Oct 2002
Location: United Kingdom
Posted: 5th Nov 2003 17:05
Quote: "is a .data file a 3d map? i alwais use .x "


If I was loading an .x object I would use the load object command.

Open to read and open to write allow you to build your own files.

You can read & write strings$, integers, floats#. Anything you want and to any level. You can write a string like "My data file format" and then read it in like thus:

read string 1,fileType$
if fileType$="My data file format" then goto processMyDataFile

Reading and writting floats can be used to read and write positional data like spawn points, object position and rotation...



Tie that in with an editor, or even a simple 'save game' option and it would be written



It isn't .x or .bsp or anything else, it is yours. The simple task of reading the string "playerObject" from the file does not load a player object, it simply lets you know that the data following it is x/y/z and a/b/c information that you can then use to place an object down.

open to read and open to write allow you to control the contents of your own file. You can use entirely string information if you want (using str$() and val() to convert numbers to string and vice versa) and that would let you create a file with the extension .ini that could be edited in notepad, or you could give it the extension .txt.

You could even call it .exe and make it look like an .exe but unless you actually sit there and replicate the contents of an .exe file with write byte it wont execute. It is just holding whatever data you put into the file.

Pneumatic Dryll
oblivion 2
22
Years of Service
User Offline
Joined: 5th Nov 2003
Location:
Posted: 5th Nov 2003 19:20
bob je bent een lul
Genesis Rage
22
Years of Service
User Offline
Joined: 5th Oct 2003
Location:
Posted: 5th Nov 2003 20:30
that is just the extension... you can change it after you make a file... exported "testing.x" file, then renamed it to "testing.donttouchthisfile"...

the file is still a .x, however the extension has been changed... all an extension really does, is let windows know what kind of file it is and what to open it with...

this might be an idea if you want to "hide" files from the user without including them into the .exe, just give the files some weird name!

Login to post a reply

Server time is: 2026-07-26 16:04:19
Your offset time is: 2026-07-26 16:04:19