Request features for a retro 2d lib.
BlitzMax Forums/BlitzMax Programming/Request features for a retro 2d lib.
| ||
I'm writing a retro 2d library akin to Blitz2ds but with added features like 8bit mode, pallets and to the bone pixel access, just wondering what features would you find cool in such a package? Or is this a dead market with the advent of BlitzMax's 3d/2d Library? It's being wrote in C++ and max so it doesn't have to be something thats only possible in bmax. |
| ||
I'm thinking it might be a waste of your time. Most people want hardware accellerated graphics, even for 2D looking stuff. And since its probably going to be difficult to purchase a new pc these days which doesn't support at least some form of 3D hardware accelleration, it won't be long until most people playing games will be able to also use that. |
| ||
Dunno really because I just did a test. The following is my lib's source Local Dis:TDisplay =TDisplay.Create(320,240,8,True) Local Pal:TPalette = TPalette.Create() For Local j#=0 Until 255 Pal.SetColor(j,(j/255)*63,(j/255)*63,(j/255)*63) Next TPalette.SetActive( Pal ) Local lx#,ly# lx=160 ly = 120 Local tc= 20,fps Local frames,lfram Repeat Screen.Lock() lx=lx+4 If lx>320 lx=0 ly:+4 EndIf For Local x=0 Until 320 For Local y=0 Until 240 Local xd#,yd# xd = x-lx yd = y-ly Local mag# = Sqr(xd*Xd+Yd*Yd) mag = 255-mag If mag<0 mag=0 If mag>255 mag=255 Screen.DrawPalPixel( x,y,mag ) Next Next Screen.Unlock() frames:+1 If MilliSecs()>lfram+1000 lfram=MilliSecs() tc:-1 ' If tc<0 fps=frames Print "Fps:"+fps tc=50 ' EndIf frames=0 EndIf Forever Repeat Forever End And the following is an identical program using max2d instead of my lib. Graphics 320,240,0 Local lx,ly Local frames,lf,fps Repeat Cls For Local x=0 Until 320 For Local y=0 Until 240 Local xd,yd xd = x-lx yd = y-yd Local mag# = Sqr(xd*Xd+Yd*Yd) mag = 255-mag If mag<0 mag=0 If mag>255 mag=255 SetColor mag,mag,mag DrawRect x,y,1,1 Next Next If MilliSecs()>lf lf = MilliSecs()+1000 fps=frames frames=0 Print "Fps:"+fps EndIf frames:+1 Flip Forever My program runs at 34 fps. Max2D runs at 4fps. That's with dx. Let me just try with gl..11fps. So it's nearly10x faster than dx, and 3x faster than GL. And that's using the slowest method of the library to do 2d. I'm adding even faster methods. So with that in mind, is it really a waste of time? People love to code things like raycasters, real time raytracers and the like, none of which are possible in a reasonable time with 3d 2d graphics. IMO of course. |
| ||
bad example: in your programi I see a 'lock' function, while in the bmax prog the graphic is rendered directly on the screen via drawrect. I think you are 'lock'ing the texture-screen (or something like it) to draw on it for faster drawing...so you should apply the same logic with bmax... Of course I can be wrong... byez |
| ||
no you are right. A screensize TPixmap with writepixel would be worlds faster then 320x240*2 = 153600 Polygons (would call it an idiotic idea to fake pixel by using polygons?!) |
| ||
A screenSize Tpixmap would be slower than a mother humper, you'd need to upload to gl the entire buffer each frame. Feel free to prove me wrong. bad example: in your programi I see a 'lock' function, while in the bmax prog the graphic is rendered directly on the screen via drawrect. I think you are 'lock'ing the texture-screen (or something like it) to draw on it for faster drawing...so you should apply the same logic with bmax... Of course I can be wrong... byez Actually it's a perfect example when the whole point is to showcase it's advantages over regular max2d. There is no parallel functionality in Max that can emulate what this lib can do, the best approximation is setcolor/drawrect. I swear to christ people just like to argue. |
| ||
This is a bit quicker...Graphics 320,240 Local lx,ly Local frames,lf,fps mypixmap:TPixmap=CreatePixmap(320,240,PF_RGBA8888) Repeat Cls For Local x=0 Until 320 For Local y=0 Until 240 Local xd,yd xd = x-lx yd = y-yd Local mag = Sqr(xd*Xd+Yd*Yd) mag = 255-mag If mag<0 mag=0 If mag>255 mag=255 ' SetColor mag,mag,mag argb=$ff Shl 24 | mag Shl 16 | mag Shl 8 | mag Shl 0 WritePixel mypixmap,x,y,argb Next Next ' drawpixmap mypixmap,0,0 DrawImage LoadImage(mypixmap),0,0 If MilliSecs()>lf lf = MilliSecs()+1000 fps=frames frames=0 Print "Fps:"+fps EndIf frames:+1 Flip Forever Drawpixmap is slightly quicker than the drawimage version. |
| ||
Only 6 fps faster than drawrect for me on average. Uploading data is big chunks is always going to be slow. The only way you can circumvent this is to devide your fake screen buffer up into smaller chunks. But even that goes out of the window when you edit the whole thing per frame as in this example. It'll still be the same amount of data going through the pipe. In Blitz2Dish(so going to get sued for that name). you actually can write directly to memory bitmaps as well at blistering speeds. Like pixmaps but without the overhead of texture creation etc as it just blits directly onto the screen buffer. |
| ||
Get it up to 20 fps with TPixmap. Can't say how fast your lib would be on my system (1,5 Ghz P-M) But in the end: 3D hardware does normally not need screen sized images or bufferlocks as they normally are mostly static and change on small parts ... Clonk for example shows how this can be done using pixel modification AND GPU power ... not CPU burnover. But hey ... we could use a pixelshader if you want per pixel modification AND hardware speed ;-) Would that be more what you want? ;-) (then we have several hundred FPS + 1024x768 pictures ... ;-) ) Such a library btw would be something I would be interested. An extended library to Max2D with imagebuffers (as Indiepaths render 2 texture) + pixelshader for high speed effects and pixel modification. I'm not interested in supporting 200mhz systems with vodoo anyway ... most today have GF4 MX or FX5200 or an intel extreme 2+ ... thats enough to run BM ... the small 5% part with no 3D chip at all ... hmm sorry but no minimalistic 3d card -> no game playing ... PS: As a little sidenode: There is the free GDI module ... so the question would be why one would by a library if there is a free GDI graphics driver that might achieve the same thing ... (I just assume that you sell it ... you haven't shown much interest in free additions for the community so far ...) |
| ||
Yes you could in theory use pixel shaders for per pixel 2d effects. I've used glsl many times for just such a thing, but is it realistically something most people here have the knowledge to do? I'd say a big fat no going on the lack of cool looking demos. But that said, pixel shaders can't replicate routines that require access to main memory. Only modern vertex shader3.0 can read textures, let alone main memory. There's fundemental difference in approach. Shaders are in out by design. A streaming protocol almost. Where as cpu based 2d is entirely up to the coder to design. It can read main memory, it can access arrays. and most importantly you can write to main memory for feedback. It's not like the ps3 where you can send vram to and from the cpu easy as you like with shaders. If it were then well, i'd be happy and there'd be no need to blitz2dish. |
| ||
You asked how quick pixmap would be so I answered. You could, if you wanted, go to the DX/GL level and render to texture as per IndiePath's modules. However, if you're saying you have your specialised, customised, C++/Bmax hybrid retro 2D code running quicker than a system written for 2D in 3D then... well done. Would I be interested in it? If there was some commitment of support, demos and docs then I'd look at it again. BTW Is this new project taking time from the game you're writing with 'the other guys' or holding up the examples/docs for your MaxAVi and BlitzNet Optica lib :) |
| ||
Well atm they're working on a collision problem. Damien is handling most of the physics side due to hs experience with Ode so atm I'm left with little to do. I've practically wrapped all of Ogre into a oop package with two physic solutions so I think it's fair to say share I'm not slouching..just waiting for them to catch up :) Hey here's a good way to determine which is the superior 2d engine, a Raytracer I wrote. It will need a linepick and tform function though unfortunately but ogremax has them so maybe i can jack into them. (b3d code, will need serious coverting) ;Infini. ; Global res=45 Graphics3D res+5,res+5,32,3 SetBuffer BackBuffer() test=CreateCube() ;test=LoadMesh("tmedia\jeep1.3ds") If Not test End ;FitMesh test,-3,-1,-3,6,1,6 other=CreateCube() FitMesh other,-20,-1,-20,40,20,40 FlipMesh other newPrim(other,2) newPrim(test,2) ;EntityPickMode vcam=CreateCamera() PositionEntity vcam,3,10,-5 PointEntity vcam,test UpdateNormals other UpdateNormals test TurnEntity test,0,0,-45 newLight(10,8,4,0,0,512) newLight(-10,8,4,255,255,100) newLight(0,3.5,-6,412,412,412) Repeat Cls ;RenderWorld PositionEntity test,0,10+Cos(aa)*4,0 aa=aa+20 TurnEntity vcam,MouseYSpeed(),-MouseXSpeed(),0,True RotateEntity vcam,EntityPitch(vcam),EntityYaw(vcam),0 MoveMouse 20,20 FlushMouse ;PointEntity vcam,test ;FlushMouse If KeyDown(17) MoveEntity vcam,0,0,2 EndIf If KeyDown(31) MoveEntity vcam,0,0,-2 EndIf If KeyDown(30) MoveEntity vcam,1,0,0 EndIf If KeyDown(32) MoveEntity vcam,-1,0,0 EndIf TurnEntity test,0,5,0 rayTrace(vcam,res,res) ;Flip ;Else ;RayTrace(vcam,64,64) ;EndIf Flip False Until KeyDown(1) SaveBuffer(BackBuffer(),"RayTrace.bmp") WaitKey End ;End Type prim Field id End Type Type light Field x,y,z Field r#,g#,b# End Type Function DotProd#(vecA#[3], vecB#[3]) Return(vecA[0]*vecB[0] +vecA[1]*vecB[1] +vecA[2]*vecB[2]); End Function Function vecNormalize#(vec#[3]) mag# = Sqr(vec[0]*vec[0] +vec[1]*vec[1] +vec[2]*vec[2]); ;// don't divide by zero If (mag=0) vec[0] = 0.0;f; vec[1] = 0.0;f; vec[2] = 0.0;f; Return(0.0); EndIf vec[0] =vec[0]/mag; vec[1] =vec[1]/mag; vec[2] =vec[2]/mag; Return(mag); End Function Function rayTrace(cam,xRes=160,yRes=160,pixelRes=1) fov#=5;in units xScan#=fov/XRes;/fov;/fov*2 yScan#=fov/yRes;/fov;/fov*2 ;Stop Local vecA#[3],vecB#[3] xo#=-2.5 yo#=2.5 cx#=EntityX(cam) cy#=EntityY(cam) cz#=EntityZ(cam) LockBuffer While x<xRes x=x+pixelRes xo=xo+xScan While y<yRes y=y+pixelRes yo=yo-yScan TFormVector xo*20,yo*20,100,cam,0 totr=0 totg=0 totb=0 vx#=TFormedX() vy#=TFormedY() vz#=TFormedZ() hit=LinePick(cx,cy,cz,TFormedX(),TFormedY(),TFormedZ(),0.2) If hit px#=PickedX() py#=PickedY() pz#=PickedZ() nx#=PickedNX() ny#=PickedNY() nz#=PickedNZ() Veca[0]=PickedNX() veca[1]=PickedNY() veca[2]=PickedNZ() HideEntity hit For l.light =Each light dx#=l\x-px dy#=l\y-py dz#=l\z-pz vecB[0]=dx VecB[1]=dy Vecb[2]=dz vecNormalize(vecb) dot#=dotProd(veca,vecb) If dot>0 hit2=LinePick(px,py,pz,dx,dy,dz,0.2) If hit2 Else totr=totR+Float(l\r*dot);*hit2 totg=totG+Float(l\g*dot);*hit2 totb=totB+Float(l\b*dot);*hit2 EndIf EndIf Next ShowEntity hit totr=totr/3. totg=totg/3. totb=totb/3. If veca[0]<>0 ox#=-vx Else ox=vx If veca[1]<>0 oy#=-vy Else oy=vy If veca[2]<>0 oz#=-vz Else oz=vz If totr>255 totr=255 If totg>255 totg=255 If totb>255 totb=255 rgb=totb Or (totg Shl 8) Or (totr Shl 16) WritePixelFast x,y,rgb EndIf Wend y=0 yo=2.5 Wend UnlockBuffer End Function Function newLight(x,y,z,r=128,g=128,b=128) l.light=New light l\x=x l\y=y l\z=z l\r=r l\g=g l\b=b End Function Function newPrim(ent,mode) p.prim=New prim p\id=ent EntityPickMode ent,mode,True End Function |
| ||
Would I be interested in it? If there was some commitment of support, demos and docs then I'd look at it again. BTW Is this new project taking time from the game you're writing with 'the other guys' or holding up the examples/docs for your MaxAVi and BlitzNet Optica lib About to ask the same. |
| ||
I released a demo for maxavi, and the blitznet optica demo is sitting on my hd. I have no ftp space anymore. |
| ||
Damien is handling most of the physics side due to hs experience with Ode so atm I'm left with little to do. I've practically wrapped all of Ogre into a oop package with two physic solutions so I think it's fair to say share I'm not slouching..just waiting for them to catch up :) Vector3. 'Nuff said. |
| ||
hey ant we need to work on offusion some more and get the art pipeline working correctly ;P talk about that after I sort the usual morning chores and dog stuff. |
| ||
Vector3. 'Nuff said. Don't even go there. :) hey ant we need to work on offusion some more and get the art pipeline working correctly ;P talk about that after I sort the usual morning chores and dog stuff. Yeah let's talk about it on yahoo. No ammo for the masses :) |
| ||
Hey here's a good way to determine which is the superior 2d engine, a Raytracer I wrote Hey, here's another way. Release a working demo of the lib with full docs so potential buyers can check for themselves and demonstrate a proven track-record of supporting your products. I realise this post was to ask whether people though it viable to produce a traditional 2D system but the first person that responded you poo-poo'd and, since then, you're trying to pressgang FPS comparisons. P.S. I saw a MaxAvi demo and it looked impressive but gave no suggestion of its features. I can't find them listed anywhere else either. |
| ||
[on topic] Using your Bmax example, I am getting 4-5fps as well, but using tonyg's example with pixmaps, I am getting 58-59fps. So I would say that its quite an improvement. You might be able to use a pointer to the pixmap and do some direct memory writing, haven't tested myself. Even though there is a handful of people interested in making their own raytracers and such, I am still not sure that it would be a good return on investment making something for such a small market potential. Not that I have actually examined what potential market there might be for what you are looking to make, but from what I have experienced while using blitz and coding, there just doesn't seem to be that many out there wanting to make that kind of stuff anymore. [off topic] If you want to sell something online, you might want to consider securing online storage space first, then market the product. That way, its available for people to download right away. Just one of those small things that will make a good impression on people considering to buy something. |
| ||
the main feature I'm interested in is open source @zaweran - lets face it he cant be serious about supporting his products, I have a few gig space for less than £60 a year... |
| ||
@Chris C, thats what I mean, he should start by setting himself up correctly, with a proper host, plenty of space and bandwidth. I am not paying much for my space either, and its probably more important than most people think it is. If he doesn't have the money, then he should partner up with someone who does, but given the series of previous efforts, I could see why someone might be hesitant, which is why extra effort is needed to win people over. [sorry about the offtopic bits, but it kinda ties in with things somehow, I think] |
| ||
I can't afford web hosting. I can barely afford food :) That's why i'm trying to sell products..gotta make money to make money kinda thing. |
| ||
Then make 1 good product and sell it. You created 2 products in the last few weeks ... This raises one very bad point (that was mentioned here and in other threads): It does not make us, your potential costumers, believe that you plan to support those libs as no one has enough time to fully support 3 modules at the same time. I already mentioned that in a different thread: We don't have much problem with "buy as is", but then you have to set the price tag according: 15$ - 20$ thats it. I and quite some other here don't pay more for it, simply because we are hobbyists (otherwise we would not use products like Blitz or Dark Basic at all) and hobbyists don't spend 50-100$ just for a module that adds some functionality. And the ones that use those languages "professionally" and would be willing to pay more, won't buy modules from you until you proofed that the past is the past and that you are going to support your actual products for at least 6 months actively. (or would normally not buy any module until it has shown that it was more than a one shot, not just from you) PS: I have 1,5GB of space, free traffic. 60$ a year including a .net domain. So price should definitely not beeing a problem. With 1000 visitors a day, my space would even be sponsored by my host ... |
| ||
couldnt have said it better than Dreamora. |
| ||
If you seriously struggling financially, then perhaps you should be focusing on something else, like getting a job, if you don't have one, or getting a better paid one if you do. First priority should be to take care of yourself and the basic needs, then everything else comes thereafter. I think that if you would just settle for one really useful product, write up some easy to follow and extensive docs for it. Set up a stable and easy to use website with downloadable working demos of the product and screenshots of its usage. Then stick with that one product for at least half a year and do your best to provide the best support for it possible, then a good deal of people would be willing to give you a chance and actually buy the product and provide you with constructive feedback that can be used to further develop and enhance the product. If that turns out well, then you could be looking at developing and additional product while supporting the first one, and people would be more willing to consider buying it, provided they need it, because they would have had a good experience with the first product, and they could see, that the author didn't just ditch it once the initial excitement was gone. I'm in no way an expert in any of this. I have had two application for sale for a while now, and have had about 30 customers total. I have done my best to support the products and have been available to answer any questions that might arise, and have been changing and enhancing the applications along the way based on customers feedback. It have been a pleasure to work on the applications and there have been a good feeling of accomplisment that came along with people actually feeling that the applications were good enough, where they would want to buy them based on the available demo and documentation. I hope that you take this to heart, it have all been with good intent, even though it might have been questioning your motivation and such, but I am sure you are becoming quite thickskinned by now, which is sometimes needed in forums like this. I wish you all the best in your endavor, as I think that you have the talent, just haven't found the right way to utilize it profitably, yet. |
| ||
Yeah I don't really disagree with anything you're saying, I just get disheartened if a product doesn't sell ten copies a day. I've never actually had a product that sold ten a day (Few have I'd imagine, it's hard work realising something that's actually worth money to people) and tend to lose focus and move onto the next big thing that's giong to make me a millioiare. I'm a lot like del boy..always looking for the next big deal so this next time year...:) For me now, the game I'm doing is the priority. I see it making us a good chunk of money if we can get past the initial problems we're having.(Usual early days sceneraio. physics not acting the way they should, scene loader playing up. bugs without a proven solution) So yeah I agree with what you say, I need to focus more, just don't realisticly see one product sustatining me for six months. Though a big reason for me starting so many projects is boredom. :) I used to release all my stuff for free..working on projects but even since vivid, which sold 20 copies in a month that bug got under my skin. it's such a wonderful feeling seeing the sales numbers going up..seeing the dollers signs rise. And now I'm a junkie..I crave the next sale. I'm just not approaching it in the right way. |
| ||
So if your game is priority, what about the products you are selling now ? And the customers who have already bought them ? You cannot serve 2 masters. The more I hear you trying to explain, the less confident I am in wanting to spend money on your products. Which is a shame, because if you had spent more time and effort into releasing a more complete product, I would have bought it. If you had to really concentrate on your network module say, I am sure you would sell a lot of copies. |
| ||
I'm not trying to explain my out of anything, I'm just stating the facts as they are in response to people's post. How people interpret is not something I can control. But that said, Net Optica will serve as the networking hub for the game (At least that's the plan at the mo) so it is ensured updates and streamlining. MaxAvi on the other hand is less likely to receive big updates. But it still has the advantage of being the only module of it's kind for max.(That I've seen, I searched before writing it) |
| ||
I think there are *some* benefits to doing 2D graphics the old-fashioned way with the CPU directly onto a visible screen, in that you can ignore having to do matrix and trigonometry stuff and just optimize for drawing sequences of memory. Very simplified and not having to take much into account, can give it a good head start over a software driven OpenGL implementation. For example on my iBook with only software OpenGL, you definitely can't do anywhere near as much in 2D as you could with old school techniques. However you can't really compete with the ease and flexibility and sheer fill rates of graphics cards. Even my mid-ish range card does 1 billion texels a second. Also you will have a problem integrating custom 2d graphics routines into BlitzMax since the display is either OpenGL or DirectX, you might not be able to draw directly into the graphics buffer. I would say definitely not with OpenGL, which counts out Mac/Linux. I think you can DO certain cool things in the old-school way much better than you can with GL/DX, in that you can easily read the buffer on a per-pixel basis and do all kinds of things with that in realtime. Nowadays you have to have shaders etc. I can't think of too much reason anymore, though, why there would be benefit to doing 2d in software rather than using hardware acceleration - except to allow you to draw stuff to pixmaps for later uploading. |
| ||
Your code formatting is scary. I tried to read it to get an idea of what you were doing, but gave up. |
| ||
Just messy demos. Here's an example of actual module codeType TPivot Method New() children = CreateList() End Method Function Create:TPivot(Parent:TPivot=Null) Local out:Tpivot = New tPIVot If parent = Null out.node = CreateSceneNode( GenerateName("Node").tocstring() ) Else out.node = NodeAddChild( parent.node,GenerateName("Node").tocstring() ) out.parent = parent parent.addChild( out ) EndIf Return out End Function Method CreateMeshData:TMeshData( mesh:String ) Local out:TMeshData = New TMeshData.Create( Self,mesh ) Return out End Method Method AddChild(in:TPivot) children.addlast( in ) End Method Method CreateChild:TPivot() Local out:Tpivot = New tpivot out.node = NodeAddChild( node,GEnerateName("Node").tocstring() ) Return out End Method Method SetQuat(quat:Byte Ptr) NodeSetQuat( node,quat ) End Method Method SetQuatDirect( quat:OQuaternion ) NodeQuatDirect( node,quat.w,quat.x,quat.y,quat.z ) End Method Method SetQuatCoords( w#,x#,y#,z# ) NodeQuatDirect( node,w,x,y,z ) End Method Method GetQuat:Byte Ptr() Return NodeQuatWorld( node ) End Method ' Might want to re-write this Ant- i've done it without adding stuff from the DLL. Method Move(x:Float,y:Float,z:Float) self.TformPoint(x,y,z) self.position(self.tformedx(),self.tformedy(),self.tformedz()) End Method Method X:Float() Return NodeX( node ) End Method Method Y:Float() Return NodeY( node ) End Method Method Z:Float() Return Nodez( node ) End Method Method Position(x:Float,y:Float,z:Float) PositionNode( node,x,y,z ) End Method Method GetPitch:Float() NodeRotation( node ) Return RotationPitch() End Method Method GetYaw:Float() NodeRotation( Node ) Return RotationYaw() End Method Method GetRoll:Float() NodeRotation( Node ) Return rotationroll() End Method Method TFormPoint(x:Float,y:Float,z:Float) TFormNode( x , y , z , node ) tx = tformx() ty = tformy() tz = tformz() End Method 'Just a cheap kludge till I do it in c++. Method TFormVector(x:Float,y:Float,z:Float) Local ox#,oy#,oz# ox = nodex( node ) oy = nodey( node ) oz = nodez( node ) Position(0,0,0) TFormNode( x,y,z,node ) Position(ox,oy,oz) tx=tformx() ty=tformy() tz=tformz() End Method Method TFormedX:Float() Return tx End Method Method TFormedY:Float() Return ty End Method Method TFormedZ:Float() Return tz End Method Method LookAt( x:Float,y:Float,z:Float,GlobalSpace = False ) If globalspace ' NodeLookAtWorld( node,x,y,z ) Else NodeLookAtLocal( node,x,y,z ) EndIf End Method Method Pitch( Inc:Float ) NodePitch( Node,inc ) End Method Method Yaw( Inc:Float ) NodeYaw( Node,inc ) End Method Method Roll( Inc:Float ) NodeRoll( Node,inc ) End Method Method Rotate( nPitch:Float,nYaw:Float,nRoll:Float ) NodeRotateLocal( Node,nyaw,npitch,nroll ) End Method Method Turn( nPitch:Float,nYaw:Float,nRoll:Float ) End Method Method Scale(x:Float,y:Float,z:Float) NodeScale( node,x,y,z ) End Method Field Node:Byte Ptr Field tx:Float Field ty:Float Field tz:Float Field parent:TPivot Field Children:TList End Type From the soon to be loved Aurora Engine. How would you format the demos? Aside from the obvious. Angel I would agree or disagree but frankly i'm too tired to debate the subject anymore tonight :) |
| ||
How would you format the demos? Aside from the obvious. Something like ' Short description of what the following does some( code( that( does( something( eeeeevil ) ) ) ) ) Rem Long description where neccessary EndRem Of course, you would describe this pattern before the example was provided so the viewer would understand how to read the comments. |
| ||
I'm not interested in anything... ANYTHING... until I get some docs on the module I already purchased. I gave ya a chance and I'm losing faith that I should have done so. |
| ||
Fair enough Kanati. You'll have docs before the day's out. Good enough? :) Noel, I never really comment code. I used to all the time but I just grew out of it. The only time I comment code these days is when I'm using VC# because it has such a great doc system. BBDOCS eat your heart out. |
| ||
Most of my code is lacking comments since, frankly, even after several months of development I still know what everything does. I can go back to all my code and understand it. Of course, my code is littered with the occasional comment or two in the case that I have something unusual going on. |
| ||
Docs are up Kanati. Same here, E, I don't need comments myself so I have little reason to comment the code. Suppose I need to change that if I intend to sell my libs. |
| ||
if it's a dll, it's a waste of my time because cross platform couldn't be more important now. |
| ||
It would have been a dll but I've decided against pursuring it so it's a moot point now. I'm thinking of doing a kick ass 2d lib build on top of max2d with glsl powered fx, per pixel lighting , bump mapping, the works. But that will have to wait until Aurora Ships. Another windows only platform but a great engine on one platform is better than no engine on all platforms. |
| ||
I'm thinking of doing a kick ass 2d lib build on top of max2d with glsl powered fx, per pixel lighting , bump mapping, the works. Now that I *would* be interested in. BLitzMax Turbo 2D or BlitzMaxMax. |
| ||
@Aurora Why did you find the need to fake the FPS results? With just changing three lines most of us got the fps in Max2d to double/treble in gl from what you had. Your liB is 256 colors. Why didnt you post just that fact, and say a speed increase of 30% I would be interested in a 2d accelerated Lib, (Accelerated for 2d cards, NOT 3d cards). Which is why I had searched this thread. And Yet again I find you doing doubious things. |