[Bf-committers] BGE API Proposal
Toni Alatalo
antont at kyperjokki.fi
Fri Feb 20 07:41:05 CET 2009
On Feb 20, 2009, at 5:00 AM, Campbell Barton wrote:
> Im not satisfied with a new Module name for API changes - (will be a
> mess in the API C++ code)
i thought it would be the least mess there, 'cause there would be
simple a copy of the old one lying around for legacy things (books, old
files) to work, and no mixing of old and new behaviour in the same c++
files,
> GameLogic.compatibility = "2.4" # to enable the prefix
.. which you'd get with this solution, similar to the other proposal of
passing vernum in args (basically ifs in the api code).
but,
> Or arguments for API version numbers is overkill if you only want to
> change small things like how getting the name works.
i do agree that it may be overkill for such small changes. is not about
a new API, just sanifying the existing a bit.
but thought it would be a clean and simple way to provide full bw
compat as that seemed to be important for some here.
> NMesh -> Mesh was not that hard to update scripts for.
also a nice example where having the new behaviour in a new module was
clean and clear (but of course also the only option as it was a full
rewrite from scratch with all different functionality, thin wrapping
instead of thick).
> Im still not convinced that a few simple breaks the API is as bad as
> some would make out,
> Its a hard argument to make because Breaking the API is bad right?
indeed. simple stupid things you are tempted just to make nicer in
place, but it is a valid concern that bw compat should not be broken in
vain. when using the BGE api long ago i was also annoyed by those
quirks so am in favor of the revamp. my old stuff mostly only works on
old versions anyway so i use them (even back to 2.25 sometimes :) for
running it, and also would be happy to port for new versions, so have
no issue really - just mentioned a possibility for those for whom bw
compat seemed to be more important.
> - Campbell
~Toni
> On Thu, Feb 19, 2009 at 12:25 PM, Toni Alatalo <antont at kyperjokki.fi>
> wrote:
>> On Feb 19, 2009, at 12:37 PM, Roger Wickes wrote:
>>
>>> APIVER=248
>>> myob=camera.New(type='persp', name='CamData', apiver=APIVER)
>>
>> I think a better way to do this is to have the different versions of
>> the API as a different module.
>>
>> The current BGE module is 'GameLogic' (or however the capitalization
>> is) - perhaps the new could be .. 'game' or 'bge' or 'blendergame' or
>> something?
>>
>> So old scripts could continue working as they are, per Erwin's request
>> - use 'import GameLogic' and get obnames complete with the 'OB' prefix
>> etc.
>>
>> New / ported scripts would do 'import BlenderGame' or something and
>> get
>> ob references, have .name without 'OB' prefixes etc. and all the other
>> sane things.
>>
>> Would be clean - the old api would be just what it is, no mixing of
>> such diffent behaviours for different versions etc - could be kept
>> around for possible 2.49 at least as it is (possibly with bugfixes
>> applied to there too).
>>
>> ~Toni
>>
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
>>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
More information about the Bf-committers
mailing list