Jump to content

VeTaL

Members
  • Posts

    1,272
  • Joined

  • Last visited

Everything posted by VeTaL

  1. Ah, here you are Glad to see lots of familiar faces (nicknames ).
  2. Haha, found a screenshot of the Leadwerks page with our project (Fentinor) in the header: PS: also, super happy to see old good ICQ smileys, instead of modern stupid "emojis".
  3. Hey, guys! It was like 5 or 6 years since i had last visited this forum. I'm super happy to see it healthy and growing I've also picked Leadwerks 4.4 on Steam (the last version i had was 3.something? Or probably 4.0 beta). I also noted that Leadwers got a marketplace - that's amazing! Currently i have a small startup, we're focusing on producing sounds - can that be interesting for our community? https://www.assetstore.unity3d.com/en/#!/search/page=1/sortby=relevance/query=skaia PS: also, i try to update my email in the profile, but i'm getting error with Error code: EX0. Is there a dedicated support, or is Josh still fixing all the things by himself?
  4. VeTaL

    BBox tracing

    Well, nica idea, Rick.. but actually, unit selection is not needed for gameplay, as i'm counting on indirect control. I planned to show some historical pages from wiki, while clicking on bots. Looking like i need either to play with scale (make peoples almost the same size as building, like in Majesty) and make large bounding boxes/spheres, or drop this idea with clicking red is the size of the unit, blue is the size of the door
  5. VeTaL

    BBox tracing

    Well, actually i found that clicking exactly on entities from far distances is not too useable (like here). Its hard to click exactly on the tree or on solider (what is even harder, because bots are smaller and they are moving). So, i got an idea of creation kinda invisible sphere around each entity, so it would be easier for user to select something. But at first, i'm wondering if there already exists working solution
  6. VeTaL

    BBox tracing

    Just a fast question. Is there a simple way to make bounding box tracing? I know, i can create spheres/bodies, parent them to entities and set trace filter to catch them... but maybe it exists something like AdvancedTrace, which has a parameter for bounding box tracing?
  7. Thanks That is what i was looking for
  8. Agree: i guess, all logic should be in one script and you should just check GetModelLODEntity() and run different commands depending on LOD level.
  9. Well, i totally agree with this. But on the other hand, i dont think that large companies (with, lets say, 100 programmers) works on a single project. If i'd have 100 programmers - i'd just split them into a small groups (5 to 8 programmers each... 15 - maximum, depends on complexity of project) to work on different projects. And, well, i think, things are done in similar way nowadays.
  10. Version 0.45 Added "thoughts" All buttons on form works now Improved AI: now bots should never be in water or far from building. Sharing experience: In previous version, in case of interruption, bot turned at related random angle. Sometimes some sh*t happened and rotation function called twice or more times. So, but turns left, then once more time left, then - right. In worst case, he continued running from building. Now i understood, that i need to give bot not related, but absolute angle. Now it is working in such way: before: TurnAtAngle(Rnd(80, 110) * randomInt) now: TurnToAngle(GetPlayerBulidingAngle() + Rnd(60) - 30) Method GetPlayerBulidingAngle:Int() closestPlayersBuilding = GetClosestPlayersBuildingModel(model) PointEntity(scanPivot, closestPlayersBuilding) Local retVec:Tvec3 = EntityRotation(scanPivot, 1) DebugLog "[!!!] Returning angle: " + retVec.y Return retVec.y EndMethod So, i'm pointing scanner (anyway he do nothing except raytracing down, it is not depends on scanner's rotation) at players building, getting it new angle and pointing player that direction +- 30 degrees. That looks mush better. Just replace exe file. Edited: found out, why some strings are still shown on the screen with the strange behavior: some bots are falling from terrain. 0.45.zip
  11. I think, i'll continue proof-of-concept using BlitzMax, and then, if everything would be okay - i'll switch to Le.net or pure C++ So, main form would still be in maxgui, but still any ideas/guggestions are very welcome.
  12. Thanks, guys, for a feedback. Afaik, Awesomium was not free... and i didnt heard about Berkelium - found some OpenGL samples, would try to use them.
  13. Okay, so... Serious game - is a game, where player learn/study something. The main problem is to combine gameplay and learning in such a way, when player actually doesn't feel that he is stydying in common way. Classic examples are different realistic game simulators. Quite good example (as for me) is "Call of Duty: Black Ops" - after playing this common FPS, i went to wiki and read lot of stuff about Cold War - because of this game. So, actually, it can be counted as Serious game. Also, Civilisation is quite nice example: they have their own civilipedia to provide some historical information. Nowadays, serious games are very potential: lots of schools/colledges/universities are trying to combine learnin with playing and get successfull results. This project is just "unfinished proof-of-concept". Gameplay is planned to be a "realtime historical strategy with undirect control"(Settlers/Majesty). As the main idea, I took nice small game, Breaking The Tower, which was written by Notch (hello, minecraft funs) for a contest in two days. My thoughts was "game with undirect control are quite slow" -> "if i merge slow gameplay with some kind of civilopedia, that would give a player some time on learning" -> "why not to use wiki?" -> "why not to use LE+Blitzmax, as it provides render internet pages on the same form, where game can be rendered" I spent all previous weekend on this project (+ some additional evenings... actually, not too much time: also, i opened about a half of map in Skyrim ) This is what i have now: The main questions to all of the guys, who would decide to test it: - fps. Btw, I was impressed by fps increasing in release version: i had about 40 fps in debug version and about 100 fps in release. There are 20 bots on level now. - UI. Do you have any ideas/recommendations with UI placement? I also tried to place wiki undre the render window, but it also seems to be bad. - Camera control. Any ideas are wellcome. I'm not actually satisfied with this camera. Of cource, it needs collision detection, but it proof-of-concept. I'm not satisfied by camera's behaviour: its hard to make some accurate movements when the camera is close to central pivot. - AI. Bots are just running through the island in random direction. But they have 3 interrupters: by time (after Rnd(80, 120) they change their direction), by distance from main player's building, and by water (if the scanner "feels" water, they should turn back) - Explorer component. What can be done with that nasty error? The main logic function is Method UpdateLogic() UpdateWalkers() timer.Update() AvoidWater() ' if pick.y < 3, set isInterrupted =1, interruptionDetails = pick.y AvoidLost() ' if distance to building is > 30, set isInterrupted =2, interruptionDetails = dist If timer.IsRinging() isInterrupted = 2 ' time to change direction, once per Rnd(80, 120) End If If (isInterrupted > 0) rndRes = Rnd(0, 2) ' generates 0 or 1 randomInt:Int = (rndRes * 2) - 1 ' generates -1 or 1 Select isInterrupted Case 1 'water ahead TurnAtAngle(Rnd(80, 110) * randomInt) DebugLog "[@] Interruption by water(1). Scanner height is " + interruptionDetails Case 2 'timer interruption TurnAtAngle(Rnd(45, 135)) DebugLog "[@] Interruption by timer(2)." Case 3 'too far from buildings TurnAtAngle(Rnd(160, 200)) DebugLog "[@] Interruption by distance(3). Dist is " + interruptionDetails End Select isInterrupted = 0 EndIf End Method
  14. Looking like equations of vector are equation of their adresses.. pickFrom = EntityPosition(scanPivot, True) pickFrom.y:-1 pickTo = pickFrom pickTo.y:-20 Solution is simple: pickFrom = EntityPosition(scanPivot, True) pickFrom.y:-1 pickTo = EntityPosition(scanPivot, True) pickTo.y:-21
  15. Aaaaaand... First prize (a large cookie) comes to Klepto2 for right answer: pickFrom = EntityPosition(scanPivot,true) Second prize (glass of beer) comes to Metatron for his time
  16. Got an idea that maybe inside a class field = private global = public nope, still the same ugly output results
  17. Okay, throwing out TNodeWalker.UpdateWalkersList() Trying to call this one returns compilation error Repeat *** For n:TNodeWalker = EachIn nodesWalkers n.UpdateWalkers() Next *** This compiles, but output is still wrong Repeat *** For n:TNodeWalker = EachIn TNodeWalker.nodesWalkers n.UpdateWalkers() Next *** PS: nodesWalkers is global list Type TNodeWalker Extends TNode Global nodesWalkers:TList = CreateList()
  18. Faced the similar problem as Function/Method - maybe i'm missing something again? 1) I have a type/class of walker, it has a field scanPivot Type TNodeWalker Extends TNode Global nodesWalkers:TList = CreateList() Field scanPivot:TEntity TNode is base class, it consists of mesh and nodes list... but i decided to create also additional list nodesWalkers to search walkers faster 2) In constructor, i create scanner node ListAddLast(nodesWalkers, Self) scanPivot = CreateCube() Local scanPos:TVec3 = EntityPosition(mesh) scanPos.y:+16 scanPos.z:-10 PositionEntity(scanPivot, scanPos) EntityParent(scanPivot, mesh) Actually, at this point everything works fine, as planned: bot running forward, scanner flys before bot Now, i'm calling from the main loop Repeat *** TNodeWalker.UpdateWalkersList() *** This function is declared inside TNodeWalker and it is running throguh all walkers and call their UpdateWalkers() Function UpdateWalkersList() For n:TNodeWalker = EachIn nodesWalkers n.UpdateWalkers() Next EndFunction in UpdateWalkers() i have: Method UpdateWalkers() pickFrom = EntityPosition(scanPivot) DebugLog "scanPivot pos: " + pickFrom.x + " " + pickFrom.y + " " + pickFrom.z EndMethod The problem is that debugger shows So, looking like method cannot access class field ?
  19. SendEntityMessage(mesh, "Jump") SendEntityMessage(mesh, "SetMovement=MOVE_FORWARD") Now he is moving forward and jumping SendEntityMessage(mesh, "Jump") SendEntityMessage(mesh, "SetMovement=MOVE_FORWARD") SendEntityMessage(mesh, "SetHeading=" + angle) angle:+1 Running and jumping and turning left
  20. VeTaL

    addbodyforce

    Well, looking like yes While Not KeyHit(KEY_ESCAPE) AddBodyForce body,vec3(KeyDown(KEY_RIGHT)-KeyDown(KEY_LEFT),0,KeyDown(KEY_UP)-KeyDown(KEY_DOWN)) UpdateWorld() RenderWorld() DrawText "Use the arrow keys to move the body.",0,0 Flip() Wend But afaik, in pure Newton, it can be called only from callbacks.
  21. VeTaL

    blide

    Omg... Sorry to hear that. Try to open your src file with another text editor. Well, i highly recommend to use some kind of version control software. Now i'm using Hg for my small project and i'm quite happy.
  22. VeTaL

    blide

    Got an error "you need Glide Plus to generate own databases" while selecting leadwerks module. Anyway, tried to "Document modules" after it and restarted Blide - still no effect. But its nice to know that it is theoretically possible, thanks
  23. VeTaL

    blide

    Well, intellisense doesnt understand LE syntax, but maybe its possible in settings. But the posibility of selecting entry script and running project by pressing F5 is priceless! Looking like its a part of a plan: to keep MaxIde so ugly, that every person, who would see Blide after MaxIde, would run and buy Blide
  24. Just played around with LE solider and macklebee's updated script and was wondering, if it is possible to send message from Blitz. Yes, It is possible (at first, i used SendMessage ) src = LoadModel("abstract::soldier.gmf") *** *** Repeat *** SendEntityMessage(src , "Jump") ***
  25. Nevermind. I'll make trees as separate entities this time. But, just in case, if anybody will share his example for community - it would be great
×
×
  • Create New...