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.

AppGameKit Chat / [STICKY] AppGameKit Vs DarkBasic - Feedback Wanted!

Author
Message
Ortu
DBPro Master
10
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 28th Jan 2018 02:14
Auto texturing needs optimization though, in dbpro if you load 10 objects that all reference the same texture, each one will load a new copy of the texture using up a lot of extra memory and increasing load times. Because of this I never export materials/textures with my objects and always texture manually so that I only have to load a single copy of the texture.
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
janbo
9
Years of Service
User Offline
Joined: 10th Nov 2008
Location: Germany
Posted: 29th Jan 2018 03:05 Edited at: 29th Jan 2018 03:06
Darkbasic pro was able to pass cubemaps to shaders
Qugurun
3
Years of Service
User Offline
Joined: 8th Dec 2014
Location: Tyumen, Russia
Posted: 31st Jan 2018 15:36
Please, add webview.
https://www.instagram.com/qugurun/
Ortu
DBPro Master
10
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 2nd Feb 2018 04:14
Another Matrix1:

GUID$()

generates a unique ID string, (the md5/sha hash functions are not equivalent and run the risk of duplicates)
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Scraggle
VIP Member
15
Years of Service
User Offline
Joined: 10th Jul 2003
Location: Yorkshire
Posted: 2nd Feb 2018 12:30
Alien Menace
AGK Developer
13
Years of Service
User Offline
Joined: 11th Jan 2005
Location: Earth (just visiting)
Posted: 3rd Feb 2018 23:57
ForEach Command
EZRotate Commands
3D Sound Commands
Vertex Commands




I love my Altair 8800 Replica.

http://altairclone.com/
hoyoyo80
2
Years of Service
User Offline
Joined: 11th May 2016
Location:
Posted: 4th Feb 2018 01:16
3d sprite with animation control (this is OT)
Santman
7
Years of Service
User Offline
Joined: 15th Sep 2011
Location: Inverness
Posted: 7th Feb 2018 18:35
I would say I miss the ability to make programs invisible exe. I would love to see deek/doke peek/poke commands come back......though these were not dbpro and an extension. Though actually the dlls might work with a little altering? I use agk almoost exclusivel on pc and the ability to run two exes and have cimmunicwtion between them would be reqlly useful, even if it was just a shared memblock (getmemblocklocationstart or something?) - could you pass the memblock location of one app to another and have both write to that location? This would allow things like pathmapping to be done outside the main app to avoid slow down.

Or you could add some pathmapping?

That would also allow one app to load media into a memblock, then the main one that does the screen update to just make an image from it giving a pseudo background loading.

Big asks I know.
Green7
12
Years of Service
User Offline
Joined: 23rd Nov 2005
Location: Switzerland
Posted: 8th Feb 2018 11:12
Quote: "Load multitextured 3D objects! Please! Please! It would be nice to load a .x even and not have to texture it myself""


+1
hoyoyo80
2
Years of Service
User Offline
Joined: 11th May 2016
Location:
Posted: 13th Feb 2018 03:07
Or a 3d Visual Editor where we can load model,assign textures via GUI,save the "LoadLevel" in AppGameKit
Mobiius
Valued Member
15
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 13th Feb 2018 09:07
Quote: "Or a 3d Visual Editor where we can load model,assign textures via GUI,save the "LoadLevel" in AppGameKit "

Sooo, you want GameGuru and GGLoader then?
SFSW
16
Years of Service
User Offline
Joined: 9th Oct 2002
Location:
Posted: 13th Feb 2018 23:13 Edited at: 12th Mar 2018 21:52
Here is my list of needed capabilities (I plan on updating this as I encounter further limitations or missing options):

- Double integers and other larger value sizes. Even 32-bit apps support this and AppGameKit also has 64-bit runtime interpreters, so it should support larger data types. They can be restricted or truncated as needed for narrow OpenGL requirements, but for fundamental math operations, larger value types are essential. DBPro handles these just fine (and it's 32-bit only), AppGameKit should also.

- Password protected ZIP access (as with DBPro's file block commands via the enhancement pack). Just a basic asset protection mechanism. Should be internal and not dependent on outside plugins for global access and cross-platform support.

- Ability to extract individual files from a ZIP, rather than all in bulk. I'm actually surprised this doesn't appear to be in AppGameKit since it is such a basic ZIP operation, so perhaps there is a way? If it's truly not available at all, then something equivalent to DBPro's 'Extract File From Block ID,File$,Path$' would be needed. And for such an option, being able to open and close a ZIP file to access individual files would also be needed.

- Optional specular and emissive layers added to current internal diffuse and normal mapping shader (or perhaps something a little more toward PBR and less of a Lambertian approach). Updating to Vulkan would likely help with more current graphics options/effects overall.

- Support for F9-F12, separate left/right CONTROL/ALT/SHIFT keys, and dedicated Numpad keys. There appears to be no or limited support for these keys (at least with the 'GetRawKey' command set). Only duplicate scancodes are returned or no scancodes are returned. Control keys both only return '17', Alt keys both only return '18', and both Shift keys only return '16'. Each key should be detected with a dedicated return as with DBPro and any other Windows based system. I have put together a list of both AppGameKit and DBPro's scancodes below showing the lack of independent key signals for certain keys and also the lack of any key signal for other keys (marked with a '?' under the AppGameKit column):



- SetImageMinFilter() to support anisotropic filtering to avoid the poor narrow angle image quality currently required with the linear filtering. A simple added value of 'SetImageMinFilter(img#,2,anisolevel)' would be all that's needed.

- Inverse transparency option (black is solid to white as transparent, ie DBPro's 'Ghost Object On ObjID,1' command) in addition to the current additive option.

- Complete control device support. The current XInput type system is far too limited. There is currently no support for anything beyond one joystick type and only one device of that type. In addition to too few device types, too few axis channels, too few buttons, and too few secondary control functions are supported on a device that is picked up. This is required to support HOTAS, control panels, rudders, yokes, steering wheels, etc. Multiple controllers and controller types need to be supported internally without the use of external plugins (which are often not available on different OS's/platforms). So a complete universal control system is needed. Support for at least up to 10 devices, 10 axis channels per device, 40 buttons per device, and at least one (preferably as many as the device has though) POV/HAT per device is needed if Windows is to be a supported OS.

- 'Add/Rotate/Offset/Scale Limb' commands (and associated position/offset retrieval commands). Binding objects to objects may not be able to support various things that true limbs as substructures within objects can. **** Edit: I'm currently exploring alternatives using offset object indexes as part of the DBPro-to-AGK code converter I'm working on. Limbs may not be critical, but would be very helpful in the process of migrating DBPro projects and/or duplicating true limb behavior as in DBPro.

- 'Make Mesh From Object' and related mesh commands for use to build other objects and (possibly) limbs from a global mesh.

- 'Fade Object ObjID,%' to fade an object's visibility to black (disappearing black-transparent objects slowly, fading solid objects to black).

- 'Set object normals'.

- 'Convert object fvf'.

- 'Set Object Mask' (couldn't find an equivalent) to mask specific objects from specific cameras.

- 'Wrapvalue' command.

- 'MakeCamera' to support DBPro's 'Make Camera' command so multiple cameras can be used with different parameters. Otherwise, one camera has to be used for everything, which requires remaking it for different FOV/etc values for different applications, destroying performance and making certain effects/techniques impractical/impossible during runtime.

- 'CopyFile' (same as DBPro's Copy File command).

- 'GetFolderExists' equivalent to DBPro's 'path exist'.
> Along with the command above, far better file and folder management is needed. If we are forced to be sandboxed in to the \User folder tree on Windows, we should at least be able to navigate around folders and files for the current user and other users. Unfortunately, limiting the read/write operations to the \AGKApps folder under only -one- specific user folder tree means we can't cleanly provide global settings for all users on a computer for any game we make with AppGameKit (since we also can't write to a root folder or any other location outside of the AGKApps folder for only -one- user). For even basic Windows support, we'd need to be able to read and write to/from other folders (and/or their users) in the user folder tree or have some kind of access to folders outside of the sandbox location. Many Windows games these days also allow the player to specify a save folder for their settings and save games, but this isn't even an option with AGK. 'SetRawWritePath' appears to not be able to set a folder to such locations. Such functionality should be internal to AppGameKit for complete cross-platform support (not requiring separate plugins for every platform, external runtime dependencies, and different bit limits), certainly with reasonable limitations for certain platforms that require restrictions (ie iOS).

These are basic options/functions that I've encountered as either limitations or entirely unavailable with AppGameKit that I feel should be supported internally. Minimizing the use of plugins would be important to provide full cross-platform support and to avoid unnecessary runtime dependencies that previous plugins tended to have.
edler
User Offline
Joined: 11th Jan 2018
Location:
Posted: 3rd Mar 2018 09:26
more sound commands and MIDI commands to make midi, sound and music apps.
Zep
16
Years of Service
User Offline
Joined: 31st Aug 2002
Location: From PA, USA. Currently reside in Hanoi, Vietnam
Posted: 4th Mar 2018 10:50
Load DBO, your own format. (That conflicts with the "AGK Store" I guess)
Blendman
4
Years of Service
User Offline
Joined: 17th Feb 2014
Location: Arkeos
Posted: 5th Mar 2018 10:17 Edited at: 18th Mar 2018 17:15
Hi

Dark basic seems to have a lightmapper (like FPSC too) to create the lightmap of our level :

Command :


Or :
Add light map light
http://dbprohelp.wikia.com/wiki/ADD_LIGHT_MAP_LIGHT

source :
http://dbprohelp.wikia.com/wiki/CREATE_LIGHT_MAPS

The possibility to set specular and specularmap to an object, and the power of specular
Set object specular
Set object specular power

Append object : use the animation from an object on another object (share animation between two objects)
http://dbprohelp.wikia.com/wiki/APPEND_OBJECT
AGK2 tier1 - http://www.dracaena-studio.com
Phaelax
DBPro Master
15
Years of Service
User Offline
Joined: 16th Apr 2003
Location: Metropia
Posted: 18th Mar 2018 01:53 Edited at: 18th Mar 2018 02:01
Quote: "I miss the granddaddy of all 2D commands.. the DOT x,y, Color Value and the Point x,y. I'm not sure if AppGameKit would need the Lock Pixel command but I'll mention it anyways. Also, I'd make a slight modification to the DOT command, Make it DOT x,y,RGBA so that we also gain control of the alpha. Cheers!"


I would only find this useful if we get backbuffer access. Otherwise, it'd be too slow for practical use.


Quote: "
- Ability to extract individual files from a ZIP, rather than all in bulk"


This would technically be possible with native agk code. I actually started a ZIP reader in DBP (check code snippets). I never quite managed to master the compression algorithm so my example did little more than offer a list of contained files.

One thing I would like (DBP didn't have this either), would be the ability to an image mask. The alpha channel would determine what is seen from the sprite, because a simple black&white image would kill anti-aliasing and we like smooth images! The image would match the sprite's local coordinates. There's probably a way to do this with shaders though.

SetSpriteScissorImage(spriteId, imageId)
Tiled TMX Importer V.2
XML Parser V.2
Base64 Encoder/Decoder
Purple Token - Free online hi-score database
Legend of Zelda

"I like offending people, because I think people who get offended should be offended." - Linus Torvalds
SFSW
16
Years of Service
User Offline
Joined: 9th Oct 2002
Location:
Posted: 30th Apr 2018 03:01
Since my post is now old enough that I can no longer edit it ( https://forum.thegamecreators.com/thread/221378?page=2#msg2618579 ), I wanted to post a revision to the 'control device support' issue I mentioned earlier.

After a lot of additional testing, it appears AppGameKit has no joystick support at all (on Windows at least). An Xbox controller or other 'gamepad' can be detected and handled with GetRawJoystick commands, but actual -joysticks- have no support at all with these commands, including no detection, no axis support, no HAT/POV support, and no button support. The 'joystick' control system seems to be unable to handle devices outside of 'gamepads'.

So I'd like to add to my original request to provide support for 'joysticks' with the 'GetRawJoystick' command set (of course, including multiple joystick/throttle/wheel/etc devices). If necessary, a separate 'GetRawGamepad' command set could be added for the severely limited XInput style gamepad only device system currently in place if it needs to be separated from joystick operations (combined would be preferred though with the system being able to enumerate and handle each device's unique axis count, button count, and HAT/POV count). Ultimately, the joystick commands should actually support joysticks and not just thumb-twiddling gamepads. Especially if Windows/Linux is going to be supported.
Stab in the Dark software
Valued Member
15
Years of Service
User Offline
Joined: 12th Dec 2002
Playing: Badges, I don't need no stinkin badges
Posted: 30th Apr 2018 21:49
SFSW

I would suggest with your experience that you move to Tier 2 and add that additional functionality yourself.
As I can not foresee them adding it any time soon. If they were it would be done by now.
The coffee is lovely dark and deep,and I have code to write before I sleep.
SFSW
16
Years of Service
User Offline
Joined: 9th Oct 2002
Location:
Posted: 1st May 2018 21:59
Nah, this is just for direct comparison with DBPro as requested to help provide examples of missing or limited functionality between the two. It also coincides with the simplicity and syntax benefits/structure of Tier 1 in comparison with DBPro. Otherwise, the benefits of what AGK2 T1 offers would be significantly lost (at least compared to other competing products/engines/frameworks that also do more of a Tier 2 type approach plus have far more complete features sets in the areas I've listed in this thread). I've left out a number of things that are better suited to developer-side solutions. Much of what I've listed here are really just 'basic' operations and functions that any game development system targeting Windows and/or Linux should incorporate (full keyboard support, multiple game device types, copying files, managing ZIP files individually, checking for existing folders, multiple cameras, double precision, etc). And to simply provide examples of what is lacking between DBPro and AppGameKit as the thread solicited.

So I won't quite yet give up on hoping such things will be added to AppGameKit eventually
CodeName
1
Years of Service
User Offline
Joined: 30th Dec 2016
Location:
Posted: 11th May 2018 05:06
a as boolean

x as bit
z as nibble
y as byte

SetMemblockBit()
SetMemblockNibble()

GetMemblockBit()
GetMemblockNibble()
CodeName
1
Years of Service
User Offline
Joined: 30th Dec 2016
Location:
Posted: 12th May 2018 02:23
b as char

SetMemblockChar()

GetMemblockChar()
EdzUp
16
Years of Service
User Offline
Joined: 8th Sep 2002
Location: Citadel Cyberspace
Posted: 8th Jun 2018 14:24
@Codename: definitely need those
-EdzUp
Bengismo
User Offline
Joined: 20th Nov 2017
Location: Yorkshire, England
Posted: 8th Jun 2018 14:40
Codename wrote: "
SetMemblockChar()
GetMemblockChar()
"


These are functionally exactly the same as:
SetMemblockByte()
GetMemblockByte()

Not sure they are really needed??

You could even just use

#constant SetMemblockChar SetMemblockByte
#constant GetMemblockChar GetMemblockByte

and then you have those functions already

Also.... you already have
SetMemblockString()

so can just SetMemblockString( memID, offset, "a" )


I'm all for extra functionality but not for replicating whats already there. A char type could be useful at least but working with strings is easy as it is.
CodeName
1
Years of Service
User Offline
Joined: 30th Dec 2016
Location:
Posted: 25th Jun 2018 05:28
@Bengismo, its all about saving bytes, AppGameKit wont make a Byte of memory(Variables), AppGameKit only makes Integers and it wont resize memblocks - that can create one byte of data(I want to read from a memblock using a byte of data for its location and size - not an integer.) Mainly the Char and Byte will be used in an array(re sizable). And as for Char and Byte nameing - for readability. Thanks for the #Constant idea never knew of it (now I wonder, what else do I not know) Dun Dun Dunnnn
Bengismo
User Offline
Joined: 20th Nov 2017
Location: Yorkshire, England
Posted: 26th Jun 2018 01:30
My point was....You asked for the ability to set and read an 8 bit value in a memblock and its already there but has a slightly different name. Having two more functions that do the exact same thing seems pointless.

Memblock byte values can be set and read and they only use up 8 bits of memory. The index is an integer but if it wasnt you would only be able to read the first 256 bytes in the memblock.

Having a native 8 bit type (char/byte) would be nice and i see why some people might want it, but im really doubtful that anyone is running into problems with lack of memory on modern devices. If they are its most likely huge images/videos...not using bytes instead of integers in types.

You can Resize a memblock by creating a newer larger one and copy the old one to the new one using copymemblock. Its 3 lines of code and is fast.

Using a string as an expandable array for chars is a good option 2.

Id agree about getting doubles supported. Theres a few files i cant read into agk because it does have support for a double type.
CodeName
1
Years of Service
User Offline
Joined: 30th Dec 2016
Location:
Posted: 26th Jun 2018 03:29
I understand what you mean and thanks for it. If only agk made memory using one bit and we could then add to that to make our integers and strings Char, all would be nice for readability. Right now its to me in some places as a puzzle piece that looks like it can fit if you smash it in. My code gets complex to me. I have to go back and try to understand what I'm doing sometimes - Yes I use // notes, but seeing that I'm using bytes her and integers there and Char there helps me to understand what I got done and were to go next... I work on projects late at night then sleep and wake to a mess of understanding.
GarBenjamin
1
Years of Service
Recently Online
Joined: 30th Nov 2016
Location: USA
Posted: 28th Jun 2018 01:34 Edited at: 28th Jun 2018 01:44
@CodeName we can easily build a little framework / module to handle this. Which I do think could be useful in some situations.

Maybe start another thread if you want and probably people will pitch in and it will be done in a few days.

For now here is a start I just knocked out and tested...

main.agc


memblockutil.agc



When placed in a project and ran produces this...


You can disregard the output for the Byte Values. I just printed those to confirm it indeed works correctly.

Basically the memblockutil.agc module creates 3 new functions...

MemblockCreateBitBlock(NumberOfBits as integer)
MemblockSetBitValue(memblockID as integer, bitOffset as integer, bitValue as integer)
MemblockGetBitValue(memblockID as integer, bitOffset as integer)

The same could be done for nibbles.

Not that I would be against new commands added to the AppGameKit api to support bits and nibbles. They should certainly be faster if implemented there and it is nice to have all of the functionality like this needed built-in so it is readily available to everyone instead of having to write such things from scratch or search the forums.
TI/994a (BASIC) -> C64 (BASIC/PASCAL/ASM/Others) -> Amiga (AMOS/BLITZ/ASM/C/Gamesmith) -> DOS (C/C++/Allegro) -> Windows (C++/C#/Monkey X/GL Basic/Unity/Others)
CodeName
1
Years of Service
User Offline
Joined: 30th Dec 2016
Location:
Posted: 30th Jun 2018 06:57
@GarBenjamin, Thanks for the idea and input. I'm making a large number calculator so the speed is very much needed. And too I want to encrypt my Media files so bytes, bits and nibs would be useful to me.
SFSW
16
Years of Service
User Offline
Joined: 9th Oct 2002
Location:
Posted: 19th Aug 2018 00:15
'Entry$()' equivalent. For AppGameKit, maybe something like:

'GetRawKeyBuffer()' so in application -> MyString$=GetRawKeyBuffer()

Which would return all keys pressed in sequence since the last time the buffer was cleared and could be cleared with something like:

'ClearRawKeyBuffer()' (much like DBPro's 'Clear Entry Buffer')

As it stands, no combination of 'GetRawKeyPressed', 'GetRawKeyReleased', 'GetRawKeyState', and/or 'GetRawLastKey' provides an equivalent or proper keyboard entry mechanism (for fundamental basics such as CapsLock aware, full array of keys, full string return rather than chr, exact sequential precision regardless of framerate, etc). Should be an internally supported option (at least for Windows and Linux).
Resourceful
4
Years of Service
User Offline
Joined: 29th Jan 2014
Location: every ware
Posted: 30th Aug 2018 21:11
3d Physics in AGK@ needs more of what DBP had

deforming objects - I know there is code in the forum for either that could be ported over

making holes in Objects - it could be dun with mem blocks but that takes up a lot of cpu time
and what DBP had only worked with the example provided
I tried to use my own objects and it did not seem to work

Liquids as almost perfected in DBP but changing colors of Liquids was the only thing left out

2d games are not my thing
3d games is where I want to go and there is a limited amount of options at this point
Freddix
DBPro Developer
16
Years of Service
User Offline
Joined: 19th Sep 2002
Location: France
Posted: 7th Sep 2018 20:50
Move Camera...
Bengismo
User Offline
Joined: 20th Nov 2017
Location: Yorkshire, England
Posted: 7th Sep 2018 21:11
Freddix wrote: "Move Camera...."


???
We already have
MoveCameraLocalX()
MoveCameraLocalY()
MoveCameraLocalZ()

and the SetCameraPosition commands too...
fubarpk
AGK Developer
Gold Codemaster
13
Years of Service
User Offline
Joined: 11th Jan 2005
Location: Adelaide
Posted: 8th Sep 2018 13:26 Edited at: 8th Sep 2018 13:27
Quote: "With the parts that are transferable why doesn't someone write an app that converts code from DBPro to AppGameKit and perhaps highlight code that it couldn't transfer over
"

There are allot of DBPro examples that port straight across with some work so theres no reason in my opinion a converting program couldn't be written
fubar
PHeMoX
User Offline
Joined: 9th Jan 2018
Location:
Posted: 28th Sep 2018 14:40
At the moment two things especially come to mind;

Access to the creation of multiple cameras. I guess that would be somewhat quick to implement?

Most of the commands already expect a camera ID anyway, like SetCameraPosition( 1, x,y,z, roll).

The other thing I would really like is more flexibility and control over texturing primitives or objects with default UV I guess?).

I kind of want a scrolling texture on a primitive 3D box (something like SetObjectTextureU or SetObjectTextureV , and using something to increment texture X or Y like that).
….
and I would like it if I'd be able to change textures for such a cube based upon whether a face is at the top or sides / bottom. At the moment we don't really have an ability to create a UV map, right?

Especially for simple cube based stuff that would be very useful. Now the default UV map seems to just put the texture image onto every side the same way, stretch to fit. However, especially for planes this is bad, because a sprite will look inverted when lookin at it from the back. Keeping it orientated towards the camera at all times is not ideal.
Bengismo
User Offline
Joined: 20th Nov 2017
Location: Yorkshire, England
Posted: 28th Sep 2018 15:03 Edited at: 28th Sep 2018 15:05
Quote: "Access to the creation of multiple cameras. "


You can only render one camera view at a time so having multiple cameras is not very useful really? If you want multiple view ports or split screen etc... then that is possible by moving the camera between 3D renders but you still use camera no 1 to set the multiple positions before calling the final swap. Also RenderImages do a similar job as this.

Quote: "I kind of want a scrolling texture on a primitive 3D box (something like SetObjectTextureU or SetObjectTextureV , and using something to increment texture X or Y like that)."


We have SetObjectUVOffset() and SetObjectUVScale for this...so scrolling the texture on a plane or cube is currently possible and fairly easy too.

Quote: "I would like it if I'd be able to change textures for such a cube based upon whether a face is at the top or sides / bottom. At the moment we don't really have an ability to create a UV map, right?"

You could just load a cube in from blender/3ds max/milkshape/etc... with whatever map you would like then you have whatever map you want.

Also...open a standard cube in a memblock and change the UV's of individual faces if you want to.

Quote: "However, especially for planes this is bad, because a sprite will look inverted when lookin at it from the back. "

Actually, AGK's planes have 2 forwards facing triangles and 2 rear facing triangles to the view is correct no matter what direction your looking from.
PHeMoX
User Offline
Joined: 9th Jan 2018
Location:
Posted: 28th Sep 2018 18:53
Quote: "Actually, AGK's planes have 2 forwards facing triangles and 2 rear facing triangles to the view is correct no matter what direction your looking from."


While I want to believe you, this doesn't seem to be the case. It flipped my texture when looking at a plane from the back side, instead of having the texture applied the same way at on the front, it was mirrored.
PHeMoX
User Offline
Joined: 9th Jan 2018
Location:
Posted: 28th Sep 2018 19:02
Quote: "You can only render one camera view at a time so having multiple cameras is not very useful really? If you want multiple view ports or split screen etc... then that is possible by moving the camera between 3D renders but you still use camera no 1 to set the multiple positions before calling the final swap. Also RenderImages do a similar job as this. "


The point is not to render multiple cameras at once. The point is making it super easy to switch cameras in a more literal sense.

Imagine a Silent Hill style level. You walk through a room and the camera switches to the next camera in the next room. In some engines you can set a cameraview to visible to make that the active full screen camera. With some proper fade in / fade out that stuff works amazingly well. I suppose in AGK2 one could write dummy cameras and change the camera ID or something, but this is really just one purpose anyway.

If you can have multiple cameras render you could also do a Mario Kart style split-screen game. I suppose you could render to image, but I'm guess that won't be a very fast way? Also, do you really mean switching 1 camera to create split screen? That sounds like a pretty bad approach, but I guess I'm missing something.

Quote: "We have SetObjectUVOffset() and SetObjectUVScale for this...so scrolling the texture on a plane or cube is currently possible and fairly easy too."


Thanks. Yeah SetObjectUVScale didn't seem to do much, but I did not come across SetObjectUVOffset in my search, so thanks for the tip! Will look into that.
PHeMoX
User Offline
Joined: 9th Jan 2018
Location:
Posted: 28th Sep 2018 19:03 Edited at: 28th Sep 2018 19:06
edit , double post for some reason, sorry!


Quote: "You could just load a cube in from blender/3ds max/milkshape/etc... with whatever map you would like then you have whatever map you want.

Also...open a standard cube in a memblock and change the UV's of individual faces if you want to."


I know this. I'm just surprised we can't change the default UV for primitives. The memblock suggestion is probably the best work-around, so don't take my request for it being impossible.
Bengismo
User Offline
Joined: 20th Nov 2017
Location: Yorkshire, England
Posted: 28th Sep 2018 19:30 Edited at: 28th Sep 2018 19:37
Quote: "While I want to believe you, this doesn't seem to be the case. It flipped my texture when looking at a plane from the back side, instead of having the texture applied the same way at on the front, it was mirrored."


If you apply a texture to a plane in agk - when viewing the plane from either side of texture then the left seft of the texture will be on the left and the right side side of the texture will be on the right. This is the same no matter which side you are viewing from. I know, ive tested this. Your doing something wrong if this isnt the case for you. AGK's planes are double sided for this reason.

Quote: "The point is not to render multiple cameras at once. The point is making it super easy to switch cameras in a more literal sense.

If you can have multiple cameras render you could also do a Mario Kart style split-screen game. I suppose you could render to image, but I'm guess that won't be a very fast way? Also, do you really mean switching 1 camera to create split screen? That sounds like a pretty bad approach, but I guess I'm missing something."


You are missing something. You can do mario style splitscreen or even split the view into 4 areas etc....without doing render images. Its actually fairly easy and has been posted on here by myself. Ive done at least one demo of this. You render with scisors to the two or more areas of the screen. Thats the way most games render multiple views. The two views are not render simultaneously, they just look like they have to the user. This gives you multiple views of the same scene from different angles. It works fine but just doesnt need anymore camera numbers to be used.

Even if you could use camera 2 or 3 etc... in agk you would only then call render a second time to use it and thats what you do but with camera ID1, so it doesnt save on any programming or help really. Try a splitscreen view 3d render of a scene and you will see why it becomes irrelevant.

Quote: "Yeah SetObjectUVScale didn't seem to do much, but I did not come across SetObjectUVOffset"


Well SetObjectUVScale() unsuprisingly scales the texture on the 3d object allowing you to wrap multiple copies of the texture on an object or to show a small proportion of the texture on the side of cube...lol and yes the UV offset does what you asked for above in a simple function.
PHeMoX
User Offline
Joined: 9th Jan 2018
Location:
Posted: 29th Sep 2018 01:33
Quote: "Well SetObjectUVScale() unsuprisingly scales the texture on the 3d object allowing you to wrap multiple copies of the texture on an object or to show a small proportion of the texture on the side of cube...lol and yes the UV offset does what you asked for above in a simple function."


Not exactly. The UV offset command doesn't wrap the texture around when moving, it only offsets it. So... you'd need to reset position, which means a rather nasty noticeable jump in the texture. Maybe it works better on non-primitive objects, but the effect isn't good on a primitive box.
Jeff Miller
13
Years of Service
User Offline
Joined: 22nd Mar 2005
Location: New Jersey, USA
Posted: 29th Sep 2018 04:10
The multiple cameras in DBP made it very simple to make objects like mirrors and magnifying glasses that could be used in a scene. You could use different FOVs, ranges, etc. for each camera. This was very convenient.
Bengismo
User Offline
Joined: 20th Nov 2017
Location: Yorkshire, England
Posted: 29th Sep 2018 11:44
Quote: "Not exactly. The UV offset command doesn't wrap the texture around when moving, it only offsets it. So... you'd need to reset position, which means a rather nasty noticeable jump in the texture. Maybe it works better on non-primitive objects, but the effect isn't good on a primitive box."


Again, sorry, but your wrong, if you want images to wrap them you use the SetDefaultImageWrapU/V() or SETIMAGEWRAPU()/V() functions...then you can set the offset indefinately and have perfectly smooth rotating textures on a cube or plane etc... If you are getting a "nasty jump" then your doing it wrong. I can throw up an example if yo want but its literally 5 lines of code to set this up.
PHeMoX
User Offline
Joined: 9th Jan 2018
Location:
Posted: 29th Sep 2018 12:45
Quote: "Again, sorry, but your wrong, if you want images to wrap them you use the SetDefaultImageWrapU/V() or SETIMAGEWRAPU()/V() functions...then you can set the offset indefinately and have perfectly smooth rotating textures on a cube or plane etc... If you are getting a "nasty jump" then your doing it wrong. I can throw up an example if yo want but its literally 5 lines of code to set this up. "


Oh wow, thank you so much. I had no idea there was a command like SetDefaultImageWrapU() . Honestly, it is annoying how a lot of stuff is SetObjectUVscale , but for that same Object's texture to wrap the command now is SetDefaultImage etc. This inconsistency makes it hard to find what I'm looking for in the online / offline documentation to be honest. Anyway, thanks heaps for pointing me to the correct command. This should absolutely solve the jump issue.

Login to post a reply

Server time is: 2018-10-23 08:49:37
Your offset time is: 2018-10-23 08:49:37