Author Topic: Project Bane  (Read 55086 times)

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #60 on: May 26, 2015, 10:44:39 PM »
Any resources on Video Game Theory or Theories would be great, I also have a thesis due in august. I'll probably have to end up searching the library here anyways.
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #61 on: June 03, 2015, 01:31:43 PM »
back to work on this today, had a bit of an interruption with a trip to venice.

got some things settled even on the trip but not as much as I wanted. gonna finish the interface design today cause I'm in the mood to do it.

Edit 6:51 6/3/2015: observed CoX window geometry, stair geometry, and fence geometry via icon.

power bar window collision geometry is a typical rectangular plane, the ovular edges shown are just a texture, the texture is transparent white to default, the color is changed by object color.

Stair geometry the visible geometry varies, the collision geometry seems sloped with flat regions.

fence geometry, interestingly enough they used 7 to 9 polygons on each metal fence pole, the chain links are a high res texture of one link set to repeat.

wooden fence geometry, I had expected the use of a single plane with two 6 poly crossbar supports or 3 6 polygon objects total to cut polygons, instead wooden fences use 1 6 polygon object for each wooden panel and support beam.

kinda expensive on the poly budget but it looks nice.

collision geometry for fences is a typical slim box.

fun research.

now for the fun modeling.

Edit: 4:41 PM 6/5/2015:
Got the power bar in the workings might need to make a few edits later to replace some empty meshes with planes that can hold a material for collision object name purposes.

began 3 new core scripts, Writing the player power set database reader now.am also in the middle of the power click/drag/activate script, started the window mover script.

Also imported the mouse script from a test file, there is now a functional 3D mouse object to interact with buttons etc. I will have to set some screen bounds or modify the script to match the object position to the actual mouse position rather than just inherit the motion of the mouse.

I think screen bounds will be the answer as I believe I already tried matching the mouse position to the 3D object position, the problem is the mouse position is in pixels originating from the top left and the 3D object is on a different grid with positive and negative axis ETC.

I wish I could use the system mouse but there is a problem with blender's 'mouseover' sensor, I forget what but made a note to avoid it, I think it works but only works once on one object, there probably is a way to make it work but then we'd have to use the silly OS mouse and it's looks, I know there are ways to replace it in blender with a texture but I prefer a 3D object cause it can do 3D stuff like rotate.

long note on the mouse.

I hope to get the combat system functioning soon.

6:20: just hit a small wall, figuring out whether to climb over it or walk around.. I made a Power Button and gave it 5 damage/effect type statistic value slots, the problem is it doesn't have enough statistic value slots for all def power applications, especially not MoG powers.

*checks Powerset logs* hmmmm level 0 defense set power +Res 7.5% (all) I could program an 'all' option in the reader and store that as one entry, but then what about 'all except psionic' ? add a negative buff to follow? or make a series of 'all except [power type]'s in the reader.

I think I'll go with the last one wont be as much work as writing in more statistic value holders.

6:49:

And then after finishing the definitions for reading one power from a set from a database I realize this is going to be a VERY LONG script full of definitions before I even get to the programming. I've got to think and see if I can come up with a less time consuming method.

7:01:

Of course, I was doing it the hard way!, I had ALL the power information being stored in player specific databases... so silly, all I needed was to store the power names. the numbers can be in the game on a pre-built object that can be spawned when necessary.

That will significantly lower the amount of definitions in the database reader.

still I'll keep the current work for later, may be useful for something that can't be stored in game.
« Last Edit: June 05, 2015, 06:07:01 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #62 on: June 08, 2015, 01:53:20 PM »
Finished a database reader for the power info that needs to be saved externally, with a note "#NEEDS LEVEL CHOSEN, NEEDS NUMBER OF SLOTS and LEVELS PLACED, NEEDS MORE POWERSETS, NEEDS 1FULL POWERSET, CAN BE ADDED LATER#"

needs more powersets; Only added 1 primary and 1 secondary so far.

needs 1 full powerset; I have tiered the powers, right now I haven't finished and attack sets past level 10 (the end of tier 1). at least one attack set is necessary for the NPCs who will fight in the tutorial, so I'll have to.

I figure I can add it all later. right now I'll just test the current stuff.

I also started on what CoX would call pool powers, I've got pool 4 sets each with 3 powers just to make it easy, the database has definitions for up to 5 powers a pool set. but those will be above level 10. I decided to start with transportation type pool powers as that will help build an atmosphere of what we all miss.

the sets differ from CoX, though there are some similar values such as names here and there.

The first two defense sets will be Invul and WP.

The first melee set is Super Strength. there will be at least 3 to 4 more melee sets (depending on how much time I find.)

Ranged sets and manipulation sets... have yet to get to those I need to, I'm hoping to have a selection of 4 to 5 sets (hopefully I find time.)

that's the status of current works.

Class today, will work more when I return.

Still have to make a proper female muscle build, but I really wanted to finish the animations first so they can automatically be on the female model as they are on the male.

lets see how far I can get.
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #63 on: June 10, 2015, 04:15:47 PM »
Oh lol, and just when I thought my python coding abilities were sound, ERROR.. I was like WTFmate?
Script1:
cont = GameLogic.getCurrentController()
own = cont.owner
actu = cont.actuators['actu']
actu.setProperty(own.name)

Script2:
actu2 = cont.actuators['actu1']
actu2.setProperty(scene.object[actu.getProperty()].actuators['actu'])
print actu2.getProperty()

it was like KeyError "CList [Key]: "" key not in list"

I was like WTFMATE!!!?

then I changed 'Property' to 'Value' and it works lol for some reason I remembered incorrectly, I though I could modify property name fields in the property actuators from in-game, that's a negative. I can only edit the value fields!

this sets more work for me, I will need to modify the database reader/writer and add some more actuators to the list for entries I placed in property fields. I could make the value fields a list [entry1, entry2] to hold more data ... let me test that now,  not sure it will work. I must keep in mind the value field has a text character limit of 31 characters.

not a major problem just a small pain, got some tedious work to do.

EDIT: 6:40 PM 6/10/2015:

OK I can put multiple entries in one value field so long as I either use space as a separator or define a character as the separator such as ','

string.split() will work, saves extra efforts.

Edit 7:48:

Heh statistical math is the easiest part to program, can get blender to do math homework for you lol. did a test of percentization , division, multiplication and addition, I already know subtraction works.


EDIT: 3:17 PM 6/11/2015:

Things are winding down!!!

BATTLE SYSTEM LOGIC EXPLANATION PARAGRAPHS COMPLETE. I already have the battle calcs complete since a while back. All that's left is to build this final step in the game based on whats written in these explanation paragraphs (basically just follow the list, it's all doable without a second though except sys.time() operations, will have to think about that for effect duration.), and build the target selectors and range sensors.

then I have a complete battle system.

If I really push it and don't procrastinate and keep putting in 16 hour days as I have been I can get the battle system done by monday! then it's pure graphical stuff, spawn points and menu options ETC. from there.

There has been a request by classmates to at least make it 2 player. so I may add in the server communications after all and keep one client as the MASTER DEV CLIENT and the other just uses that as a server.

I also have another SPECIAL SPECIAL SECRET project which is part of project bane I hope to include which will help players deal with tough missions.

I will definitely be able to release a client by November/December. If even just an online client with a tutorial zone.

I feel it's time to confirm/reconfirm some things about this project;

The Tentative title is "Project Bane"
the client will be Open Source (With a Custom license!!!)
it will be made and played in Blender3D 2.49b (if you can't find a copy I can supply it when the time comes)
it will be programmed in Python Application Programming Language 2.6.2 (again, if you can't find a copy I can supply it when the time comes)

I will post links to both Blender 2.49b installers for Windows, Mac and Linux at least 1 month before release, I will post python 2.62 installer links for Windows, Mac and Linux at least 1 month before release.

If anyone with a legal background/qualifications wants to help write the license, it would be appreciated. I will be attempting to register IP rights to the Project Bane engine as well as the game it outputs, if there is a delay in release date it's probably due to that or procrastination.

A non-official summary of the license as I want to make it;
Spoiler for Hidden:
1: The game I create (not giving a name yet) and the official Non-Player characters, stories and other unique features including game-play therein are intellectual properties owned by me. Users do not have any rights to claim ownership to these aspects. Users may not use any official Non-player characters outside the game without due permissions except as covered by articles of Fair Use, even so use of official Non-player characters under articles of fair use must also include a visual reference to Project Bane and the owner (me) as the owner of those properties and include a copy of this license unless otherwise stated in a direct agreement with me (the owner) and my legal representative(s).

2: Users own and are to be held responsible for their character, context, text and any other creations, except in the case where the User creates a character, context, text or any other creations deemed by courts of law to encroach on Intellectual Properties owned by other entities. At which point the user is held liable and I (the owner) and Project Bane wave all liability, however we reserve the right to reset encroaching or offensive characters to default in aspects of: Appearance, Name, Background Story, and including any texts or aspects created by the player deemed to be encroaching or offensive.

3: The Project Bane Files are intellectual properties owned by me. Users do not have any rights to claim ownership to these aspects or their content or any file deemed by courts of law to be a modified copy of the Project Bane Files.

4: Users may use, copy, modify or distribute the Project Bane files to play any game made with project bane, create their own games or animations/movies, and to take screenshots under the explicit conditions that: 1; the users do not claim ownership of any aspects of project bane. 2; the users do not use any aspects they do not have permission to use. 3; All references to Project Bane inside it's files must be left in place. 4; people who modify any parts of project bane must include a visible reference to Project Bane and me (the owner) as the owner of all attributes covered in this article, as well as include a copy of this license. 5; Games Made which use the Project Bane Files can charge users for any game-based commodity they include as long as they recompense Me (the owner) $1 2015 USD (or the equivalent in any other currency and or year) per paying player, per year the player(s) pay(s). 6; Games Made which use the Project Bane Files may operate freely without paying anything to Me (the owner) Under the explicit conditions that; Neither the game nor the entities in charge of (or in relation to) the game in any way, make any profits; whether direct or indirect, monetary or non-monetary; in relation to the game made which uses the Project Bane Files.   

Profits are to be defined as; a Trade or Donation of any legal commodity or representation of value either for the development or support of projects which use Project Bane Files or their creator(s) or any entities associated with them directly or indirectly, AND/OR a legal commodity or representation of value which allows any user(s) to gain anything that at the end of it's trade chain can be 1; exchanged for game functions, game digital objects, subscriptions, or values, and/or 2; exchanged for a Token or Receipt/Claim that can be exchanged for game functions, game digital objects, subscriptions or values, and/or 3: Exchanged directly or indirectly for a chance to obtain game functions, game digital objects, subscriptions, or values, and/or 4: exchanged for a token or receipt/claim that can be exchanged for a chance to obtain game functions, game digital objects, subscriptions, or values.

5: I (the owner) reserve all rights to modify this document for inclusion in future updates to be in effect for all versions whether previous or future of the Project Bane Files as deemed necessary to stop harmful (whether financially or otherwise) use of the files.

6: I (the Owner) reserve all rights to make exclusive licenses concerning the Project Bane Files which do or do not include any or all of these articles for specific entities with or without time limitations at any time for personal or other benefit as seen fit.

7: I (the owner) reserve all rights to modify any exclusive licenses concerning the Project Bane Files, at any time as deemed necessary to stop harmful (whether financially or otherwise) use of the files.

8: Project Bane is distributed in source code in various formats such as .blend and non-compiled .py documents, I the owner of Project Bane did not compile these documents, if they are compiled by users; the aspects I claimed ownership of in this document are still covered by this license and I still retain all ownerships of aspects expressed in this document including copies of them extracted from compiled versions.

9: project bane does not claim ownership of Blender 3D or any of it's components in any of it's revisions. if Blender was supplied with Project bane it was supplied directly from official Blender.org links including a copy of the respective license(s) as included by the Blender.org teams.

10: project bane does not claim ownership of Python Application Programing Language or any of it's properties in any of it's revisions. if Python was supplied with Project bane it was supplied directly from official python.org links including a copy of any respective licenses as included by the Python.org teams.

Edit 9:55 PM:

sys.time() would be very unruly it would work properly the first time but I'd have to call it right at the beginning of the first timed power, then call it again after so many seconds... not really the best.

sys.sleep() however can be used to set a function to sleep for a specific number of miliseconds before activating or deactivating something so;

if trigger.positive:
[tab]activate effect
[tab]sys.sleep(effect duration in miliseconds):
[tab][tab]deactivate effect

this is the simplest way to do it, another way to do it in blender is to activate the effect then trigger a state actuator in the second state have a delay actuator after the specified delay trigger a deactivation and reload state 1.

I.. Rarely use states, I only use them for glitchy things like for example opening a .blend game inside a .blend game, that can be done entirely in python as well but it typically crashes the game so it needs a combination of logic bricks and python, most of the time however I'd honestly prefer to save the mind numbing logic brick maze and program it directly with python.

playing around with blender and python is fun, try loading an exterior object in game then saving the file in game then loading the file you just saved still in game! warning, only do it once though! the second time it will crash (most likely because of a file name and data conflict)

anyways everything is in order now. just have to make it.
« Last Edit: June 14, 2015, 10:58:14 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #64 on: June 13, 2015, 01:03:42 PM »
Click target acquisition almost done, just need to add a character selection outline object to toggle visible or invisible on each target enabled object.

I took the concerns of this forum into account and remembered that when selecting a HERO or FRIENDLY target;
Friendly.setValue(TargetName)
ENEMY.setValue(Target.actuators['ENEMY TARGET'].getValue())

it's dynamic so the loop could be infinite and span through as many HERO or friendly targets as are on the map at any given time given they all target each other in a chain. however at the moment it only works at target acquisition so I'll have to make an 'always update target' script [.......] there's lot of ways to do it, for best effect I'll use an always sensor strapped to a document with a silly and obvious trigger followed by a purposed trigger:

Code: [Select]
if own.name == cont.actuators['OWN NAME'].getValue():
[tab]if Friendly.getValue() =/= "":
[tab][tab]ENEMY.setValue(scene.objects[friendly.getValue()].actuators['ENEMY TARGET'].getValue())

it helps that I'm setting object names to become character names then using the object names as the OWN NAME value and target values.

but then again, that would be an always function which would eat up processor power...... it would be better to have a proper trigger that activates once like say, when the friendly target you are selecting changes their target. for that I'd have to do something more complicated like:

record info of what friendly target is targeting you (and give it 40 slots (max for 1 zone) and a few NPC slots to record in, checking for an empty "" slot and having the targeting character enter their own name into a slot) then when the player switches their target have that trigger a bool operator on the characters targeting through them which activates a script like:

if boolsensor.positive:
[tab]ENEMY.setValue(scene.objects[friendly.getValue()].actuators['ENEMY TARGET'].getValue())
[tab]scene.objects[WhoTargetsMe1].controllers['ReTarget'].activate(TargetChangedTrue)
to
[tab]scene.objects[WhoTargetsMe40].controllers['ReTarget'].activate(TargetChangedTrue)
[tab]scene.objects[WhatNPCTargetsMe1].controllers['ReTarget'].activate(TargetChangedTrue)
to
[tab]scene.objects[WhatNPCTargetsMe7].controllers['ReTarget'].activate(TargetChangedTrue)
[tab]cont.deactivate(TargetChangedTrue)
[tab]cont.activate(TargetChangedFalse)

yeah, it's a more complicated set-up but I think it'll work better in the long run cause it only activates when the leading player switches their target versus being a nag on the processor all the time. the part in red is something I've never seen done before and I'll have to double check that it's possible and works.

there's only 1 fault to this whole set-up that I can already see; right now if you have an enemy target and select a player and they have no enemy target it will set your enemy target to "". the obvious answer is to edit my targeting script's trigger to include:

and Target.actuators['ENEMY TARGET'].getValue() =/= ""

actually it would be better as a subfunction before setting the player's ENEMY TARGET to your own ENEMY TARGET.

and this is why I spend 16 hour days at this project and barely complete anything. haven't even gotten onto the tab selection part of the script and that will have like 12 or more different selection methods: Closest first:Clockwise, counter, compass clockwise then corners, compass counter then corners, zigzag right then left, zigzag left then right. ranged first:Clockwise, counter, compass clockwise then corners, compass counter then corners, zigzag right then left, zigzag left then right.

and random
TargetList = getHitObjects()
ENEMY = TargetList[Random(0, int(Numberofenemiesinrange))]

gonna take a bit of work.

I trust there will be no complaints if I only do tab selection for enemy and destructible targets? I could do for player targets too but... that means another huge section of code.


Edit: 4:04pm AAHHHHHHHHHHH 404!!!! 6/13/15:

http://www.blender.org/api/249PythonDoc/GE/GameTypes.KX_GameObject-class.html#controllers

the red part above will in fact work. the only reason I have to use it is because an error will be raised if you attempt to activate an actuator that is not presently connected to the current controller via logic.




11:43 pm 6/14/15:

worked till my headache was sore. not sure what I got done headache just looking at fine text, hate being sick and hate underskin pimples in the center of the forehead. hate sinus headaches hate coughing up green stuff and hate the dizzyness that encouraged me to lacerate the side of my thumb on a can lid cause I have no proper can opener... my can opener is missing most of the bottom handle... and when engaged the gears wont spin the blade so you gotta rock it back and forth around the edge to puncture the lid or bend it out then when you've done that as much as possible use something to pry the lid open.. and that's when things can be dangerous.. Dang can of mushy peas hurt mah pride, not that pride is a good thing anyways, lesson learned.

2:45 AM 6/16/15:
after a long monday out at uni, I'm still up coding, decided to tackle the camera, nearly done, just need to counter the sudden jerk when engaging the camera's rotation. zoom works, but I need to set max an min locations or it will zoom out or in FOREVER as long as the player keeps scrolling.

I actually killed all my mice so I tested the script with buttons then set the mouse wheel motion as the sensor when working.

nothing else works yet because though I coded a lot I haven't actually finished tying it all together. but I will shortly.

8:28 PM 6/16/15:

slept till around 7 pm late nights are not a good idea lol, I only stayed up to keep someone company so they wouldn't fall asleep till they got their work done. In the end I got quite a bit done last night so it wasn't a total loss sleeping in till this late. And it's Scotland so I don't have to worry about waking up at 7pm and getting depressed from vitamin D withdrawals cause the sun isn't out, because the sun is typically out till around 11pm here.

10:47 am 6/17/15:

Will work on stuff today for a few hours before going out, Gonna fix the camera jerk, the main problem with it is it's rotating on the visual y axis  I have to test and make sure it's actually Y cause sometimes things are spawned with their axis rotated 90 degrees or more. as we will almost never have to rotate the camera on the  local Y axis (except for camera shake) I can just put in a y-axis reset for every time the player activates camera rotation.

sounds like a lot more work than it is, just need to make an IPO, make an actuator to activate it and enter a line of code to activate it in the CamRot script.

for min and max zoom I just need to make 2 panels in line with the camera and make a collision sensor specific to each, when colliding one of the zoom keys will stop working till it no longer collides.

I needed the camera working for targeting purposes., I also need to remember to set the windows on screen to not receive or cast shadows.

once that's done I can add the final touches which string everything together for the targeting system and the battle calc system. then we have a game, mostly at least.

12:12 pm:

seems there is a slight script reading delay to get the y axis reset it works but players should give it a few seconds after the game loads before activating it. if it messes up there's always the full reset 'Shift' +'r' so don't worry too much.


11:11 PM:

heh I broke the mous script before I left this morning and just got to fixing it now. I figured out what was causing the delay, mouse motion needed to trigger the script, not really, anything could trigger it so long as something triggers it before it's used.

the part that needs to trigger is the reset, if that's not triggered first then the whole thing jumps to a very odd angle the moment you right click (set it to right click at the moment cause I have no middle mouse button on my laptop).

regardless the jump there is still some unwanted rotation on the Y axis, I will need to find the source, it's probably something simple.

right, I need to start making more progress each day.

7:51 pm 6/18/15:

I fully and complete understand the mouse motion script, and from that I was able to find out where the Y axis rotation was coming from when you 'Right-click' + 'circle motions' with the mouse. mouse motion is recorded on X and Y screen axis then translated to motion for the object in 3D space. left and right motions are sensed separately from up and down motions so the amount of motion can be sensed accurately. Each motion is then plugged into a simple motion actuator and activated.

anyways the visual Y axis rotation was coming from both axis being activated as Local motion, the same is true if both are activated as global motion, but local motion is the worst.

allow me to explain, if you rotate locally on y, then rotate locally on x, then rotate on y again; then y's axis has just been skewed by x's rotation in degrees.

so the fix is one of them has to be local while the other is global. Global means it will be the exact same axis rotation no matter how the direction or placement of your character has changed. Local means  the axis rotation is relative to how you have changed angle or position.

thinking it out:

 if Axis Z camera rotation was Local then any changes to any other axis rotation would skew it at odd angles. so Axis Z rotation should be Global.
if Axis X Camera rotation was Global then it would only yield Up and Down rotation when facing directly parallel to the X axis. if faced in the same direction as the X axis Global rotation would yield a camera roll. Not what we want. So Axis X rotation should be Local in this case so it can adapt to the instances.

if both were global you still have the problem with the X Axis, if both were local then you still have the problem with the Y axis because of the X axis. so there is no other way than; Up Down = Local, Left Right = Global.

8:21 ;

Of course you should always check your object's default Axis, sometimes they don't match 3D space... in that case the objects Up and down might be left and right and vice versa.
« Last Edit: June 18, 2015, 07:22:49 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #65 on: June 19, 2015, 10:47:36 AM »
11:45 am 6/19/15:

Today I go out so I will work on this before and after as usual. with all the camera controls working nice, I can get back to target acquisition, power activation and battle calcs.

12:18 :

set stats to default values so I wont get errors like "type error for + invalid types: 'str' and 'float'" which is what happens if you try to add a number to "" I could always add in an If blah == "": line but that's just more work, might as well zero everything so there's a number to be worked with.

8:46 PM :

Back to working on the targeting script, I found a few irregularities, own.getName() was used in places it should have said Player.getName(), after fixing that, I went to make an enemy to target and thats when I found what I believe to be lord nemesis's handwork:

Code: [Select]
if TargetType == "ENEMY TARGET":
if Target.actuators['ENEMY TARGET'].getValue() != "": #hmmm? wait a minute, something fishy is going on here!!!
ENEMY.setValue(Target.actuators['ENEMY TARGET'].getValue())

I instantly wrote the comment to mark it so I wouldn't loose track of it. to explain what that would accomplish I will spell it out;

TargetType retrieves a set string from the object which collided with the cursor which can contains a variety of things from "HERO TARGET" for heroes "VILLAIN TARGET" for villains and "ENEMY TARGET" for NPC enemies which are generally just enemies for everyone (like nemesis).

if the target is an enemy then Target.actuators['ENEMY TARGET'].getValue() will yield a string containing the object name of their valid enemy target!! (which would be "HERO TARGET", "VILLAIN TARGET" or "") the script then goes on to say != (not equal to) "" (a blank string of text). In total this means you can't select them as a target unless they've selected a target themselves!!! I would expect this of Lord Nemesis, to give the CPU enemies a distinct advantage!

Not only that it goes on t say to set your own enemy target to the ENEMY's Enemy TARGET!!!! Definitely LN!!!

I will remove it. I think removing is what I need to do, I will just double check that I didn't mean to crosscheck for something else.

10:23 pm:

Python script error from controller "cont#CONTR#1":
Traceback (most recent call last):
File "ClickTargeting", Line 66, in <Module>
File "ClickTargeting", Line 19, in MouseTarg
AttributeError: 'NoneType' object has no attribute 'name'

but whats funny is it's still passing the info onwards, the object name will be OBCharacter.001 or OBCube at this time (later it will be the player name or enemy name) and that info is being passed on in a readable and recordable format so..... YOU LIE ERROR!!!

So when the game is released and you see this error in the console window just ignore it.
« Last Edit: June 19, 2015, 09:31:24 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #66 on: June 20, 2015, 05:38:34 PM »
6:24 PM 6/20/15:

NOTES; the targeting cursor (around a character or object when you click them) in City of heroes is comprised of 4 visual objects (corners) which are 'bumped' out of their standard location by motions of the character selected, to be clear they expand and contract with the bounding box(es) of the character's many parts.

now to think how to code that. I can always omit it for now. but later it will be necessary.

the physical setup would require some sort of soft or collision sensitive object to be linked to the corners. Moving the corners will have to be done with 2 constraints which tell the object to follow the movements of the soft/collision panels.

seems simple enough but will come with a lot more complexity as I get into it I'm sure..

hmm, I think I need to go observe the interactions in icon again just to be sure

one problem may be setting the softbody panels to 0 gravity. if i remember correctly there's a trick to it.

Reobserved it, character motions even effect it when it's diagonal like a diamond shape. so what I said should work.

9:42 pm :

Naturally curiosity got the better of me, I tried the above. it's a fail.

so over dinner I thought out a new method, it should have the desired effect and can be applied to numerous enemy instances.

simply put; the collision panels will be dynamic objects (parented to a static object type empty mesh, so they don't fall) set to follow a curve (line) the curve will have only 2 points, 1 point will follow the cube the other will follow another empty at the default position. I'll put static cubes around all the joints so when they hit the dynamic panels, the panels will be pushed back. After the push they will follow the line back to where they belong.

That /will/ work for that portion. However the fact that the corners will be controlled by the motion of 2 separate objects will be quite troublesome, typically it would cause a scale deform, I wish there were a way to tell the object to follow the Local X of one object and the Local Y of another, that would be great I'll look into that but chances are, no. I'll have to find another way.

Ah yes constraints, nearly forgot I can add constraints to...... wait a minute can constrains follow local motion? Well by gum they can! Ok I can solve that problem with the copy location constraint. providing this particular constraint works in the ge... Hey, it has Sho in IPO window and add Key. very nice, so if it doesn't work natively I can make an influence IPO Key. (NO j00, not that type of influence!!)

well even though it's all figured out, it will be a job and a bit to make that so... I'll save that for another time. for now I will have a lazy non animated non interactive character selection cursor that does little more than always angle towards the camera, re-parent itself to the current target and get the targets location, set itself to that location and toggle it's own visibility. then on selecting a target the first operation will toggle visibility off, reset the parent to the mouse, reset the location to the mouse location then begin finding the new target and so on and so forth.

again, I really appreciate the work the Cryptic and Paragon devs did to make CoX even more so every time I think of the complicated stuff they've had to program in much more complicated languages and without a nice pre-made gui with all sorts of tools ready to go.

so, finish this script then I can see what I'm targeting in real time so there's no guessing or checking the console window for print outs.

I so badly want to throw everything together and stop doing these temporarily optional side projects so I can play and get to putting missions together. but, we'll see.

5:16PM 6/21/15:

After some finesse I got a red plane to parent to and go to an enemy target and become visible, the red plane's "follow camera rotation" constraint isn't working so I'll have to find out what my options are after I get back from the store.

drat how hard can it be to do this lol. I'll have to do a
Code: [Select]
getOrientation() setOrientation() script  :roll: go figure none of the stuff that is supposed to work for this operation works, so I'll have to do it manually using the code above.

I also finally put an object for the mouse pointer and noticed that in perspective rendering mode where the mouse pointer is; is not where it's pointing! the two only overlap in orthographic mode. but orthographic mode would be silly for a 3D game like this. the fix is to leave the invisible cursor sensor object and such necessary for interactions in the current layer in perspective rendering and make the visible portion in another visible layer rendered in orthographic.

so many things to do if I want to do it right. I thought I was gonna throw it all together this week and show it to my professor tomorrow,  :roll: 8rolls eyes at self* well I'll just have to tell her the truth I hit some unexpected snags that slowed it down and was unable to get it ready for monday.

11:03 pm :

this is really starting to get to me, the code is running but not doing anything in the game..... Ah True level triggering and Level must be used, I was using 'Tap'

finally got it running! one more small step done.

10:09 am 6/22/15:

Note to other blender users, visibility actuators don't like to be run in the same state or closely after eachother, so doing so will cause the first one to run and the second one to ignore the request. It's better to do it manually in code KX_GameObject.setVisible(0=invisible 1=visible, 0= doesn't effect children 1=does effect children)

just shored that up cause the cursor needs a reset to invisible before being reparented or moved to another object. otherwise it could look a bit strange to see it racing to the next target or could block the view of the camera.

8:25 pm:

tired, long day. meh I'll try to get in the mood to work.

4:14 pm 6/23/15:

Todays lesson comes from the set-up for battle calcs;

So long as the information you are looking for is stored somewhere between you and the main parent object or on the main parent object it's easy to retrieve. any information stored outside this chain of parented objects has to either be obtained by the object's name from a collision sensor, or be entered into the parent chain.

for example: Parent -> Child1_1 -> Child1_2
to get the info from parent on Child1_2 all you have to do is '.getParent().getParent().whateverinfoyouwanted'.

for a second example:
Code: [Select]
Parent ->Child1_1 -> Child1_2
                                            -> Child2_1

to get the info from Child2_1 onto Child1_2, first Child2_1 should pass either its name or the info somewhere in the parent/child1_# chain.

for stuff that's not even connected like:
Object1
Object2

it's best to use a collision sensor or some rules for one object to pass it's name into the parenting chain of the other object then set the other object to look for this name.

and that's the foundation of battle.

1:37 am :

actually got the hit calc in-place and programmed in, next I need to import the character and trigger the animation, then the damage calc. then I can do the other calcs for effects, DoT etc.

nearly there, nearly there.

4:15pm 6/24/15:

the more I do the less logic bricks I tend to use, I find it more controllable to just program it.

10:45 am 6/25/15: not an update really.

Sure. It says, "You can't read this! Ha ha, I win!"


Actually, it says yet another programmer thinks they can invent a block cipher.  I have yet to meet the programmer capable of even equaling Enigma, but they keep trying.

The message also exhibits a lot of structure, but its probably too short to evaluate with conventional cryptanalysis.  In other words, its not long enough to expose the weaknesses in its encryption algorithm (at a glance it seems to have barely 120 bits of message content), unless you get lucky and guess the algorithm directly.

Also, this is way off topic, even for me.

heh, there are many methods of encrypting, I watched the documentary that talked about the encryption methods they used to try and decrypt the second half of Enigma, fail lol. they didn't even try possibly millions of other complex methematical coding methods that no one seems to use.

pictoral encryption is a nice one, use the bits in your favorite image as a per character offset and optional use the rest of the image as fluff arranged in accordance with a bit stream of some sort in relation to the image or something more personal., IMPOSSIBLE to decrypt. it's probably similar to Enigma, it's well documented that the second half doesn't use 1 encryption method..

sine encryption is when you change the character offset per character based on the whole number increments on a large sine curve.

the whole problem needing to be addressed is; you will need a keypair of some sort to decrypt it, this keypair may only be sent to the client shortly but must remain in memory, unless you use a different one with each message, but that means sacrificing bandwidth and time. from what I remember codewalker saying, CoX used something similar to that system, every short while the encryption key is changed, so by the time your computer decrypts one message it's too late to use it for the next one which stops a lot of hacking problems.

meh, to give a hint, mine is non-standard, yes the key will change but only on certain actions like login, character creation, character deletion, name change, trade, consignments and store operations.

right now the key /is/ the message (heh, sly one there), so yes as arcana said you can't know what it says unless you know what it says. There is a second key used in the same message but it's nigh undecipherable, might as well be garblety-gook. trying to find the e's wont help. the message is used to decipher the key to the garbletygook and the key will not always be the same (in different messages). And that's why I felt confidant to put it out in the open like that, however I'm still working with it. I want to eventually get it to the point where the client makes a random cypher with a certain keyphrase and confirms with the server then sends a unique message declaring a new cypher unique to that particular client, which the server then stores in a hidden zone along with player data. then communications continue with the new cipher and no keyphrase at all, making it impossible for players to hack another player or mimic them to the server or even make heads or tails of messages intercepted unless they catch the original cipher relay and manage to decrypt it in-time to catch the next one. The only way to do that is to 'listen' to their line traffic, which in itself can be detected by multiple methods, I want to eventually raise a warning in those cases on the client side and one on the server side that tells the server to ignore and not reply and tells the client's user "someone may be attempting to intercept your messages, please restart your internet connection or contact your ISP if it persists". may even get the IP of the interceptor and forward that to the client so they can tell that to their ISP or set to block communications with it if they know how.

so many nice things I want to do, so much time it takes to plan them.

Game Work Progress Update:

Today, is thursday the 25th, I told myself yesterday was the last day to work on the battle system for a bit or at least till I can get a reasonable amount of graphics done before the 10th of july (when I have to show a picture that I feel captures the essence of what my research is about.)

yeah... so today graphical work, with any luck I can get a whole slew of it done and go back to coding in a couple days.

10:20 AM 6/26/15:

I have started on some new textures, I was unable to get my first brick texture so I'm making like 9 more, got a whole list of assets to make might take a week.

today I go out, really don't want to, but have to.

plus side at least I now remembered how I made the last brick texture and why it looked so good.

1:52 am 7/2/15:

finally got one set of brick textures done bricks-long-smooth 2x2 and 4x4 are finished from here i can do simple UV face stretching for multiplication purposes.

road textures next, then maybe concrete walls if I find time. and windows of course.

then any bits and bobbles such as streetlamps. gonna put together a few images for show.
« Last Edit: July 02, 2015, 12:57:03 AM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #67 on: July 02, 2015, 09:24:12 PM »
Streets updated with a texture, made it easy that I already did the street models, could just open it and start working.

this is what the street models look like now:



the color map is actually extremely lightwieght, 64x64. the normal map is 1024x1024 but can be used for any street section so, yeah cut mah memory costs. just thinking if the normal map is possibly too large or if I should scale the UV to a smaller section of it width-wise and make the color map smaller to fit.

I'd show the bricks but they are just normals at the moment, not satisfied showing till I make their color map. again a 64x64 pixel image should do the job.
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Felderburg

  • Ask me how I got this title!
  • Elite Boss
  • *****
  • Posts: 1,615
  • Personal text? What's that?
Re: Project Bane
« Reply #68 on: July 02, 2015, 09:58:44 PM »
That's a mighty shiny street.
I used CIT before they even joined the Titan network! But then I left for a long ol' time, and came back. Now I edit the wiki.

I'm working on sorting the Lore AMAs so that questions are easily found and linked: http://paragonwiki.com/wiki/Lore_AMA/Sorted Tell me what you think!

Pinnacle: The only server that faceplants before a fight! Member of the Pinnacle RP Congress (People's Elf of the CCCP); formerly @The Holy Flame

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #69 on: July 02, 2015, 10:03:22 PM »
That's a mighty shiny street.

heh, yeah I noticed that, looks like it's wet after rain or something, I'll need to work on that. thanks for confirming what I thought!

OK made it less reflective and set the reflectivity to cover more area. looks almost right now.

« Last Edit: July 02, 2015, 10:16:41 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #70 on: July 03, 2015, 11:50:56 AM »
Brix:



just need windows, doors, drains and curbs. then I can finish the mock zone.
« Last Edit: July 03, 2015, 12:00:55 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Blackout

  • "That guy"
  • Boss
  • ****
  • Posts: 165
Re: Project Bane
« Reply #71 on: July 03, 2015, 12:20:17 PM »
Textures are starting to come across very, very nicely so far! Can't wait to see what comes next (also love a bit of bare brickwork, reminds me of Kings Row ^^)

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #72 on: July 04, 2015, 11:31:18 AM »
Textures are starting to come across very, very nicely so far! Can't wait to see what comes next (also love a bit of bare brickwork, reminds me of Kings Row ^^)

Thanks! and yes exactly, kingsrow was always one of my favorite zones ever since I walked in there on my lowbie blaster when I first started playing and decided to pick a fight with the Paladin, P.S. he will not stop chasing you till defeat = you. I tried hightailing it from one end of the map to the other, yeah it took him a while to find me again but.. "I think I lost him, OhF-.".

heh brings back memories, back when I thought enemies had 0 regen. "I'll wear him down slowly, dang he sure has a lot of health, gave it 20 goes..."

Work update:

I did the windows and brick sections with windows, I took a note from CoX for the windows; they used a blue and white cloud texture that follows the camera for window effect (because true reflections are costly memorywise) blender has a way to do true reflections as well, but that is also costly (have a camera at each window and do a live render in game using that camera, then use the render output as the texture for the window).

I changed it a bit, I decided to remove the blue and just keep the white clouds using transparency so the windows can actually be see-through(Cox had see-through windows in a few places, but all tall buildings were just a cloud texture. for the most part I will just put blinds or a black-drop behind them but it opens the possibility for other things.

working on residential style doors now, then if I have time shop doors after that and shop windows (CoX had transparency on their shop windows)

I also must write some of my thesis today. so we'll see how much I can get done.
« Last Edit: July 04, 2015, 03:10:24 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #73 on: July 08, 2015, 10:36:34 PM »
Well, finally I have mock zone. it's a bit like kings row indeed because I only made one building type so far. it's still not finished either, I need to make a billboard. and plop a character in there for the picture I need to submit in a day and a bit.

anyways, I'm aware of some backside transparency problems in this picture, I can fix them by duplicating walls and flipping their normals.

this scene has 1314 polygons.



12:55 am 7/12/15:
Got the image done and handed in on time. spent time doing some work on my thesis. And decided to redo the hair textures, they look much better now. no pictures of that yet. will work more on stuff tomorrow, I have a moderate list of things to complete in this last month.
« Last Edit: July 11, 2015, 11:58:25 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #74 on: July 14, 2015, 03:31:03 PM »
Working on windows, in specific contact text/mission windows, thanks to leandro for recently posting Null the Gull's window on twitter, it's just what I needed as an inspiration.

right, the state of the window at this moment is a plane and an empty object. for speed this window will only be closable, not moveable or size adjustable. Empties will spawn pictures and or... Blender Text. yes, for speed and memory requirements I have decided to use the blender text function. I will tell you again right now why that's a bad thing, 1: there is no word/letter wrap ability!, 2: the only way to use this function is to convert a .ttf font file into a .tga glyph map, sounds simple right? except making a custom .ttf font is tedious murder. so problem #2 is I will need to use a font already made by someone else, luckily I've got a buddy which made one no strings attached (could wreak havoc if I use something like TimesNewRoman the owners would be all over the game for usage fees).

if you were to try and make a glyph map .tga in an image manipulation program you will find that it doesn't work, blender has no clue where the glyph grid is. this is because the glyph map needs to have a specific file header, and it's based on image content so its different for each image.

anyways, this text is fine for stuff like say Stat Numbers, Contact Names, story titles, and short contextual option buttons.

it is not fine for: paragraphs, long sentences, new line markers, chat Etc. I've seen some people use it in chat boxes, but things get odd when what you are typing flows off the screen.

hopefully by the end of the day I can have this done and spawnable on NPC click and have it spawn text dynamically based on contact name and whether they are present in your contact list. I'm also getting ready to import the HP and Endurance bars into the gameplay file from their test file, they will need a few edits to link up to the actual numbers I'm using in the gameplay. after that I can import the mock map and have a somewhat playable game even though the contacts and enemies will just be visible control cubes (If i have time I will change that).

it looks like I will not have time to get the character designer finished for august, several things are the reason why, no time to modify the base model into sleek form or female forms. no time to make lots of costume objects. lets face it one month is not a lot of time especially with the kind of distractions IRL brings me..

There will be a default hero or selection of heroes to play as for the degree show. I was hoping to let people design their own but there's no time. the beta release sometime this fall will have all of this stuff finished/included.
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #75 on: July 16, 2015, 06:27:21 PM »


window is semi acceptable.

I have yet to test if the spawned letters can be set to collision for link clicking and or word wrap.

the colored letters can definitely be made into buttons/links. the picture is a place holder.

no page borders yet. page size cannot be changed at this time.

Have not included player text input using this function but it's possible.

Edit; No. the bounding boxes are the collision object, they do not extend to cover the spawned text. Word Wrap is not possible this way without using my custom system which I don't have time for.

I will have to make invisible objects to cover the text which can be clicked (the real buttons/links)

Edit: 6:13  PM 7/17/15:

Target Acquired! both friendly and Enemy targets names and data are retrievable and the selection cursors can be set on click!

Additionally the selection cursors are now more like CoH in design, but they still don't move with the objects animations. they do follow camera rotation so that's not a problem, you'll always be able to see where your target is. Now to do the local range sensor thing for spawning the window. and set the character's names to appear above their heads.

the text shown on the window can be changed, manually or from file or other messages.

I also completed the dynamic text system allowing users to type things in certain places, /SOME/ of this info will be savable. I say some with the following rules:

1: The Character Name Text Field will only save your character's name as a max of 25 characters regardless what you can type or what appears in the game the first time you play. Please count the text characters and use no more than 25 for the name field for your own benefit. Please note there is no copy or paste option for this text box.

2: For character background story text; you are limited to 20 lines of text at around 58 characters a line (One page). Anything greater than 58 characters will flow off the window to the right (it's up to you to keep it neat and legible!), anything greater than 20 lines of text will not be saved.  Please note there is no copy or paste option yet for this text box either.

At this time chat is not fully enabled, no one besides the game's virtual memory will see what you typed. In addition to this; chat logs are not currently recorded.

Again for those who haven't followed everything here, the game is currently in a stand-alone state (not for release)for the purpose of showing it for the final project for my masters degree. AFTER that, I will split the server functions from it and enable all online message handling for some time in November/December but again, that's only when I hope to be releasing it, IRL gives huge distractions so.. I'll keep you informed.
« Last Edit: July 17, 2015, 05:27:47 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #76 on: July 19, 2015, 12:08:09 AM »
Visibility bug encountered! bug report submitted.

going to have to code around yet another bug. should be simple but still hours are running short.

it's a bug caused by layer visibility and object-parent/child relationships. Setting an object to parent or child of another object then sending one of them to an invisible layer will cause the one in the invisible layer to refuse to toggle it's visibility flag by any means even after spawned into the visible layer during game-play.

if there is no parenting relationship doing this yields expected results. so I will have to dynamically parent the object after spawning it. this does however create the problem that all objects imported this way will have the same name durign the game instance causing possible parenting or data problems. the fix is to only call the parenting ONCE and have objects only reference the DATA ONCE.

edit: 9:32pm 7/20/15:

window stuff was finished yesterday, worked my way around the bugs with collision sensors and dynamic parenting based off that., the script only runs once and runs from the imported object so data bleed will not be possible. data-bleed is when other objects with the same name suddenly get data intended for another object that has the same name.

content.. so yeah the contact name is passed to the window and the.. wait, oh also: proximity programming has been completed, so now range is completely dynamic and has the possibility to receive enhancement. right where was I , oh year the contact name is passed to the window and I'm debating what else to send, the player name might be one option or maybe just directly get the sys.exists(//ContactList/ContactName.txt) to determine whether the player has that contact. one way or the other, the text will change based on both instances. obviously because this is the first NPC I'll have to auto place it into the contact list on game start.

edit: 11:44 PM 7/25/15:

Doing work thats not worth reporting, buttons, textfields, buttons and more buttons, virtual memory stores and data storage and checking. plus side is when it's done and all the account files are writable I can finally have a realistic basis for giving characters stats. the character designer for this release is bare bones and basic, I'd call it a account designer it's so basic. options will include archetype, powers, name. not a big list, time has put a few restrictions as to the content for this version.

the next version should be better.
« Last Edit: July 25, 2015, 10:50:20 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #77 on: July 26, 2015, 11:01:16 PM »
« Last Edit: July 29, 2015, 06:22:04 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #78 on: August 01, 2015, 09:36:48 PM »
OK... too many attack powers.

I was going to do 10 powers (10 primary, 10 secondary) to level 10 then cut it down... but thats waaay too much.

this is cutting it close for such a major change to the game design. only got 2 weeks before the exhibition......

it'll be a miracle if I get this done in time.. I'm gonna have to skip even more stuff... not proud of it. my supervisor says the thesis is all that really counts. so maybe I'm pushing myself too hard on this.

I'm having to design some ranged powersets on the fly because I actually forgot to do those.

Edit 9:42 PM 8/2/15;

so I reworked all the powersets, good thing too, looks like I forgot to update some damage numbers.

I now have 3 ranged sets, 3 melee/manipulation sets and 3 armor sets. some of these will take a bit of modelling.. BUT for this game they might be invisible lol.. for example I promised Whip Melee, but haven't done the whip model or animations to a satisfactory level yet.

the statistical math will still compute so the powers work, just aren't visible.

I am this [    ] close to finishing the character designer 0.01b  i modelled it's layout to resemble CoX's old layout, although many things are different.

11:03 PM 8/3/15:

Bad Update of sorts. no bugs or anything, just my supervisor was not happy with what I showed her today. she said the character designer is "Unrefined" as in it looks unfinished, because it has no graphics except flat planes with text.

She has given me a deadline of this wednesday at noon to show a graphical game environment. (less than 2 days to do it) the graphics are done, they just need importing. I will have to remake the mockmap rather than painstakingly import each piece over again but thats a matter of copy pasta and arranging so it's not a problem.

if push comes to shove she has suggested that the character creator be excluded from the game for now... yet another reduction from what I wanted to show.

well I finished up the scripting for the character designer through to the end where character files are written gamelogic saves the info to the globaldictionary and it switches to the actual game. so, that's done just need to make a few items and copy a few lines of code. so the character designer may yet make it into this variation of the game.

10:07 AM 8/4/15:
Ok awake and time to work, I imported one of each scenery piece last night. I've got an idea for the map layout. today I need to finish the map (Pictures will be shown later) import the character model and clothes, give the player some default clothes, import the NPC model and do a little graphical fixing to him.

import the health bars, make spawn points for Enemies, make some thuggish clothes and strap a copy of that to the enemy control cube.

ok let me list it out in order:

1; build map
2: make New character spawn point
3: Import character model and do basic movements.
4: import HP and Endurence bars and string them to the player's HP.
5: finalize the first NPC text and make one mission goal.
6: import the NPC model.
7: do the unique aspect of my research (it has to do with tutorial help)
8: make enemy model.
9: import enemy
10: make enemy spawn points.
11: apply enemy AI.
12: make 3 insp like items.

lol a 12 step program. wish me luck! only got a day!

Edit 4:39 pm:

Roads and sidewalks done for more than half the map.  character movements enabled.

Need to make the buildings and import the character model then 2 steps are finished.

building take a long time it would seem!

Edit 8:13 AM 8/5/15:

under the wire, I got a lot done yesterday gameplay wise.

I fixed up the player character, did a few attack animations and a walk cycle, imported the character to the game got him moving with his control cube and got him resized. made a whole bunch of streets and sidewalks but only a few buildings. and I imported the health and endurence bars,

I think I'll do #5 and #7 next, only have a few hours to get something to show before I go in today.

Edit: 12:50 PM:

Main game content is playable! #5 and #7 are done, I showed it to my supervisor and they were happy with what I got done. I should be able to finish the current set-up this week and need to hand it and a documentary video of it in to my professor next Tuesday for final review before submission.

so right now there's a zone map, the area has no name at the moment. there are health and endurance bars for the player, the player has attack animations, the first contact has a picture in the mission window, the mission text is in the window and the "accept" button is set to give the player a simple task. there is a player model (sorry but no customization yet, just merely cause I didn't have time to code it) it has a walk animation (which needs a bit of work, I wont lie it it looks smooth but funny) and has 5 attack animations, including taunt which is very CoXey and one of the better animations I did yesterday.

yes the default Archetype is Tanker. and the default secondary powerset is similar to Super Strength, the default primary powerset is like invul.

Just my luck though, the HP and Stamina bars were refilling properly at home but when I went to show it to my supervisor the HP bar decided to glitch and not refill, been having a lot of glitching bugs lately where the game suddenly reverts one of the code documents to an earlier form or forgets to save the document properly possibly leaving strange characters in the code causing it to fail to execute. anyways it's a simple fix, I've memorized each part of the code by now.

will figure out why the HP bar isn't refilling when I get home.

Edit 4:51 PM:

silly me, I extended it to 1500 HP but told it to only add 1 point a second if HP was below 1000. no wonder it didn't refill.

I'll make it more dynamic in the future.

Edit 9:10 PM:

mission text set to objectives window!, still need to record this to an exterior file so it can be compared against for text generation purposes.

for some reasons the "Accept" mission button's collision type isn't working right. I'll resolve that too.

Edit: 10:10 AM 8/6/15:

 forgot to center the mesh of the accept button, that's why the collision with the mouse was off. fixed.

Today I work on the research bit of game play.

for those who read this, I'm evaluating the use of new methods than just text or sound for giving players instructions on the basis of the fact presented in the first part of this video:  https://www.youtube.com/watch?v=BCPcn-Q5nKE that players often don't want to read text. and the players who need it the most are most likely to rapid click through it and learn nothing then end up bugging GMs devs or other players for information they were supposed to have learned in the tutorial anyways.

11:53 Am 8/8/15:

winding this up, got all the item graphics and mouse pointers and other such elements made yesterday.

the NPC is almost done, technically he's done right now, but I want to fix his cape's rigging and add in some other necessary features.

just NPC graphics to work on today. a small bit of coding needs to take place as well. not much though. definitely not ore than a days worth.

3:01 AM 8/9/15:

Done with all the graphics for now. all I need to focus on now is a few animations such as a defeat anim and maybe a impact/hit anim or so if I find time, finishing the battle system, finishing the mission system and adding items and spawns..

thats it. got 2 days unless I run into trouble I should be fine. most of the stuff is well more than started and wont take long to finish.
« Last Edit: August 09, 2015, 02:05:22 AM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Joshex

  • [citation needed]
  • Elite Boss
  • *****
  • Posts: 1,027
    • my talk page
Re: Project Bane
« Reply #79 on: August 09, 2015, 11:40:07 PM »
got the main aspect of my MSc research programmed and tested. feels good to have that in place and out of the way.

However. While testing the game the past few days I encountered a nigh game breaking glitch in blender 2.49b's physics engine. there are 2 work arounds one better than the other but I have no time to program them. I suppose I'll try. the problem is with internal corners, it doesn't handle them /AT ALL/. external corners?, yeah, sure fine. but internal ones? NO WAY. this even presents a problem that I will be unable to make a map bounds that restricts the player from leaving the intended area.

I tried separating and combining objects to make the internal corners, i tried every combination of all physics settings, the closest I got (With help) was setting the player to rigidbody and setting a whole bunch of movement damping and friction and a lot of mass, and yet even with that if you try hard enough you can get the player through wall corners.

sigh... I have requested a build of 2.49b with newer GE physics here: http://blenderartists.org/forum/showthread.php?378372-windows-Blender-Compile-with-newer-GE-physics-version-request

the physics in blender 2.69 work without all the excessive physics settings. but blender 2.69 and higher uses python 3.0 not 2.6.2 and has removed many blender specific python modules, I /HAVE/ tried the new blender and python extensively, between codes returning data differently and a lack of documentation on the new modules such as bpy.render poses problems for core things like mouse movement scripts.

so in my mind having a copy of 2.49b with better GE physics is worth a bit of cash. anyone here willing and able to build it from source would be great! I have no time at this time. crunching the last few parts of the game together will take these last 4 days.

Edit 3:11 PM 8/10/15:

the physics bug is still quite the problem, but I have one-sided battle simulation! the player can now attack the enemies, the enemy's HP will go down and endurance is used.  it's not perfect or final but it's a quick job to get things ready for the exhibition.

next I need to make the mission objectives count down with each enemy defeat. and make the enemy despawn, and yes I still have to get to doing those darn enemy spawn points, until the enemy is fully coded I wont be able to do the spawn points cause the enemy needs to be in an invisible layer to be spawned.

so, list of to do:
make the objective number count down upon enemy defeat.
tell it what to do when it's "0"
Finish the enemy's side of the battle calc
activate the AI when the player gets close. (already tested, was fun to have the enemy chase me around., need to make their motion slower so the player can get away though.)
make defeated animation.

and thats all.
« Last Edit: August 10, 2015, 02:25:32 PM by Joshex »
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.