Stats

2
Projects
54
Devlogs
413
Votes
2
Ships

Coding Time

All Time: 249h 59m
Today: 0h 0m

Member Since

June 17, 2025

Badges

2
Ballot Stuffer
vote 100 times.
🚢
Maiden Voyage
you shipped your first project! the journey begins...

Projects

2
MCServerWiz
13 devlogs 10 days ago
Hour Zero

Hour Zero

Shipped
41 devlogs about 2 months ago

Activity

Added dynamic app scalability
- Added option to change the phone state cycle key for increased customizability and convenience
- Added close animation for Bunka app
- Bunka app is now synced perfectly with the bunker panel
- Fixed layout issues with refreshing the bunker app sliders
- Moved app animations to the app menus to avoid overloading the phone animator and promote reusable animations for all apps (leading into the next point)
- Bunka app open & close animations have been switched to a general app open & close animation for reusability
- App animator is also completely reusable for all apps
- All apps can currently open, but they all show up as the Bunka app

Worked on updating the rage room with the new assets/features that were added after the first ship. Make sure to watch the attached video to see how the updated rage room looks.

Some new additions include:
- Openable doors (freezer, shelves)
- New models (road, table, freezer, toilet, sink, toilet paper
- Automatic shelving
- Procedural NPC walking
- Interacting with NPCs & NPC menus
- Trade system
- Item dropping
- Pulling out the phone & opening apps
- Lighting
and more!

Once again, please watch the attached video to view everything that was added.

Updating the project JDK multiple times to try and make the app more compatible lol
I might end up changing it back to the original zulu 21, but I need to figure out how to bundle the JDK through launch4j.
I also tried again to fix closing the bat/sh files when running is complete by adding a script within the files themselves. I'm pretty sure it works a lot better this time since it doesn't risk not generating any files due to closing when the EULA is detected. The base command remains the same within both file contents.

Update attachment
  • Added more print statements to clarify things to the user (invalid memory amount, recommended memory amounts, client recommendations, etc.)
  • Fixed up the MOTD setter to allow multi-line inputs and set the input correctly in the server.properties file
  • Fixed sh files to make sure they actually run on Linux and macOS by creating individual file contents for both .bat and .sh files
  • Set the current directory to the folder that contains the sh file to ensure the process starts properly because the run files weren't being found before
Update attachment

Added an option to turn on the server after setup is complete. As of right now, this feature is not available for forge since full forge setup is not supported due to it being wildly different from the other setups. As always, turning on the server is an OPTION, because this application wants to give the user as much control as possible over server setup without requiring them to interact with the bat/run files or any of the complex files involved in setting up a server.

Update attachment

Finally finished my first attempt at adding file closing to the bat/sh files that run initially to create the EULA and start the server. The program closes the run file once it detects the creation of the EULA (which might actually be an issue because it could prevent the creation of files that come after, I will have to test for this). This feature makes it a lot simpler for the user as they don't even have to worry about seeing the bat file lol

Update attachment
  • Added an intro message to the program that displays where our info is sourced from and where the JAR files are downloaded from
  • It also just displays instructions for how the program should be used
  • Found a way to detect the current operating system and used that to change the setup since the setup is different per operating system (run.bat is for Windows, run.sh is for Linux/macOS)
Update attachment
  • Implemented the actual MOTD input with strict validation. This system allows multi-line MOTDs to be set as the input is ended once the user types DONE. MOTDs are set in the server.properties file
  • Made first attempt at handling the Forge server creation exceptions. Separate instructions are given for forge after the bat file is run
  • Clarified many of the instructions to make the application as simple for the user as possible. Many links are added to allow the user to read more on what they are trying to do if they feel the need to do so. Instructions are given on how the user can retrieve their IP to connect to the server. Many other small things are also provided (how to op players, how others can connect to your server, how to change other server settings like render distance, seed, and the MOTD, etc.)
Update attachment
  • Project name changed to MCServerWiz (messed with my time tracking lol, I was wondering why my minutes weren't tracking for so long)
  • Added a server MOTD setter, which doesn't actually allow input at the moment; it is just the backend functionality. Input system/validation will be added next
  • Currently Forge servers do not work since their creation process is a lot different from the other supported types
  • We tested the clients that work well with our system since many of them are very difficult to retrieve the jars for or have an entirely different process for setup. We narrowed it down to Paper, Fabric, Forge, & Vanilla. Forge works quite differently, but we still kept it since it is a very popular option
Update attachment
  • Added RAM allocation with input validation
  • Added bat file running, which allows the user to be handsfree when using the application (as in, they don't have to run the right file and risk doing something wrong)
  • Added EULA acceptance system with input validation to ensure the server can be fully setup (honestly, it is one of the weirdest steps in the process because it prevents the server from starting for the first time until the user changes the EULA value to true)
  • Finally got the EULA waiting system working. It took MANY tries to make this system functional and reliable, but now the application will wait until the EULA is created before continuing to ensure a smooth, errorless experience
Update attachment

Added the client, version, and server/profile name inputs with heavy validation to ensure no weird inputs that cause errors can be given by the user. Profile/server folder name is specifically validated to ensure no names are given that cannot be used in the operating system folder names, including CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, COM0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, LPT0, and the symbols that cannot be used in file names either.

Update attachment

Restarted the project to switch from command arguments to an actual input system through the console as that is much easier for a typical user to deal with. Command arguments can get a little difficult, especially as more arguments are added to customize the server further. An actual user-friendly input system would make this a lot simpler for anyone to understand.

Update attachment

Added a version testing method to validate the inputted version as each client has different supported versions on the website being used to retrieve the JAR files. It sends a request to the URL with the inputted version and if an error code is returned, the version is considered invalid. The user is then asked to input a different version over and over until they select a valid one.

Update attachment

Added input validation to the client & version inputs in the console to ensure the user can't input crazy values or incorrect values that don't make sense for them in their specific case. Created a much better menu for the client choice to make it a lot easier for the user to understand.

Update attachment

Added a networking method for retrieving the server jar file from an online resource. Invalid server jars and incorrect inputs are also handled. The server jar takes the client and version as input (which are retrieved from the user).

Update attachment
Vevaan Verma
Vevaan Verma created a project
9d ago

MCServerWiz

A utility that allows users to easily install and configure a Minecraft java server on their computer, which they can then run and have people join.

MCServerWiz
13 devlogs 1 follower Shipped

Began the phone operating system.
- Added home screen app UI
- Bunka app icon is clickable and opens the app
- Bunka app has an open animation
- Time and day counter moved to phone
- Bunka app shows the bunker system sliders and other information from the bunker panel, but does not update yet
- Currently, P cycles between phone states
- Current phone states are: PutAway, TakenOut, ToFace
- Animation logic is set up for all of them
- ToFace phone state is the only one with an actual animation (placeholder) that unlocks the cursor and allows the player to click apps
- PutAway state re-locks the cursor

Update attachment

Added an actual NPC idle animation that plays when you interact with them within range. NPCs turn towards the player when interacted with (this was there before, but it was more makeshift; now it is coded a lot better). Implemented a naming system for NPCs which randomly picks an NPC name based on gender. Implemented an NPC role system that doesn't give actual buffs yet. The ESC key now closes the NPC menu like the other menus.

Moved the task assigning system over to the teaming button. Implemented a fully scalable talking system with dialogue sequences. Dialogue sequence system also works with the team button, allowing a sequence to begin when a task is assigned. Trade and track buttons are not functional currently. Added a close button and open/close animations for the menu.

Update attachment

Fixed project folder hierarchy, fixed a quick transfer error bug by setting the quick transfer inventories in the demo scene, updated the collision matrix to fix the flying bug when grabbing. Added an NPC interaction menu with buttons for teaming, talking, trading, and tracking.

Added strikables, which are very similar to interactables (with the same inspector variables as of now) but get triggered when the player attacks them. This was added for a task that will be added soon called LastMinuteRepairs, where the player has to hammer a certain object to gain the NPCs trust. Since it functions the same way as an interactable, it can require any specific item to be held when struck. In the attached video, the strikable requires a hammer to be held and you can see success printed in the console each time it is hit with the hammer.

Time wasn't tracking on the website until now. I did a lot in this time: attempted to fix an issue where the crosshair would change to grabbable when the player was sprinting because the raycast hit the player, which has a rigidbody. Added a door through a more versatile interactable script called OpenableInteractable, which allows various settings to be enabled, such as requiring the specified items only the first time, all the time, and remaining open by default. Added the hammer and key items and refined the equip, wind up, and wind down animations. These animations will be shown in the attached video. Also added a precaution to prevent the item from automatically going to max grab distance when picked up because this created issues when the item was brought near the ground.

Added support for itemstacks rather than single items for the doomsday dropoff task. Added idle animations to the tools that show up after holding them without attacking or unequipping for a certain duration. The attached video has a clip of one of the idle animations. Simplified the game a lot more; removed the bunker type option as now you have to choose the mountain bunker outside of the city. Redesigned NPC ideas. I will elaborate a lot more on these in later devlogs as this is still being decided.

Added a base task system to support all future tasks that are in line to be added. Added the first task: Doomsday Dropoff. In this task, the NPC (or whoever is assigning the task) requests the player to get a certain item, which has also been made customizable through the item data. Currently, they can only request one item type and one of that item. Created an NPC interactable to simulate the NPC task assigning system. Still thinking about if the alert box should remain a feature or not. I just attached a random video of this NPC failing to ragdoll. Thought it was kinda funny

I wasn't able to create a devlog because the time tracking wasn't working for a while (as a lot of you probably know). Here are some things I did in this time: Moved alert system to be visible again, fixed an error that came up when you spam switch items and attack, added an NPC interactable to get tasks, and added a cooldown system to attacking, which can be different for each tool, and implemented a wind up and wind down system for animations to make the timing of impact when attacking a lot better visually (as shown in the video).

Set a crosshair order, prioritizing grabbing, interacting, grabbables, then the default crosshair. Made grabbed item lose grab if an obstacle gets in the way. Then, I completely redesigned the crosshair designs (to the ones shown in the attached picture) and made the crosshair smaller but still visible. The hotbar now gets hidden after a system repair success.

Update attachment

Removed flying glitch that allowed players to use grabbed objects to infinitely fly. This was done by preventing the player from colliding with the object they are grabbing (as shown in the video). This fix was initially done by preventing jumping on objects that are grabbed, but turns out, there were still ways to fly, so I just removed collisions entirely instead. Changed grabbing to right click to avoid issues between attacking and grabbing. Fixed crowbar equip animation. The crowbar kept disappearing after the equip animation. Added crosshair variations to differentiate between interactables and grabbables (and when the player is actively grabbing something).

I finally got a proper working walk system that can adapt to slopes!!! As seen in the attached video, the ankles don't flip weirdly after taking a step either. This is likely what I'll be using for a while until I decide to torture myself again and improve it for no sensible reason 👍

I tried using the built in Unity foot IK and IK pass settings in the animator. I completely forgot about this feature, but it actually seems quite promising (other than the ankle destruction going on in this clip). This might be the system I end up using since it already looks a lot better than the others.

I got it looking a little bit better, but I think the main issue with this one is the NPC leans too far forward while the legs kinda lag behind. I just wanted to post a devlog to check in on my progress.

I tried to redesign the system AGAIN and ended up with the following video. Still looks very stuttery, like the feet teleport very unrealistically. I guess I'll continue trying different things to fix this problem, but procedural animations in this style seem to all have this same issue. Also, his legs are very spread out and don't really follow the given animation.

Completely redid the procedural walking system (again 👍). I just wasn't happy with the customizability and control I had over the settings. This one is more customizable, but I have to restart the process of finding the perfect settings. The video I'm attaching is my current progress at doing so. I will continue modifying settings to try and achieve a more realistic walk. But honestly, I might end up recoding it again to achieve a different look to the walking because it still looks quite similar to the previous system, which didn't appeal to me that much. I think the main issue here is the walking is wayyyy too fast and slowing it down just makes the animation look really weird.

Messed around a bit more with the procedural walk animation and got something I like slightly more. It's still terrible lol

Added a pretty basic procedural animation walk system after MANY tries. As shown in the video, it looks REALLY terrible right now, but there are a bunch of settings I need to mess around with to fix it up. I will be doing that in the next devlog, but for now the system does technically function. I was also thinking of creating a more ragdolly animation, which is something I have tested and something I might go back to later. This is mostly because the ragdolls would match the funny/humorous nature of this game.

Initially, the inventory quick transfer feature would only work the first time. That is now fixed. This was because the onContentsUpdated event was only being subscribed to in Initialize(), so after the inventory UI was disabled once, the event would never be resubscribed to. Grabbed items are now automatically dropped when they leave the grabbing range & when a menu is opened. Added days to the TimeManager & time HUD. Turned all the important scene objects into prefabs to allow for synced duplicated scenes for easier collaboration since GitHub makes it very difficult to work in one scene together. Crosshair now also gets hidden along with the hotbar when a menu is opened. I still have to consider what to do with grabbed items when the player tabs out as they remain grabbed even when the player lets go of the left mouse button. I also need to consider whether to allow grabbing items when the player is holding another item already.

Revamped the entire grabbing system to fix the rapid oscillations issue and random quick movements that would launch the player off the map. Now, the system has a grab offset feature where you can grab anywhere on the object and it maintains that offset rather than just grabbing the center/pivot of the object. Also fixed a build issue with the hotbar that was importing libraries not available when Unity builds.

Update attachment

Add grabbing system as a secondary option to actually picking up the item and storing it in the backpack/hotbar. You can now left click on any rigidbody object that is non-kinematic to grab it and throw it. This adds a whole extra level to the game for physics-based interactions, especially with NPCs in the future. I finally ended up using a spring damping approach for the grabbing system (to make the grabbed item follow the crosshair with a slight lag). I also added the hammer and key objects to the scene, and they all have idle (with an inspect animation), equip, and attack animations with the custom ranges and forces set.

Completely rewrote the physics item swing effect system, which is still in progress, but makes more sense to me now. The swinging has been renamed to attacking and interactions, as of now, will be done with the actual interaction key, rather than clicking on an interactable with the tool. Each item now has its own force values and attack ranges to add further customization. Moved item animations to the body object (actual mesh) rather than the parent object that is centered at the holding point. This makes it a lot easier to animate the items since the pivot is actually on the item. Only issue is that now the offset is part of the transform, making it easier to lose the default offset when animating. Added post processing too, which will be refined later.

Update attachment

Added intense input validation to the interactable item requirements to prevent developers from enabling a requirement without specifying a valid item or count without noticing. Cleaned up a lot more unused variables and some renaming issues in both comments and general variable naming.

Update attachment

Renamed HeldItemSway script to ItemHolder to make it more generic and fit its function better. Added an idle crowbar animation to prevent using the any state animator node as it caused delays in the animation start. Now these delays are fixed, and the animations feel more seamless. Added item filters to all interactables. The first one allows a required item to be held in the player's hand (selected in the hotbar) to interact with the interactable, with an option to consume the item after interaction. The other allows a list of items to be set that should exist in the backpack as a whole, with the same option to consume the items after interaction. Both of these filters can be used at the same time too. They are designed with developer friendliness in mind in the Unity inspector to only show the required variables if the filters are enabled (using custom editor classes). Still thinking about if the alert box should remain a feature or not.

Update attachment

Found a way to make the hotbar slots in the backpack more clear that it is actually the hotbar (slot numbering that follows hotbar keybinds on each slot, Hotbar header). Also added an environmental effect when the crowbar is swung (physics response), which will likely be updated later to be more accurate. But right now, there is a basic crowbar swing animation which will also get improved later; the current one was used for testing purposes.

Update attachment

Refactored more variable names and custom editor functions to support the new system that allows all items to be held, not just tools. Fixed a bug where swaying continues even when player is standing still in the menu. This issue was partially (mostly) fixed by combining the two files together in a previous devlog, but some issues still remained which are now fixed after a lot of debugging.

Update attachment

Fixed some Unity build issues that used editor packages that Unity can't build with. Fixed some Unity inspector custom editor console errors to clean up console to make debugging easier. Added a hover color change to primary backpack close button. This coding session was mainly focused on cleaning up the project, as will future sessions too (since the project was getting quite messy, making the development process more tedious).

Update attachment

Fixed inventory quick transfer system by moving the scripts to the UI script to allow different UIs of the same inventory to have different quick transfer settings. This is particularly useful for the backpack inventories since they have many UIs, each with different needs (e.g. the primary backpack inventory doesn't require quick transfer capabilities since it is one inventory; the repair inventory, on the other hand, contains a backpack inventory and a repair inventory, which allows it to take advantage of quick transfer).

Update attachment

Added a shift clicking system similar to Minecraft that allows quick transfers from one inventory to another. This, once again, required a recode of some of the parts of the inventory system (which took a huge amount of attempts to get right). However, I'm happy with each and every one of these recodes since it makes the inventory more modular and scalable each time. Now, the inventory quick transfer system is quite scalable, but there is still more opportunity for scalability, which I will likely implement in my next devlog.

Update attachment

Fixed bug that hides hotbar when the actual close button is used on the primary backpack. Fixed a bug that continuously played the re-equip animation on the crowbar every time an item was added to the backpack. Fixed a bug that continuously played the re-equip animation on the crowbar when it was dragged to an invalid slot and sent back to the source slot. These bug fixes required a huge recode of the inventory and inventory UI system as well as code comments/documentation.

Update attachment

Added separate coloring to the hotbar slots in the backpack UI to make it clearer to the player. This was added in a scalable way to ensure it didn't interfere in the modular programming styles used in the many other aspects of the game. Also refactored lots of code and comments to account for the change from only allowing tools to be held to allowing all items to be held.

Update attachment

Partially combined the HeldToolSway script with the PlayerController script since they share a couple common input variables and it just makes sense when looking at class hierarchy. Now, all the sway settings are centered in the PlayerController, which makes more sense. Combined the hotbar and backpack inventories together to allow players to hold any item rather than just tools. This required a very large recode of the inventory system & logic as the hotbar is a huge exception to the general Inventory class that existed previously (since it uses the Backpack inventory but also technically has its own inventory). Now, the hotbar and backpack slots are synced together.

Update attachment

Added hotbar fading when the player opens another menu because, for some menus, the hotbar gets covered, cluttering the player HUD. Also fixed an issue where the item info widget wouldn't disappear when the player stopped hovering over the item. Currently experimenting with different ways to combine the backpack and hotbar such that the player can hold all types of items. Right now, the hotbar is whitelisted only to tool item types, while the backpack is blacklisted to them. I am thinking about implementing it the way Minecraft does it where the inventory shows the hotbar as a separate section.

Update attachment

Moved the show item info widget on hover setting from the slot to the inventory UI itself because I want all the main settings to be located on the inventory for ease of use by any developer who works on this game. I added a little text box that shows up above the hotbar that shows the name of the current tool being held. After an embarrassingly long debugging session, I finally fixed an issue that completely deleted items that were dragged back into the slot they came from. In typical game dev fashion, it was a one line fix 😭

Update attachment

Refactored a ton of code & documentation (comments) to clean up the codebase. Mostly spent this time just reviewing old code and fixing a couple of consistency issues such as inaccuracies in player alerts and comments referencing the wrong object. Had to temporarily disable the alert that is sent when the player tries to pick up an item when their backpack is already full because of how picked up items are dealt with (how they are sent to the player's inventories). Not much actual gameplay has changed this time.

Forgot to mention this in the previous devlog, but I also added a crowbar equip animation which can be seen in the previous devlog's linked video.

Update attachment

Added an idle breathing tool bob that, as the name suggests, represents how the tool would move if a human was holding it while standing (it wouldn't stay completely still, it would bob up and down following a human's breathing). I also made the tool follow the headbob of the player when they move to add realism. After a lot of debugging, I also added an item hover information widget that shows everything you need to know about an item when it is hovered over in certain inventories. Of course, I had to make this highly customizable, so I added settings to determine which inventories should support this hover widget. However, this wasn't the difficult part; constraining the widget inside the screen took a huge amount of time to figure out (like when the player hovers on an item near the corner of the screen, the widget gets cut off by the edges of the screen, creating a visual bug). However, I finally figured it out lol

Added an item sway system with a mouse deadzone to prevent small jitters (which are really annoying to look at when actually playing the game). I'm not really sure if this is the final version I am going to use in the game, but it is a good start.

Implemented a tool holding system linked to the hotbar that is highly scalable. More specifically, each item's grip location can be customized and dynamically used with ease. Planning on adding item sway next to add realism to the items.

Update attachment

Added an inventory filtration system that allows the developer to filter by both specific items and item types. They can also select from an enum to indicate whether the filter is a whitelist or blacklist. This makes it a lot easier to implement bunker repair systems and deal with filtered slots. I also began the hotbar system for holding tools and other items to come in the future. This was very simple to implement because the parent Inventory class was already very versatile/scalable. Added a crossbar model imported from Blender as the first tool (used for testing purposes but will also likely be part of the released game).

Update attachment
Vevaan Verma
Vevaan Verma created a project
55d ago

Hour Zero

The world is on the verge of complete collapse. The nuclear apocalypse is here, and doomsday has been spelled out for the city of Los Montreales. Maintain your bunker, scavenge for resources, and get into strange situations to befriend and save the people of the city before Hour Zero. Doomsdays and dance parties!

Hour Zero
41 devlogs 9 followers Shipped
Vevaan Verma
Vevaan Verma joined Summer of Making
56d ago

This was widely regarded as a great move by everyone.