HeroEngine Forums
Welcome, Guest. Please login or Register for HeroCloud Account.

Show Posts

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

Topics - RicoTheMad

Pages: [1]
I've been thinking about different ways of implementing shooting mechanics in the engine. Of course, I have looked at Raycasting as per the FPS reference, and that may work in some ways. However, shooters usually have different mechanics for different weapons.

Consider a game like UT, you have raycasted weapons (hitscan, like a machinegun) and you have projectile weapons as well (Rocket launcher, grenade launcher). Now, I haven't found much in the way of documentation regarding projectiles or detecting collision between objects.

Does anyone have any ideas on how this could be achieved? Can the engine even handle projectiles like this?

I have run into this error and I'm having trouble understanding how to fix it.

The short of it: I am working on my basic item system using specs, spec derived objects, and decorators. I am experimenting with the best way of visualizing these items on the client. Up until now, I had good success marshaling the nodes from server to client. However, I want to learn replication better and I believe it is the preferred method anyways, so this would be a good chance to try it.

Below is the relevant code on the server. This chunk creates the weapon from the spec and attaches it to the player character. It then attempts to do the same on the client through replication, then remote calls each client to make sure they visualize the weapon:

Code: [Select]
// Adds a sample weapon
function SpawnWeapon(account as NodeRef)
  var oracle = $SPECORACLEUTILS._GetOracleFromType("ItemSpecOracle")
  //breakable item spec
  var newItemSpec = oracle.GetSpecByKey(8)
  newItem as NodeRef of Class CQ_Weapon
  newItem = newItemSpec.CreateFromSpec()
//  where newItem is kindof Equippable
//    newItem.CQ_equipLocation = RightWeapon
//  .
  println("new spec derived weapon created: " + newItem.SpecKey)
  acct as NodeRef of Class E_playerAccount = account
  // tie item to character
  AddAssociation(account.GetMyChar(), "cq_character_inventory", newItem)
  // remote call to client
  println("char id:" + account.GetMyChar())
  println("item id:" + newItem)
  nearby_clients as List of ID = OnlinePlayers()
  foreach client in nearby_clients
    // send to all nearby clients(including owner)
    //MarshalUtils:SendNodeWithClassToClient(newItem, c)
    rg as NodeRef of Class _ReplicationGroup = createNodeFromClass("_replicationGroup")
    //rg._replicationPrimaryNode = newItem
    rg._AddClientDestination(client, None)

    call client client CQ_CharacterNewClassMethods:EquipClientWeapon(account.GetMyChar(), newItem)


This code then calls up my remote client function, below:

Code: [Select]
// Remote call from server, associate item to client
remote function EquipClientWeapon(char as ID, item as ID)
  character as NodeRef of Class CQ_CharacterNew = char
  inventoryItem as NodeRef of Class CQ_Weapon = item

  println("char id:" + character)
  println("item id:" + inventoryItem)

  AddAssociation(char, "cq_character_inventory", inventoryItem)

I get the following error when I attempt to spawn my weapon:

Code: [Select]
22:37:23: !ERROR!System:SCRIPT ERROR: In function addAssociation: GOM::addAssociation (8046): Cannot hard associate a target node which is indestructible!
03/28/2012 22:37:20
Call trace:
  Script CQ_CharacterNewClassMethods line 109 me[0]
starting method/function EQUIPCLIENTWEAPON
starting me[id=0 invalid]

remote call from originating script CmdRicoClassMethods function SpawnWeapon node 9223372056755859514

Any thoughts? Of course I could try removing the hard association to the client, but then the node won't be associated to the client, which means it will be impossible for me to find again. How can I work around this? Does this mean I need to switch to a soft association in this case?

So I have a decent grasp of the server side of things, but one thing throwing me for a loop every time are HBNodes on the client. I thought they would be sort of like server nodes, as in, if I have a class called Player on both server and client, and it has a "health" field, on the server I could set it by doing:

player.health = X

On the client I thought it would translate to something like

where player is HBNode
player["health"] = x

Is this the correct way of thinking about this? The reason I ask is because when I glanced at the E_equipmentPropBucket class on the client (and the name may not be 100% correct since I'm not typing this from my dev machine) I noticed when the weapon in the clean engine is attached to the player, there's a property called "Spec" that I simply could not place where its coming from. 

I really want to understand HBNodes as I feel like there's a gap there that I need to fill in order for me to continue developing proper client/server code.

Hey Everyone,

Perhaps I searched for the wrong keywords, but I couldn't find any info on this. Since I spend most of my time scripting, the only time I ever need to look at my character is when I'm testing something. Usually my time is spent looking at the DOM Editor, the console, the chat window, the script error windows, and of course... the actual script editor. Very little of my time is actually spent in-game.

Yet Heroblade always renders the game while I'm scripting and uses up my system resources, not to mention since I have a powerful PC, it kinda makes it sound like a jet engine due to the videocard and system fans running as if I were playing a game.

This is my issue, it gets a little annoying having the client always rendering the scene when I don't need it. Are there any plans for being able to turn on/off rendering in the blade for future versions? I understand why it would be there for everyone else, but scripters spend most of their time looking at code and the database, so using up my system resources to display an image I don't need seems really wasteful not to mention prohibitive for people who develop on laptops or lightweight development boxes.

Am I missing something here or is this just not a feature currently implemented?

Hey folks,

I don't dabble in world building myself too much, since I have my hands full enough with managing a team and programming. When talking to the art team today and discussing future plans for player created buildings, something sprung to mind as a possible concern.

We had originally planned on creating empty building shells, and then creating furnishings separately. The idea was to place the building in the world, and then world builders could decorate them using furnishing assets (chairs, beds, etc).

This would work great for us because if we do things in this fashion, in the future we could let players craft and decorate their own homes with a great degree of customization.

However I was thinking... from a video card viewpoint, both approaches may be very similar in performance. My concern though, is how this works on the server. If we place a single fully furnished building, it counts as one object on the server database. However, if we place a building + 100 props inside of it, I imagine the server would suffer considerably heavier load.

I guess I just wanted a bit of clarification on this. How much more load would we be placing on the server if we took this approach?

I'm wondering if this is a common issue, or if its relegated to our world only. Upon first testing our world, I noticed that sometimes actions would take 5 - 10 seconds to register every once in a while. It's always felt a little "laggy" and unresponsive, even with everything running on defaults.

This can be easily replicated by having a few players run around in front of each other in our world, you will see players sometimes teleport around. This is also very visible during combat, as sometimes you can hammer a key ten times before you get a reaction in the world.

I'm just wondering if this is the case across the board, and it has to do with suboptimal code being part of the clean engine implementation (and thus we must replace with our own) or if this is a glitch particular to our world?

Any ideas? We were discussing this last night, as we would not want to start building complex systems on top of a shaky foundation.

Developer Job Board / Project Conquest
« on: Jan 13, 12, 08:26:03 AM »
Project Conquest

  • 4 Software Engineers/Programmers
  • 1 World builder
  • 4 Modelers/Artists
  • 1 Animator

We are almost at staff capacity.


  • 2d Artist (textures/concept art)
  • One 3d artist
  • World builders

3d artist Recruitment open again.

 We have found that we need more people to crank out art assets to start building our world. Since we are very far removed from the bright fantasy setting that HeroEngine starts with, we need to really create a base set of assets for our world builders to work with. We have our artists working on some great assets at the moment, but I think they could use an extra hand. A nice plus: Character modeling skills

We'd really like to get some more 2d and 3d artists onboard.

Of course, yadda yadda yadda, if our game is released and we make money, team members who contribute work will of course be compensated for their work. However, don't expect to be making money right away. Our team is doing this out of our passion for games, and the desire to build a great game. Money is so far down the road at this point, that we will not even discuss it much until we have and actual game we can sell.

About the project:

WIP public shots can be found here: https://community.heroengine.com/forums/index.php/topic,2304.0.html

In Short: STALKER and EVE Online fell into a blender, and someone sprinkled in some Silent Hill and a cup of Max Payne

A survival MMO where everything is controlled by players. The setting we are considering is post-apocalyptic sci-fi fantasy, so a mutated human turning into a vampire, for example, would be in the realm of possibility in our setting.

This would let us create a dark gritty world, based on survival of the fittest. The world will be player run, trade, construction, and conflict will all be player driven. We realize that as a set of small indie devs, we will never be able to put out enough content for the players, so why not let the players create it themselves? Players should be able to build cities, form alliances, craft their own equipment, start wars, destroy enemy cities, hire guards, set up farms, etc.

Essentially there are no real factions. Players will be allowed to form groups and alliances at whim, no matter their race/class. This allows for spying, scheming, takeovers, and overall a living breathing world.

The idea is for endgame to be focused on world conflict and the constant search for more resources and power. The only way to get new gear is to capture mines/resources in the world, which will be held by other players. Razing an enemy city will allow you to plunder their resources, and destroy their base of operations.

Of course, for this type of game to work, there will need to be open PvP and full loot mechanics, but we'll have to carefully think about those mechanics as the game is developed to make sure they are not too frustrating/unbalanced/unforgiving.

Another feature we plan on implementing is engaging combat. Too many MMOs out there work under the same "click key cast spell" mechanics that feel stale and boring. We want to make combat a stylish affair, with dexterity and skill playing a bigger role than just what level and gear you have on does. Combos, parrying, blocking, dodging, these are all mechanics we are aiming to implement. This game is meant to be about warfare, after all. 

Core mechanics:

Short term goals:
  • Engaging combat (first on our list to implement)
  • Capturable zones
  • Craftable gear
  • Open PvP/Full loot mechanics
  • Classless Character System: Characters are dynamic and moldable

Long term goals:
  • Hirable NPCs
  • City building
  • Capturable resource zones
  • Destructible buildings
  • Living NPC Ecosystem and AI

About me:

I work as a professional software developer, with a bachelor's degree in Computer Science, and a focus in Software Engineering. I know several different programming languages, database programming, web programming, and game programming. I have developed mods since I was young, starting with Quake.

I have also successfully released a Total Conversion for Max Payne 2 titled "Hall of Mirrors", a game based on the movie Equilibrium. It was a two year long project. The mod was heavily recognized in the community, and has been featured in many major gaming publications such as PCGamer, who interviewed me, and other PC gaming magazines. To this day the mod has been downloaded hundreds of thousands of times (at least that I know of, it has also been distributed by other people, since its free).

We will have a good set of programmers on our team, which a lot of teams probably lack here. I myself will be invested heavily in the project and code (I am not an armchair "leader" I am a team member as well and have my own work to contribute). I have several friends who are also developers with varying levels of game development experience. I am also connected to several game developers in the industry, from concept artists at Blizzard, to former team members working at Gearbox.

Below, you may find the Hall of Mirrors website. To note the level my commitment further, also let me mention that I learned how to animate in 3ds max in order to complete the project. I created all of the combat animations myself since I could not find anyone in the community to help out at the time.

Hall of Mirrors Mod website (this site is very old by the way, don't judge! It was put together in a few spare minutes when I was in college)

Please contact me here if you are interested, or PM me. We can discuss things further then.

Pages: [1]