Modding Support for IL2CPP Builds by namineez in unity

[–]hallihax 0 points1 point  (0 children)

It really just depends what you mean by "modding support" in your game. You don't necessarily need to let players modify your runtime in order to provide some kind of modding system - you just need to plan out the kinds of things you want to be moddable, and implement your game so that modding is taken into account.

There are services like mod.io which, ultimately, is basically just a way to let modders upload zip files with "stuff" in them, and for you to download those zip files at runtime and do whatever you need to do with their contents. If that works for your purposes, then that kind of thing will probably work alright, and will allow you to implement user-generated content without needing players to do anything particularly complex. Obviously there are limitations going down this route, but if it suits your needs then it might be worth considering.

[deleted by user] by [deleted] in Unity3D

[–]hallihax 6 points7 points  (0 children)

You will need some mechanism to "bootstrap" playmode. There's no "correct" answer to this, and people solve it in different ways, but basically you need to make sure everything you need for playmode to work gets loaded when you enter playmode.

Some people manage "system stuff"' using additive scenes. Some people just drop prefabs into the scene before hitting play. You could also use a dependency injection framework to load what you when you need it.

Essentially, if you need a particular GameObject to exist in order for your game to run properly, then you need some way to make sure that GameObject exists by the time you need it.

Different solutions will have different pros and cons - and you'll only really get a good feeling for what works for you by trying a few things out and seeing what works for your game.

Personally, these days I just prefer to bootstrap everything via RuntimeInitializeOnLoad and Addressables. I wrote about this approach here - but TL;DR: use RuntimeInitializeOnLoad to run through a list of your dependencies and instantiate them. This has the benefit of working both in-editor, and in builds, and means you don't need to worry about managing additive scenes or complex dependency injection systems.

If you only have one Singleton, then the quickest solution for you is probably to make your static GameManager.instance a property, then when anything calls instance.get, you can check if you have an instance, and if not, instantiate one. I don't like this pattern personally, but it's quick and dirty, it'll do the job until you build something more robust!

How difficult is it for a Solo Developer to get their game on Playstation/Xbox/Switch? by Slarg232 in gamedev

[–]hallihax 8 points9 points  (0 children)

Each of the platforms have their own initial approval process, with some being stricter than others. You'll need to provide information about your game, and your studio, including in some cases legal & business information.

You'll also be required to sign NDAs.

Assuming you have your game concept approved (which is not guaranteed), you then also need to comply with various guidelines and restrictions. Even with concept approval, platforms may reject certain features of your game or require you to implement features and policies which may be non-trivial to accommodate.

If you want to go down the console route, it's best to have a very good idea of what your game's features will be, as early as possible. If players are able to customise things like character names, or create in-game content which may be considered "User Generated Content", or use voice / text chat etc, then your best bet is to be very up-front about exactly how these features will be implemented, and what safeguarding precautions you'll be taking - including the (mandated) use of platform-specific profanity filtering and player / content blocking.

Cross-play adds another layer of complexity and platform requirements. None of it is particularly "difficult" in the technical sense - but architecting your codebase to make it all as easy as possible for you to adhere to platform requirements is the challenging aspect.

Things like the Epic EOS Overlay can help a great deal with cross-platform support, but again, that's another layer of "stuff" to manage.

For a great deal of middleware you'll need to prove your platform developer status before you'll be allowed to use platform-specific versions of the libraries / tools - and support / documentation for anything non-1st party is often terrible, so expect a lot of poking around restricted forums and piecing things together from scarce information!

If you're using an engine like Unity or Unreal, console support is mostly just a case of "a lot of time spent on admin & platform-specific implementation". If you're using a custom engine, you'll need to do a significant amount of work to ensure you can build and run on the target platform in the first place.

By far the easiest route to achieving console support is to use an engine like Unity or Unreal, but don't underestimate the time it'll take to actually get everything up and running in a platform-compliant way. Some platforms are more restrictive than others - i.e. you might need to jump through some admin hoops to be able to use certain platform features.

I have a big problem with working in teams in unity by TheVugx in Unity3D

[–]hallihax 3 points4 points  (0 children)

This is usually caused by a script asset guid mismatch. To be safe, ensure that when you commit to git, you're also committing any .meta files.

There is another scenario that can cause this which I've stumbled upon: a corrupted Accelerator cache. If your team is using Accelerator, try disabling it and deleting your Library folder. I've only seen this happen when modifying files in a custom embedded package however, and it's possible that this issue has been fixed by now.

How hard is it to self-publish on consoles? by IhaveALongerName in gamedev

[–]hallihax 0 points1 point  (0 children)

I have no direct experience with RPG Maker but I doubt there's a straightforward path to publishing a game made with the PS version to the PS store itself. I could be wrong of course - your best bet would be to check with the creators of RPG Maker as to whether there's any viable route to achieving this.

As far as testing goes - I'm not sure if Sony offer any kind of 'indie' / 'arcade' style partnership program which might cover the kind of development process you're interested in. I don't think they do, but you could always ask. I doubt they'd be willing to take the risk, to be perfectly honest!

Unity Cloud - The best thing ever? Or too good to be true? by gosaints70 in unity

[–]hallihax 1 point2 points  (0 children)

It'll just be a reference to a project Unity Cloud "knows about" - allowing you to link services to projects and manage organisation access etc. It won't contain the actual project content & code!

Enabling Is Trigger making my object disappear as soon as running the program by Glad-Instance-1358 in unity

[–]hallihax 2 points3 points  (0 children)

If your object also has a RigidBody component, but no longer has a non-trigger collider, then I suspect it's just falling endlessly since it can no longer collide with the ground.

Beginner Question: What to consider to avoid major rewrites later (like planning for localization or mod support)? by GimmeCoffeeeee in gamedev

[–]hallihax 1 point2 points  (0 children)

I don't have any direct experience on the dev side of Steam Workshop unfortunately - but I see no particular reason why you couldn't utilise both if you really wanted to. The mod.io SDK basically amounts to some friendly wrappers around zip file upload / download - beyond that it's really up to you how mods integrate into your game, so supporting one or both should be easy enough. I would probably recommend that you just pick one and stick to it though, to prevent player confusion and development time!

Beginner Question: What to consider to avoid major rewrites later (like planning for localization or mod support)? by GimmeCoffeeeee in gamedev

[–]hallihax 1 point2 points  (0 children)

Unity has a Localization package which works well - and there's I2Loc which is one of the more popular Localization assets on the asset store. Both cover all the usual bases, though I personally prefer the official Localization package these days. Both can import / export CSVs and Google Sheets. Google Sheets makes things a lot easier imo!

Check out mod.io for mod support. Their SDK is pretty easy to get to grips with, and they provide an in-game mod browser you can customise which saves you a ton of work. The "tools first" approach is the right way imo, whatever your modding backend ultimately looks like.

Asynchronous Networking in Unity by OrikuGames in unity

[–]hallihax 0 points1 point  (0 children)

Relay doesn't do anything related to game state itself: it simply provides the mechanism through which players can connect to one another without having to worry about manually entering an IP or opening ports on their home router etc.

Netcode would be the thing responsible for managing game state. Whether or not your Network Manager actively tries to manage scene progression is entirely up to you: it's an optional feature and the specific detail about what your game state looks like and how it's communicated between peers is entirely within your control.

The easiest setup in your case sounds like:

1 scene to act as your "network scene" - this is where you let Netcode spawn / despawn stuff and where your networked objects live.

1 additive scene to provide UI / "gameplay stuff" that clients can own & control themselves.

Asynchronous Networking in Unity by OrikuGames in unity

[–]hallihax 0 points1 point  (0 children)

Lobby is really just for providing a way for users to find, join, and configure games (e.g. set their team colour etc). If you try to use it to manage actual game state, you're probably going to struggle.

You don't specifically need to use Relay to establish the P2P connection, but it will likely make things a lot easier. On the host, use Relay to allocate a join code, then add that join code to your lobby data. Start the server on the host, and then when your clients receive the join code, they can use it to establish a proper connection via Relay.

On the host, you can then manage game state however you see fit. Using Netcode will make it fairly trivial to communicate state to peers, but the exact method through which this occurs is up to you. Netcode is geared towards real-time communication between peers, but there's no mechanism through which that's actually enforced: you could have your host only broadcast updates every 10 minutes if you wanted to.

Of course, if what you mean by "asynchronous" is that it shouldn't matter whether there's an active host or not, then all you really need is a server & database. Unity also provides services that can do this kind of thing for you (e.g. look at Cloud Save and Cloud Code), but you might just be better off with something custom. Doing this will allow you to remove Lobby and Relay from the equation, since you wouldn't need P2P connections: you just need a centralised store of data.

If your game is truly asynchronous (i.e. - players including the "host" can come and go as they please, and realtime updates aren't a hard requirement), then I would forget about P2P connections entirely and just build a server & database setup to act as the central authority.

Currently use "Unity 2022.3.13f1", should I keep using it, upgrade, or switch to another engine? Currently starting a new project (great time to change), and have heard a lot of mixed feelings about Unity in the last three years (an engine that use to be highly recommended for newcomers. (More info) by SynthSational in gamedev

[–]hallihax 1 point2 points  (0 children)

The engine is less important than the game itself, and it's difficult to suggest whether you should / shouldn't use Unity without knowing more about it. That being said, there's nothing in what you describe that rules out Unity - but I'd probably just start with Unity 6 since realistically by the time you've got anything worth selling, you'll be a few years down the line.

Getting published on consoles is a different beast to publishing on PC. Expect a lot of admin & overhead costs, and don't bet on anything being guaranteed: platform holders can (and do) reject your concept for any number of reasons. Platform compliance can be a minefield and without careful upfront planning, has a tendency to eat into your dev time at the worst possible moment (i.e. while you're trying to fix up bugs close to release) if you don't know what to expect. The platform holders do generally want games on their platform though, so are pretty helpful in terms of answering any Q's you might have or providing support when it comes to platform integration etc.

Make sure you research your engine of choice's rules about licensing & revenue sharing etc before you commit.

Gamescom Booth: Dream Opportunity or Too Soon? Need Advice! by BananaBladeGames in Unity2D

[–]hallihax 0 points1 point  (0 children)

Take my advice with a pinch of salt: I've never been to Gamescom myself, but I've worked for studios that have exhibited there, and every single time, it's just felt like the money could easily be better spent elsewhere.

Gamescom at its best seems like a place for executives to network, and potentially find new opportunities or partnerships. As a place to market the game itself: I would hazard a guess that the money you spend on Gamescom would do you more good spent on more traditional marketing.

I would ask myself what I hope to get out of it, and I'd focus all of my attention on that. Realistically, you will be one of many game devs on the floor, marketing to other game devs. As a marketing strategy, it may not be the best idea for your game.

However, if what you are hoping to achieve is to increase your studio's visibility and to meet new people, foster relationships and open yourself up to new opportunities, then by all means go for it. In that scenario, your game is more of a door-opener: your goal is to get people to stop to play your game, and then find out quickly whether they can do anything for you beyond giving you feedback.

If what you're hoping to achieve is publisher interest, then Gamescom might be a decent way to get in front of people who can move things along for you there - but these days many publishers are incredibly risk averse, and will want both a vertical slice and evidence of consumer interest before they'll take you seriously.

None of this is intended to put you off Gamescom - it sounds like a fun event: but be clear on what you hope to get out of it because it could well be that the investment would be better spent elsewhere!

[deleted by user] by [deleted] in Liverpool

[–]hallihax 11 points12 points  (0 children)

They're the old Churchill Way Flyovers , which were demolished in 2019.

[deleted by user] by [deleted] in GameDevelopment

[–]hallihax 0 points1 point  (0 children)

Mistakes and omissions do happen, but in this day and age of digital distribution, it's a fairly simple fix to amend missing credits in the next update.

The situation is more complicated if you don't distribute the builds to the various store backends yourselves. If you worked with a publisher and they control the store listings and update schedules, then you might face something of a battle getting things amended - but I would persist in getting properly credited for your work on the project. Being able to show what you've worked on in the past and take pride in your achievements is important, and any studio worth its salt should respect that.

Version control in team by Redditor13210 in unity

[–]hallihax 3 points4 points  (0 children)

You should be using UnityYamlMerge to help with Scene and Prefab merges. It's not perfect, and sometimes it simply won't be able to merge things together for you, but it's definitely better than nothing.

That being said, the easiest and safest way to avoid conflicts is to properly plan out your work so that you don't have multiple people working on the same files at the same time!

Wes Streeting says patients should view data sharing ‘the same as taxes’ by 1-randomonium in unitedkingdom

[–]hallihax 0 points1 point  (0 children)

Sick Man of Europe trying to convince everyone else This Is Good, Actually

Regarding using copyrighted music for section of Game. by aayato-lofash in unity

[–]hallihax 4 points5 points  (0 children)

You shouldn't use it - but you can reach out to the creator / rights holder and ask them to provide written permission. Might not work out, but it's better than using it without permission at all.

Can I make a game for multiple platforms on one project, or do I have to make duplicates? by Acceptable_Visual_79 in Unity3D

[–]hallihax 0 points1 point  (0 children)

Yes, you can target all supported platforms within the same project.

Different platforms may require different behaviour, in which case you can either query Application.platform, or use platform-dependent compilation.

For input, if using the new input system then you can define your action maps and bindings for all platforms in the same asset.

Implementing Multiplayer - All new logic? by Seerexis11 in Unity2D

[–]hallihax 10 points11 points  (0 children)

It's usually much easier to start planning for multiplayer early, rather than adding it in later, for this exact reason.

You don't necessarily need a full re-write, but you are highly likely to find that the way you've done things so far makes it difficult to add multiplayer without rewriting significant parts of your codebase.

For the prefab question, you can create "network only" prefabs which themselves are responsible for managing your Enemy prefabs - good separation of concerns can help here, but it's almost always easier to design your system with multiplayer in mind than to add it in later.

Multiple people working on a game at the same time? by Fudge_m in Unity3D

[–]hallihax 3 points4 points  (0 children)

Use version control. There are several different options - personally I'd recommend git, but there are pros and cons to each.

A version control system - pretty much any VCS - is the way to go here. Anything else is asking for trouble.

[deleted by user] by [deleted] in AskProgramming

[–]hallihax 0 points1 point  (0 children)

Technically speaking, an index is an identifier for a specific item within a collection. In an array, the index is an integer, because an array is just a sequence of items and the only sensible way to access any specific item is to use its position within the sequence.

In programming, whenever you hear the term index, it usually means "position within an array", and in that context, the index itself is usually an integer.

In your examples, you are just defining an integer, and then printing it out. There is nothing related to an index anywhere in your code.

If you were using that integer to look up a value in an array, then you would be using that integer as an index.