Skip to main content

Unity simulation shell

    Simulation shell built from Unity. Players can plan how many stations(milk tea) wanted and the number of workers(reader). When a worker is attached to a station, the sales increase and also the pressure. When detached the worker from the station, the pressure decreases.  


    Now is only the shell. Game logic is illogical. But the following steps are game recording at server-side and simple report. Better game logic also depends on accumulated effect. Then return back to game design. Project development is a looping circle. Further development needs other parts and accumulation of usage. Actually, the original idea of this simulation game is for training. Games explain experience sometimes better than lecture or communication. But the investment costs more, of course.  

    Here are some notes deserve recording. 

point tracking 


UI elements depends on event queue. Game content depends more on overall scanning. Event object will automatically generated when deploy event actions (i.e. onClick()). I once accidentally added in failed item and then deleted everything I thought irrelevant. I deleted Event object.... and had to redo UI... 

Position in game and on screen(UI)



Coordination of game and screen are different. It is obvious in 3D games, but ambiguous especially on top-down 2D. Converter is needed. 


Clone game object and UI


It seems more reasonable to clone object from prefab. My first attempt wasn't success due to missed items. Maybe try again next time. Worker object was hidden behind the scene. This strategy also helped debugging otherwise. 

Clone UI and attached it to game item is worth noting. UI should be the child of Canvas, even it was set to follow a game object. One resource mentioned Text could show up without canvas while creating Textmesh. I may try sometime. First concern is that the data type would be different from the source. I don't like keeping disposable remains. Second, my time is too scarce to spent on dealing orientation while turning. Just left it to Canvas. 

Collide, trigger and static 


Unity doesn't deal physics between static objects since those aren't movable. Rigidbody with static or Kinematic are off the gravity. Collision as trigger is allowing overlap. My design is basically ignoring collision while dragging. The only option I can use is Rigidbody with trigger. Only workers deal with collision. 

My naming convention is Capitalize the 2nd word.... VC tirelessly trying to adjust my habit... so the code looks a little inconsistent....

Initialization


Items on the top ob object list are not always initialized first. I found it when tracking mysterious missing record. Therefore I put null check at potential 1st usage trigger. 

Tracking or dependency


There are possible relationship between same objects, different objects or event triggering. My design uses list tracking to unify and simplify relation checking. It might be boring, but easy to debug. i.e., I found Unity doesn't destroy all dependent objects... My object was destroyed and moved out of lists. But the collision seems remain around dumping area and alerting error for null object.....





Comments

Popular posts from this blog

Guide to Preserving HuggingFace Models in Google Colab Environments

Conclusion:  Step 1:  find the model path: ls ~/.cache  Step 2:  Copy the entire folder to Google Drive:  Step 3:  Set model path to the subfolder under snapshot: My Story: I initially began exploring Generative AI (GAI) and Google Colab through Stable Diffusion. In the past, as I mainly wrote server services and console applications, I was less familiar with data science modes like R and Jupyter that can maintain a paused state. I didn't quite understand the heavy burden on Colab of creating a temporary Stable Diffusion WebUI with .ipynb, as suggested by popular guides. I just found it troublesome that connections often took a long time and then dropped, requiring a restart. Recently, while testing new versions of the Stable Diffusion model, and facing challenges due to Colab's policies making various versions of WebUI difficult to run successfully, I started researching how to write my own test programs in Colab. Eventually, I understood that Colab is ess...

docker: storage and services

Docker Volume Without going through Docker, accessing files within a Docker image is not easy. Therefore, Docker has a volume feature that allows users to specify the location on the host file system to serve as the access directory for Docker. In other words, a volume is the NFS of a Docker image. Example: Using a volume to store SQLite files. ref:  SQLite for NodeJS: https://www.sqlitetutorial.net/sqlite-nodejs/ Initialize the project. # Setup ExpressJS framework express --view=pug 240324_ejs_sqlite_docker npm init npm install express npm install sqlite3 Test: npm start Initialize docker  Since the directory already contains NodeJS, the Docker Daemon will assist in the setup. Create new docker image docker build -t atfuture7/sqlite01 . Create a folder for Docker, create a container, run it.  mkdir docker_vol docker run -p 3000:3000 -v ./docker_vol:/data --name exp_sqlite atfuture7/sqlite01 After confirming that the container can run co...

Bookmark service (MongoDB & Spring REST)

Completed a working version of Bookmark service. Feeling great~~ ha! ha! Finding something to practice is an efficient way of learning. The project concept is redesigned from a MongoDB project. Weeks ago, I was learning MongoDB and NodeJS. Mixing everything together is my hobby. There might be conflictions, but putting all strengths together has higher potential to resolve difficult and complex problems. Elites getting together might sometimes not be easy, I mean technology, of course. Nice things deserve practice.  Building your first application with MongoDB: Creating a REST API using the MEAN Stack https://www.mongodb.com/blog/post/building-your-first-application-mongodb-creating-rest-api-using-mean-stack-part-1   After redesign…… is ….extremely simple…. But contains enough new topics for me to explore. I’m just a starter of Spring (and a veteran of OO and Cloud programming). Keep everything simple and fast.    I applied to cloud services (like AWS), online artist...