Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - doimus

#1
The best thing about GrafX is definitely the interface... once you get used to it, it just flows naturally. And it basically IS Deluxe Paint...  with 21st century features.

BTW, the way they implemented help and keyboard shortcut editing is simply awesome.
For context specific help, just press F1 over a command, and then just click on a highlighted keyboard shortcut inside to change it. Amazing feature! Haven't seen a piece of software that allows for easier shortcut editing.


@Erico - there is an android port but it's not exactly production ready. It doesn't even run on my phone.
#2
Thanks for the explanation, working on it now...  :good:

I've also found this old thread dealing with the same issue:
http://www.glbasic.com/forum/index.php?topic=1471.msg9769#msg9769
#3
I know people around here like to hear about latest developments on the cutting edge of pixelart technology  =D, so here's some good news..

I've been using GrafX2 on and off in the past, but then I got ProMotion license and kind of forgot about grafx as it lacked quite a few features that ProMotion had. ProMotion is/was the cutting edge pixelart editor, but commercial and windows only.

Few days ago I decided to catch up on old grafx2 and... lo and behold, was I in for a pleasant surprise! :good:
That little piece of software has all grown up, received support for layers, animation, lua scripting, palette editing, tilemap editing, lots of grat, GREAT stuff!

I guess from these few hours trying it out, it probably has about 95% features of ProMotion with some improvements as well! Namely the interface, oh how much I love that DeluxePaint Amiga/DOS style interface! We really lost some of that sleeky-ness when we started using windows-based apps.

If you have even remote interest in pixel art, or just love retro inspired software, I urge you to try it out!
Did I mention it's open source and runs on any imaginable platform?
Go! NAOW! http://code.google.com/p/grafx2/
#4
@MrTAToad - do you mean I can have those data types in basic or inline? I know that variable types do get transfered from inline, but that doesn't work on arrays (GLB arrays are some kind of KittyHello wizardry I do not understand).


@Ocean - that would be exactly what I need, can you elaborate on it a bit more... as I'm not really fluent in anything relating direct operation on bits... :-[
#5
Ok, I'm doing some test on a low res game with huge levels where I need pixel precision data. Actual screen is 256x192 but levels themselves can be huge and i want to have binary (true/false) info on every pixel.

So I tried with GLB arrays and when using int# the biggest (5000x5000) array is taking whopping  200mb ram! Which is a massive overkill for my needs. That array size is an overkill too tbh, but I just amped it up to test mem usage.

Is there a way to DIM the array as boolean only? I tried to inline a _bool type array but my inline jedi skills are pathetic to say the least.


Also, related to this, what is a proper procedure to save huge amounts of data? If I just loop through the array and SAVEBYTE each element, it takes ages to save it. It seems much longer than it usually takes to save a file of that size.
#6
Quote from: Ian Price on 2013-Feb-27
TBH I suspect that they either don't know what to do with it nexr, or have some genius masterplan.

I'm thinking the former! :P

I'm thinking the latter doesn't necessarily exclude the former.  :P

But it's probably just for spare ammo in patent wars... big company acting on hoarding instinct. Or maybe they know something we don't like Google will start charging for Andriod or whatever...
#7
Quote from: diego on 2013-Feb-24

If in the function initialize I insert the code to read data from txt file, every time I create a new character  the program must read from TXT File, and I want to read from the file only when the program starts, and then use the stored data to be passed to a new character!

That means you need to simplify things. There's a saying: "Perfection is not when you have nothing more to add, but when you have nothing left to remove." which works perfectly for programming. Slice everything in manageable and usable chunks.
Like you had a small company whose job is to run the game.

For example, in your code "character" really shouldn't do any loading from file. That should be the job for a "data loader". And then "data loader" should pass relevant data to "characters".
"Character" should only think about where he stands and what he is doing (ie jumping, high-kick, punch etc...) and then he should have a "sprite manager" who takes care of his sprites. So, "sprite manager" thinks: yeah, now he is jumping while punching, that means I have to draw jump-punch animation at his position. But what is his position?? And what is the current frame of jump-kick animation??
So "sprite manager" asks "character" about position (x:10,y:42 for example) and "animation manager" about current frame or sprite_id (123 or whatever).
Then character's "sprite manager" sends that data ( x:10, y:42, sprite:123) to the "draw manager" who actually gets all data from all the characters (he's like the boss of the company), sorts it into a drawing list(an array) of sprites and then draws it all on screen in one tiny function like:

FOREACH n in drawlist[]
    DRAWSPRITE n.x, n.y, n.sprite
NEXT


And ultimate goal is to have the entire game organized in these small functions, types, objects... whatever we decide to call them. Then it's very easy to read and modify the code even months from now. If you keep everything monolithic, nested together, it will be a mess to return to it in the future when design mechanism disappears from your mind. Ask me how I know that!  :-[
#8
Quote from: Ian Price on 2013-Feb-22

However - after this, if this occurs, everyone is fecked. There's nowhere left to go. Full price games won't be able to survive against a hord of free/99c games. DLC will be the norm and people will get wise and just stop buying it (after all another free/99c game will come out with all of the DLC features, without the DLC).

Quite possibly, quality mobile developers could drive down prices so people stop buying AAA.
But then again, Sony lost Vita to cheap mobile games and they will lose PS4 to smart TVs if they don't allow this. They don't have much choice, really.

And AAA games are already dinosaurs. Unless you have an established franchise and/or established publisher (EA, Ubi, Acti, Beth), you stand no chance in AAA market.
Just like movies... each year we have several dumb but heavily advertised Hollywood blockbusters and countless smaller, neverheardof movies.
#9
Quote from: diego on 2013-Feb-22

Now the problem is that I need to clone all the information to create more Characters!

What is the best way, without having to copy all the information into another type?

Even if you do need to have a clone, that clone will have at least different x,y position variables. But then it's not exactly a clone and data is not exactly the same, right?

Maybe organize the data differently. Why do you need 3 dimensional array for characters, couldn't all that data be stored inside one-dim array of types? And then just DIMPUSH or DELETE them all over the place?

edit: Or do you need some sort of parent-child relation between them? If so:
Code (glbasic) Select

Character[42].hasParent = TRUE
Character[42].parentId   = 12


and/or :

Code (glbasic) Select
Character[12].child[10] = 42


This way both the parent and child are of same type, and are aware of each other.
#10
Quote from: Kitty Hello on 2013-Feb-13
now I see. We need something like stencil buffers then.
That's pretty complex for caanoo to program. But I add it to the list.

Yes, please!!  :good:

Ability to POLYVECTOR draw with transparency would be awesome!
Even more awesome would be the usage of alpha-masks.
As Erico said, just as Layer Mask in photoshop: 256-level grayscale image which determines the alpha value of another image(sprite).

#11
I usually keep my code organized by putting all constants and global definitions in separate SUBs. It kind of makes sense to me to have all related global stuff in one place (in this example type definition and array declaration).

Code (glbasic) Select
GOSUB DefineConstants
GOSUB DefineGlobals

WHILE TRUE
MyFunction()
SHOWSCREEN
WEND


SUB DefineConstants:
CONSTANT ARRSIZE= 100
ENDSUB

SUB DefineGlobals:
TYPE TArray
x;y;z
ENDTYPE
GLOBAL gArr[] AS TArray
DIM gArr[ARRSIZE]
ENDSUB

FUNCTION MyFunction:
// do stuff
ENDFUNCTION


That way, once I'm done with that stuff I can collapse the subs in editor, or even move them to different file, cleaning up the main source file. And since I don't use subs for any other calls, it's very easy to get back to these definitions for modifications, etc.

But GLB compiler puts up a warning for every global variable that's defined in such way as "warning : variable already exists ".
It's not much of a big deal, but when there are lots of those warnings, it's possible to miss some other warning...
#12
Quote from: BdR on 2013-Feb-04

With "Explicit declarations" enabled, you'll get an error and you'll quickly notice the typo "mysting$" instead of "mystring$". When it's disabled it will just compile, automatically create 2 variables "mysting$" and "mystring$" and the code doesn't print anything, and then you have to go find the mistake yourself. ;)

Oh yeah... makes me think of Python... Beautiful, powerful scripting language. But all hell breaks loose if you have a typo in variable name or wrongly placed whitespace indent.  =D

Then there are C style languages where you spend more time writing declarations than actual implementations.

And GLBasic once again sits in the golden middle!  :good:
#13
Off Topic / Re: XNA dead
2013-Feb-04
So, if XNA's dead, what's replacing it?

DirectX and C++?

It's interesting to see how virtual machine languages are dying off left and right and everybody is returning to good old native code....
#14
Off Topic / Re: Mega
2013-Feb-02
Clouds are amazing. Having a Dropbox folder is like having a personal assistant in 1995 that would keep all your stuff backed up on floppies, then backed them again and then burned on CDROM just for your convenience. All while not having to care one bit about it.

Embrace the technology people!  :good:
And regarding the privacy concerns, I'm so tired of that lamenting... basically, no matter where you live, in whichever country, yes even the most free ones TM, your government already has more data on you than you could possibly provide them, even by giving them all your facebook, dropbox, mail passwords....

But ask not what your government knows about you, ask what you know about your government... that's where the real issues are.
#15
Off Topic / Re: Synergy
2012-Aug-11
Cool stuff!
This combined with Dropbox would really streamline multi-machine workflow.

I remember a decade or more ago, I had this huge industrial KVM switch that sounded like operating a ww2 plane when switching pcs: pc one - "tlack! Clack! Bombs awaay! - pc two.