Jump to content
  • Advertisement

Magogan

Member
  • Content count

    116
  • Joined

  • Last visited

Community Reputation

512 Good

About Magogan

  • Rank
    Member

Personal Information

  • Role
    Programmer
  • Interests
    Programming

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Magogan

    Advice on increasing sales

    Well, I didn't have that much to show, the game was in development and I had no one who could make anything pretty enough for marketing. Without enough money for a marketing campaign, there is no point in paying for any ads. I would need a good trailer or banner and I don't even have that. And Facebook app install ads are only for mobile apps, not desktop applications.
  2. Magogan

    Advice on increasing sales

    I was not sure if I'm allowed to share that link, but since you asked... https://store.steampowered.com/app/820070/Cube_Universe/ No, I haven't sent press releases to anyone because I'm not sure if that is benefical in this "early" stage and also have no idea to whom I should send them. I have social accounts, but I'm not sure how much time I should spend on that given that I still have to develop a game here. Also, I probably should wait until I have at least a logo. I'm not sure how important that is, but it has to be done anyway. Any idea on the design of the logo and the background for the graphical assets on Steam? I think it should in some way show the USP, but I don't know how that could be done. Edit: 40.89% view rate for my trailer? WTF? How can such a high percentage of people not click "Skip ad"? More than 25% are watching it completely. How on earth is that possible? But also only one click out of 577 views/1410 impressions... Well, people can search for it on Steam/Google, but I don't know if they do. At least they heard of it, I think that's a good thing. But is that worth the money (€0.01 per view)? Can I somehow find that out?
  3. Hi, I released my first game (some kind of voxel RPG in space) on Steam Early Access about 3 weeks ago and I'm wondering what I could do to increase sales. The problem is that I'm working on this alone and I'm not good at graphics design etc., so it is not finished, meaning it lacks some textures and animations for the voxel models. The voxel world itself is kind of "finished", but since I had no time to add more biomes, it looks like Minecraft. The unique selling point is that the blocks are smaller, mountains are higher, there are quests, and different planets that you can fly to on your spaceship. I don't know how to continue... I need money to live, but I can also understand that people hesitate to buy the game in this early stage - but this is not helpful since I cannot continue the development without any money, so I would have to find a job and do the development in my spare time. It would basically take decades to finish the game if I did it alone. So far, I sold less than 100 units. The price is $8.99. I feel like I just cannot charge less (with the exception of sales) given that the game has been in development for over 3 years and I need to make money. I tried advertising my trailer on YouTube, but that doesn't look promising so far, although I got 36% view rate (30 seconds watched or clicked on the ad out of all impressions), which seems a bit high given that I personally skip ads much more often. Anyway, do you know what's best here? Cheers
  4. Magogan

    Cube Universe - Now on Steam

    Yeah, I still appreciate every feedback that I get, because that helps me a lot to understand how people play my game and what they like and don't like about it, so I can improve a lot of things or shift my focus on what players demand most.
  5. Magogan

    Cube Universe

    Explore a nearly infinite universe, filled with planets of all kinds! Every world in this game is procedurally generated, including quests that you can do to advance your character up to level 50. Venture into deep caves to find precious materials to craft armor and weapons. Or simply spend your time exploring the epic landscapes with mountains that are as high as actual mountains, find a place where you want to stay and build your house or whatever you can imagine, with a building height of up to 2048 meters! This game is currently in Early Access and we are working hard to add new content and features as fast as we can. But first, let's see what you can already see and do in the game: Planets Terra Earth-like planet with oceans, forests, plains, deserts, jungles, tundras, taigas, etc. Lunar Moon-like planet with some rare materials that cannot be found on other planets, e.g. lunar essence from lunar elementals and Mithril ore. Quests Procedurally generated quests that are based on the local area, e.g. you have to kill raptors in the jungle to restore nature's balance or get some furs to keep someone warm in colder regions. Combat system Choose a weapon instead of a class - your character can use any weapon, but you shouldn't change it too often since you will get out of practice. Currently, only fire staffs are supported. Crafting Craft a variety of things, like armor, food, building materials, etc. There are a lot of professions and you can craft the basic stuff from all of them, but can master only a few to craft advanced items like modules for your matter manipulator. Building Build with smaller blocks than in other voxel games, giving your creativity more freedom. Blocks are only 0.5 meters big and you can build up to 2048 meters high, which is much higher than in most other similar games. Coming soon... Now, let's talk about all the planned features that will be added as development continues. The following list is ordered by the date we plan to add the mentioned features. Additionally, we will add more content for existing features, e.g. more quests and planet types. Dungeons and raids MMO-like dungeons and raids that are procedurally generated. Imagine a pyramid with labyrinthine corridors that ultimately lead to bosses that will hopefully drop your desired item. Mods and user-generated content Support for easy modding, including a terrain editor for custom terrains with custom quests. Most of the content is already defined in XML files, so we will only have to add some logic that loads user-generated XML files and some code for interaction between different mods. Additionally, a Lua API will be added to support more advanced mods. Mods will not only be easy to create, but also easy to install - if you connect to a modded server, you will not even have to manually install mods since this will be done automatically. Space stations Feeling lonely in space? No one can hear you scream? Well, then visit one of the space stations and meet with other folks! Trade your goods on the intergalactic market, buy upgrades for your spaceship and much more! Battles in space Fight other players and NPCs in epic battles in space. Upgrade your spaceship or buy a better one to stand a chance against those filthy space pirates - or to be fast enough to outrun them. PvP Fight other players on battlegrounds. Asteroid fields Looking for rare materials? Then asteroid fields are the place to go!
  6. Magogan

    Cube Universe - Now on Steam

    Despite a not very successful crowdfunding campaign, Cube Universe is now on Steam.
  7. Magogan

    IPv6 Multicast not working

    Err... thanks? But I only need to discover game servers in the local network of the player - and it must work without a centralized server because I want people to be able to play even when their internet connection is not working, so there is no alternative to IP multicast afaik.
  8. Magogan

    IPv6 Multicast not working

    Yeah, that didn't work either, maybe due to firewall issues? I tried it back when I wrote the code years ago and again when I debugged it two days ago and couldn't get it to work. Anyway, just changing everything to IPv4 multicast worked for some reason. That should actually be better than broadcast from an efficiency standpoint.
  9. Magogan

    IPv6 Multicast not working

    I simply want to detect all of my game servers running in the local network. This should be possible somehow. There is so much example code that is very easy and none of it works for me. It may actually be the firewall blocking something though... Let me test this, one moment... No, that was not the problem, it still does not work. Edit: It works with IPv4. It seems IPv6 multicast is actually broken on Windows. Or I missed something important.
  10. Hi, I tried to send an ipv6 multicast packet through my network. The sending seems to work, since it arrives on the destination PC - at least it appears in the logged network traffic in WireShark. But it does not arrive in my server program. When I send a packet from the same PC that should receive it, it does work though. This is the code for sending: UDPBroadcastSocket = socket(PF_INET6, SOCK_DGRAM, IPPROTO_UDP); BOOL Yes = 1; setsockopt(UDPBroadcastSocket, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&Yes, sizeof(BOOL)); int32_t hops = 50; setsockopt(UDPBroadcastSocket, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, (char*)&hops, sizeof(hops)); uint32_t IF = 0; setsockopt(UDPBroadcastSocket, IPPROTO_IPV6, IPV6_MULTICAST_IF, (char*)&IF, sizeof(IF)); struct sockaddr_in6 sock_in; struct addrinfo *result = NULL; struct addrinfo hints; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_INET6; hints.ai_socktype = SOCK_DGRAM; hints.ai_protocol = IPPROTO_UDP; hints.ai_flags = AI_NUMERICHOST; getaddrinfo("FF18::1243", "12346", &hints, &result); unsigned char buffer[MAXBUF]; int PacketSize = 8; int sinlen = int(result->ai_addrlen); memcpy(&sock_in, result->ai_addr, result->ai_addrlen); freeaddrinfo(result); sendto(UDPBroadcastSocket, (char*)buffer, PacketSize, 0, (sockaddr *)&sock_in, sinlen); And this is the code for receiving the packet: std::vector<uint32_t> GetNetworkInterfaceIndices(){ std::vector<uint32_t> Result = { 0 }; /* Declare and initialize variables */ DWORD dwSize = 0; DWORD dwRetVal = 0; unsigned int i = 0; // Set the flags to pass to GetAdaptersAddresses ULONG flags = GAA_FLAG_INCLUDE_PREFIX; // default to unspecified address family (both) ULONG family = AF_UNSPEC; LPVOID lpMsgBuf = NULL; PIP_ADAPTER_ADDRESSES pAddresses = NULL; ULONG outBufLen = 0; ULONG Iterations = 0; PIP_ADAPTER_ADDRESSES pCurrAddresses = NULL; PIP_ADAPTER_UNICAST_ADDRESS pUnicast = NULL; PIP_ADAPTER_ANYCAST_ADDRESS pAnycast = NULL; PIP_ADAPTER_MULTICAST_ADDRESS pMulticast = NULL; IP_ADAPTER_DNS_SERVER_ADDRESS *pDnServer = NULL; IP_ADAPTER_PREFIX *pPrefix = NULL; family = AF_INET6; // Allocate a 15 KB buffer to start with. outBufLen = WORKING_BUFFER_SIZE; do { pAddresses = (IP_ADAPTER_ADDRESSES *)MALLOC(outBufLen); if (pAddresses == NULL) { return{ 0 }; } dwRetVal = GetAdaptersAddresses(family, flags, NULL, pAddresses, &outBufLen); if (dwRetVal == ERROR_BUFFER_OVERFLOW) { FREE(pAddresses); pAddresses = NULL; } else { break; } Iterations++; } while ((dwRetVal == ERROR_BUFFER_OVERFLOW) && (Iterations < MAX_TRIES)); if (dwRetVal == NO_ERROR) { // If successful, output some information from the data we received pCurrAddresses = pAddresses; while (pCurrAddresses) { Result.emplace_back(pCurrAddresses->IfIndex); pCurrAddresses = pCurrAddresses->Next; } } else { return{ 0 }; } if (pAddresses) { FREE(pAddresses); } return Result; } UDPSocket = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP); sockaddr_in6 UDP_Sock_in; memset(&UDP_Sock_in, 0, sizeof(sockaddr_in6)); UDP_Sock_in.sin6_addr = in6addr_any; UDP_Sock_in.sin6_port = htons(Settings::GetPort()+1); UDP_Sock_in.sin6_family = PF_INET6; setsockopt(UDPSocket, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&No, sizeof(BOOL)); bind(UDPSocket, (sockaddr*)&UDP_Sock_in, sizeof(UDP_Sock_in)); ipv6_mreq BroadcastGroup; memset(&BroadcastGroup, 0, sizeof(ipv6_mreq)); const auto IfIndices = GetNetworkInterfaceIndices(); BroadcastGroup.ipv6mr_multiaddr.u.Byte[0] = 0xFF; BroadcastGroup.ipv6mr_multiaddr.u.Byte[1] = 0x18; BroadcastGroup.ipv6mr_multiaddr.u.Byte[14] = 0x12; BroadcastGroup.ipv6mr_multiaddr.u.Byte[15] = 0x43; for (const auto& Index : IfIndices) { BroadcastGroup.ipv6mr_interface = Index; setsockopt(UDPSocket, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, (char*)&BroadcastGroup, sizeof(ipv6_mreq)); } socklen_t fromLength = sizeof(sockaddr_in6); pollfd PollFd; PollFd.events = POLLIN; PollFd.fd = UDPSocket; PollFd.revents = -1; WSAPoll(&PollFd, 1, -1); recvfrom(UDPSocket, (char*)buffer, MAXBUF, 0, (sockaddr*)&from, &fromLength); I basically tried specifying every single network interface index and the packet still does not arrive in the server. I have no idea what could be wrong. And why does it work when sender and receiver are on the same PC? I don't understand this. Does anyone have an idea? I'm trying this for like 5 hours now and I'm frustrated.
  11. Hi, I have a laptop with an integrated Intel and a dedicated AMD graphics card. When I want my game to use the dedicated one, I have to add a profile in the AMD settings, since extern "C" { _declspec(dllexport) DWORD AmdPowerXpressRequestHighPerformance = 0x00000001; } does not have any effect. But how do you add a game profile automatically? And how do you reliably force Windows to use a dedicated NVIDIA graphics card for your game?
  12. Hi, I bought a code signing certificate from DigiCert and signed my Server.exe using signtool. However, on my other PC I get a warning from Windows Defender SmartScreen that my app is unrecognized. When I click more info, it says "Publisher: (my company)", so I guess I signed it correctly. But why am I still getting those warnings? EDIT: I found out that you need some reputation that you gain when people download your signed application. When you have enough reputation, those warnings should disappear. Best regards, Magogan
  13. Magogan

    Cube Universe - Now on Steam

    Patch 0.0.1 is now live! New features: Added a tutorial that will guide your way through the universe. Added a list of players currently online. Press [O] to open it. Bugfixes and small changes: Items in the action bar can now be used by pressing the right mouse button. You now correctly spawn inside your spaceship instead of on top of it. Fixed adding servers not working with IPv6 addresses. Fixed other players facing the wrong direction.
  14. Hi there, I've been working on my own game, Cube Universe, for more than three years and now it is finally on Steam Early Access. I'd love to get some feedback because that helps me to improve the game. Here is the latest trailer:
  15. I don't think I can find a minimal example because there are more than 100 files and the files where these errors occur include about 20 headers... I don't want to post everything since this is going to be used for commercial purposes... However, I'm trying to find out what triggers the error. This might take a while. Edit: I tracked it down to the file "database.hpp": When I include it in "network.cpp" (which has #ifdef directives), I get 157 IntelliSense errors, when I remove it, I get 0. That file contains a lot of templated classes and functions, but the code is actually valid C++ and compiles without errors, as I already said. I copied code to "database.cpp" as a workaround so "database.hpp" only needs to be included in "database.cpp". No IntelliSense errors so far. Edit 2: It still does not recognize some of the member functions in class System. At least I got the Express version and didn't pay for this s**t...
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!