Jump to content

martyj

Members
  • Posts

    544
  • Joined

  • Last visited

Everything posted by martyj

  1. martyj

    The path we are on

    @Josh, what is your email address that I should use?
  2. martyj

    The path we are on

    @Josh You should get in touch with these people. http://catalog.weber.edu/preview_program.php?catoid=11&poid=5065 They require an OpenGL class for their game development certificate. It's where I graduated from. I can get you in touch with their academic chair if you'd like. When I took the course they were missing something like Leadwekrs for their advanced course of CS 4650
  3. How does A Demon's Game crowdfund with this? It looks like just a promotional tool?
  4. Thanks everyone. Just making sure my math is on the right track. @Ma-Shell I guess the angle would be camera->GetFOV()/2 for the triangle. Thanks.
  5. I am thinking of creating a minimap generator. I was wondering if anyone had suggestions on how to place the camera? You have a map of X by X size (512, 1024, 2048) You need to generate an image of Y b Y size (probably 2048) Position of the camera would be at Vec3(0.0, Q, 0.0) Where Q is the height of the camera. To have the projection where the map bounds end at the same bounds of the context, what height would you have to set your camera at? Is this just simple trigonometry? Q = X/Math::tan(camera->GetFOV()); ?
  6. VLC cannot even play this file. The old OGG Loading code works just fine. I wonder if it is a problem with the length of the file? 0.05 seconds is really short.
  7. Love the API reference! I like to develop when I travel and WIFI is not always a guarantee.
  8. What aiaf and reepblue said. I mostly use Visual Studio. You might want to also compare C++ analytics vs Lua.
  9. How would that work with physics? To get around this for me, I just add a door to my caves which teleports the user.
  10. @Shadmar http://www.leadwerks.com/werkspace/topic/10334-day-and-night-cycle-shader/
  11. @Maclkebee Camera is a child of PlayerModel. PlayerModel is a Cylinder. cameraMovement() is a function in this case to check whether the player can move the camera. Returns True or False cameraRotationY is the rotation to be applied to the camera in the Y direction (left/right movement). Your link describes the exact same logic. I am NOT on beta.
  12. In my game I use SetInput for camera rotation and movement The problem is that the camera doesn't rotate if the player is standing still. The code: if(cameraMovement()) { double camMovementX = ((window->KeyDown(Key:) ? 1 : 0) - (window->KeyDown(Key::A) ? 1 : 0)) * strafeMultiplier; double camMovementZ = ((window->KeyDown(Key::W) ? 1 : 0) - (window->KeyDown(Key::S) ? 1 : 0)) * moveMultiplier * speedMultiplyer; this->playerModel->SetInput(cameraRotationY, camMovementZ, camMovementX); } else { this->playerModel->SetInput(cameraRotationY, 0.0, 0.0); // No movement if a menu is open }
  13. I think he means more of something like Material::LoadById("bullet_impact") instead of Material::Load("some\long\pathname\bullet_impact_d.mat")
  14. I use golang for the server side networking aspect. Ruby on Rails for the application data C/C++ for the Client with plans of migrating client networking to Golang. The end user doesn't touch the Ruby on Rails stuff. Although if you want to browse an old public data aspect of the games data you can visit it here: http://data.worldfactions.net/ It's a few months out of date and I haven't bothered to fix images yet as it hasn't been released to the public yet.
  15. @Rick that is another route to solve the same problem.
  16. @Aggror MySQL is the database I use with Ruby on Rails. The database is not the bottlekneck in performance. Ruby is generally slower than other frameworks, the idea is that hardware is cheaper than development hours. As far as Mongo, be careful using mongo. If you don't use it the way it is intended to be used, it will destroy performance. I personally look at Mongo as like an API caching data layer, not a database itself. @Rick The major benefit I would say is easy of querying. Instead of my game having to SQL queries, everything is in a list or a hashmap. All the related items are already generated so the game has the best performance. It does add an extra step as far as changing things. To add a quest I have to insert the items in the database (much like sqlite), then run a script to generate the native code, copy over the native code, then recompile.
  17. In my day job I get a lot of experience with different technologies. Mostly related to mobile or website, but there is a lot of bleed over in the game industry. I've done a few Ruby on Rails applications, it's not my primary toolbox, but it has some benefits. Mostly the ease and speed of development. I switched to using Ruby on Rails for the data management layer of my game. At the moment there isn't much data, only about 300 rows in a database for everything in the game. This is expected to more than triple within the next few months as I add achievements, more items, 7 new quests, and shops! Eventually this will go extremely large and hard coding all that data will become very error prone and next to impossible to manage. Ruby on Rails has the ability to have command line tasks which can be used to generate data. Sample task: namespace :codegen do task :achievement_types => :environment do erb = ERB.new(File.read('lib/tasks/codegen/achievement_types.erb')) params = binding params.local_variable_set(:achievementTypes, AchievementType.all) data = erb.result(params) f = File.new('codegen/AchievementType.h', 'w') f.write(data) f.close() end end What this code does is it loads an ERB file which is a templating file for Ruby. Queries the database for all AchievementType objects, Then creates a local binding scope for the template, Renders the template to a string Presto, Generated C++. Erb file in question: #ifndef ACHIEVEMENT_TYPE_H #define ACHIEVEMENT_TYPE_H <% achievementTypes.each do |at| %> #define <%= at.macroname %> <%= at.id %> <% end %> #endif Code generated: #ifndef ACHIEVEMENT_TYPE_H #define ACHIEVEMENT_TYPE_H #define ACHIEVEMENT_TYPE_WOODCUTTING 1 #define ACHIEVEMENT_TYPE_FISHING 2 #define ACHIEVEMENT_TYPE_MINING 3 #define ACHIEVEMENT_TYPE_FIREMAKING 4 #endif The use case above is fairly simple, but more complex situations can occur, such as Npc Conversations. Currently my NpcConversation_Gen.h file is 500 lines long. with lists of data similar to this: new NpcConversation(34, 0, "69488b5b-cfd1-4255-bd74-a6b7eeb0e939", { new NpcConversationAction(27, "AddInventoryItem", 39, 1), new NpcConversationAction(28, "CompleteMilestone", 3, 15), }, { new NpcConversationConditional(12, "StartedQuest", 3, 0), new NpcConversationConditional(13, "HasItem", 57, 10), } ), Maintaining that code by hand would triple the amount of time to create quests. So if your game uses a large amount of data, I really recommend using a web framework (Ruby on Rails, Codeigniter, Cakephp, Revel, Django, Spring, ect) to manage all your game data!
  18. @Josh you mean Bits Per Sample instead of Bitrate? Bitrate is like 44100 which is the number of samples/second for audio. Leadwerks.bitrate = Bits Per Sample Leadwerks.frequency = Bitrate.
  19. The problem with variable bitrate in leadwerks is it adds a lot of extra complexity. Since leadwerks uses WAV files it doesn't support a changing bitrate through the stream. When you play audio with OpenAL you specifiy the bitrate + size of your data. To variable bitrate you'd have to change this with OpenAL at random spots in the song. Either that or we'd have to resample the audio data which adds another step of complexity. I use GoldWave or Sox to convert all my files and it appears to work just fine for me. I'd assume audacity would work perfect as well, just as long as you disable variable bitrate.
  20. @macklebee I think they use to give it out with any optical drive that you purchased. I didn't dare install it though .
  21. @macklebee Thanks for the insight I wonder if Nero is adding meta data between the different Ogg streams outside of the vorbis data, thus the program fails to load the file trying to parse meta information as Ogg headers.
  22. @Roberto14 I won't be able to check more until I get home tonight. Then I can try it out with Leadwerks. Your file appears fine. My Linux decoding appears to work just fine. I'll update you guys tonight with what I find.
  23. Can you send us an ogg file that we can test on? Edit: -------- I just ran roughly the same code on 100 ogg files that were used in my game generated with the linux command "sox" and I haven't hit any issues. I'll need a test file to find the problem.
  24. Are you referring to setting the iterators value = NULL? Maybe something like this? std::vector<Entity*> entities; for(auto it = entities.begin(); it != entities.end(); it++) { if(condition) { *it = NULL; } } Idk if that would work, iterators are just pointers to each element. I'm not too proficient at my C++, more of a C, just a guess.
  25. I can confirm that switching to 480 fixed it. Thanks.
×
×
  • Create New...