First Game Development journey

When I inquired of ChatGPT about methods to earn money while gaming, it pointed me toward game studio. Following the download of the studio, I quickly realized its user-friendly nature, making it a breeze to initiate game development. The platform provided a premade character and a play button, streamlining the process. It incorporated comprehensive keyboard and mouse functionalities, readily available for control. My role primarily involved adding interactive items to enhance the gaming experience.

My own DIY Game

Have a taste of the Studio , i feel that i can be game maker too. Click to visit my game My Very Own Game I develop

Journey of game studio Game studio

In my inaugural foray into game creation with game studio Studio, I found it remarkably user-friendly. I could effortlessly construct terrain using 3D objects, incorporating multiple stairs and floors. Once I established a workable template, the process became quite streamlined. All I needed to do was duplicate the folder, make necessary positional adjustments, and voilà—a new floor was created. The overarching ambition is to craft a DIY game reminiscent of the SAO fantasy, complete with a grand total of 100 floors to explore.

After several weeks of dedicated work on templates for stairs and terrain, I finally succeeded in developing a mini-game area spanning a few floors. To commemorate this significant milestone, I recorded my achievement, marking the progress I had made.

Running up the stairs and spinning the camera made me feel dizzy, which wasn't enjoyable at all. I realized the need for a convenient teleportation system where players could simply touch a point to move up or down to the next floor. With some guidance from ChatGPT, I successfully implemented these warp points. Each object served a distinct function – one for moving up and the other for moving down. The process was straightforward; I only needed to update the floor number in the front variable, eliminating the need for other complex changes.

function onTouched(part)
                         local humanoid = part.Parent:FindFirstChildOfClass("Humanoid")
                               if humanoid then local destinationPart = game.Workspace.Tower.Area6.floor26.wrapzone.destination
                                            humanoid.RootPart.CFrame = destinationPart.CFrame
                                end
end

script.Parent.Touched:Connect(onTouched)

Once again, I found that running up and touching an object to reach the next floor felt cumbersome and impractical. I began to contemplate the necessity for a more efficient method, like a floor jump feature. However, my attempts to create one were unsuccessful, as the guidance provided on the game studio website's GUI (Graphical User Interface) section proved unhelpful. Undeterred, I decided to reach out to ChatGPT for assistance. I asked it to help me create a game panel in which players could use the mouse to click and initiate floor jumps. But this presented yet another challenge – the mouse click functionality wasn't working for several weeks. After some investigation, I discovered that nesting the panel under an object resolved the issue. This aspect of the process wasn't well-documented or discussed in videos, which made it a significant hurdle. However, I persisted and managed to create a functioning panel through a recording process, ultimately confirming that it worked as intended.

TThrough numerous interactions with ChatGPT, I persistently sought out every little detail regarding the creation of a warp panel. Slowly but surely, I refined the script until I achieved initial success, with the panel warping to the same position. The next step involved fine-tuning the positions to be precisely 1 meter apart. Subsequently, I encountered the task of having each button perform a loop, and all of them needed to warp to the same position as well—100 buttons in total. With ChatGPT's help, I calculated the small gaps between the 100 buttons, resulting in a long string of buttons. I continued to push the boundaries and requested assistance in creating a brick-laying effect. Initially, the script provided an automatic brick-laying effect with a gap, but it remained outside the panel. However, I managed to fine-tune the formula to ensure it fit within the panel. In the end, I achieved the creation of an auto-wrap panel, eliminating the need to manually create panels for each of the 100 areas. Now, a single box could call the script to summon and warp one panel in front of me.

 

-- Define the ProximityPrompt
   local proximityPrompt = script.Parent

-- Define the function to be executed when the player interacts with the prompt
    function onPromptTriggered(player)

-- Define the message to display in the chat
              local humanoid = player.Character and player.Character:FindFirstChild("Humanoid")
              if humanoid then
                      local PanelPart =game.Workspace.Tower.Area1.wrapzone.Panel.Panel
                      local offset= humanoid.RootPart.CFrame.LookVector * 10
                      local humanoffset = humanoid.RootPart.CFrame.p + offset + Vector3.new(0, 5, 0)

                      PanelPart.CFrame =CFrame.new(humanoffset)

                      local buttonParent = game.Workspace.Tower.Area1.wrapzone.Panel["area100"]
                      local buttonOffset = Vector3.new(0, 0, 1.5) -- adjust the y-offset as needed
 
 -- Get the PanelPart and buttons you want to move
                       local buttons = {}
                                          for i = 1, 100 do
                                                buttons[i] = game.Workspace.Tower.Area1.wrapzone.Panel.area100["area" .. i]
                                            end

                         local forwardVector = PanelPart.CFrame.lookVector
                        local rightVector = PanelPart.CFrame.rightVector
                        local upVector = PanelPart.CFrame.upVector

                        local buttonWidth = 2.5
                        local buttonHeight = 1.5

                                          for i, button in ipairs(buttons) do
                                                          local rowIndex = math.ceil(i / 10) - 1
                                                         local colIndex = (i - 1) % 10
                                                        local buttonOffset = Vector3.new(     
                                                                                             (colIndex * buttonWidth) - (1 * buttonWidth),
                                                                                            (rowIndex * buttonHeight) - (1 * buttonHeight),
                                                                                            -1
                                                                                             )

                                                      local buttonPosition = PanelPart.Position -
                                                                           ((rightVector * buttonOffset.X)-((rightVector * buttonOffset.X)/2.5)-Vector3.new(0,3,0) )-
                                                                                 ((upVector * buttonOffset.Y)- ((upVector * buttonOffset.Y)/2.5)-Vector3.new(5,0,0) )-
                                                                               (forwardVector * buttonOffset.Z)

                                                     button.CFrame = CFrame.new(buttonPosition, buttonPosition + forwardVector)
                                          end
               end

--print(proximityPrompt)
    end

-- Connect the function to the ProximityPrompt's "Triggered" event
proximityPrompt.Triggered:Connect(onPromptTriggered)

Handling audio was straightforward; I simply uploaded my pre-recorded morning sounds from my website. These were recordings I made in the morning. At this point, my account remained unaffected, and there was no ban in sight.

With the full template in place, featuring just one wrap panel and 100 buttons for each floor, I effortlessly added a new floor and edited the buttons for up, down, and the panel. Everything worked seamlessly, enabling me to continuously add and update floors without any hassle.

I created a simple recording where I built up to the 26th floor, complete with a functional panel and buttons.

The straightforward recording and testing are now at floor 32, or area 32.

There's more to come! I'm currently in the process of recording and testing areas up to 40.

Finally, I've reached area 50, which is half of my initial goal. The testing and functionality are working smoothly.

I've made some progress, reaching area 57. However, there's been a slight slowdown as I'm currently unable to carry out testing and recording freely.

I'm making excellent progress, having reached 3/4 of my goal. I'm now nearing the completion of area 75, and the testing and functionality are performing admirably.

I've finally reached my goal of area 100! I didn't wait for an official game development project; instead, I managed to create a game similar to SAO with 100 areas all by myself. A decade has passed since I first saw some videos on this topic, but there haven't been any new videos since. In another ten years, I'll be 50 years old, and I'm not even sure if I'll still be able to play games or work. This milestone is just a fun DIY game-building project, and I don't intend to sell it since it's purely inspired by the SAO cartoon. However, in a later video, I revealed that my account was banned, leading me to abandon the project. The primary goal and source of happiness in this endeavor were the joy of running around 100 areas and battling some "zombies" (which were supposed to be pigs on the first floor). I also struggled to create a user menu similar to SAO, as the GUI part had to be created locally, uploaded, synchronized, and then called for testing validation before displaying the user screen. This process proved to be quite troublesome. To celebrate this milestone, I recorded my progress.

I successfully grasped the concept of GUI screen mode and managed to create it. To mark this significant milestone and share the knowledge I've acquired, I recorded my progress.

I took things a step further by learning how to create multiple pages on the GUI screen, even when the data isn't updated. Thanks to the recording, I now have the capability to accomplish this task with ease

created a straightforward recording that demonstrates the process of creating objects, importing them, and exporting them into the game mode.

Even creating a simple sword proved to be troublesome due to the need for the laborious process of uploading items rather than handling everything locally. I decided to create a simple recording to document these solutions.

Now, considering that there was nothing on each floor, I required an object to interact with or attack. To my surprise, in the user guide, I discovered the basic necessity of adding zombies, designating them as enemies. This setup would enable AI to attack me, and I could freely move around as the AI tracked me down. It was a wonderful revelation, as I realized that I wouldn't need to individually code behaviors for each enemy. This approach would save me a substantial amount of time if I were to start building a game from scratch.

The fundamental concept is that retrieving the player's health is based on the synchronization of the humanoid object. Every script call must wait for this synchronization to be completed. With the humanoid object's not-null variable, I can readily update the GUI locally on the screen. This recording demonstrates how to retrieve the humanoid object and declare it for this purpose.

Returning to the game studio guide, I stumbled upon a game template that offered a standard setup for multiplayer rooms where players could join and engage in combat. This template eliminated the need for extensive programming, so I recorded the process of getting this template up and running.

realized that I needed a variety of different zombies for my game, but I found it challenging to create them myself. It appeared that I would need to learn an entirely new set of skills, from creating character skins to animating their movements and emotions through video. This was a whole new area for me. As a result, I decided to explore the marketplace to acquire other objects, as the default zombie provided by game studio was already fully set up and ready to use.

While creating a video for YouTube, I came across some videos of my favorite game, "Kid Chameleon." An idea struck me: I could recreate the same box hit effect in game studio. Although it was essentially copying, this game hadn't seen a sequel or a 3D version in over 20 years. So, I decided to make a box hit effect just for fun, and the experience brought me a great sense of joy. I forgot to mention that I obtained the gem from the marketplace. When players touch it, it automatically disappears, creating the game effect of collecting gems.

An idea chain reaction occurred to me—I could incorporate the gem dropping effect into the zombies when their health reached zero, allowing players to collect the gem just like the box in the previous video. I sought assistance from ChatGPT to write a script for the gem to teleport to the same position where the zombie had been chasing me and was subsequently defeated. The gem would only appear after the zombie had melted down and a few seconds had passed. It turned out quite nicely, and the system worked as intended.

Since "Kid Chameleon" had some great sound effects, I decided to delve into Audacity's functions to recreate each of these sound effects. I documented the process along the way. However, after finishing and attempting to upload them to game studio, my account got banned. This incident left me pondering whether it was time to conclude my game studio journey and explore other avenues like Unity or Unreal Engine. In the end, I decided to end my game studio journey as I didn't see the need to unlock my account.

 

local objects = script.Parent
local objectsFolder = objects.Objects
local objectsArray = objectsFolder:GetChildren()

local delayBeforeDestroy = 1

local function partTouched(otherPart, objectPart)
               local whichCharacter = otherPart.Parent
               local humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")

              if humanoid then
                       print("part touched")
                     objectPart.CanCollide = false
                    objectPart.Transparency = 1
                   
                     --wait(delayBeforeDestroy)
                    objectPart:Destroy()
                     end
 end

-- Binds every object part to the touch function so it works on all parts
               for objectIndex = 1, #objectsArray do
                         local objectPart = objectsArray[objectIndex]
                                                  objectPart.Touched:Connect(function(otherPart)
                                                                     partTouched(otherPart, objectPart)
                                                 end)
end

Mesh Problem

It appears that this process requires specialized software and individuals with the ability to create and convert designs into meshes. Moreover, these meshes require textures, which call for additional software to be transformed into mesh textures. The entire process also involves adhering to specific layouts, which can become quite intricate and time-consuming. It's no wonder that many individuals who aimed to transform beloved cartoons into actual games often encounter delays and extended development periods. Even personally, I found myself halting progress due to the complexity of the task. It's clear that game creation demands a collaborative effort, involving a team with a range of specialized skills and software proficiencies.

On July 3, 2023, following my smooth experience with game studio game creation, I ventured into crafting audio elements. Discovering a straightforward method, I employed Audacity in conjunction with basic phone-recorded sounds. Utilizing its functions, I transformed ordinary recordings into techno-like game sounds, effectively shaping each audio piece to suit various in-game items. However, my enthusiasm was met with an unexpected obstacle. Immediately upon uploading the sine wave audio, my account was inexplicably banned. Lacking insight into the reason behind this action, and unwilling to invest time into rectifying the issue, I decided to put an end to my journey with game studio game studio. Looking ahead, I'm considering the possibilities presented by Unity for my next endeavor. One aspect that intrigues me is its availability on mobile platforms, not just Windows, which opens up new avenues for exploration.

Unity Journey

I think it is availabe from windows to handphone which is good ideal to venture into it. I think this has to wait for all my web graphic is done up and audio is done up so that i have a DIY ready audio/graphic library to use instead of use others people one.

Account banned

13 October 2024
then i realize why my account banned after upload my own hitbox audio. My audio metatag put game studio as i wan to remember this audio file is for my own game studio game. But Now then i know in their game market it is banned to use their company name like game studio , so this crazy like a person who have pc will create a folder say game studio , then if i have alot of audio asset i will also put game studio to differentiate out. But yet in their policy it is banned to use their name. Some more it took me a year or so to realize this .