Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Rob Janes

Members
  • Posts

    1117
  • Joined

  • Last visited

    Never

Everything posted by Rob Janes

  1. > C#. You'll never need anything more than Unity, you will never have a need to go any closer to the metal to support learning C/C++ (unless you want to program for a living), and C# isn't going anywhere for a very long time. > > Ps. Don't concern yourself with cross platform deployment; Unity takes care of all that. Even if you use XNA you're still looking at 85-90% of the desktop market share. :) Seconded. Start picking away at C#. As Bud said, it's not going anywhere for a very long time, and it's all you'll need once you throw in a good engine like Unity or SDK like Marmalade. C++ is great as well, but you'll pick up on C++ a lot easier once you've picked away at C#. My two copper anyways!
  2. Go with Eclipse Worlds, while it has some bugs, it has the best performance. (Not features, but optimization - best FPS, best network connectivity and reduced lag)
  3. If this were 1998, I'd be concerned haha! But any tutorial would be beneficial to users here trying to learn! :)
  4. And FYI the things affected by UpdateMapLogic are Item spawn rates, NPC AI (movement, attacking, regeneration), doors, and Hots/Dots
  5. Unless you're competent in VB6 – this will be the only way to achieve what he wants to do. You could essentially create a new routine for handling NPC movement and call that from the Server Loop, but this would be for an experienced developer.
  6. NPC movement is handled in Sub UpdateMapLogic, Sub UpdateMapLogic is called from Sub ServerLoop in ModGameLogic I believe by EO2 and EO3 it's called every 1000 ticks. So where it says tmr1000 < GetTickCount you should find it saying "Call UpdateMapLogic" You'll see below where it says tmr1000 = GetTickCount + 1000. This number is where you decide how often it's called. You could comment it out from here and create a brand new timer to as I think tmr1000 also calls other functions, so you'd simply want to remove the UpdateMapLogic from within the nested if statement for tmr1000 and then add this dim tmrUpdateMap as long if tmrUpdateMap < GetTickCount Call UpdateMapLogic tmrUpdateMap = GetTickCount + 500 end if that number, 500 (500ms) lets you decide the frequency.
  7. FMOD can be touchy some times. What else is running in the background while you're running from the IDE? I have a sneaky suspicion it's a conflict. Though FMOD can be touchy, it does indeed work! :)
  8. It does this by design, NPC movement is handled by Sub UpdateMapLogic on the Server, there are a few ways you can fix this off the top of my head. 1\. Increase the frequency that Sub GameLoop calls UpdateMapLogic 2\. Slow down the NPC movement speed client side, so that it matches the GetTickCount server side, so the NPC essentially begins moving to the next tile as soon as the server calls the next UpdateMapLogic routine.
  9. This resource is absolutely amazing, just donated to your cause. I hope you have tons of success with this!
  10. These are amazing. Just amazing. If you ever want to make a game with them a need a programmer (doesn't have to be Eclipse), I would love to create a neat mobile game for iOS/Android with this style! Keep in touch! Rob
  11. If the engine isn't exclusive, so you could resell copies of it to other individuals afterwards, then it would be worth the $500-$1000. The other alternative is to look in to Sporks Browser Based Engine which already supports most of the things you're looking for and is OpenSourced.
  12. It's actually under DrawPlayer my mistake Where it does ' Set the left Select Case GetPlayerDir(Index) Case DIR_UP spritetop = 3 Case DIR_RIGHT spritetop = 2 Case DIR_DOWN spritetop = 0 Case DIR_LEFT spritetop = 1 Case DIR_UPRIGHT spritetop = 7 Case DIR_DOWNRIGHT spritetop = 6 Case DIR_UPLEFT spritetop = 5 Case DIR_DOWNLEFT spritetop = 4 (Ignore that mine has DIR_UPRIGHT etc and numbers higher than 3, because I have 8 way movement and 8 way frames so there's a diagonal frame) The spritetop here, is what frame we're picking out of the PNG to use for that animation. What you'd want to do is change it so that it always uses 0 as the Top Pixel, and changes the Left in with With Rec to something like .Left = spriteleft * (Tex_Character(Sprite).Width / # of Frames here)
  13. You can change the "DrawSprite" sub to simply use this spritesheet rather than the default EO layout.
  14. Pro-Tip; to be taken seriously when trying to become an indie-developer, it's best to avoid slang and the use of numbers as abbreviations for words. Not knocking anyone, you just earn the respect of your peers far faster that way.
  15. *grin* Would this be my auction house? Or a variant of it?
  16. Honestly, don't vote for my own custom version, the "Some Unique Name Here". While it has some hack-n-slash features it's not solid for an "RPG", more adventure games. As far as features and performance, Eclipse Worlds stands above the rest in my opinion, unless you're a programmer, then use standard EO2 or 3 and work with that and do you're own damn work lol.
  17. I doubt you'd get into any trouble redistributing this, given the age of the software and it no longer being sold nor supported by it's developers, legally you can "crack" it for archiving purposes. As for copyright(s), it depends on where you're located. The copyright on VB6, actually will not expire until the year 2248. Also, don't confuse "Public Domain" with abandon-ware. VB6 has become abandon ware, but it will not enter public domain until the copyright expires or Microsoft explicitly states it can now be redistributed freely.
  18. It's not that the tiles are too large. DirectX8 is picking when loading textures, so make sure sizing textures that they are 2 to the n'th power, it will still work properly with odd sizes, but some sizes will make your texture blurry so it's best to stick to industry standards and size your PNGs accordingly. Examples: 2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32786 an so forth. (keep in mind that larger the file that is loaded, the more memory your application is going to consume). (You can have great big black or transparent spaces to fill the gaps, just the size of the PNG should be 2n'th)
  19. You'd want to add a WarpX, WarpY into the ItemRec on both client, server, and then also an ITEM_TYPE_WARP constant. On the server side UseInvItem sub, if the item type is ITEM_TYPE_WARP, call PlayerWarp Item(itemnum).warpx Item(itemnum).warpy
  20. Most of the statements here I strongly agree with, but at the end of the day, do whatever appeals to you. Ultimately, what you're going to learn just starting off, is the logic and methodology behind development. Once you know that, the syntax will vary from language to language, but the logic remains essentially the same. That is why it's easier for developers to pick up new languages so quickly, the process of developing the application remains the same, but your syntax changes ;)
  21. In theory you're doing it correctly but at the moment you're updating the who's online list every single time a packet is received. You should make a sub called "UpdateWhosOnline", and put your loop in there, and call UpdateWhosOnline only when someone connects or disconnects from the game. Same idea as you have no just move it to a place where it's more appropriate, and avoiding loops where needed.
  22. Replace with &H11 with &H20
  23. Hey Artists! I'm looking for someone who can whip up some whimsical graphics for an iOS game I've created. The game is complete and ready to ship aside from my horrible programmer art. Please send me a PM on the forums with your best price quote! Needed ASAP! Here are some screenshots of the game, along with the download! Game Objective: Survive as long as you can without getting doo-doo'ed on by evil birds! Every second your score increases, scores and leaderboards tracked by iOS Game Center. Ads handled by iAds at the top. iStore will feature a lite (with Ad support) and a full (no Ads) for $0.99 Game Download [http://www.canadianparamedicjobs.ca/birdshit/BirdShit.rar](http://www.canadianparamedicjobs.ca/birdshit/BirdShit.rar) **Game Screenshots** >! ![](http://www.canadianparamedicjobs.ca/birdshit/birdshit1.png) >! >! ![](http://www.canadianparamedicjobs.ca/birdshit/birdshit2.png) >! ![](http://www.canadianparamedicjobs.ca/birdshit/birdshit3.png) **Graphic Files** >! Examples: >! >! ![](http://www.canadianparamedicjobs.ca/birdshit/Player_Left_2.png) >! ![](http://www.canadianparamedicjobs.ca/birdshit/Player_Left_4.png)
  24. In your client, go into modInputs, and find Sub CheckKeys You'll see it'll say If GetAsyncKeyState(VK_CONTROL) >= 0 Then ControlDown = False. There are 2 ways to resolve this issue, you can 1\. Change the value of VK_CONTROL itself or 2\. Replace it with VK_SPACE and then we'll define what VK_SPACE is. That being said. I'll give you the code for both. Method 1\. (Changing VK_CONTROL's value to the spacebar) >! Go into modConstants, find Public Const VK_CONTROL As Long = &H11 and replace it with Public Const VK_CONTROL as long = &H20 Method 2\. (Changing GetAsyncKeyState to VK_SPACE) >! In modConstants, find where it declares all the other keys, like VK_CONTROL, VK_RETURN etc, and add in >! ``` Public Const VK_SPACE = &H20 >! ``` >! Go into modInputs, Sub CheckKeys, change VK_CONTROL at the top to VK_SPACE
×
×
  • Create New...