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.


Messages - dingoZero

Pages: 1 2 [3] 4
31
Editor Discussion / Re: What is the limit for custom maps?
« on: December 09, 2014, 11:48:54 PM »
Experiment idea:

Copy and paste your assets over and over again in a test folder, and then pack it. I'm wondering if there is a hard limit within the level packer.

Otherwise you have a soft limit of what people are willing to download.

32
One of the most frustrating things about the current editor is the sheer number of script nodes it takes to do something which could be done with a few lines of code.

I'm excited to learn more about this.

33
One question, it sounds like I will be able to actually write scripts and use them?

Is this true?

34
Custom Maps / Re: [CAMPAIGN] Dingovania - Update July 3rd 2014
« on: December 08, 2014, 01:22:06 PM »
"real release date by the end of the month."

I meant this to mean that we'll agree on when we want to shoot for a release. You'll know what date we want to release by the end of the month. Sorry for ambiguity.

Good philosophy! Art takes time, if you have good guidelines it should go faster.
Who's your artist?

I don't think any of them have forum accounts. As it stands we have two real art people. One of them, my partner in design, does general artistic design and is head of what stuff looks and feels like. The other guy just draws things in photoshop slowly while he reddits. I think it's harder to draw something if you don't know how it's supposed to function in game. Our music guy has even drawn some things.

I'm making this sound like we're professionals or something. In actuality, we're just college students who work on this in spare time. Occasionally we'll bring our machines to one place and work on it together in the same room for a few days. It's becoming harder to do that. We're moving to different places so we want to get this done soon.

35
Custom Maps / Re: [CAMPAIGN] Dingovania - Update July 3rd 2014
« on: December 08, 2014, 12:35:49 AM »
We're working on a proper trailer.

Along with that we'll release some solid information. We're still deciding if we want to finish certain features or focus on polishing what we have. Once all of this is set in stone we'll know exactly what to advertise. (I don't want to tell you about something we decide to cut). I don't believe in releasing it unfinished. However, my problem is that I am very picky about my level design. For me I don't think I will ever really finish because I will always see room to improve. I've probably completely scrapped one level three times now. Elements have remained the same, but the layout and design is different.

Partly this is because I discover some new trick that I can do with scripts to make something cool happen. An example of this is the "quest system" which you added. I was then given the ability to add interesting ways to progress through a level without relying on "kill this thing that's in the way" or "get the key." Another example is prefabs. I've discovered some really cool ways to use prefabs. It allows for some interesting mechanics that I'm excited about sharing.

All in all, our design philosophy for this campaign is that you aren't required to complete everything to progress, but you will want to. The main path of the campaign will honestly be rather straightforward, but the side paths are what make it interesting. Essentially, maximizing your character's potential will require exploration, and we want you to explore what we've created.

Another thing is that we're trying to create art that fits with the original Hammerwatch art. I am not the main artist, I'm really good at retouching something to make it look how I want it to look but I can't really do things from scratch (although the cart rails are mine). Our main artist is really picky too. My saturation is turned up on my screen, so my reds look orange to him. It's quite comical.

After writing this, I've determined that I can confirm a few things:
  • A main story which unfolds over the length of the campaign.
  • Side stories which are optional but give good rewards.
  • Short side quests which are fun and give smaller rewards.
  • An explorable overworld which links the rest of the levels of the campaign.
  • Full original sound track.
  • Art which is aimed to fit with the vanilla artwork.

I don't really want to go into details because of spoilers, but both of the videos and the screenshot I've posted show a few of our levels. All in all, we should be able to agree on a real release date by the end of the month.

I should really get back to studying.  ;)

36
Custom Maps / Re: [CAMPAIGN] Dingovania - Update July 3rd 2014
« on: December 07, 2014, 09:59:37 PM »
The carts don't have wheels.

The metal parts of the rails are the wheels.

http://gyazo.com/e383d5a4ef5df280363a9475cb1df122

The rustic peoples of Dingovania aren't very smart.

37
Next time post in the Editor Discussion forum for better feedback.

Anyway, your problem is that you are referencing the level by entering it's file name. You should instead reference a number that is consistent with the level id in the levels.xml index file.

Essentially what I am saying is that in this screenshot: http://gyazo.com/879a0a31ea21e97501be30d328463455 where it says "dloor 2" it should instead be a number.

A proper level file looks like this (I've edited it for your map).

Code: XML
  1. <levels start="1">
  2.         <act name="lvl.act1">
  3.                 <level id="1" res="levels/test.xml" name="Test" />
  4.                 <level id="2" res="levels/dloor 2.xml" name="Dloor 2" />
  5.         </act>
  6. </levels>

If you want to add more levels to it, just add another line, make sure there are no duplicate level ids, and it should work correctly.

One more thing. This is a pet peeve of mine, but these: http://gyazo.com/031e36c94b0f76382f984c3baaad2565

Should look like this: http://gyazo.com/931a17d84d2d5b19272743e1f972db82

Good luck with your endeavors.

38
Custom Maps / Re: [CAMPAIGN] Dingovania - Update July 3rd 2014
« on: December 03, 2014, 10:10:10 PM »
In all honesty this campaign is the one i'm most excited about.

Trust me, I can't wait to bring it to you.

Most of our team has finals this week. Life is pretty hectic right now, but we're squeezing in as much work as we can. We don't want to commit to a release date quite yet. But soon we'll be giving you all more details about our campaign.

39
Custom Maps / Re: [CAMPAIGN] Dingovania - Update July 3rd 2014
« on: December 03, 2014, 08:57:18 PM »
Sorry for not giving any updates recently.

We've been busy playing other games.

Here's a screenshot: http://i.imgur.com/FWYOcEc.png

40
Editor Discussion / Re: pushable boxes?
« on: November 30, 2014, 01:25:02 AM »
As far as I know, no.

41
Editor Discussion / Re: pushable boxes?
« on: November 29, 2014, 06:26:33 PM »
No need for any of that, just use <collision static="false"> and anything will be pushable.

Right, but then you can't do other cool things with the move ai script when you want to.

42
Editor Discussion / Re: pushable boxes?
« on: November 24, 2014, 08:48:18 PM »
im guessing have it set as stationary too?

No movement, no attacks.

43
Editor Discussion / Re: pushable boxes?
« on: November 23, 2014, 08:44:30 PM »
You have to make it a creature and use a toggle invulnerability script.

44
Editor Discussion / Re: What's in the chests?
« on: November 20, 2014, 01:52:03 AM »
I believe the chests go Wooden, Blue, Green, Red, Purple.

Most of the time, you're going to get a diamond. Small -> Large -> Red -> Large Red.

You have a small chance to get a life and sometimes an upgrade.

You can see the items in the loot array.

Wooden Chest:

Code: XML
  1. <item behavior="breakable">
  2.         <behavior>
  3.                 <dictionary>
  4.                         <entry name="ignore-trap-damage"><bool>true</bool></entry>
  5.                         <entry name="destroy-snd"><string>sound/misc.xml:chest_wood_break</string></entry>
  6.                         <entry name="destroy-particle"><string>effects/particles.xml:breakable_wood</string></entry>
  7.                         <array name="loot">
  8.                                 <int>910</int><string>items/valuable_diamond_small.xml</string>
  9.                                 <int>50</int><string>items/powerup_1up.xml</string>    
  10.                                 <int>10</int><string>items/upgrade_health.xml</string> 
  11.                                 <int>10</int><string>items/upgrade_mana.xml</string>   
  12.                                 <int>10</int><string>items/upgrade_damage.xml</string>
  13.                                 <int>10</int><string>items/upgrade_defense.xml</string>                                                                                        
  14.                         </array>
  15.                 </dictionary>
  16.         </behavior>
  17.        
  18.         <sprite scale="16">
  19.                 <texture>items/chests.png</texture>
  20.                 <origin>6 13</origin>
  21.                 <frame>0 0 16 16</frame>
  22.         </sprite>
  23.         <collision static="true">
  24.                 <polygon>
  25.                         <point>-9 -10</point>
  26.                         <point>-9 4</point>
  27.                         <point>9 -10</point>
  28.                         <point>9 4</point>
  29.                 </polygon>
  30.         </collision>   
  31. </item>

Blue Chest:

Code: XML
  1. <item behavior="breakable">
  2.         <behavior>
  3.                 <dictionary>
  4.                         <entry name="ignore-trap-damage"><bool>true</bool></entry>
  5.                         <entry name="destroy-snd"><string>sound/misc.xml:chest_wood_break</string></entry>
  6.                         <entry name="destroy-particle"><string>effects/particles.xml:breakable_wood</string></entry>
  7.                         <array name="loot">
  8.                                 <int>910</int><string>items/valuable_diamond.xml</string>      
  9.                                 <int>50</int><string>items/powerup_1up.xml</string>    
  10.                                 <int>10</int><string>items/upgrade_health.xml</string> 
  11.                                 <int>10</int><string>items/upgrade_mana.xml</string>   
  12.                                 <int>10</int><string>items/upgrade_damage.xml</string>
  13.                                 <int>10</int><string>items/upgrade_defense.xml</string>                                                                                        
  14.                         </array>
  15.                 </dictionary>
  16.         </behavior>
  17.        
  18.         <sprite scale="16">
  19.                 <texture>items/chests.png</texture>
  20.                 <origin>6 13</origin>
  21.                 <frame>16 0 16 16</frame>
  22.         </sprite>
  23.         <collision static="true">
  24.                 <polygon>
  25.                         <point>-9 -10</point>
  26.                         <point>-9 4</point>
  27.                         <point>9 -10</point>
  28.                         <point>9 4</point>
  29.                 </polygon>
  30.         </collision>   
  31. </item>

Green Chest:

Code: XML
  1. <item behavior="breakable">
  2.         <behavior>
  3.                 <dictionary>
  4.                         <entry name="ignore-trap-damage"><bool>true</bool></entry>
  5.                         <entry name="destroy-snd"><string>sound/misc.xml:chest_wood_break</string></entry>
  6.                         <entry name="destroy-particle"><string>effects/particles.xml:breakable_wood</string></entry>
  7.                         <array name="loot">
  8.                                 <int>910</int><string>items/valuable_diamond_small_red.xml</string>    
  9.                                 <int>50</int><string>items/powerup_1up.xml</string>
  10.                                 <int>10</int><string>items/upgrade_health.xml</string> 
  11.                                 <int>10</int><string>items/upgrade_mana.xml</string>   
  12.                                 <int>10</int><string>items/upgrade_damage.xml</string>
  13.                                 <int>10</int><string>items/upgrade_defense.xml</string>                                                                                                
  14.                         </array>
  15.                 </dictionary>
  16.         </behavior>
  17.        
  18.         <sprite scale="16">
  19.                 <texture>items/chests.png</texture>
  20.                 <origin>6 13</origin>
  21.                 <frame>0 16 16 16</frame>
  22.         </sprite>
  23.         <collision static="true">
  24.                 <polygon>
  25.                         <point>-9 -10</point>
  26.                         <point>-9 4</point>
  27.                         <point>9 -10</point>
  28.                         <point>9 4</point>
  29.                 </polygon>
  30.         </collision>   
  31. </item>



Red Chest:

Code: XML
  1. <item behavior="breakable">
  2.         <behavior>
  3.                 <dictionary>
  4.                         <entry name="ignore-trap-damage"><bool>true</bool></entry>
  5.                         <entry name="destroy-snd"><string>sound/misc.xml:chest_wood_break</string></entry>
  6.                         <entry name="destroy-particle"><string>effects/particles.xml:breakable_wood</string></entry>
  7.                         <array name="loot">
  8.                                 <int>910</int><string>items/valuable_diamond_red.xml</string>  
  9.                                 <int>50</int><string>items/powerup_1up.xml</string>    
  10.                                 <int>10</int><string>items/upgrade_health.xml</string> 
  11.                                 <int>10</int><string>items/upgrade_mana.xml</string>   
  12.                                 <int>10</int><string>items/upgrade_damage.xml</string>
  13.                                 <int>10</int><string>items/upgrade_defense.xml</string>                                                                                        
  14.                         </array>
  15.                 </dictionary>
  16.         </behavior>
  17.        
  18.         <sprite scale="16">
  19.                 <texture>items/chests.png</texture>
  20.                 <origin>6 13</origin>
  21.                 <frame>16 16 16 16</frame>
  22.         </sprite>
  23.         <collision static="true">
  24.                 <polygon>
  25.                         <point>-9 -10</point>
  26.                         <point>-9 4</point>
  27.                         <point>9 -10</point>
  28.                         <point>9 4</point>
  29.                 </polygon>
  30.         </collision>   
  31. </item>

Purple Chest:

Code: XML
  1. <item behavior="breakable">
  2.         <behavior>
  3.                 <dictionary>
  4.                         <entry name="ignore-trap-damage"><bool>false</bool></entry>                    
  5.                         <entry name="destroy-snd"><string>sound/misc.xml:chest_wood_break</string></entry>
  6.                         <entry name="destroy-particle"><string>effects/particles.xml:breakable_wood</string></entry>
  7.                         <dictionary name="loot">
  8.                                 <string name="origin">0 0</string>
  9.                                 <float name="spread">0.5</float>
  10.                                         <array name="loot">
  11.                                                 <array>
  12.                                                         <int>1000</int><string>items/collectable_1.xml</string>                                                                
  13.                                                 </array>                                               
  14.                                                 <array>
  15.                                                         <int>1000</int><string>items/powerup_1up.xml</string>                                                                  
  16.                                                 </array>
  17.                                                 <array>
  18.                                                         <int>200</int><string>items/upgrade_health_2.xml</string>      
  19.                                                         <int>200</int><string>items/upgrade_mana_2.xml</string>
  20.                                                         <int>400</int><string>items/upgrade_damage_2.xml</string>      
  21.                                                         <int>200</int><string>items/upgrade_defense_2.xml</string>                                                                                                                                                                                                     
  22.                                                 </array>                                       
  23.                                         </array>
  24.                         </dictionary>
  25.                 </dictionary>          
  26.         </behavior>
  27.        
  28.         <sprite scale="16">
  29.                 <texture>items/chests.png</texture>
  30.                 <origin>6 13</origin>
  31.                 <frame>16 32 16 16</frame>
  32.         </sprite>
  33.         <collision static="true">
  34.                 <polygon>
  35.                         <point>-9 -10</point>
  36.                         <point>-9 4</point>
  37.                         <point>9 -10</point>
  38.                         <point>9 4</point>
  39.                 </polygon>
  40.         </collision>   
  41. </item>

45
Editor Discussion / Re: Procedurally Generated Puzzle
« on: November 04, 2014, 04:00:53 PM »
This is in python 3.4

I'm by no means an expert programmer. It's pretty rough so let me actually add comments.

I thought about designing an interface for it so it would be useable, as well as expanding what things it can randomize. I'm pretty busy though, maybe one day. I'm definitely going to use hammerwatch randomization as a case study in the near future.

Code: [Select]
import random


def shift(x, startrange, endrange):

    #shifts a value parsed from a string in a random direction

    shiftvalue = int(random.randrange(startrange, endrange))

    inx = x

    if shiftvalue % 2 == 1:
        inx += (shiftvalue*0.01)
    else:
        inx -= (shiftvalue*0.01)
    return inx


def stringcut(string):

    #strips a line of a doodad to find the X, Y coordinate

    first = string
    second = first.split(">")
    third = second[1].split("<", 2)
    nums = third[0].split()

    return nums


def fixline(string, startrange=None, endrange=None):

    #takes the raw X, Y data from stringcut, randomizes it, and puts it back into a format readable by Hammerwatch
    if startrange is None:
        startrange = 0
    if endrange is None:
        endrange = 100

    line = stringcut(string)

    x = shift(float(line[0]), startrange, endrange)
    y = shift(float(line[1]), startrange, endrange)

    #fixline() returns a string which can be inserted into an XML document

    return "\t" + "\t" + "\t" + "\t" + '<vec2 name="pos">' + str(x) + ' ' + str(y) + '</vec2>' + "\n"


#this filepath is the location and filename you would like to read

f = open('D:/PycharmProjects/Experience/TestTxt/treetest4.xml')
linelist = f.readlines()
f.close()

j = 0
while len(linelist) > j:

    #change this string '/trees/'to whatever doodads you would like to randomize
    #you can even randomize an entire folder of doodads e.g. "/trees/" will randomize all of the trees folder

    if '/trees/' in linelist[j]:

        #if you call fixline(linelist[j+1], n, m) it will randomize the doodads in a range from n/100 to m/100
        #this is configured in a way which will take an object and shift it  a maximum of 1.5 units in any direction

        flip = fixline(linelist[j+1], 0, 150)
        linelist[j+1] = flip
    j += 1

#this filepath is the location and filename you would like to output to.
#I didn't want to modify the original file in case of an error

d = open('D:/PycharmProjects/Experience/TestTxt/output.xml', 'w')
i = 0
while len(linelist) > i:
    d.write(str(linelist[i]))
    i += 1
d.close()

If you have any questions just let me know.

Pages: 1 2 [3] 4